ast-types 0.12.0 → 0.12.4
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/README.md +15 -7
- package/def/core.js +1 -1
- package/def/flow.js +3 -2
- package/def/typescript.js +25 -14
- package/gen/builders.d.ts +46 -64
- package/gen/kinds.d.ts +9 -29
- package/gen/namedTypes.d.ts +3 -23
- package/gen/nodes.d.ts +27 -96
- package/gen/visitor.d.ts +3 -23
- package/lib/path.js +1 -1
- package/lib/scope.js +4 -1
- package/main.js +0 -4
- package/package.json +20 -21
- package/def/e4x.d.ts +0 -2
- package/def/e4x.js +0 -75
- package/def/mozilla.d.ts +0 -2
- package/def/mozilla.js +0 -46
- package/lib/type-annotations.d.ts +0 -11
- package/lib/type-annotations.js +0 -90
- package/lib/utils.d.ts +0 -2
- package/lib/utils.js +0 -18
package/lib/type-annotations.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var types_1 = __importDefault(require("./types"));
|
|
7
|
-
var utils_1 = require("./utils");
|
|
8
|
-
var Op = Object.prototype;
|
|
9
|
-
var hasOwn = Op.hasOwnProperty;
|
|
10
|
-
function typeAnnotationsPlugin(fork) {
|
|
11
|
-
var _a = fork.use(types_1.default), builders = _a.builders, namedTypes = _a.namedTypes;
|
|
12
|
-
function createTSTypeAnnotator(config) {
|
|
13
|
-
function getTSTypeAnnotation(type) {
|
|
14
|
-
switch (type.kind) {
|
|
15
|
-
case "ArrayType": {
|
|
16
|
-
var elemTypeAnnotation = getTSTypeAnnotation(type.elemType);
|
|
17
|
-
// TODO Improve this test.
|
|
18
|
-
if (namedTypes.TSUnionType.check(elemTypeAnnotation)) {
|
|
19
|
-
elemTypeAnnotation = builders.tsParenthesizedType(elemTypeAnnotation);
|
|
20
|
-
}
|
|
21
|
-
return builders.tsArrayType(elemTypeAnnotation);
|
|
22
|
-
}
|
|
23
|
-
case "IdentityType": {
|
|
24
|
-
if (type.value === null) {
|
|
25
|
-
return builders.tsNullKeyword();
|
|
26
|
-
}
|
|
27
|
-
switch (typeof type.value) {
|
|
28
|
-
case "undefined":
|
|
29
|
-
return builders.tsUndefinedKeyword();
|
|
30
|
-
case "string":
|
|
31
|
-
return builders.tsLiteralType(builders.stringLiteral(type.value));
|
|
32
|
-
case "boolean":
|
|
33
|
-
return builders.tsLiteralType(builders.booleanLiteral(type.value));
|
|
34
|
-
case "number":
|
|
35
|
-
return builders.tsNumberKeyword();
|
|
36
|
-
case "object":
|
|
37
|
-
return builders.tsObjectKeyword();
|
|
38
|
-
case "function":
|
|
39
|
-
return builders.tsFunctionType();
|
|
40
|
-
case "symbol":
|
|
41
|
-
return builders.tsSymbolKeyword();
|
|
42
|
-
default:
|
|
43
|
-
return builders.tsAnyKeyword();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
case "ObjectType": {
|
|
47
|
-
return builders.tsTypeLiteral.from({
|
|
48
|
-
members: type.fields.map(function (field) { return getTSPropertySignature(field); }),
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
case "OrType": {
|
|
52
|
-
return builders.tsUnionType(type.types.map(function (type) { return getTSTypeAnnotation(type); }));
|
|
53
|
-
}
|
|
54
|
-
case "PredicateType": {
|
|
55
|
-
if (typeof type.name !== "string") {
|
|
56
|
-
return builders.tsAnyKeyword();
|
|
57
|
-
}
|
|
58
|
-
if (hasOwn.call(namedTypes, type.name)) {
|
|
59
|
-
return config.getReferenceToKind(type.name);
|
|
60
|
-
}
|
|
61
|
-
if (/^[$A-Z_][a-z0-9_$]*$/i.test(type.name)) {
|
|
62
|
-
return builders.tsTypeReference(builders.identifier(type.name));
|
|
63
|
-
}
|
|
64
|
-
if (/^number [<>=]+ \d+$/.test(type.name)) {
|
|
65
|
-
return builders.tsNumberKeyword();
|
|
66
|
-
}
|
|
67
|
-
// Not much else to do...
|
|
68
|
-
return builders.tsAnyKeyword();
|
|
69
|
-
}
|
|
70
|
-
default:
|
|
71
|
-
return utils_1.assertNever(type);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function getTSPropertySignature(field) {
|
|
75
|
-
return builders.tsPropertySignature.from({
|
|
76
|
-
key: builders.identifier(field.name),
|
|
77
|
-
typeAnnotation: builders.tsTypeAnnotation(getTSTypeAnnotation(field.type)),
|
|
78
|
-
optional: field.defaultFn != null || field.hidden,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
getTSTypeAnnotation: getTSTypeAnnotation,
|
|
83
|
-
getTSPropertySignature: getTSPropertySignature,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
return {
|
|
87
|
-
createTSTypeAnnotator: createTSTypeAnnotator,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
exports.default = typeAnnotationsPlugin;
|
package/lib/utils.d.ts
DELETED
package/lib/utils.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function assertNever(x) {
|
|
4
|
-
throw new Error("Unexpected: " + x);
|
|
5
|
-
}
|
|
6
|
-
exports.assertNever = assertNever;
|
|
7
|
-
function shallowStringify(value) {
|
|
8
|
-
if (Array.isArray(value)) {
|
|
9
|
-
return "[" + value.map(shallowStringify).join(", ") + "]";
|
|
10
|
-
}
|
|
11
|
-
if (value && typeof value === "object") {
|
|
12
|
-
return "{ " + Object.keys(value).map(function (key) {
|
|
13
|
-
return key + ": " + value[key];
|
|
14
|
-
}).join(", ") + " }";
|
|
15
|
-
}
|
|
16
|
-
return JSON.stringify(value);
|
|
17
|
-
}
|
|
18
|
-
exports.shallowStringify = shallowStringify;
|