UNPKG

@code-to-json/cli

Version:
54 lines 5.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@code-to-json/core"); const formatter_1 = require("@code-to-json/formatter"); const utils_1 = require("@code-to-json/utils"); const utils_node_1 = require("@code-to-json/utils-node"); const utils_ts_1 = require("@code-to-json/utils-ts"); const fs = require("fs"); const path = require("path"); const command_utils_1 = require("../command-utils"); async function generateJSON(options, rawEntries) { const { project, out = 'out', format } = options; let program; let pathNormalizer = utils_ts_1.PASSTHROUGH_REVERSE_RESOLVER; if (typeof project === 'string') { // run tool based on tsconfig.json program = await utils_ts_1.createProgramFromTsConfig(project, utils_node_1.NODE_HOST); pathNormalizer = await utils_node_1.createReverseResolverForProject(project, utils_node_1.NODE_HOST); } else if (!project && rawEntries && rawEntries.length > 0) { // run tool based on entries program = await command_utils_1.createProgramFromEntryGlobs(rawEntries); } else { throw new utils_1.InvalidArgumentsError('Either --project <path> or entries glob(s) must be defined'); } if (['raw', 'both', 'formatted'].indexOf(format) < 0) { throw new Error(`Invalid --format option: ${format}`); } // get the raw result const walkResult = core_1.walkProgram(program, utils_node_1.NODE_HOST, { pathNormalizer, }); const outputPath = path.isAbsolute(out) ? out : path.join(process.cwd(), out); if (!fs.existsSync(outputPath)) { fs.mkdirSync(outputPath, { recursive: true }); } if (format === 'raw' || format === 'both') { const rawOutputPath = path.join(outputPath, 'raw.json'); // write the raw output file fs.writeFileSync(rawOutputPath, JSON.stringify(walkResult, null, ' ')); } if (format === 'formatted' || format === 'both') { // get the formatted result const formattedResult = formatter_1.formatWalkerOutput(walkResult); // determine the appropriate place(s) to write output files const formattedOutputPath = path.join(outputPath, 'formatted.json'); // create the output folder if it doesn't currently exist // write the formatted output file fs.writeFileSync(formattedOutputPath, JSON.stringify(formattedResult, null, ' ')); } } exports.default = generateJSON; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtanNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9nZW5lcmF0ZS1qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQWlEO0FBQ2pELHVEQUE2RDtBQUM3RCwrQ0FBNEQ7QUFDNUQseURBQXNGO0FBQ3RGLHFEQUFpRztBQUNqRyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBRTdCLG9EQUErRDtBQWdCaEQsS0FBSyxVQUFVLFlBQVksQ0FDeEMsT0FBNkIsRUFDN0IsVUFBcUI7SUFFckIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BSXhDLENBQUM7SUFDRixJQUFJLE9BQW9CLENBQUM7SUFDekIsSUFBSSxjQUFjLEdBQUcsdUNBQTRCLENBQUM7SUFFbEQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0Isa0NBQWtDO1FBQ2xDLE9BQU8sR0FBRyxNQUFNLG9DQUF5QixDQUFDLE9BQU8sRUFBRSxzQkFBUyxDQUFDLENBQUM7UUFDOUQsY0FBYyxHQUFHLE1BQU0sNENBQStCLENBQUMsT0FBTyxFQUFFLHNCQUFTLENBQUMsQ0FBQztLQUM1RTtTQUFNLElBQUksQ0FBQyxPQUFPLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzFELDRCQUE0QjtRQUM1QixPQUFPLEdBQUcsTUFBTSwyQ0FBMkIsQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUN6RDtTQUFNO1FBQ0wsTUFBTSxJQUFJLDZCQUFxQixDQUFDLDREQUE0RCxDQUFDLENBQUM7S0FDL0Y7SUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDdkQ7SUFDRCxxQkFBcUI7SUFDckIsTUFBTSxVQUFVLEdBQUcsa0JBQVcsQ0FBQyxPQUFPLEVBQUUsc0JBQVMsRUFBRTtRQUNqRCxjQUFjO0tBQ2YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM5RSxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUM5QixFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQy9DO0lBQ0QsSUFBSSxNQUFNLEtBQUssS0FBSyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDekMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEQsNEJBQTRCO1FBQzVCLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3pFO0lBQ0QsSUFBSSxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7UUFDL0MsMkJBQTJCO1FBQzNCLE1BQU0sZUFBZSxHQUFHLDhCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELDJEQUEyRDtRQUMzRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDcEUseURBQXlEO1FBQ3pELGtDQUFrQztRQUNsQyxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQ3BGO0FBQ0gsQ0FBQztBQWhERCwrQkFnREMifQ==