# All files / algorithms add-component.mjs

0% Statements 0/55
0% Branches 0/1
0% Functions 0/1
0% Lines 0/55

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57

     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}`);