config2ts 2.3.3 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,7 @@
1
- export declare const Convert: {
2
- ini: (str: any, moduleName: any) => string;
3
- csv: (str: any, moduleName: any) => string;
4
- toml: (str: any, moduleName: any) => string;
5
- };
6
- export declare function GetTsString(filePath: any): any;
7
- export declare function GetTsStringFromFileList(fileList: any): any;
8
- export declare function GetValidFileList(fileList: any): any;
9
- export declare function startConvert(dir: string, outDir: string, merge: string | null): void;
1
+ type ConvertHandler = (str: string, moduleName: string) => string;
2
+ export declare const Convert: Record<string, ConvertHandler>;
3
+ export declare function GetTsString(filePath: string): string;
4
+ export declare function GetTsStringFromFileList(fileList: string[]): string;
5
+ export declare function GetValidFileList(fileList: string[]): string[];
6
+ export declare function startConvert(dir: string, outDir: string, merge: string): void;
7
+ export {};
package/lib/config2ts.js CHANGED
@@ -1,65 +1,134 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.Convert = void 0;
4
37
  exports.GetTsString = GetTsString;
5
38
  exports.GetTsStringFromFileList = GetTsStringFromFileList;
6
39
  exports.GetValidFileList = GetValidFileList;
7
40
  exports.startConvert = startConvert;
8
- var path = require("path");
9
- var fs = require("fs");
10
- var d3_dsv_1 = require("d3-dsv");
11
- var json5 = require("json5");
12
- var changeCase = require("change-case");
13
- var toml = require("toml");
14
- var EnumStr = 'Enum';
15
- var EnumIndexStr = 'EnumIndex';
16
- var EnumArrayString = 'Enum[]';
17
- var IndexStr = 'Index';
41
+ const path = __importStar(require("path"));
42
+ const fs = __importStar(require("fs"));
43
+ const d3_dsv_1 = require("d3-dsv");
44
+ const json5 = __importStar(require("json5"));
45
+ const changeCase = __importStar(require("change-case"));
46
+ const toml = __importStar(require("toml"));
47
+ const EnumStr = "Enum";
48
+ const EnumIndexStr = "EnumIndex";
49
+ const EnumArrayString = "Enum[]";
50
+ const IndexStr = "Index";
51
+ const ObjectStr = "Object";
52
+ const RefPrefix = "Ref[";
53
+ const RefSuffix = "]";
54
+ const RefEnumPrefix = "RefEnum[";
55
+ const RefEnumArraySuffix = "][]";
18
56
  exports.Convert = {
19
57
  ini: function (str, moduleName) {
20
- var obj = toml.parse(str);
21
- return "export const ".concat(moduleName, " = ").concat(json5.stringify(obj, null, 4), ";");
58
+ const obj = toml.parse(str);
59
+ return `export const ${moduleName} = ${json5.stringify(obj, null, 4)};`;
22
60
  },
23
61
  csv: function (str, moduleName) {
24
62
  return csv2ts(str, moduleName);
25
63
  },
26
64
  toml: function (str, moduleName) {
27
- var obj = toml.parse(str);
28
- return "export const ".concat(moduleName, " = ").concat(json5.stringify(obj, null, 4), ";");
29
- }
65
+ const obj = toml.parse(str);
66
+ return `export const ${moduleName} = ${json5.stringify(obj, null, 4)};`;
67
+ },
30
68
  };
31
69
  function csv2ts(csvString, moduleName) {
32
- var convert = {};
33
- var result = (0, d3_dsv_1.csvParse)(csvString, function (d, i) {
70
+ let convert = {};
71
+ const refFields = [];
72
+ const refEnumFields = [];
73
+ const result = (0, d3_dsv_1.csvParse)(csvString, function (d, i) {
34
74
  if (i === 0) {
35
75
  convert = d;
76
+ for (const k in convert) {
77
+ if (convert[k].startsWith(RefPrefix) && convert[k].endsWith(RefSuffix)) {
78
+ refFields.push(k);
79
+ }
80
+ if (parseRefEnum(convert[k])) {
81
+ refEnumFields.push(k);
82
+ }
83
+ }
36
84
  return null;
37
85
  }
38
86
  else {
39
- for (var k in d) {
40
- // console.log(`convert[k]: ${convert[k]}, d[k]: ${d[k]}, k: ${k}`)
41
- if (global[convert[k]] instanceof Function) {
87
+ for (const k in d) {
88
+ if (convert[k] === ObjectStr) {
89
+ d[k] = parseObject(d[k]);
90
+ }
91
+ else if (typeof global[convert[k]] === "function") {
42
92
  d[k] = global[convert[k]](d[k]);
43
93
  }
44
- else if (convert[k] === 'String[]') {
45
- if (d[k] === '') {
46
- // Enum array do not include empty string
94
+ else if (convert[k] === "String[]") {
95
+ if (d[k] === "") {
47
96
  d[k] = [];
48
97
  }
49
98
  else {
50
- d[k] = d[k].trim().split(',').map(function (v) { return v.trim(); });
99
+ d[k] = d[k].trim().split(",").map((v) => v.trim());
51
100
  }
52
101
  }
53
- else if (convert[k] === 'Number[]') {
54
- d[k] = d[k].trim().split(',').map(function (val) { return Number(val); });
102
+ else if (convert[k] === "Number[]") {
103
+ d[k] = d[k].trim().split(",").map((val) => Number(val));
55
104
  }
56
- else if (convert[k] === 'Enum[]') {
57
- if (d[k] === '') {
58
- // Enum array do not include empty string
105
+ else if (convert[k] === "Enum[]") {
106
+ if (d[k] === "") {
59
107
  d[k] = [];
60
108
  }
61
109
  else {
62
- d[k] = d[k].trim().split(',').map(function (v) { return v.trim(); });
110
+ d[k] = d[k].trim().split(",").map((v) => v.trim());
111
+ }
112
+ }
113
+ else if (convert[k].startsWith(RefPrefix) && convert[k].endsWith(RefSuffix)) {
114
+ if (d[k] === "") {
115
+ console.warn(`[config2ts] warning: ${moduleName} row ${i} field "${k}" ref value is empty`);
116
+ }
117
+ }
118
+ else if (parseRefEnum(convert[k])) {
119
+ const refEnum = parseRefEnum(convert[k]);
120
+ if (refEnum.isArray) {
121
+ if (d[k] === "") {
122
+ d[k] = [];
123
+ }
124
+ else {
125
+ d[k] = d[k].trim().split(",").map((v) => v.trim());
126
+ }
127
+ }
128
+ else {
129
+ if (d[k] === "") {
130
+ console.warn(`[config2ts] warning: ${moduleName} row ${i} field "${k}" ref enum value is empty`);
131
+ }
63
132
  }
64
133
  }
65
134
  else {
@@ -69,54 +138,62 @@ function csv2ts(csvString, moduleName) {
69
138
  return d;
70
139
  }
71
140
  });
72
- // 删除columns属性
73
141
  delete result.columns;
74
142
  if (result.length <= 0) {
75
143
  return "";
76
144
  }
77
- var template = "export namespace ".concat(moduleName, " {\n\n");
78
- // generate enum type
79
- for (var field in convert) {
145
+ let template = `export namespace ${moduleName} {\n\n`;
146
+ for (const field in convert) {
80
147
  if (convert[field] == EnumStr || convert[field] == EnumIndexStr) {
81
- var enumValues = [];
82
- for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {
83
- var row = result_1[_i];
84
- var enumValue = row[field];
148
+ const enumValues = [];
149
+ for (const row of result) {
150
+ const enumValue = row[field];
85
151
  if (!enumValues.includes(enumValue)) {
86
152
  enumValues.push(enumValue);
87
153
  }
88
154
  }
89
- enumValues = enumValues.map(function (value) { return "\"".concat(value, "\""); });
90
- template += " export type ".concat(field, " = ").concat(enumValues.join(' | '), ";\n");
91
- // general enum list for length test
92
- template += " export const ".concat(field, "List: ").concat(field, "[] = [").concat(enumValues.join(', '), "];\n\n");
155
+ const enumValueStrings = enumValues.map((value) => `"${value}"`);
156
+ template += ` export type ${field} = ${enumValueStrings.join(" | ")};\n`;
157
+ template += ` export const ${field}List: ${field}[] = [${enumValueStrings.join(", ")}];\n\n`;
93
158
  }
94
159
  else if (convert[field] == EnumArrayString) {
95
- var enumValues = [];
96
- for (var _a = 0, result_2 = result; _a < result_2.length; _a++) {
97
- var row = result_2[_a];
98
- var enumArrayValue = row[field];
99
- for (var _b = 0, enumArrayValue_1 = enumArrayValue; _b < enumArrayValue_1.length; _b++) {
100
- var enumValue = enumArrayValue_1[_b];
160
+ const enumValues = [];
161
+ for (const row of result) {
162
+ const enumArrayValue = row[field];
163
+ for (const enumValue of enumArrayValue) {
101
164
  if (!enumValues.includes(enumValue)) {
102
165
  enumValues.push(enumValue);
103
166
  }
104
167
  }
105
168
  }
106
- enumValues = enumValues.map(function (value) { return "\"".concat(value, "\""); });
107
- template += " export type ".concat(field, " = ").concat(enumValues.join(' | '), ";\n");
108
- // general enum list for length test
109
- template += " export const ".concat(field, "List: ").concat(field, "[] = [").concat(enumValues.join(', '), "];\n\n");
169
+ const enumValueStrings = enumValues.map((value) => `"${value}"`);
170
+ template += ` export type ${field} = ${enumValueStrings.join(" | ")};\n`;
171
+ template += ` export const ${field}List: ${field}[] = [${enumValueStrings.join(", ")}];\n\n`;
172
+ }
173
+ else if (convert[field] == ObjectStr) {
174
+ const keyTypes = {};
175
+ for (const row of result) {
176
+ const objValue = row[field];
177
+ for (const key in objValue) {
178
+ if (!keyTypes[key]) {
179
+ keyTypes[key] = new Set();
180
+ }
181
+ keyTypes[key].add(getTypeName(objValue[key]));
182
+ }
183
+ }
184
+ template += ` export type ${field} = {\n`;
185
+ for (const key in keyTypes) {
186
+ const types = Array.from(keyTypes[key]).join(" | ");
187
+ template += ` ${serializeField(key)}?: ${types};\n`;
188
+ }
189
+ template += ` };\n\n`;
110
190
  }
111
191
  }
112
- // generate interface
113
192
  template += " export interface Record {\n";
114
- var indexField = null;
115
- for (var field in convert) {
116
- // var fieldType = convert[field] !== '' ? convert[field].toLowerCase() : 'string';
117
- // console.log(`generate interface field: ${field}, convert[field]: ${convert[field]}`);
118
- var fieldType = 'string';
119
- if (convert[field] != '') {
193
+ let indexField = null;
194
+ for (const field in convert) {
195
+ let fieldType = "string";
196
+ if (convert[field] != "") {
120
197
  if (convert[field] == EnumStr) {
121
198
  fieldType = field;
122
199
  }
@@ -128,67 +205,154 @@ function csv2ts(csvString, moduleName) {
128
205
  indexField = field;
129
206
  }
130
207
  else if (convert[field] == EnumArrayString) {
131
- fieldType = field + '[]';
208
+ fieldType = field + "[]";
209
+ }
210
+ else if (convert[field] == ObjectStr) {
211
+ fieldType = field;
212
+ }
213
+ else if (convert[field].startsWith(RefPrefix) && convert[field].endsWith(RefSuffix)) {
214
+ const refModule = convert[field].slice(RefPrefix.length, -RefSuffix.length);
215
+ const refModuleName = changeCase.pascalCase(refModule);
216
+ fieldType = `${refModuleName}.Record`;
217
+ }
218
+ else if (parseRefEnum(convert[field])) {
219
+ const refEnum = parseRefEnum(convert[field]);
220
+ const refModuleName = changeCase.pascalCase(refEnum.refModule);
221
+ fieldType = refEnum.isArray ? `${refModuleName}.${refEnum.refField}[]` : `${refModuleName}.${refEnum.refField}`;
132
222
  }
133
223
  else {
134
224
  fieldType = convert[field].toLowerCase();
135
225
  }
136
226
  }
137
- field = serializeField(field);
138
- template += " ".concat(field, ": ").concat(fieldType, ";\n");
227
+ const serializedField = serializeField(field);
228
+ template += ` ${serializedField}: ${fieldType};\n`;
139
229
  }
140
- template += ' };\n\n';
141
- // remove object when index is empty
230
+ template += " };\n\n";
142
231
  if (indexField) {
143
- result = result.filter(function (v) {
144
- return v[indexField] !== '';
232
+ const filteredResult = result.filter((v) => {
233
+ return v[indexField] !== "";
145
234
  });
235
+ for (let i = 0; i < filteredResult.length; i++) {
236
+ result[i] = filteredResult[i];
237
+ }
238
+ result.length = filteredResult.length;
146
239
  }
147
- // generate table
148
- template += " export const List: Record[] = ";
149
- // console.log(prettyFormat(result, op));
150
- template += json5.stringify(result, null, 4).replace(/\n/g, '\n ');
151
- template += ';\n\n';
240
+ template += " export const List: Record[] = [\n";
241
+ for (let i = 0; i < result.length; i++) {
242
+ const row = result[i];
243
+ template += " {\n";
244
+ for (const field in convert) {
245
+ let value = row[field];
246
+ if (convert[field].startsWith(RefPrefix) && convert[field].endsWith(RefSuffix)) {
247
+ const refModule = convert[field].slice(RefPrefix.length, -RefSuffix.length);
248
+ const refModuleName = changeCase.pascalCase(refModule);
249
+ template += ` ${serializeField(field)}: ${refModuleName}.Map[${JSON.stringify(value)}],\n`;
250
+ }
251
+ else {
252
+ template += ` ${serializeField(field)}: ${json5.stringify(value)},\n`;
253
+ }
254
+ }
255
+ template += " }";
256
+ if (i < result.length - 1) {
257
+ template += ",";
258
+ }
259
+ template += "\n";
260
+ }
261
+ template += " ];\n\n";
152
262
  if (indexField != null) {
153
263
  template += " export const Map: { [id: string]: Record } = {};\n";
154
- template += " for (const v of List) { Map[v.".concat(indexField, "] = v; };\n\n");
264
+ template += ` for (const v of List) { Map[v.${indexField}] = v; };\n\n`;
155
265
  }
156
266
  template += "};";
157
267
  return template;
158
268
  }
159
- /**
160
- * serialize interface field
161
- * @param {string} field
162
- */
163
269
  function serializeField(key) {
164
- var obj = {};
270
+ const obj = {};
165
271
  obj[key] = true;
166
- var objString = json5.stringify(obj);
167
- // console.log('serializeField:', json5.stringify(obj))
272
+ const objString = json5.stringify(obj);
168
273
  return objString.includes("'") ? "'" + key + "'" : key;
169
274
  }
275
+ function parseObject(str) {
276
+ const result = {};
277
+ const trimmed = str.trim();
278
+ if (trimmed === "") {
279
+ return result;
280
+ }
281
+ const pairs = trimmed.split(",");
282
+ for (const pair of pairs) {
283
+ const colonIndex = pair.indexOf(":");
284
+ if (colonIndex > 0) {
285
+ const key = pair.slice(0, colonIndex).trim();
286
+ const value = pair.slice(colonIndex + 1).trim();
287
+ result[key] = parseObjectValue(value);
288
+ }
289
+ }
290
+ return result;
291
+ }
292
+ function parseObjectValue(value) {
293
+ if (value === "true")
294
+ return true;
295
+ if (value === "false")
296
+ return false;
297
+ if (value === "")
298
+ return "";
299
+ const num = Number(value);
300
+ if (!isNaN(num)) {
301
+ return num;
302
+ }
303
+ return value;
304
+ }
305
+ function getTypeName(value) {
306
+ if (typeof value === "number")
307
+ return "number";
308
+ if (typeof value === "boolean")
309
+ return "boolean";
310
+ return "string";
311
+ }
312
+ function parseRefEnum(typeStr) {
313
+ if (typeStr.startsWith(RefEnumPrefix)) {
314
+ let isArray = false;
315
+ let inner = typeStr;
316
+ if (typeStr.endsWith(RefEnumArraySuffix)) {
317
+ isArray = true;
318
+ inner = typeStr.slice(0, -RefEnumArraySuffix.length) + RefSuffix;
319
+ }
320
+ if (inner.endsWith(RefSuffix)) {
321
+ const content = inner.slice(RefEnumPrefix.length, -RefSuffix.length);
322
+ const dotIndex = content.lastIndexOf(".");
323
+ if (dotIndex > 0) {
324
+ const refModule = content.slice(0, dotIndex);
325
+ const refField = content.slice(dotIndex + 1);
326
+ return { refModule, refField, isArray };
327
+ }
328
+ }
329
+ }
330
+ return null;
331
+ }
170
332
  function GetFileExt(filePath) {
171
- var pathObject = path.parse(filePath);
333
+ const pathObject = path.parse(filePath);
172
334
  return pathObject.ext.slice(1);
173
335
  }
174
336
  function GetTsString(filePath) {
175
- var pathObject = path.parse(filePath);
176
- var handle = exports.Convert[GetFileExt(filePath)];
337
+ const pathObject = path.parse(filePath);
338
+ const handle = exports.Convert[GetFileExt(filePath)];
177
339
  if (handle) {
178
- var moduleName = changeCase.pascalCase(pathObject.base);
179
- var fileString = fs.readFileSync(filePath).toString();
180
- if (fileString.charAt(0) === '\uFEFF')
340
+ const moduleName = changeCase.pascalCase(pathObject.base);
341
+ let fileString = fs.readFileSync(filePath).toString();
342
+ if (fileString.charAt(0) === "\uFEFF")
181
343
  fileString = fileString.substr(1);
182
344
  return handle(fileString, moduleName);
183
345
  }
184
346
  else {
185
- return '';
347
+ return "";
186
348
  }
187
349
  }
188
350
  function GetTsStringFromFileList(fileList) {
189
- return fileList.map(function (filePath) {
351
+ return fileList
352
+ .map(function (filePath) {
190
353
  return GetTsString(filePath);
191
- }).join('\n\n');
354
+ })
355
+ .join("\n\n");
192
356
  }
193
357
  function GetValidFileList(fileList) {
194
358
  return fileList.filter(function (filePath) {
@@ -196,21 +360,11 @@ function GetValidFileList(fileList) {
196
360
  });
197
361
  }
198
362
  function startConvert(dir, outDir, merge) {
199
- var fileList = fs.readdirSync(dir);
200
- if (merge) {
201
- fileList = GetValidFileList(fileList).map(function (filename) {
202
- return path.join(dir, filename);
203
- });
204
- var mergeFile = path.join(outDir, merge);
205
- fs.writeFileSync(mergeFile, GetTsStringFromFileList(fileList), { encoding: 'utf-8' });
206
- console.log("config2ts, ".concat(fileList.length, " config files, merge into: ").concat(mergeFile));
207
- }
208
- else {
209
- GetValidFileList(fileList).forEach(function (filename) {
210
- var target = path.join(outDir, "".concat(filename, ".ts"));
211
- fs.writeFileSync(target, GetTsString(path.join(dir, filename)), { encoding: 'utf-8' });
212
- console.log("config2ts, convert: ".concat(filename, " , to: ").concat(target));
213
- });
214
- console.log('config2ts convert done!');
215
- }
363
+ const fileList = fs.readdirSync(dir);
364
+ const fullFileList = GetValidFileList(fileList).map(function (filename) {
365
+ return path.join(dir, filename);
366
+ });
367
+ const mergeFile = path.join(outDir, merge);
368
+ fs.writeFileSync(mergeFile, GetTsStringFromFileList(fullFileList), { encoding: "utf-8" });
369
+ console.log(`config2ts, ${fullFileList.length} config files, merge into: ${mergeFile}`);
216
370
  }
package/lib/main.d.ts CHANGED
@@ -1,9 +1 @@
1
- declare var fs: any;
2
- declare var path: any;
3
- declare var program: any;
4
- declare var config2ts: any;
5
- declare const options: any;
6
- declare var dir: any;
7
- declare var outDir: any;
8
- declare var merge: any;
9
- declare var fileList: any;
1
+ export {};
package/lib/main.js CHANGED
@@ -1,24 +1,58 @@
1
- var fs = require("fs");
2
- var path = require("path");
3
- var program = require("commander");
4
- var config2ts = require("./config2ts");
5
- program.version(require(path.join(__dirname, '..', 'package.json'))['version']);
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs"));
37
+ const path = __importStar(require("path"));
38
+ const commander_1 = require("commander");
39
+ const config2ts_1 = require("./config2ts");
40
+ const pkgPath = path.join(__dirname, "..", "package.json");
41
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
42
+ const program = new commander_1.Command();
6
43
  program
7
- .option('-d, --dir <path>', 'set convert path. default: ./')
8
- .option('-o, --outDir <path>', 'set outDir path. default: ./')
9
- .option('-m, --merge <name>', 'merge all to one ts file.')
44
+ .version(pkg.version)
45
+ .option("-n, --name <name>", "output file name", "csv.ts")
46
+ .option("-d, --dir <path>", "set convert path", ".")
47
+ .option("-o, --outDir <path>", "set outDir path")
10
48
  .parse(process.argv);
11
- var options = program.opts();
49
+ const options = program.opts();
12
50
  console.log(options);
13
- var dir = options['dir'] || '.';
14
- dir = path.resolve(dir);
15
- console.log('dir:', dir);
16
- var outDir = options['outDir'] || dir;
17
- outDir = path.resolve(outDir);
18
- console.log('outDir:', outDir);
51
+ const dir = path.resolve(options.dir);
52
+ console.log("dir:", dir);
53
+ let outDir = options.outDir ? path.resolve(options.outDir) : dir;
54
+ console.log("outDir:", outDir);
19
55
  if (!fs.existsSync(outDir)) {
20
56
  fs.mkdirSync(outDir, { recursive: true });
21
57
  }
22
- var merge = options['merge'];
23
- var fileList = fs.readdirSync(dir);
24
- config2ts.startConvert(dir, outDir, merge);
58
+ (0, config2ts_1.startConvert)(dir, outDir, options.name);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "config2ts",
3
- "version": "2.3.3",
3
+ "version": "2.4.0",
4
4
  "description": "convert config to ts file.",
5
5
  "main": "lib/config2ts.js",
6
6
  "types": "lib/config2ts.d.ts",
@@ -13,7 +13,7 @@
13
13
  ],
14
14
  "scripts": {
15
15
  "build": "tsc",
16
- "convert": "node ./bin/config2ts -d ./config -o ./config",
16
+ "convert": "node ./bin/config2ts -n total.ts -d ./config -o ./config",
17
17
  "test": "jest",
18
18
  "watch-test": "node_modules/.bin/jest --watch"
19
19
  },