UNPKG

@featurevisor/core

Version:

Core package of Featurevisor for Node.js usage

54 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCodePlugin = exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION = void 0; exports.generateCodeForProject = generateCodeForProject; const fs = require("fs"); const path = require("path"); const typescript_1 = require("./typescript"); exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION = ["typescript"]; async function generateCodeForProject(deps, cliOptions) { const { rootDirectoryPath } = deps; if (!cliOptions.language) { throw new Error("Option `--language` is required"); } if (!cliOptions.outDir) { throw new Error("Option `--out-dir` is required"); } const absolutePath = path.resolve(rootDirectoryPath, cliOptions.outDir); if (!fs.existsSync(absolutePath)) { console.log(`Creating output directory: ${absolutePath}`); fs.mkdirSync(absolutePath, { recursive: true }); } else { console.log(`Output directory already exists at: ${absolutePath}`); } if (!exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.includes(cliOptions.language)) { console.log(`Only these languages are supported: ${exports.ALLOWED_LANGUAGES_FOR_CODE_GENERATION.join(", ")}`); throw new Error(`Language ${cliOptions.language} is not supported for code generation`); } if (cliOptions.language === "typescript") { return await (0, typescript_1.generateTypeScriptCodeForProject)(deps, absolutePath); } throw new Error(`Language ${cliOptions.language} is not supported`); } exports.generateCodePlugin = { command: "generate-code", handler: async function ({ rootDirectoryPath, projectConfig, datasource, parsed }) { await generateCodeForProject({ rootDirectoryPath, projectConfig, datasource, options: parsed, }, { language: parsed.language, outDir: parsed.outDir, }); }, examples: [ { command: "generate-code --language typescript --out-dir src/generated", description: "Generate TypeScript code for the project", }, ], }; //# sourceMappingURL=index.js.map