dts-gen 0.7.4 → 0.8.1

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,32 +1,55 @@
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  exports.generateIdentifierDeclarationFile = exports.generateModuleDeclarationFile = void 0;
4
- const dom = require("dts-dom");
27
+ const dom = __importStar(require("dts-dom"));
5
28
  const dts_dom_1 = require("dts-dom");
6
- const ts = require("typescript");
29
+ const ts = __importStar(require("typescript"));
7
30
  const names_1 = require("./names");
8
31
  const builtins = {
9
32
  Date,
10
33
  RegExp,
11
- Map: (typeof Map !== 'undefined') ? Map : undefined,
12
- HTMLElement: (typeof HTMLElement !== 'undefined') ? HTMLElement : undefined,
34
+ Map: typeof Map !== "undefined" ? Map : undefined,
35
+ HTMLElement: typeof HTMLElement !== "undefined" ? HTMLElement : undefined,
13
36
  };
14
37
  function forceAsIdentifier(s) {
15
38
  // TODO: Make this more comprehensive
16
- return (0, names_1.getDTName)(s.replace(/-/g, '_'));
39
+ return (0, names_1.getDTName)(s.replace(/-/g, "_"));
17
40
  }
18
41
  function getValueTypes(value) {
19
- if (typeof value === 'object') {
42
+ if (typeof value === "object") {
20
43
  // Objects can't be callable, so no need to check for class / function
21
44
  return 4 /* ValueTypes.Object */;
22
45
  }
23
- else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
46
+ else if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
24
47
  return 8 /* ValueTypes.Primitive */;
25
48
  }
26
49
  else if (value === null || value === undefined) {
27
50
  return 16 /* ValueTypes.NullOrUndefined */;
28
51
  }
29
- else if (typeof value === 'function') {
52
+ else if (typeof value === "function") {
30
53
  if (isClasslike(value)) {
31
54
  return 1 /* ValueTypes.Class */ | (hasCloduleProperties(value) ? 4 /* ValueTypes.Object */ : 0 /* ValueTypes.None */);
32
55
  }
@@ -40,34 +63,34 @@ function getValueTypes(value) {
40
63
  }
41
64
  // A class has clodule properties if it has any classes. Anything else can be written with 'static'
42
65
  function hasCloduleProperties(c) {
43
- return getKeysOfObject(c).some(k => isClasslike(c[k]));
66
+ return getKeysOfObject(c).some((k) => isClasslike(c[k]));
44
67
  }
45
68
  // A function has fundule properties if it has any own properties not belonging to Function.prototype
46
69
  function hasFunduleProperties(fn) {
47
- return getKeysOfObject(fn).some(k => Function[k] === undefined);
70
+ return getKeysOfObject(fn).some((k) => Function[k] === undefined);
48
71
  }
49
72
  function generateModuleDeclarationFile(nameHint, root) {
50
73
  const localName = forceAsIdentifier(nameHint);
51
74
  const decls = getTopLevelDeclarations(localName, root);
52
75
  // If we get back just a namespace, we can avoid writing an export=
53
- if (decls.length === 1 && decls[0].kind === 'namespace') {
76
+ if (decls.length === 1 && decls[0].kind === "namespace") {
54
77
  // Hoist out all the declarations and export them
55
78
  const members = decls[0].members;
56
79
  for (const m of members)
57
80
  m.flags = m.flags | dom.DeclarationFlags.Export;
58
- return members.map(m => dom.emit(m)).join('');
81
+ return members.map((m) => dom.emit(m)).join("");
59
82
  }
60
83
  else {
61
84
  // Going to have to write an export=
62
- const result = decls.map(d => dom.emit(d));
85
+ const result = decls.map((d) => dom.emit(d));
63
86
  result.unshift(dom.emit(dom.create.exportEquals(localName)));
64
- return result.join('');
87
+ return result.join("");
65
88
  }
66
89
  }
67
90
  exports.generateModuleDeclarationFile = generateModuleDeclarationFile;
68
91
  function generateIdentifierDeclarationFile(name, value) {
69
92
  const result = getTopLevelDeclarations(name, value);
70
- return result.map(d => dom.emit(d)).join('\r\n');
93
+ return result.map((d) => dom.emit(d)).join("\r\n");
71
94
  }
72
95
  exports.generateIdentifierDeclarationFile = generateIdentifierDeclarationFile;
73
96
  const walkStack = new Set();
@@ -76,21 +99,22 @@ function getKeysOfObject(obj) {
76
99
  let keys = [];
77
100
  let chain = obj;
78
101
  do {
102
+ // eslint-disable-next-line eqeqeq
79
103
  if (chain == null)
80
104
  break;
81
105
  keys = keys.concat(Object.getOwnPropertyNames(chain));
82
106
  chain = Object.getPrototypeOf(chain);
83
107
  } while (chain !== Object.prototype && chain !== Function.prototype);
84
108
  keys = Array.from(new Set(keys));
85
- keys = keys.filter(s => isVisitableName(s));
86
- if (typeof obj === 'function') {
87
- keys = keys.filter(k => reservedFunctionProperties.indexOf(k) < 0);
109
+ keys = keys.filter((s) => isVisitableName(s));
110
+ if (typeof obj === "function") {
111
+ keys = keys.filter((k) => reservedFunctionProperties.indexOf(k) < 0);
88
112
  }
89
113
  keys.sort();
90
114
  return keys;
91
115
  }
92
116
  function isVisitableName(s) {
93
- return (s[0] !== '_') && (["caller", "arguments", "constructor", "super_", "prototype"].indexOf(s) < 0);
117
+ return s[0] !== "_" && ["caller", "arguments", "constructor", "super_", "prototype"].indexOf(s) < 0;
94
118
  }
95
119
  function isLegalIdentifier(s) {
96
120
  if (s.length === 0) {
@@ -114,8 +138,8 @@ function getTopLevelDeclarations(name, obj) {
114
138
  if (walkStack.has(obj) || keyStack.length > 4) {
115
139
  // Circular or too-deep reference
116
140
  const result = dts_dom_1.create.const(name, dom.type.any);
117
- result.comment = (walkStack.has(obj) ? 'Circular reference' : 'Too-deep object hierarchy') +
118
- ` from ${keyStack.join('.')}`;
141
+ result.comment =
142
+ (walkStack.has(obj) ? "Circular reference" : "Too-deep object hierarchy") + ` from ${keyStack.join(".")}`;
119
143
  return [result];
120
144
  }
121
145
  if (!isLegalIdentifier(name))
@@ -127,13 +151,13 @@ function getTopLevelDeclarations(name, obj) {
127
151
  walkStack.delete(obj);
128
152
  return res;
129
153
  function getResult() {
130
- if (typeof obj === 'function') {
154
+ if (typeof obj === "function") {
131
155
  const funcType = getParameterListAndReturnType(obj, parseFunctionBody(obj));
132
156
  const ns = dom.create.namespace(name);
133
157
  let primaryDecl;
134
158
  if (isClasslike(obj)) {
135
159
  const cls = dom.create.class(name);
136
- getClassPrototypeMembers(obj).forEach(m => cls.members.push(m));
160
+ getClassPrototypeMembers(obj).forEach((m) => cls.members.push(m));
137
161
  cls.members.push(dom.create.constructor(funcType[0]));
138
162
  cls.members.sort(declarationComparer);
139
163
  primaryDecl = cls;
@@ -146,14 +170,14 @@ function getTopLevelDeclarations(name, obj) {
146
170
  // Get clodule/fundule members
147
171
  const keys = getKeysOfObject(obj);
148
172
  for (const k of keys) {
149
- getTopLevelDeclarations(k, obj[k]).forEach(p => {
173
+ getTopLevelDeclarations(k, obj[k]).forEach((p) => {
150
174
  if (primaryDecl.kind === "class") {
151
175
  // Transform certain declarations into static members
152
176
  switch (p.kind) {
153
- case 'const':
177
+ case "const":
154
178
  primaryDecl.members.push(dts_dom_1.create.property(p.name, p.type, dom.DeclarationFlags.Static));
155
179
  break;
156
- case 'function':
180
+ case "function":
157
181
  primaryDecl.members.push(dts_dom_1.create.method(p.name, p.parameters, p.returnType, dom.DeclarationFlags.Static));
158
182
  break;
159
183
  default:
@@ -169,13 +193,13 @@ function getTopLevelDeclarations(name, obj) {
169
193
  }
170
194
  return ns.members.length > 0 ? [primaryDecl, ns] : [primaryDecl];
171
195
  }
172
- else if (typeof obj === 'object') {
196
+ else if (typeof obj === "object") {
173
197
  // If we can immediately resolve this to a simple declaration, just do so
174
198
  const simpleType = getTypeOfValue(obj);
175
- if (typeof simpleType === 'string' || simpleType.kind === 'name' || simpleType.kind === 'array') {
199
+ if (typeof simpleType === "string" || simpleType.kind === "name" || simpleType.kind === "array") {
176
200
  const result = dom.create.const(name, simpleType);
177
- if (simpleType === 'string') {
178
- const preview = `"${simpleType.substr(0, 100)}${simpleType.length > 100 ? '...' : ''}"`;
201
+ if (simpleType === "string") {
202
+ const preview = `"${simpleType.substr(0, 100)}${simpleType.length > 100 ? "..." : ""}"`;
179
203
  result.comment = "Value of string: " + preview;
180
204
  }
181
205
  return [result];
@@ -191,7 +215,7 @@ function getTopLevelDeclarations(name, obj) {
191
215
  const ns = dom.create.namespace(name);
192
216
  for (const k of keys) {
193
217
  const decls = getTopLevelDeclarations(k, obj[k]);
194
- decls.forEach(d => ns.members.push(d));
218
+ decls.forEach((d) => ns.members.push(d));
195
219
  }
196
220
  ns.members.sort(declarationComparer);
197
221
  return [ns];
@@ -200,8 +224,8 @@ function getTopLevelDeclarations(name, obj) {
200
224
  return [dom.create.const(name, simpleType)];
201
225
  }
202
226
  }
203
- else if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') {
204
- return [dts_dom_1.create.const(name, (typeof obj))];
227
+ else if (typeof obj === "string" || typeof obj === "number" || typeof obj === "boolean") {
228
+ return [dts_dom_1.create.const(name, typeof obj)];
205
229
  }
206
230
  else {
207
231
  return [dts_dom_1.create.const(name, dom.type.any)];
@@ -224,13 +248,13 @@ function getTypeOfValue(value) {
224
248
  }
225
249
  const type = typeof value;
226
250
  switch (type) {
227
- case 'string':
228
- case 'number':
229
- case 'boolean':
251
+ case "string":
252
+ case "number":
253
+ case "boolean":
230
254
  return type;
231
- case 'undefined':
255
+ case "undefined":
232
256
  return dom.type.any;
233
- case 'object':
257
+ case "object":
234
258
  if (value === null) {
235
259
  return dom.type.any;
236
260
  }
@@ -262,25 +286,25 @@ function getPropertyDeclarationsOfObject(obj) {
262
286
  function getClassPrototypeMembers(ctor) {
263
287
  const names = Object.getOwnPropertyNames(ctor.prototype);
264
288
  const members = names
265
- .filter(n => !isNameToSkip(n))
266
- .map(name => getPrototypeMember(name, Object.getOwnPropertyDescriptor(ctor.prototype, name).value))
267
- .filter(m => m !== undefined);
289
+ .filter((n) => !isNameToSkip(n))
290
+ .map((name) => getPrototypeMember(name, Object.getOwnPropertyDescriptor(ctor.prototype, name).value))
291
+ .filter((m) => m !== undefined);
268
292
  members.sort();
269
293
  return members;
270
294
  function getPrototypeMember(name, obj) {
271
295
  // Skip non-function objects on the prototype (not sure what to do with these?)
272
- if (typeof obj !== 'function') {
296
+ if (typeof obj !== "function") {
273
297
  return undefined;
274
298
  }
275
299
  const funcType = getParameterListAndReturnType(obj, parseFunctionBody(obj));
276
300
  const result = dts_dom_1.create.method(name, funcType[0], funcType[1]);
277
301
  if (isNativeFunction(obj)) {
278
- result.comment = 'Native method; no parameter or return type inference available';
302
+ result.comment = "Native method; no parameter or return type inference available";
279
303
  }
280
304
  return result;
281
305
  }
282
306
  function isNameToSkip(s) {
283
- return (s === 'constructor') || (s[0] === '_');
307
+ return s === "constructor" || s[0] === "_";
284
308
  }
285
309
  }
286
310
  function declarationComparer(left, right) {
@@ -304,11 +328,11 @@ function getParameterListAndReturnType(obj, fn) {
304
328
  }
305
329
  else {
306
330
  ts.forEachChild(fn, visit);
307
- let params = [dts_dom_1.create.parameter('args', dom.type.array(dom.type.any), dom.ParameterFlags.Rest)];
331
+ let params = [dts_dom_1.create.parameter("args", dom.type.array(dom.type.any), dom.ParameterFlags.Rest)];
308
332
  if (fn.parameters) {
309
- params = fn.parameters.map(p => dts_dom_1.create.parameter(`${p.name.getText()}`, inferParameterType(fn, p)));
333
+ params = fn.parameters.map((p) => dts_dom_1.create.parameter(`${p.name.getText()}`, inferParameterType(fn, p)));
310
334
  if (usedArguments) {
311
- params.push(dts_dom_1.create.parameter('args', dom.type.array(dom.type.any), dom.ParameterFlags.Rest));
335
+ params.push(dts_dom_1.create.parameter("args", dom.type.array(dom.type.any), dom.ParameterFlags.Rest));
312
336
  }
313
337
  }
314
338
  return [params, hasReturn ? dom.type.any : dom.type.void];
@@ -316,7 +340,7 @@ function getParameterListAndReturnType(obj, fn) {
316
340
  function visit(node) {
317
341
  switch (node.kind) {
318
342
  case ts.SyntaxKind.Identifier:
319
- if (node.getText() === 'arguments') {
343
+ if (node.getText() === "arguments") {
320
344
  usedArguments = true;
321
345
  }
322
346
  break;
@@ -332,6 +356,7 @@ function getParameterListAndReturnType(obj, fn) {
332
356
  funcStack.push(true);
333
357
  ts.forEachChild(node, visit);
334
358
  funcStack.pop();
359
+ break;
335
360
  default:
336
361
  ts.forEachChild(node, visit);
337
362
  break;
@@ -345,12 +370,13 @@ function inferParameterType(_fn, _param) {
345
370
  const stringifyFunction = Function.prototype.call.bind(Function.prototype.toString);
346
371
  function parseFunctionBody(fn) {
347
372
  const setup = `const myFn = ${stringifyFunction(fn)};`;
348
- const srcFile = ts.createSourceFile('test.ts', setup, ts.ScriptTarget.Latest, true);
373
+ const srcFile = ts.createSourceFile("test.ts", setup, ts.ScriptTarget.Latest, true);
349
374
  const statement = srcFile.statements[0];
350
375
  const decl = statement.declarationList.declarations[0];
351
376
  const init = decl.initializer;
352
377
  return init;
353
378
  }
354
379
  function isNativeFunction(fn) {
355
- return stringifyFunction(fn).indexOf('{ [native code] }') > 0;
380
+ return stringifyFunction(fn).indexOf("{ [native code] }") > 0;
356
381
  }
382
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function getDTName(s: string): string;
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDTName = void 0;
4
4
  function getDTName(s) {
5
- if (s.indexOf('@') === 0 && s.indexOf('/') !== -1) {
5
+ if (s.indexOf("@") === 0 && s.indexOf("/") !== -1) {
6
6
  // we have a scoped module, e.g. @bla/foo
7
7
  // which should be converted to bla__foo
8
- s = s.substr(1).replace('/', '__');
8
+ s = s.substr(1).replace("/", "__");
9
9
  }
10
10
  return s;
11
11
  }
12
12
  exports.getDTName = getDTName;
13
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,CAAS;IACjC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QACjD,yCAAyC;QACzC,0CAA0C;QAC1C,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACpC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,8BAOC"}
package/dist/run.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/run.js ADDED
@@ -0,0 +1,198 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ const fs = __importStar(require("fs"));
31
+ const path = __importStar(require("path"));
32
+ const yargs = __importStar(require("yargs"));
33
+ const guess = __importStar(require("./"));
34
+ const definitely_typed_1 = __importDefault(require("./definitely-typed"));
35
+ const templatesDirectory = path.join(__dirname, "..", "templates");
36
+ const args = yargs
37
+ .alias("m", "module")
38
+ .alias("i", "identifier")
39
+ .alias("e", "expression")
40
+ .alias("n", "name")
41
+ .alias("f", "file")
42
+ .alias("d", "dt")
43
+ .alias("s", "stdout")
44
+ .alias("o", "overwrite")
45
+ .alias("t", "template")
46
+ .alias("v", "version").argv;
47
+ class ArgsError extends Error {
48
+ constructor(argsError) {
49
+ super();
50
+ this.argsError = argsError;
51
+ this.name = "ArgsError";
52
+ this.message = argsError;
53
+ Object.setPrototypeOf(this, ArgsError.prototype);
54
+ }
55
+ }
56
+ let result;
57
+ try {
58
+ if (args.version) {
59
+ console.log(require("../package.json").version);
60
+ process.exit(0);
61
+ }
62
+ if (+!!args.dt + +!!args.file + +!!args.stdout > 1) {
63
+ throw new ArgsError("Cannot specify more than one output mode");
64
+ }
65
+ if (+!!args.identifier + +!!args.expression + +!!args.module + +!!args["expression-file"] + +!!args.template !== 1) {
66
+ throw new ArgsError("Must specify exactly one input");
67
+ }
68
+ if (typeof args.name === "boolean")
69
+ throw new ArgsError('Must specify a value for "--name"');
70
+ if (typeof args.identifier === "boolean")
71
+ throw new ArgsError('Must specify a value for "--identifier"');
72
+ if (typeof args.module === "boolean")
73
+ throw new ArgsError('Must specify a value for "--module"');
74
+ if (args.overwrite !== undefined && args.overwrite !== true)
75
+ throw new ArgsError("--overwrite does not accept an argument");
76
+ let name;
77
+ if (args.module) {
78
+ if (args.name)
79
+ throw new ArgsError("Cannot use --name with --module");
80
+ name = args.module;
81
+ module.paths.unshift(process.cwd() + "/node_modules");
82
+ result = guess.generateModuleDeclarationFile(args.module, require(args.module));
83
+ }
84
+ else if (args.expression) {
85
+ name = args.name || "dts_gen_expr";
86
+ // eslint-disable-next-line no-eval
87
+ result = guess.generateIdentifierDeclarationFile(name, eval(args.expression));
88
+ }
89
+ else if (args["expression-file"]) {
90
+ if (args.name)
91
+ throw new ArgsError("Cannot use --name with --expression-file");
92
+ const filename = args["expression-file"];
93
+ name = path.basename(filename, path.extname(filename)).replace(/[^A-Za-z0-9]/g, "_");
94
+ module.paths.unshift(process.cwd() + "/node_modules");
95
+ const fileContent = fs.readFileSync(filename, "utf-8");
96
+ // eslint-disable-next-line no-eval
97
+ result = guess.generateIdentifierDeclarationFile(name, eval(fileContent));
98
+ }
99
+ else if (args.identifier) {
100
+ if (args.name)
101
+ throw new ArgsError("Cannot use --name with --identifier");
102
+ if (args.module || args.expression)
103
+ throw new ArgsError("Cannot specify more than one input");
104
+ name = args.identifier;
105
+ // eslint-disable-next-line no-eval
106
+ result = guess.generateIdentifierDeclarationFile(args.identifier, eval(args.identifier));
107
+ }
108
+ else if (args.template) {
109
+ if (!args.name)
110
+ throw new ArgsError("Needs a name");
111
+ name = args.name;
112
+ if (args.module || args.expression)
113
+ throw new ArgsError("Cannot mix --template with --module or --expression");
114
+ result = getTemplate(args.template);
115
+ }
116
+ else {
117
+ throw new Error("Internal error, please log a bug with the commandline you specified");
118
+ }
119
+ if (args.dt) {
120
+ (0, definitely_typed_1.default)(result, name, !!args.overwrite);
121
+ }
122
+ else if (args.stdout) {
123
+ console.log(result);
124
+ }
125
+ else {
126
+ let filename = typeof args.file === "boolean" || args.file === undefined ? name + ".d.ts" : args.file;
127
+ if (!filename.endsWith(".d.ts")) {
128
+ filename = filename + ".d.ts";
129
+ }
130
+ if (!args.overwrite && fs.existsSync(filename)) {
131
+ console.error(`File ${filename} already exists and --overwrite was not specified; exiting.`);
132
+ process.exit(2);
133
+ }
134
+ fs.writeFileSync(filename, prependOurHeader(result), "utf-8");
135
+ console.log(`Wrote ${result.split(/\r\n|\r|\n/).length} lines to ${filename}.`);
136
+ }
137
+ }
138
+ catch (e) {
139
+ if (e instanceof ArgsError) {
140
+ console.error("Invalid arguments: " + e.argsError);
141
+ console.log("");
142
+ printHelp();
143
+ process.exit(1);
144
+ }
145
+ else if (e.code === "MODULE_NOT_FOUND") {
146
+ console.error(`Error loading module "${args.module}".\n` +
147
+ getErrorMessageFirstLine(e).replace(/'/g, '"') +
148
+ ".\n" +
149
+ `Please install missing module and try again.`);
150
+ process.exit(1);
151
+ }
152
+ else {
153
+ console.log("Unexpected crash! Please log a bug with the commandline you specified.");
154
+ throw e;
155
+ }
156
+ }
157
+ function printHelp() {
158
+ console.log("Usage: dts-gen input [settings] [output]");
159
+ console.log("");
160
+ console.log("Input Options:");
161
+ console.log(' -m[odule] fs The "fs" node module (must be installed)');
162
+ console.log(' -i[dentifier] Math The global variable "Math"');
163
+ console.log(' -e[xpression] "new C()" The expression "new C()"');
164
+ console.log(" -t[emplate] module Name of a template. Templates are:");
165
+ console.log(` ${allTemplateNames()}`);
166
+ console.log("");
167
+ console.log("Settings:");
168
+ console.log(" -n[ame] n The name to emit when generating for an expression");
169
+ console.log("");
170
+ console.log("Output Options:");
171
+ console.log(" -f[ile] [filename.d.ts] Write to a file (default)");
172
+ console.log(" -d[t] [dirName] Create a folder suitable for DefinitelyTyped");
173
+ console.log(" -s[tdout] Write to stdout");
174
+ console.log(" -o[verwrite] Allow overwriting files");
175
+ console.log("");
176
+ console.log("Example: dts-gen -m fs --stdout");
177
+ }
178
+ function prependOurHeader(result) {
179
+ return `/** Declaration file generated by dts-gen */\r\n\r\n` + result;
180
+ }
181
+ function getTemplate(templateName) {
182
+ try {
183
+ return fs.readFileSync(path.join(templatesDirectory, templateName + ".d.ts"), "utf-8");
184
+ }
185
+ catch (e) {
186
+ throw new ArgsError(`Could not read template '${templateName}'. Expected one of:\n${allTemplateNames()}`);
187
+ }
188
+ }
189
+ function allTemplateNames() {
190
+ return fs
191
+ .readdirSync(templatesDirectory)
192
+ .map((t) => t.slice(0, t.length - ".d.ts".length))
193
+ .join(", ");
194
+ }
195
+ function getErrorMessageFirstLine(error) {
196
+ return error.message.split("\n", 1)[0];
197
+ }
198
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}