[setup] add script for quick create function with tests
This commit is contained in:
@@ -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}`);
|
||||||
|
|
||||||
+2
-1
@@ -19,7 +19,8 @@
|
|||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "tsc && vite build",
|
"build": "tsc && vite build",
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"coverage": "vitest run --coverage"
|
"coverage": "vitest run --coverage",
|
||||||
|
"add:module": "node ./add-component.mjs"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^5.1.3",
|
"typescript": "^5.1.3",
|
||||||
|
|||||||
Reference in New Issue
Block a user