metal-soy-critic
Version:
A metal-soy code validation utility.
22 lines (21 loc) • 663 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const soyparser_1 = require("soyparser");
class SoyContext {
constructor(raw) {
this.raw = raw;
this.ast = soyparser_1.default(raw);
}
getRenderParams() {
const renderTemplate = this.ast.body
.find(({ id }) => id.namespace === null && id.name === 'render');
return renderTemplate ? renderTemplate.params : [];
}
getRaw({ mark }) {
return this.raw.substring(mark.start.offset, mark.end.offset);
}
visit(visitor) {
soyparser_1.traverse.visit(this.ast, visitor);
}
}
exports.default = SoyContext;