generate-index-modules.ts 1.04 KB
import * as glob from "glob";
import * as path from "path";
import * as fs from "fs";
let directories = glob.sync("./src/app/**/**/");

// maps to absolute path
directories = directories.map((directory: string) => {
    return path.resolve(__dirname, "..", directory);
});

// iterate to generate the index folders
directories.forEach((directory: string) => {
    // skips the app directory
    if (!/\/app$/.test(directory)) {
        let current_files = glob.sync("./*.ts", { nodir: true, cwd: directory, ignore: ['./index.ts', './*.spec.ts'] });
        console.log("DIRECTORY: ", directory);
        console.log("FILES: ", current_files);

        let indexPath = path.join(directory, "index.ts");

        let index_ts_content: string = "/* Module Index Entry - generated using the script npm run generate-index */\n";

        let exports_content = current_files.map((file) => {
            return `export * from "./${path.basename(file, ".ts")}";\n`;
        });

        fs.writeFileSync(indexPath, index_ts_content + exports_content.join(""));

    }



});