UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

31 lines (29 loc) 4.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ts_utils_1 = require("@neo-one/ts-utils"); const Helper_1 = require("../Helper"); class GetSmartContractPropertyHelper extends Helper_1.Helper { constructor({ property }) { super(); this.property = property; } emit(sb, node, options) { if (!options.pushValue) { return; } const initializer = ts_utils_1.tsUtils.initializer.getInitializer(this.property); if (initializer === undefined) { return; } const name = ts_utils_1.tsUtils.node.getName(this.property); sb.emitPushString(node, name); sb.emitHelper(node, options, sb.helpers.wrapString); sb.emitHelper(node, options, sb.helpers.getCachedValue({ create: (innerOptions) => { sb.visit(initializer, innerOptions); }, })); } } exports.GetSmartContractPropertyHelper = GetSmartContractPropertyHelper; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkdldFNtYXJ0Q29udHJhY3RQcm9wZXJ0eUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGdEQUE0QztBQUk1QyxzQ0FBbUM7QUFRbkMsTUFBYSw4QkFBK0IsU0FBUSxlQUFNO0lBR3hELFlBQW1CLEVBQUUsUUFBUSxFQUF5QztRQUNwRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxJQUFJLENBQUMsRUFBaUIsRUFBRSxJQUFhLEVBQUUsT0FBcUI7UUFDakUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsa0JBQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsTUFBTSxJQUFJLEdBQUcsa0JBQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVqRCxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QixFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRCxFQUFFLENBQUMsVUFBVSxDQUNYLElBQUksRUFDSixPQUFPLEVBQ1AsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDeEIsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBRXZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQW5DRCx3RUFtQ0MiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvY29udHJhY3QvR2V0U21hcnRDb250cmFjdFByb3BlcnR5SGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHNVdGlscyB9IGZyb20gJ0BuZW8tb25lL3RzLXV0aWxzJztcbmltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7IFNjcmlwdEJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zYic7XG5pbXBvcnQgeyBWaXNpdE9wdGlvbnMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBIZWxwZXIgfSBmcm9tICcuLi9IZWxwZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdldFNtYXJ0Q29udHJhY3RQcm9wZXJ0eUhlbHBlck9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eTogdHMuUHJvcGVydHlEZWNsYXJhdGlvbjtcbn1cblxuLy8gSW5wdXQ6IFtdXG4vLyBPdXRwdXQ6IFtdXG5leHBvcnQgY2xhc3MgR2V0U21hcnRDb250cmFjdFByb3BlcnR5SGVscGVyIGV4dGVuZHMgSGVscGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eTogdHMuUHJvcGVydHlEZWNsYXJhdGlvbjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoeyBwcm9wZXJ0eSB9OiBHZXRTbWFydENvbnRyYWN0UHJvcGVydHlIZWxwZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gIH1cblxuICBwdWJsaWMgZW1pdChzYjogU2NyaXB0QnVpbGRlciwgbm9kZTogdHMuTm9kZSwgb3B0aW9uczogVmlzaXRPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb25zLnB1c2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGluaXRpYWxpemVyID0gdHNVdGlscy5pbml0aWFsaXplci5nZXRJbml0aWFsaXplcih0aGlzLnByb3BlcnR5KTtcbiAgICBpZiAoaW5pdGlhbGl6ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWUgPSB0c1V0aWxzLm5vZGUuZ2V0TmFtZSh0aGlzLnByb3BlcnR5KTtcbiAgICAvLyBbc3RyaW5nXVxuICAgIHNiLmVtaXRQdXNoU3RyaW5nKG5vZGUsIG5hbWUpO1xuICAgIC8vIFt2YWxdXG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLndyYXBTdHJpbmcpO1xuICAgIC8vIFt2YWxdXG4gICAgc2IuZW1pdEhlbHBlcihcbiAgICAgIG5vZGUsXG4gICAgICBvcHRpb25zLFxuICAgICAgc2IuaGVscGVycy5nZXRDYWNoZWRWYWx1ZSh7XG4gICAgICAgIGNyZWF0ZTogKGlubmVyT3B0aW9ucykgPT4ge1xuICAgICAgICAgIC8vIFt2YWxdXG4gICAgICAgICAgc2IudmlzaXQoaW5pdGlhbGl6ZXIsIGlubmVyT3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=