create-ts-index
Version:
Automatic create index.ts file
208 lines • 21.5 kB
JavaScript
;
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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