UNPKG

redux-feature-generator

Version:
64 lines (63 loc) 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateFiles = void 0; /** * @file rfg.ts * @version 1.4.0 * @fileoverview Redux Feature Generator (RFG) is used create the template files. */ const path_1 = require("path"); const fs_1 = require("fs"); const rfgArgs_1 = require("./rfgArgs"); const helpers_1 = require("./helpers"); const templates = [ (0, path_1.resolve)(__dirname, "../../templates/basic-typescript/template.module.css.tpl"), (0, path_1.resolve)(__dirname, "../../templates/basic-typescript/template.spec.ts.tpl"), (0, path_1.resolve)(__dirname, "../../templates/basic-typescript/Template.tsx.tpl"), (0, path_1.resolve)(__dirname, "../../templates/basic-typescript/templateAPI.ts.tpl"), (0, path_1.resolve)(__dirname, "../../templates/basic-typescript/templateSlice.ts.tpl") ]; const generateFiles = (args) => { let projectDirectory; if (args.length === 3) { projectDirectory = args[1]; } else if (args.length === 2 && (0, fs_1.existsSync)(args[1])) { projectDirectory = args[1]; } else { projectDirectory = process.cwd() + "/src/features"; } const outFiles = [ (0, path_1.join)(`${projectDirectory}/${(0, helpers_1.lowercase)(args[0])}/${(0, helpers_1.lowercase)(args[0])}.module.css`), (0, path_1.join)(`${projectDirectory}/${(0, helpers_1.lowercase)(args[0])}/${(0, helpers_1.lowercase)(args[0])}.spec.ts`), (0, path_1.join)(`${projectDirectory}/${(0, helpers_1.lowercase)(args[0])}/${(0, helpers_1.capitalize)(args[0])}.tsx`), (0, path_1.join)(`${projectDirectory}/${(0, helpers_1.lowercase)(args[0])}/${(0, helpers_1.lowercase)(args[0])}API.ts`), (0, path_1.join)(`${projectDirectory}/${(0, helpers_1.lowercase)(args[0])}/${(0, helpers_1.lowercase)(args[0])}Slice.ts`) ]; // Test to see if there is a src/features folder in the project directory if ((0, fs_1.existsSync)(projectDirectory)) { for (let i = 0; i < templates.length; i++) { if ((0, fs_1.existsSync)((0, path_1.resolve)(templates[i]))) { let fileBuf = (0, fs_1.readFileSync)(templates[i], { encoding: "utf-8" }); fileBuf = (0, helpers_1.replaceAll)((0, helpers_1.replaceAll)(fileBuf, "${featureNameUppercase}", (0, helpers_1.capitalize)(args[0])), "${featureNameLowercase}", args[0]); // Make sure the generation will work if (!(0, fs_1.existsSync)((0, path_1.join)(`${projectDirectory}/${args[0]}/`))) { (0, fs_1.mkdirSync)((0, path_1.join)(`${projectDirectory}/${args[0]}/`)); process.stdout.write(`Writing File: ${outFiles[i]}\n`); (0, fs_1.writeFileSync)(outFiles[i], fileBuf, { encoding: "utf-8", flag: "w+" }); } else { process.stdout.write(`Writing File: ${outFiles[i]}\n`); (0, fs_1.writeFileSync)(outFiles[i], fileBuf, { encoding: "utf-8", flag: "w+" }); } } } process.stdout.write("Generation Succeeded\n"); } else { // Valid Feature Folder must be found to attempt generation return rfgArgs_1.RFG_STATUS.FOLDER_NOT_FOUND_ERROR; } return rfgArgs_1.RFG_STATUS.OK; }; exports.generateFiles = generateFiles;