mirror of
https://github.com/idanoo/GoScrobble
synced 2025-07-01 13:42:20 +00:00
0.2.0 - Mid migration
This commit is contained in:
parent
139e6a915e
commit
7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions
79
web/node_modules/estree-walker/CHANGELOG.md
generated
vendored
Normal file
79
web/node_modules/estree-walker/CHANGELOG.md
generated
vendored
Normal file
|
@ -0,0 +1,79 @@
|
|||
# changelog
|
||||
|
||||
## 1.0.1
|
||||
|
||||
* Relax node type to `BaseNode` ([#17](https://github.com/Rich-Harris/estree-walker/pull/17))
|
||||
|
||||
## 1.0.0
|
||||
|
||||
* Don't cache child keys
|
||||
|
||||
## 0.9.0
|
||||
|
||||
* Add `this.remove()` method
|
||||
|
||||
## 0.8.1
|
||||
|
||||
* Fix pkg.files
|
||||
|
||||
## 0.8.0
|
||||
|
||||
* Adopt `estree` types
|
||||
|
||||
## 0.7.0
|
||||
|
||||
* Add a `this.replace(node)` method
|
||||
|
||||
## 0.6.1
|
||||
|
||||
* Only traverse nodes that exist and have a type ([#9](https://github.com/Rich-Harris/estree-walker/pull/9))
|
||||
* Only cache keys for nodes with a type ([#8](https://github.com/Rich-Harris/estree-walker/pull/8))
|
||||
|
||||
## 0.6.0
|
||||
|
||||
* Fix walker context type
|
||||
* Update deps, remove unncessary Bublé transformation
|
||||
|
||||
## 0.5.2
|
||||
|
||||
* Add types to package
|
||||
|
||||
## 0.5.1
|
||||
|
||||
* Prevent context corruption when `walk()` is called during a walk
|
||||
|
||||
## 0.5.0
|
||||
|
||||
* Export `childKeys`, for manually fixing in case of malformed ASTs
|
||||
|
||||
## 0.4.0
|
||||
|
||||
* Add TypeScript typings ([#3](https://github.com/Rich-Harris/estree-walker/pull/3))
|
||||
|
||||
## 0.3.1
|
||||
|
||||
* Include `pkg.repository` ([#2](https://github.com/Rich-Harris/estree-walker/pull/2))
|
||||
|
||||
## 0.3.0
|
||||
|
||||
* More predictable ordering
|
||||
|
||||
## 0.2.1
|
||||
|
||||
* Keep `context` shape
|
||||
|
||||
## 0.2.0
|
||||
|
||||
* Add ES6 build
|
||||
|
||||
## 0.1.3
|
||||
|
||||
* npm snafu
|
||||
|
||||
## 0.1.2
|
||||
|
||||
* Pass current prop and index to `enter`/`leave` callbacks
|
||||
|
||||
## 0.1.1
|
||||
|
||||
* First release
|
48
web/node_modules/estree-walker/README.md
generated
vendored
Normal file
48
web/node_modules/estree-walker/README.md
generated
vendored
Normal file
|
@ -0,0 +1,48 @@
|
|||
# estree-walker
|
||||
|
||||
Simple utility for walking an [ESTree](https://github.com/estree/estree)-compliant AST, such as one generated by [acorn](https://github.com/marijnh/acorn).
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
npm i estree-walker
|
||||
```
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
var walk = require( 'estree-walker' ).walk;
|
||||
var acorn = require( 'acorn' );
|
||||
|
||||
ast = acorn.parse( sourceCode, options ); // https://github.com/acornjs/acorn
|
||||
|
||||
walk( ast, {
|
||||
enter: function ( node, parent, prop, index ) {
|
||||
// some code happens
|
||||
},
|
||||
leave: function ( node, parent, prop, index ) {
|
||||
// some code happens
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
Inside the `enter` function, calling `this.skip()` will prevent the node's children being walked, or the `leave` function (which is optional) being called.
|
||||
|
||||
Call `this.replace(new_node)` in either `enter` or `leave` to replace the current node with a new one.
|
||||
|
||||
Call `this.remove()` in either `enter` or `leave` to remove the current node.
|
||||
|
||||
## Why not use estraverse?
|
||||
|
||||
The ESTree spec is evolving to accommodate ES6/7. I've had a couple of experiences where [estraverse](https://github.com/estools/estraverse) was unable to handle an AST generated by recent versions of acorn, because it hard-codes visitor keys.
|
||||
|
||||
estree-walker, by contrast, simply enumerates a node's properties to find child nodes (and child lists of nodes), and is therefore resistant to spec changes. It's also much smaller. (The performance, if you're wondering, is basically identical.)
|
||||
|
||||
None of which should be taken as criticism of estraverse, which has more features and has been battle-tested in many more situations, and for which I'm very grateful.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
135
web/node_modules/estree-walker/dist/estree-walker.umd.js
generated
vendored
Normal file
135
web/node_modules/estree-walker/dist/estree-walker.umd.js
generated
vendored
Normal file
|
@ -0,0 +1,135 @@
|
|||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global.estreeWalker = {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function walk(ast, { enter, leave }) {
|
||||
return visit(ast, null, enter, leave);
|
||||
}
|
||||
|
||||
let should_skip = false;
|
||||
let should_remove = false;
|
||||
let replacement = null;
|
||||
const context = {
|
||||
skip: () => should_skip = true,
|
||||
remove: () => should_remove = true,
|
||||
replace: (node) => replacement = node
|
||||
};
|
||||
|
||||
function replace(parent, prop, index, node) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop][index] = node;
|
||||
} else {
|
||||
parent[prop] = node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function remove(parent, prop, index) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop].splice(index, 1);
|
||||
} else {
|
||||
delete parent[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function visit(
|
||||
node,
|
||||
parent,
|
||||
enter,
|
||||
leave,
|
||||
prop,
|
||||
index
|
||||
) {
|
||||
if (node) {
|
||||
if (enter) {
|
||||
const _should_skip = should_skip;
|
||||
const _should_remove = should_remove;
|
||||
const _replacement = replacement;
|
||||
should_skip = false;
|
||||
should_remove = false;
|
||||
replacement = null;
|
||||
|
||||
enter.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const skipped = should_skip;
|
||||
const removed = should_remove;
|
||||
|
||||
should_skip = _should_skip;
|
||||
should_remove = _should_remove;
|
||||
replacement = _replacement;
|
||||
|
||||
if (skipped) return node;
|
||||
if (removed) return null;
|
||||
}
|
||||
|
||||
for (const key in node) {
|
||||
const value = (node )[key];
|
||||
|
||||
if (typeof value !== 'object') {
|
||||
continue;
|
||||
}
|
||||
|
||||
else if (Array.isArray(value)) {
|
||||
for (let j = 0, k = 0; j < value.length; j += 1, k += 1) {
|
||||
if (value[j] !== null && typeof value[j].type === 'string') {
|
||||
if (!visit(value[j], node, enter, leave, key, k)) {
|
||||
// removed
|
||||
j--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if (value !== null && typeof value.type === 'string') {
|
||||
visit(value, node, enter, leave, key, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (leave) {
|
||||
const _replacement = replacement;
|
||||
const _should_remove = should_remove;
|
||||
replacement = null;
|
||||
should_remove = false;
|
||||
|
||||
leave.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const removed = should_remove;
|
||||
|
||||
replacement = _replacement;
|
||||
should_remove = _should_remove;
|
||||
|
||||
if (removed) return null;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
exports.walk = walk;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
1
web/node_modules/estree-walker/dist/estree-walker.umd.js.map
generated
vendored
Normal file
1
web/node_modules/estree-walker/dist/estree-walker.umd.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"estree-walker.umd.js","sources":["../src/estree-walker.js"],"sourcesContent":["export function walk(ast, { enter, leave }) {\n\tvisit(ast, null, enter, leave);\n}\n\nlet shouldSkip = false;\nconst context = { skip: () => shouldSkip = true };\n\nexport const childKeys = {};\n\nconst toString = Object.prototype.toString;\n\nfunction isArray(thing) {\n\treturn toString.call(thing) === '[object Array]';\n}\n\nfunction visit(node, parent, enter, leave, prop, index) {\n\tif (!node) return;\n\n\tif (enter) {\n\t\tconst _shouldSkip = shouldSkip;\n\t\tshouldSkip = false;\n\t\tenter.call(context, node, parent, prop, index);\n\t\tconst skipped = shouldSkip;\n\t\tshouldSkip = _shouldSkip;\n\n\t\tif (skipped) return;\n\t}\n\n\tconst keys = childKeys[node.type] || (\n\t\tchildKeys[node.type] = Object.keys(node).filter(key => typeof node[key] === 'object')\n\t);\n\n\tfor (let i = 0; i < keys.length; i += 1) {\n\t\tconst key = keys[i];\n\t\tconst value = node[key];\n\n\t\tif (isArray(value)) {\n\t\t\tfor (let j = 0; j < value.length; j += 1) {\n\t\t\t\tvisit(value[j], node, enter, leave, key, j);\n\t\t\t}\n\t\t}\n\n\t\telse if (value && value.type) {\n\t\t\tvisit(value, node, enter, leave, key, null);\n\t\t}\n\t}\n\n\tif (leave) {\n\t\tleave(node, parent, prop, index);\n\t}\n}\n"],"names":[],"mappings":";;;;;;CAAO,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;CAC5C,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;CAChC,CAAC;;CAED,IAAI,UAAU,GAAG,KAAK,CAAC;CACvB,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,UAAU,GAAG,IAAI,EAAE,CAAC;;AAElD,AAAY,OAAC,SAAS,GAAG,EAAE,CAAC;;CAE5B,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;;CAE3C,SAAS,OAAO,CAAC,KAAK,EAAE;CACxB,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC;CAClD,CAAC;;CAED,SAAS,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;CACxD,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO;;CAEnB,CAAC,IAAI,KAAK,EAAE;CACZ,EAAE,MAAM,WAAW,GAAG,UAAU,CAAC;CACjC,EAAE,UAAU,GAAG,KAAK,CAAC;CACrB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;CACjD,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC;CAC7B,EAAE,UAAU,GAAG,WAAW,CAAC;;CAE3B,EAAE,IAAI,OAAO,EAAE,OAAO;CACtB,EAAE;;CAEF,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;CAClC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC;CACvF,EAAE,CAAC;;CAEH,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;CAC1C,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;CACtB,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;;CAE1B,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;CACtB,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;CAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CAChD,IAAI;CACJ,GAAG;;CAEH,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE;CAChC,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;CAC/C,GAAG;CACH,EAAE;;CAEF,CAAC,IAAI,KAAK,EAAE;CACZ,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;CACnC,EAAE;CACF,CAAC;;;;;;;;;;;;;"}
|
32
web/node_modules/estree-walker/package.json
generated
vendored
Normal file
32
web/node_modules/estree-walker/package.json
generated
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"name": "estree-walker",
|
||||
"description": "Traverse an ESTree-compliant AST",
|
||||
"version": "1.0.1",
|
||||
"author": "Rich Harris",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Rich-Harris/estree-walker"
|
||||
},
|
||||
"main": "dist/estree-walker.umd.js",
|
||||
"module": "src/estree-walker.js",
|
||||
"types": "types/index.d.ts",
|
||||
"scripts": {
|
||||
"prepublishOnly": "npm run build && npm test",
|
||||
"build": "tsc && rollup -c",
|
||||
"test": "mocha --opts mocha.opts"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/estree": "0.0.39",
|
||||
"mocha": "^5.2.0",
|
||||
"rollup": "^0.67.3",
|
||||
"rollup-plugin-sucrase": "^2.1.0",
|
||||
"typescript": "^3.6.3"
|
||||
},
|
||||
"files": [
|
||||
"src",
|
||||
"dist",
|
||||
"types",
|
||||
"README.md"
|
||||
]
|
||||
}
|
125
web/node_modules/estree-walker/src/estree-walker.js
generated
vendored
Normal file
125
web/node_modules/estree-walker/src/estree-walker.js
generated
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
function walk(ast, { enter, leave }) {
|
||||
return visit(ast, null, enter, leave);
|
||||
}
|
||||
|
||||
let should_skip = false;
|
||||
let should_remove = false;
|
||||
let replacement = null;
|
||||
const context = {
|
||||
skip: () => should_skip = true,
|
||||
remove: () => should_remove = true,
|
||||
replace: (node) => replacement = node
|
||||
};
|
||||
|
||||
function replace(parent, prop, index, node) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop][index] = node;
|
||||
} else {
|
||||
parent[prop] = node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function remove(parent, prop, index) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop].splice(index, 1);
|
||||
} else {
|
||||
delete parent[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function visit(
|
||||
node,
|
||||
parent,
|
||||
enter,
|
||||
leave,
|
||||
prop,
|
||||
index
|
||||
) {
|
||||
if (node) {
|
||||
if (enter) {
|
||||
const _should_skip = should_skip;
|
||||
const _should_remove = should_remove;
|
||||
const _replacement = replacement;
|
||||
should_skip = false;
|
||||
should_remove = false;
|
||||
replacement = null;
|
||||
|
||||
enter.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const skipped = should_skip;
|
||||
const removed = should_remove;
|
||||
|
||||
should_skip = _should_skip;
|
||||
should_remove = _should_remove;
|
||||
replacement = _replacement;
|
||||
|
||||
if (skipped) return node;
|
||||
if (removed) return null;
|
||||
}
|
||||
|
||||
for (const key in node) {
|
||||
const value = (node )[key];
|
||||
|
||||
if (typeof value !== 'object') {
|
||||
continue;
|
||||
}
|
||||
|
||||
else if (Array.isArray(value)) {
|
||||
for (let j = 0, k = 0; j < value.length; j += 1, k += 1) {
|
||||
if (value[j] !== null && typeof value[j].type === 'string') {
|
||||
if (!visit(value[j], node, enter, leave, key, k)) {
|
||||
// removed
|
||||
j--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if (value !== null && typeof value.type === 'string') {
|
||||
visit(value, node, enter, leave, key, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (leave) {
|
||||
const _replacement = replacement;
|
||||
const _should_remove = should_remove;
|
||||
replacement = null;
|
||||
should_remove = false;
|
||||
|
||||
leave.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const removed = should_remove;
|
||||
|
||||
replacement = _replacement;
|
||||
should_remove = _should_remove;
|
||||
|
||||
if (removed) return null;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
export { walk };
|
144
web/node_modules/estree-walker/src/index.ts
generated
vendored
Normal file
144
web/node_modules/estree-walker/src/index.ts
generated
vendored
Normal file
|
@ -0,0 +1,144 @@
|
|||
import { BaseNode } from "estree";
|
||||
|
||||
type WalkerContext = {
|
||||
skip: () => void;
|
||||
remove: () => void;
|
||||
replace: (node: BaseNode) => void;
|
||||
};
|
||||
|
||||
type WalkerHandler = (
|
||||
this: WalkerContext,
|
||||
node: BaseNode,
|
||||
parent: BaseNode,
|
||||
key: string,
|
||||
index: number
|
||||
) => void
|
||||
|
||||
type Walker = {
|
||||
enter?: WalkerHandler;
|
||||
leave?: WalkerHandler;
|
||||
}
|
||||
|
||||
export function walk(ast: BaseNode, { enter, leave }: Walker) {
|
||||
return visit(ast, null, enter, leave);
|
||||
}
|
||||
|
||||
let should_skip = false;
|
||||
let should_remove = false;
|
||||
let replacement: BaseNode = null;
|
||||
const context: WalkerContext = {
|
||||
skip: () => should_skip = true,
|
||||
remove: () => should_remove = true,
|
||||
replace: (node: BaseNode) => replacement = node
|
||||
};
|
||||
|
||||
function replace(parent: any, prop: string, index: number, node: BaseNode) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop][index] = node;
|
||||
} else {
|
||||
parent[prop] = node;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function remove(parent: any, prop: string, index: number) {
|
||||
if (parent) {
|
||||
if (index !== null) {
|
||||
parent[prop].splice(index, 1);
|
||||
} else {
|
||||
delete parent[prop];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function visit(
|
||||
node: BaseNode,
|
||||
parent: BaseNode,
|
||||
enter: WalkerHandler,
|
||||
leave: WalkerHandler,
|
||||
prop?: string,
|
||||
index?: number
|
||||
) {
|
||||
if (node) {
|
||||
if (enter) {
|
||||
const _should_skip = should_skip;
|
||||
const _should_remove = should_remove;
|
||||
const _replacement = replacement;
|
||||
should_skip = false;
|
||||
should_remove = false;
|
||||
replacement = null;
|
||||
|
||||
enter.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const skipped = should_skip;
|
||||
const removed = should_remove;
|
||||
|
||||
should_skip = _should_skip;
|
||||
should_remove = _should_remove;
|
||||
replacement = _replacement;
|
||||
|
||||
if (skipped) return node;
|
||||
if (removed) return null;
|
||||
}
|
||||
|
||||
for (const key in node) {
|
||||
const value = (node as any)[key];
|
||||
|
||||
if (typeof value !== 'object') {
|
||||
continue;
|
||||
}
|
||||
|
||||
else if (Array.isArray(value)) {
|
||||
for (let j = 0, k = 0; j < value.length; j += 1, k += 1) {
|
||||
if (value[j] !== null && typeof value[j].type === 'string') {
|
||||
if (!visit(value[j], node, enter, leave, key, k)) {
|
||||
// removed
|
||||
j--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else if (value !== null && typeof value.type === 'string') {
|
||||
visit(value, node, enter, leave, key, null);
|
||||
}
|
||||
}
|
||||
|
||||
if (leave) {
|
||||
const _replacement = replacement;
|
||||
const _should_remove = should_remove;
|
||||
replacement = null;
|
||||
should_remove = false;
|
||||
|
||||
leave.call(context, node, parent, prop, index);
|
||||
|
||||
if (replacement) {
|
||||
node = replacement;
|
||||
replace(parent, prop, index, node);
|
||||
}
|
||||
|
||||
if (should_remove) {
|
||||
remove(parent, prop, index);
|
||||
}
|
||||
|
||||
const removed = should_remove;
|
||||
|
||||
replacement = _replacement;
|
||||
should_remove = _should_remove;
|
||||
|
||||
if (removed) return null;
|
||||
}
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
13
web/node_modules/estree-walker/types/index.d.ts
generated
vendored
Normal file
13
web/node_modules/estree-walker/types/index.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
import { BaseNode } from "estree";
|
||||
declare type WalkerContext = {
|
||||
skip: () => void;
|
||||
remove: () => void;
|
||||
replace: (node: BaseNode) => void;
|
||||
};
|
||||
declare type WalkerHandler = (this: WalkerContext, node: BaseNode, parent: BaseNode, key: string, index: number) => void;
|
||||
declare type Walker = {
|
||||
enter?: WalkerHandler;
|
||||
leave?: WalkerHandler;
|
||||
};
|
||||
export declare function walk(ast: BaseNode, { enter, leave }: Walker): BaseNode;
|
||||
export {};
|
Loading…
Add table
Add a link
Reference in a new issue