@nodesecure/js-x-ray
Version:
JavaScript AST XRay analysis
45 lines • 1.24 kB
JavaScript
export class WalkerBase {
should_skip = false;
should_remove = false;
replacement = null;
context;
constructor() {
this.context = {
skip: () => (this.should_skip = true),
remove: () => (this.should_remove = true),
replace: (node) => {
if (node !== undefined) {
this.replacement = node;
}
},
replaceAndSkip: (node) => {
this.should_skip = true;
if (node !== undefined) {
this.replacement = node;
}
}
};
}
// eslint-disable-next-line max-params
replace(parent, prop, index, node) {
if (parent && prop) {
if (index === null) {
parent[prop] = node;
}
else {
parent[prop][index] = node;
}
}
}
remove(parent, prop, index) {
if (parent && prop) {
if (index !== null && index !== undefined) {
parent[prop].splice(index, 1);
}
else {
delete parent[prop];
}
}
}
}
//# sourceMappingURL=walker.base.js.map