@vulcan-sql/core
Version:
Core package of VulcanSQL
32 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExecutorBuilder = void 0;
const tslib_1 = require("tslib");
const models_1 = require("../../../../models/index");
const constants_1 = require("./constants");
const nunjucks = require("nunjucks");
const extension_utils_1 = require("../../extension-utils");
let ExecutorBuilder = class ExecutorBuilder extends models_1.FilterBuilder {
constructor() {
super(...arguments);
this.filterName = constants_1.EXECUTE_FILTER_NAME;
}
onVisit(node) {
(0, extension_utils_1.visitChildren)(node, this.replaceExecuteFunction.bind(this));
}
replaceExecuteFunction(node, replace) {
if (node instanceof nunjucks.nodes.FunCall &&
node.name instanceof nunjucks.nodes.LookupVal &&
node.name.val.value === constants_1.EXECUTE_COMMAND_NAME) {
const args = new nunjucks.nodes.NodeList(node.lineno, node.colno);
args.addChild(node.name.target);
const filter = new nunjucks.nodes.Filter(node.lineno, node.colno, new nunjucks.nodes.Symbol(node.lineno, node.colno, constants_1.EXECUTE_FILTER_NAME), args);
replace(filter);
}
}
};
ExecutorBuilder = tslib_1.__decorate([
(0, models_1.VulcanInternalExtension)()
], ExecutorBuilder);
exports.ExecutorBuilder = ExecutorBuilder;
//# sourceMappingURL=executorBuilder.js.map