UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

29 lines (27 loc) 3.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Helper_1 = require("../Helper"); class CaseHelper extends Helper_1.Helper { constructor(cases, defaultCase) { super(); this.cases = cases; this.defaultCase = defaultCase; } emit(sb, node, options) { this.addCase(sb, node, options); } addCase(sb, node, options, idx = 0) { if (idx >= this.cases.length) { this.defaultCase(); } else { sb.emitHelper(node, options, sb.helpers.if({ condition: this.cases[idx].condition, whenTrue: this.cases[idx].whenTrue, whenFalse: () => this.addCase(sb, node, options, idx + 1), })); } } } exports.CaseHelper = CaseHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNhc2VIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxzQ0FBbUM7QUFTbkMsTUFBYSxVQUFXLFNBQVEsZUFBTTtJQUlwQyxZQUFtQixLQUEwQixFQUFFLFdBQXVCO1FBQ3BFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQjtRQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxPQUFxQixFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQzdFLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjthQUFNO1lBQ0wsRUFBRSxDQUFDLFVBQVUsQ0FDWCxJQUFJLEVBQ0osT0FBTyxFQUNQLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVE7Z0JBQ2xDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDMUQsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7Q0FDRjtBQTdCRCxnQ0E2QkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvc3RhdGVtZW50L0Nhc2VIZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9IZWxwZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhc2Uge1xuICByZWFkb25seSBjb25kaXRpb246ICgpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IHdoZW5UcnVlOiAoKSA9PiB2b2lkO1xufVxuXG4vLyBJbnB1dDogW11cbi8vIE91dHB1dDogW11cbmV4cG9ydCBjbGFzcyBDYXNlSGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYXNlczogUmVhZG9ubHlBcnJheTxDYXNlPjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0Q2FzZTogKCkgPT4gdm9pZDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoY2FzZXM6IFJlYWRvbmx5QXJyYXk8Q2FzZT4sIGRlZmF1bHRDYXNlOiAoKSA9PiB2b2lkKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmNhc2VzID0gY2FzZXM7XG4gICAgdGhpcy5kZWZhdWx0Q2FzZSA9IGRlZmF1bHRDYXNlO1xuICB9XG5cbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ2FzZShzYiwgbm9kZSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYWRkQ2FzZShzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zLCBpZHggPSAwKTogdm9pZCB7XG4gICAgaWYgKGlkeCA+PSB0aGlzLmNhc2VzLmxlbmd0aCkge1xuICAgICAgdGhpcy5kZWZhdWx0Q2FzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzYi5lbWl0SGVscGVyKFxuICAgICAgICBub2RlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBzYi5oZWxwZXJzLmlmKHtcbiAgICAgICAgICBjb25kaXRpb246IHRoaXMuY2FzZXNbaWR4XS5jb25kaXRpb24sXG4gICAgICAgICAgd2hlblRydWU6IHRoaXMuY2FzZXNbaWR4XS53aGVuVHJ1ZSxcbiAgICAgICAgICB3aGVuRmFsc2U6ICgpID0+IHRoaXMuYWRkQ2FzZShzYiwgbm9kZSwgb3B0aW9ucywgaWR4ICsgMSksXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==