UNPKG

create-ts-index

Version:
208 lines 21.5 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const chalk = tslib_1.__importStar(require("chalk")); const debug_1 = tslib_1.__importDefault(require("debug")); const fs = tslib_1.__importStar(require("fs")); const CleanCommandModule_1 = require("./commands/CleanCommandModule"); const CreateCommandModule_1 = require("./commands/CreateCommandModule"); const EntrypointCommandModule_1 = require("./commands/EntrypointCommandModule"); const InitCommandModule_1 = require("./commands/InitCommandModule"); const EN_CLIOPTION_1 = require("./EN_CLIOPTION"); const CreateTsIndexOption_1 = require("./options/CreateTsIndexOption"); const CTIUtility_1 = require("./tools/CTIUtility"); const yargs = require("yargs"); const log = debug_1.default('cti:cti-cli'); const version = '1.10.2'; const optionMap = { [EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST]: { alias: 'f', describe: 'export list create filefirst, no option false, option true', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]: { alias: 'n', describe: 'deside add newline file ending. no option true, option false', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]: { alias: 's', describe: 'deside use semicolon line ending. no option true, option false', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]: { alias: 'c', describe: 'deside include cwd directory in task. no option true, option false', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]: { alias: 't', describe: `deside use timestamp(YYYY-MM-DD HH:mm) top line comment. \nno option false, option true`, type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]: { alias: 'e', array: true, describe: `pass exclude directory. default exclude directory is ['@types', 'typings', '__test__', '__tests__']`, type: 'string', }, [EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]: { alias: 'i', array: true, describe: 'pass exclude pattern of filename. default exclude directory is "[]"', type: 'string', }, [EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]: { alias: 'x', array: true, describe: `pass include extname. default extname is ["ts", "tsx"]. extname \npass without dot charactor.`, type: 'string', }, [EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]: { alias: 'w', describe: 'remove comment from created output', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]: { alias: 'v', describe: 'verbose logging message. to option false, option true', type: 'boolean', }, [EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]: { alias: 'q', describe: "deside quote character. default quote character is '", type: 'string', }, }; function createCommandOptionBuilder(args) { args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]); return args; } function createCommandActor(args) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const cwds = args.cwds; const cliCwd = process.cwd(); if (!cwds) { console.log(chalk.default.magenta('Enter working directory, ')); console.log(chalk.default.red('cti [working directory]')); process.exit(1); } if (typeof cwds === 'string') { const createCommand = new CreateCommandModule_1.CreateCommandModule(); const options = CreateTsIndexOption_1.createOptionBuilder(args, cwds); return createCommand.do(cliCwd, options); } if (typeof cwds !== 'string' && Array.isArray(cwds)) { return Promise.all(cwds .filter((cwd) => fs.existsSync(cwd)) .map((cwd) => { const createCommand = new CreateCommandModule_1.CreateCommandModule(); const options = CreateTsIndexOption_1.createOptionBuilder(args, cwd); return createCommand.do(cliCwd, options); })); } }); } yargs .command('$0 [cwds...]', 'create index.ts file in working directory', createCommandOptionBuilder, createCommandActor) .command('create [cwds...]', 'create index.ts file in working directory', createCommandOptionBuilder, createCommandActor) .command('entrypoint [cwds...]', 'create entrypoint.ts file in working directory', (args) => { args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]); return args; }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () { const cwds = args.cwds; const cliCwd = process.cwd(); if (!cwds) { console.log(chalk.default.magenta('Enter working directory, ')); console.log(chalk.default.red('cti [working directory]')); process.exit(1); } if (typeof cwds === 'string') { const entrypointCommand = new EntrypointCommandModule_1.EntrypointCommandModule(); const options = CreateTsIndexOption_1.entrypointOptionBuilder(args, cwds); return entrypointCommand.do(cliCwd, options); } if (typeof cwds !== 'string' && Array.isArray(cwds)) { return Promise.all(cwds .filter((cwd) => fs.existsSync(cwd)) .map((cwd) => { const entrypointCommand = new EntrypointCommandModule_1.EntrypointCommandModule(); const options = CreateTsIndexOption_1.entrypointOptionBuilder(args, cwd); return entrypointCommand.do(cliCwd, options); })); } })) .command('init [cwds...]', 'create .ctirc file in working directory', (args) => { args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]); args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]); return args; }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () { const cwds = CTIUtility_1.isNotEmpty(args.cwds) ? args.cwds : [process.cwd()]; const cliCwd = process.cwd(); log('init command start, ', cwds); if (typeof cwds === 'string') { const initCommandModule = new InitCommandModule_1.InitCommandModule(); const options = CreateTsIndexOption_1.initOptionBuilder(args, cwds); return initCommandModule.do(cliCwd, options); } if (typeof cwds !== 'string' && Array.isArray(cwds)) { return Promise.all(cwds .filter((cwd) => fs.existsSync(cwd)) .map((cwd) => { const initCommandModule = new InitCommandModule_1.InitCommandModule(); const options = CreateTsIndexOption_1.initOptionBuilder(args, cwd); return initCommandModule.do(cliCwd, options); })); } })) .command('clean [cwds...]', 'clean index.ts or entrypoint.ts file in working directory', (args) => { args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]); return args; }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () { const cwds = args['cwds']; const cliCwd = process.cwd(); if (!cwds) { console.log(chalk.default.magenta('Enter working directory, ')); console.log(chalk.default.red('cti [working directory]')); process.exit(1); } if (typeof cwds === 'string') { const cleanCommand = new CleanCommandModule_1.CleanCommandModule(); const options = CreateTsIndexOption_1.cleanOptionBuilder(args, cwds); yield cleanCommand.do(cliCwd, options); } if (typeof cwds !== 'string' && Array.isArray(cwds)) { return Promise.all(cwds .filter((cwd) => fs.existsSync(cwd)) .map((cwd) => { const cleanCommand = new CleanCommandModule_1.CleanCommandModule(); const options = CreateTsIndexOption_1.cleanOptionBuilder(args, cwd); return cleanCommand.do(cliCwd, options); })); } return true; })) .version(version, 'version', 'display version information') .help().argv; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3RpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2N0aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EscURBQStCO0FBQy9CLDBEQUEwQjtBQUMxQiwrQ0FBeUI7QUFFekIsc0VBQW1FO0FBQ25FLHdFQUFxRTtBQUNyRSxnRkFBNkU7QUFDN0Usb0VBQWlFO0FBQ2pFLGlEQUErQztBQUMvQyx1RUFLdUM7QUFPdkMsbURBQWdEO0FBRWhELCtCQUFnQztBQUNoQyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFakMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBRXpCLE1BQU0sU0FBUyxHQUE4QztJQUMzRCxDQUFDLDRCQUFhLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDekIsS0FBSyxFQUFFLEdBQUc7UUFDVixRQUFRLEVBQUUsNERBQTREO1FBQ3RFLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsQ0FBQyw0QkFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzNCLEtBQUssRUFBRSxHQUFHO1FBQ1YsUUFBUSxFQUFFLDhEQUE4RDtRQUN4RSxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNELENBQUMsNEJBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUM3QixLQUFLLEVBQUUsR0FBRztRQUNWLFFBQVEsRUFBRSxnRUFBZ0U7UUFDMUUsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxDQUFDLDRCQUFhLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxFQUFFLEdBQUc7UUFDVixRQUFRLEVBQUUsb0VBQW9FO1FBQzlFLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsQ0FBQyw0QkFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQzdCLEtBQUssRUFBRSxHQUFHO1FBQ1YsUUFBUSxFQUFFLHlGQUF5RjtRQUNuRyxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNELENBQUMsNEJBQWEsQ0FBQyxRQUFRLENB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