1 |
|
2 | ;
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | const tslib_1 = require("tslib");
|
5 | const chalk = tslib_1.__importStar(require("chalk"));
|
6 | const debug_1 = tslib_1.__importDefault(require("debug"));
|
7 | const fs = tslib_1.__importStar(require("fs"));
|
8 | const CleanCommandModule_1 = require("./commands/CleanCommandModule");
|
9 | const CreateCommandModule_1 = require("./commands/CreateCommandModule");
|
10 | const EntrypointCommandModule_1 = require("./commands/EntrypointCommandModule");
|
11 | const InitCommandModule_1 = require("./commands/InitCommandModule");
|
12 | const EN_CLIOPTION_1 = require("./EN_CLIOPTION");
|
13 | const CreateTsIndexOption_1 = require("./options/CreateTsIndexOption");
|
14 | const CTIUtility_1 = require("./tools/CTIUtility");
|
15 | const yargs = require("yargs");
|
16 | const log = debug_1.default('cti:cti-cli');
|
17 | const version = '1.10.2';
|
18 | const optionMap = {
|
19 | [EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST]: {
|
20 | alias: 'f',
|
21 | describe: 'export list create filefirst, no option false, option true',
|
22 | type: 'boolean',
|
23 | },
|
24 | [EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]: {
|
25 | alias: 'n',
|
26 | describe: 'deside add newline file ending. no option true, option false',
|
27 | type: 'boolean',
|
28 | },
|
29 | [EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]: {
|
30 | alias: 's',
|
31 | describe: 'deside use semicolon line ending. no option true, option false',
|
32 | type: 'boolean',
|
33 | },
|
34 | [EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]: {
|
35 | alias: 'c',
|
36 | describe: 'deside include cwd directory in task. no option true, option false',
|
37 | type: 'boolean',
|
38 | },
|
39 | [EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]: {
|
40 | alias: 't',
|
41 | describe: `deside use timestamp(YYYY-MM-DD HH:mm) top line comment. \nno option false, option true`,
|
42 | type: 'boolean',
|
43 | },
|
44 | [EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]: {
|
45 | alias: 'e',
|
46 | array: true,
|
47 | describe: `pass exclude directory. default exclude directory is ['@types', 'typings', '__test__', '__tests__']`,
|
48 | type: 'string',
|
49 | },
|
50 | [EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]: {
|
51 | alias: 'i',
|
52 | array: true,
|
53 | describe: 'pass exclude pattern of filename. default exclude directory is "[]"',
|
54 | type: 'string',
|
55 | },
|
56 | [EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]: {
|
57 | alias: 'x',
|
58 | array: true,
|
59 | describe: `pass include extname. default extname is ["ts", "tsx"]. extname \npass without dot charactor.`,
|
60 | type: 'string',
|
61 | },
|
62 | [EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]: {
|
63 | alias: 'w',
|
64 | describe: 'remove comment from created output',
|
65 | type: 'boolean',
|
66 | },
|
67 | [EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]: {
|
68 | alias: 'v',
|
69 | describe: 'verbose logging message. to option false, option true',
|
70 | type: 'boolean',
|
71 | },
|
72 | [EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]: {
|
73 | alias: 'q',
|
74 | describe: "deside quote character. default quote character is '",
|
75 | type: 'string',
|
76 | },
|
77 | };
|
78 | function createCommandOptionBuilder(args) {
|
79 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILEFIRST]);
|
80 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]);
|
81 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]);
|
82 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]);
|
83 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]);
|
84 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]);
|
85 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]);
|
86 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]);
|
87 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]);
|
88 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]);
|
89 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]);
|
90 | return args;
|
91 | }
|
92 | function createCommandActor(args) {
|
93 | return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
94 | const cwds = args.cwds;
|
95 | const cliCwd = process.cwd();
|
96 | if (!cwds) {
|
97 | console.log(chalk.default.magenta('Enter working directory, '));
|
98 | console.log(chalk.default.red('cti [working directory]'));
|
99 | process.exit(1);
|
100 | }
|
101 | if (typeof cwds === 'string') {
|
102 | const createCommand = new CreateCommandModule_1.CreateCommandModule();
|
103 | const options = CreateTsIndexOption_1.createOptionBuilder(args, cwds);
|
104 | return createCommand.do(cliCwd, options);
|
105 | }
|
106 | if (typeof cwds !== 'string' && Array.isArray(cwds)) {
|
107 | return Promise.all(cwds
|
108 | .filter((cwd) => fs.existsSync(cwd))
|
109 | .map((cwd) => {
|
110 | const createCommand = new CreateCommandModule_1.CreateCommandModule();
|
111 | const options = CreateTsIndexOption_1.createOptionBuilder(args, cwd);
|
112 | return createCommand.do(cliCwd, options);
|
113 | }));
|
114 | }
|
115 | });
|
116 | }
|
117 | yargs
|
118 | .command('$0 [cwds...]', 'create index.ts file in working directory', createCommandOptionBuilder, createCommandActor)
|
119 | .command('create [cwds...]', 'create index.ts file in working directory', createCommandOptionBuilder, createCommandActor)
|
120 | .command('entrypoint [cwds...]', 'create entrypoint.ts file in working directory', (args) => {
|
121 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]);
|
122 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_SEMICOLON]);
|
123 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.INCLUDE_CWD]);
|
124 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]);
|
125 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.EXCLUDES]);
|
126 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.FILE_EXCLUDES]);
|
127 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.TARGET_EXTS]);
|
128 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]);
|
129 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.WITHOUT_COMMENT]);
|
130 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.QUOTE]);
|
131 | return args;
|
132 | }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
133 | const cwds = args.cwds;
|
134 | const cliCwd = process.cwd();
|
135 | if (!cwds) {
|
136 | console.log(chalk.default.magenta('Enter working directory, '));
|
137 | console.log(chalk.default.red('cti [working directory]'));
|
138 | process.exit(1);
|
139 | }
|
140 | if (typeof cwds === 'string') {
|
141 | const entrypointCommand = new EntrypointCommandModule_1.EntrypointCommandModule();
|
142 | const options = CreateTsIndexOption_1.entrypointOptionBuilder(args, cwds);
|
143 | return entrypointCommand.do(cliCwd, options);
|
144 | }
|
145 | if (typeof cwds !== 'string' && Array.isArray(cwds)) {
|
146 | return Promise.all(cwds
|
147 | .filter((cwd) => fs.existsSync(cwd))
|
148 | .map((cwd) => {
|
149 | const entrypointCommand = new EntrypointCommandModule_1.EntrypointCommandModule();
|
150 | const options = CreateTsIndexOption_1.entrypointOptionBuilder(args, cwd);
|
151 | return entrypointCommand.do(cliCwd, options);
|
152 | }));
|
153 | }
|
154 | }))
|
155 | .command('init [cwds...]', 'create .ctirc file in working directory', (args) => {
|
156 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.ADD_NEWLINE]);
|
157 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.USE_TIMESTAMP]);
|
158 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]);
|
159 | return args;
|
160 | }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
161 | const cwds = CTIUtility_1.isNotEmpty(args.cwds) ? args.cwds : [process.cwd()];
|
162 | const cliCwd = process.cwd();
|
163 | log('init command start, ', cwds);
|
164 | if (typeof cwds === 'string') {
|
165 | const initCommandModule = new InitCommandModule_1.InitCommandModule();
|
166 | const options = CreateTsIndexOption_1.initOptionBuilder(args, cwds);
|
167 | return initCommandModule.do(cliCwd, options);
|
168 | }
|
169 | if (typeof cwds !== 'string' && Array.isArray(cwds)) {
|
170 | return Promise.all(cwds
|
171 | .filter((cwd) => fs.existsSync(cwd))
|
172 | .map((cwd) => {
|
173 | const initCommandModule = new InitCommandModule_1.InitCommandModule();
|
174 | const options = CreateTsIndexOption_1.initOptionBuilder(args, cwd);
|
175 | return initCommandModule.do(cliCwd, options);
|
176 | }));
|
177 | }
|
178 | }))
|
179 | .command('clean [cwds...]', 'clean index.ts or entrypoint.ts file in working directory', (args) => {
|
180 | args.option(EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE, optionMap[EN_CLIOPTION_1.EN_CLI_OPTION.VERBOSE]);
|
181 | return args;
|
182 | }, (args) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
183 | const cwds = args['cwds'];
|
184 | const cliCwd = process.cwd();
|
185 | if (!cwds) {
|
186 | console.log(chalk.default.magenta('Enter working directory, '));
|
187 | console.log(chalk.default.red('cti [working directory]'));
|
188 | process.exit(1);
|
189 | }
|
190 | if (typeof cwds === 'string') {
|
191 | const cleanCommand = new CleanCommandModule_1.CleanCommandModule();
|
192 | const options = CreateTsIndexOption_1.cleanOptionBuilder(args, cwds);
|
193 | yield cleanCommand.do(cliCwd, options);
|
194 | }
|
195 | if (typeof cwds !== 'string' && Array.isArray(cwds)) {
|
196 | return Promise.all(cwds
|
197 | .filter((cwd) => fs.existsSync(cwd))
|
198 | .map((cwd) => {
|
199 | const cleanCommand = new CleanCommandModule_1.CleanCommandModule();
|
200 | const options = CreateTsIndexOption_1.cleanOptionBuilder(args, cwd);
|
201 | return cleanCommand.do(cliCwd, options);
|
202 | }));
|
203 | }
|
204 | return true;
|
205 | }))
|
206 | .version(version, 'version', 'display version information')
|
207 | .help().argv;
|
208 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3RpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2N0aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EscURBQStCO0FBQy9CLDBEQUEwQjtBQUMxQiwrQ0FBeUI7QUFFekIsc0VBQW1FO0FBQ25FLHdFQUFxRTtBQUNyRSxnRkFBNkU7QUFDN0Usb0VBQWlFO0FBQ2pFLGlEQUErQztBQUMvQyx1RUFLdUM7QUFPdkMsbURBQWdEO0FBRWhELCtCQUFnQztBQUNoQyxNQUFNLEdBQUcsR0FBRyxlQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFakMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDO0FBRXpCLE1BQU0sU0FBUyxHQUE4QztJQUMzRCxDQUFDLDRCQUFhLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDekIsS0FBSyxFQUFFLEdBQUc7UUFDVixRQUFRLEVBQUUsNERBQTREO1FBQ3RFLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsQ0FBQyw0QkFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzNCLEtBQUssRUFBRSxHQUFHO1FBQ1YsUUFBUSxFQUFFLDhEQUE4RDtRQUN4RSxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNELENBQUMsNEJBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUM3QixLQUFLLEVBQUUsR0FBRztRQUNWLFFBQVEsRUFBRSxnRUFBZ0U7UUFDMUUsSUFBSSxFQUFFLFNBQVM7S0FDaEI7SUFDRCxDQUFDLDRCQUFhLENBQUMsV0FBVyxDQUFDLEVBQUU7UUFDM0IsS0FBSyxFQUFFLEdBQUc7UUFDVixRQUFRLEVBQUUsb0VBQW9FO1FBQzlFLElBQUksRUFBRSxTQUFTO0tBQ2hCO0lBQ0QsQ0FBQyw0QkFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQzdCLEtBQUssRUFBRSxHQUFHO1FBQ1YsUUFBUSxFQUFFLHlGQUF5RjtRQUNuRyxJQUFJLEVBQUUsU0FBUztLQUNoQjtJQUNELENBQUMsNEJBQWEsQ0FBQyxRQUFRLENB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 |
\ | No newline at end of file |