UNPKG

800 BJavaScriptView Raw
1const {Expr, Token, Setter, Expression, SetterExpression, SpliceSetterExpression, TokenTypeData} = require('./lang');
2const _ = require('lodash');
3const NaiveCompiler = require('./naive-compiler');
4const {
5 splitSettersGetters,
6 normalizeAndTagAllGetters
7} = require('./expr-tagging');
8
9class SimpleCompiler extends NaiveCompiler {
10 constructor(model, options) {
11 const {getters, setters} = splitSettersGetters(model);
12 super({...model, ...normalizeAndTagAllGetters(getters, setters, options)}, options);
13 }
14
15 buildDerived(name) {
16 return `$res.${name} = ${this.generateExpr(this.getters[name])};`;
17 }
18
19 topLevelToIndex(str) {
20 return this.getters[str][0].$topLevelIndex;
21 }
22
23 get template() {
24 return require('./templates/simple.js');
25 }
26}
27
28module.exports = SimpleCompiler;