ast-types 0.12.4 → 0.13.3
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/.travis.yml +1 -0
- package/README.md +219 -201
- package/def/core.js +4 -7
- package/def/es2020.d.ts +2 -0
- package/def/es2020.js +18 -0
- package/def/esNext.d.ts +2 -0
- package/def/esNext.js +57 -0
- package/def/flow.js +4 -0
- package/def/typescript.js +4 -4
- package/fork.d.ts +3 -7
- package/fork.js +1 -2
- package/gen/builders.d.ts +508 -496
- package/gen/kinds.d.ts +263 -262
- package/gen/namedTypes.d.ts +1797 -262
- package/gen/namedTypes.js +3 -0
- package/gen/nodes.d.ts +15 -15
- package/gen/visitor.d.ts +263 -262
- package/lib/node-path.js +8 -6
- package/lib/path-visitor.d.ts +1 -1
- package/lib/scope.js +3 -1
- package/lib/types.d.ts +2 -6
- package/main.d.ts +25 -13
- package/main.js +27 -6
- package/package.json +10 -10
package/lib/node-path.js
CHANGED
|
@@ -163,20 +163,22 @@ function nodePathPlugin(fork) {
|
|
|
163
163
|
return this.name === "object"
|
|
164
164
|
&& parent.object === node;
|
|
165
165
|
case "BinaryExpression":
|
|
166
|
-
case "LogicalExpression":
|
|
166
|
+
case "LogicalExpression": {
|
|
167
|
+
var n_1 = node;
|
|
167
168
|
var po = parent.operator;
|
|
168
|
-
var
|
|
169
|
-
var no =
|
|
169
|
+
var pp_1 = PRECEDENCE[po];
|
|
170
|
+
var no = n_1.operator;
|
|
170
171
|
var np = PRECEDENCE[no];
|
|
171
|
-
if (
|
|
172
|
+
if (pp_1 > np) {
|
|
172
173
|
return true;
|
|
173
174
|
}
|
|
174
|
-
if (
|
|
175
|
-
if (parent.right !==
|
|
175
|
+
if (pp_1 === np && this.name === "right") {
|
|
176
|
+
if (parent.right !== n_1) {
|
|
176
177
|
throw new Error("Nodes must be equal");
|
|
177
178
|
}
|
|
178
179
|
return true;
|
|
179
180
|
}
|
|
181
|
+
}
|
|
180
182
|
default:
|
|
181
183
|
return false;
|
|
182
184
|
}
|
package/lib/path-visitor.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface PathVisitor {
|
|
|
22
22
|
}
|
|
23
23
|
export interface PathVisitorStatics {
|
|
24
24
|
fromMethodsObject(methods?: any): Visitor;
|
|
25
|
-
visit(node: ASTNode, methods?:
|
|
25
|
+
visit<M = {}>(node: ASTNode, methods?: import("../gen/visitor").Visitor<M>): any;
|
|
26
26
|
}
|
|
27
27
|
export interface PathVisitorConstructor extends PathVisitorStatics {
|
|
28
28
|
new (): PathVisitor;
|
package/lib/scope.js
CHANGED
|
@@ -204,7 +204,9 @@ function scopePlugin(fork) {
|
|
|
204
204
|
addPattern(path.get("id"), bindings);
|
|
205
205
|
}
|
|
206
206
|
else if (ScopeType.check(node)) {
|
|
207
|
-
if (namedTypes.CatchClause.check(node)
|
|
207
|
+
if (namedTypes.CatchClause.check(node) &&
|
|
208
|
+
// TODO Broaden this to accept any pattern.
|
|
209
|
+
namedTypes.Identifier.check(node.param)) {
|
|
208
210
|
var catchParamName = node.param.name;
|
|
209
211
|
var hadBinding = hasOwn.call(bindings, catchParamName);
|
|
210
212
|
// Any declarations that occur inside the catch body that do
|
package/lib/types.d.ts
CHANGED
|
@@ -123,15 +123,11 @@ export default function typesPlugin(_fork: Fork): {
|
|
|
123
123
|
computeSupertypeLookupTable: (candidates: any) => {
|
|
124
124
|
[typeName: string]: any;
|
|
125
125
|
};
|
|
126
|
-
builders:
|
|
127
|
-
[name: string]: Builder;
|
|
128
|
-
};
|
|
126
|
+
builders: import("../gen/builders").builders;
|
|
129
127
|
defineMethod: (name: any, func?: Function | undefined) => Function;
|
|
130
128
|
getBuilderName: (typeName: any) => any;
|
|
131
129
|
getStatementBuilderName: (typeName: any) => any;
|
|
132
|
-
namedTypes:
|
|
133
|
-
[name: string]: AnyType;
|
|
134
|
-
};
|
|
130
|
+
namedTypes: import("../gen/namedTypes").NamedTypes;
|
|
135
131
|
getFieldNames: (object: any) => string[];
|
|
136
132
|
getFieldValue: (object: any, fieldName: any) => any;
|
|
137
133
|
eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void;
|
package/main.d.ts
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
import fork from "./fork";
|
|
2
|
-
import { Omit } from "./types";
|
|
3
1
|
import { ASTNode, Type, AnyType, Field } from "./lib/types";
|
|
4
2
|
import { NodePath } from "./lib/node-path";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { namedTypes } from "./gen/namedTypes";
|
|
4
|
+
import { builders } from "./gen/builders";
|
|
7
5
|
import { Visitor } from "./gen/visitor";
|
|
8
|
-
declare
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
declare const astNodesAreEquivalent: {
|
|
7
|
+
(a: any, b: any, problemPath?: any): boolean;
|
|
8
|
+
assert(a: any, b: any): void;
|
|
9
|
+
}, builders: builders, builtInTypes: {
|
|
10
|
+
string: Type<string>;
|
|
11
|
+
function: Type<Function>;
|
|
12
|
+
array: Type<any[]>;
|
|
13
|
+
object: Type<{
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}>;
|
|
16
|
+
RegExp: Type<RegExp>;
|
|
17
|
+
Date: Type<Date>;
|
|
18
|
+
number: Type<number>;
|
|
19
|
+
boolean: Type<boolean>;
|
|
20
|
+
null: Type<null>;
|
|
21
|
+
undefined: Type<undefined>;
|
|
22
|
+
}, defineMethod: (name: any, func?: Function | undefined) => Function, eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void, finalize: () => void, getBuilderName: (typeName: any) => any, getFieldNames: (object: any) => string[], getFieldValue: (object: any, fieldName: any) => any, getSupertypeNames: (typeName: string) => string[], NodePath: import("./lib/node-path").NodePathConstructor, Path: import("./lib/path").PathConstructor, PathVisitor: import("./lib/path-visitor").PathVisitorConstructor, someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean, Type: {
|
|
23
|
+
or(...types: any[]): Type<any>;
|
|
24
|
+
from<T>(value: any, name?: string | undefined): Type<T>;
|
|
25
|
+
def(typeName: string): import("./lib/types").Def<any>;
|
|
26
|
+
hasDef(typeName: string): boolean;
|
|
27
|
+
}, use: <T>(plugin: import("./types").Plugin<T>) => T, visit: <M = {}>(node: ASTNode, methods?: Visitor<M> | undefined) => any;
|
|
28
|
+
export { AnyType, ASTNode, astNodesAreEquivalent, builders, builtInTypes, defineMethod, eachField, Field, finalize, getBuilderName, getFieldNames, getFieldValue, getSupertypeNames, namedTypes, NodePath, Path, PathVisitor, someField, Type, use, visit, Visitor, };
|
package/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict"
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -7,13 +7,16 @@ var fork_1 = __importDefault(require("./fork"));
|
|
|
7
7
|
var core_1 = __importDefault(require("./def/core"));
|
|
8
8
|
var es6_1 = __importDefault(require("./def/es6"));
|
|
9
9
|
var es7_1 = __importDefault(require("./def/es7"));
|
|
10
|
+
var es2020_1 = __importDefault(require("./def/es2020"));
|
|
10
11
|
var jsx_1 = __importDefault(require("./def/jsx"));
|
|
11
12
|
var flow_1 = __importDefault(require("./def/flow"));
|
|
12
13
|
var esprima_1 = __importDefault(require("./def/esprima"));
|
|
13
14
|
var babel_1 = __importDefault(require("./def/babel"));
|
|
14
15
|
var typescript_1 = __importDefault(require("./def/typescript"));
|
|
15
16
|
var es_proposals_1 = __importDefault(require("./def/es-proposals"));
|
|
16
|
-
var
|
|
17
|
+
var namedTypes_1 = require("./gen/namedTypes");
|
|
18
|
+
exports.namedTypes = namedTypes_1.namedTypes;
|
|
19
|
+
var _a = fork_1.default([
|
|
17
20
|
// This core module of AST types captures ES5 as it is parsed today by
|
|
18
21
|
// git://github.com/ariya/esprima.git#master.
|
|
19
22
|
core_1.default,
|
|
@@ -21,13 +24,31 @@ var defs = [
|
|
|
21
24
|
// configure the precise type hierarchy that you need.
|
|
22
25
|
es6_1.default,
|
|
23
26
|
es7_1.default,
|
|
27
|
+
es2020_1.default,
|
|
24
28
|
jsx_1.default,
|
|
25
29
|
flow_1.default,
|
|
26
30
|
esprima_1.default,
|
|
27
31
|
babel_1.default,
|
|
28
32
|
typescript_1.default,
|
|
29
33
|
es_proposals_1.default,
|
|
30
|
-
];
|
|
31
|
-
|
|
32
|
-
exports.
|
|
33
|
-
|
|
34
|
+
]), astNodesAreEquivalent = _a.astNodesAreEquivalent, builders = _a.builders, builtInTypes = _a.builtInTypes, defineMethod = _a.defineMethod, eachField = _a.eachField, finalize = _a.finalize, getBuilderName = _a.getBuilderName, getFieldNames = _a.getFieldNames, getFieldValue = _a.getFieldValue, getSupertypeNames = _a.getSupertypeNames, n = _a.namedTypes, NodePath = _a.NodePath, Path = _a.Path, PathVisitor = _a.PathVisitor, someField = _a.someField, Type = _a.Type, use = _a.use, visit = _a.visit;
|
|
35
|
+
exports.astNodesAreEquivalent = astNodesAreEquivalent;
|
|
36
|
+
exports.builders = builders;
|
|
37
|
+
exports.builtInTypes = builtInTypes;
|
|
38
|
+
exports.defineMethod = defineMethod;
|
|
39
|
+
exports.eachField = eachField;
|
|
40
|
+
exports.finalize = finalize;
|
|
41
|
+
exports.getBuilderName = getBuilderName;
|
|
42
|
+
exports.getFieldNames = getFieldNames;
|
|
43
|
+
exports.getFieldValue = getFieldValue;
|
|
44
|
+
exports.getSupertypeNames = getSupertypeNames;
|
|
45
|
+
exports.NodePath = NodePath;
|
|
46
|
+
exports.Path = Path;
|
|
47
|
+
exports.PathVisitor = PathVisitor;
|
|
48
|
+
exports.someField = someField;
|
|
49
|
+
exports.Type = Type;
|
|
50
|
+
exports.use = use;
|
|
51
|
+
exports.visit = visit;
|
|
52
|
+
// Populate the exported fields of the namedTypes namespace, while still
|
|
53
|
+
// retaining its member types.
|
|
54
|
+
Object.assign(namedTypes_1.namedTypes, n);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Ben Newman <bn@cs.stanford.edu>",
|
|
3
3
|
"name": "ast-types",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.3",
|
|
5
5
|
"description": "Esprima-compatible implementation of the Mozilla JS Parser API",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"ast",
|
|
@@ -38,24 +38,24 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@babel/parser": "7.4.
|
|
42
|
-
"@babel/types": "7.4.
|
|
41
|
+
"@babel/parser": "7.4.4",
|
|
42
|
+
"@babel/types": "7.4.4",
|
|
43
43
|
"@types/esprima": "4.0.2",
|
|
44
44
|
"@types/glob": "7.1.1",
|
|
45
45
|
"@types/mocha": "5.2.6",
|
|
46
|
-
"@types/node": "
|
|
47
|
-
"espree": "
|
|
46
|
+
"@types/node": "12.0.0",
|
|
47
|
+
"espree": "6.1.1",
|
|
48
48
|
"esprima": "4.0.1",
|
|
49
49
|
"esprima-fb": "15001.1001.0-dev-harmony-fb",
|
|
50
|
-
"flow-parser": "0.
|
|
51
|
-
"glob": "7.1.
|
|
50
|
+
"flow-parser": "0.98.1",
|
|
51
|
+
"glob": "7.1.4",
|
|
52
52
|
"mocha": "6.1.4",
|
|
53
|
-
"recast": "0.
|
|
54
|
-
"reify": "0.
|
|
53
|
+
"recast": "0.18.1",
|
|
54
|
+
"reify": "0.20.6",
|
|
55
55
|
"ts-add-module-exports": "1.0.0",
|
|
56
56
|
"ts-emit-clean": "1.0.0",
|
|
57
57
|
"ts-node": "7.0.1",
|
|
58
|
-
"typescript": "3.4.
|
|
58
|
+
"typescript": "3.4.5"
|
|
59
59
|
},
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=4"
|