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.
- package/CHANGELOG.md +13 -0
- package/LICENSE +17 -17
- package/README.md +148 -172
- package/dist/definitely-typed.d.ts +1 -0
- package/dist/definitely-typed.js +129 -0
- package/dist/definitely-typed.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/{bin/lib → dist}/index.js +76 -50
- package/dist/index.js.map +1 -0
- package/dist/names.d.ts +1 -0
- package/{bin/lib → dist}/names.js +3 -2
- package/dist/names.js.map +1 -0
- package/dist/run.d.ts +2 -0
- package/dist/run.js +198 -0
- package/dist/run.js.map +1 -0
- package/package.json +27 -35
- package/templates/global-modifying-module.d.ts +8 -8
- package/templates/global-plugin.d.ts +7 -7
- package/templates/global.d.ts +35 -35
- package/templates/module-class.d.ts +7 -7
- package/templates/module-function.d.ts +15 -15
- package/templates/module-plugin.d.ts +17 -17
- package/templates/module.d.ts +11 -11
- package/SECURITY.md +0 -41
- package/bin/lib/definitely-typed.js +0 -145
- package/bin/lib/run.js +0 -166
- package/tsconfig.json +0 -21
- package/tslint.json +0 -24
- package/webpack.config.js +0 -19
|
@@ -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:
|
|
12
|
-
HTMLElement:
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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 ===
|
|
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(
|
|
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 ===
|
|
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
|
|
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 =
|
|
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 ===
|
|
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
|
|
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
|
|
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 ===
|
|
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 ===
|
|
199
|
+
if (typeof simpleType === "string" || simpleType.kind === "name" || simpleType.kind === "array") {
|
|
176
200
|
const result = dom.create.const(name, simpleType);
|
|
177
|
-
if (simpleType ===
|
|
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 ===
|
|
204
|
-
return [dts_dom_1.create.const(name,
|
|
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
|
|
228
|
-
case
|
|
229
|
-
case
|
|
251
|
+
case "string":
|
|
252
|
+
case "number":
|
|
253
|
+
case "boolean":
|
|
230
254
|
return type;
|
|
231
|
-
case
|
|
255
|
+
case "undefined":
|
|
232
256
|
return dom.type.any;
|
|
233
|
-
case
|
|
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 !==
|
|
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 =
|
|
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
|
|
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(
|
|
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(
|
|
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() ===
|
|
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(
|
|
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(
|
|
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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"}
|
package/dist/names.d.ts
ADDED
|
@@ -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(
|
|
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
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
|
package/dist/run.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|