[setup] add script for quick create function with tests

main
Vasily Guzov 1 year ago
parent ffa87ec3a3
commit 076c7e90dc

@ -0,0 +1,56 @@
import fs from "fs";
import path from "path";
const defaultPath = "./lib/";
const componentFolderPath = process.argv[3] ? process.argv[3] : defaultPath;
const componentName = process.argv[2];
if (!componentName) {
console.error("Please provide a module name.");
process.exit(1);
}
const folderPath = path.join(componentFolderPath, componentName);
const componentFilePath = path.join(folderPath, `${componentName}.ts`);
const testFile = path.join(folderPath, `${componentName}.test.ts`);
const indexPath = path.join(folderPath, "index.ts");
if (!fs.existsSync(folderPath)) {
fs.mkdirSync(folderPath, { recursive: true });
}
const componentContent = `export function ${componentName}() {
//your code here
};
`;
fs.writeFileSync(componentFilePath, componentContent);
const testContent = `import { describe, it, expect } from "vitest";
import { ${componentName} } from "./${componentName}.ts";
describe("${componentName}", () => {
let sortedArray = [-12, 1, 4, 6, 22];
it("${componentName}", () => {
expect(${componentName}(sortedArray, 4)).toBe(2);
});
it("${componentName}", () => {
expect(${componentName}(sortedArray, 3)).toBe(-1);
});
});
`;
fs.writeFileSync(testFile, testContent);
const indexContent = `import { ${componentName} } from "./${componentName}";
export default ${componentName};
`;
fs.writeFileSync(indexPath, indexContent);
console.log(`Component ${componentName} created successfully at ${folderPath}`);

@ -19,7 +19,8 @@
"dev": "vite",
"build": "tsc && vite build",
"test": "vitest",
"coverage": "vitest run --coverage"
"coverage": "vitest run --coverage",
"add:module": "node ./add-component.mjs"
},
"devDependencies": {
"typescript": "^5.1.3",

Loading…
Cancel
Save