@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
28 lines (26 loc) • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Helper_1 = require("../Helper");
class ExportHelper extends Helper_1.Helper {
constructor({ name, defaultExport }) {
super();
this.name = name;
this.defaultExport = defaultExport || false;
}
emit(sb, node, _optionsIn) {
if (this.name !== undefined) {
sb.addExport(this.name);
sb.emitPushString(node, this.name);
}
else if (this.defaultExport) {
sb.emitPushString(node, 'default');
}
else {
sb.context.reportUnsupported(node);
}
sb.emitOp(node, 'SWAP');
sb.emitOp(node, 'SETITEM');
}
}
exports.ExportHelper = ExportHelper;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4cG9ydEhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNDQUFtQztBQVNuQyxNQUFhLFlBQWEsU0FBUSxlQUFNO0lBSXRDLFlBQW1CLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUI7UUFDN0QsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFpQixFQUFFLElBQWEsRUFBRSxVQUF3QjtRQUNwRSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhCLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUU3QixFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNwQzthQUFNO1lBQ0wsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUdELEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTNCRCxvQ0EyQkMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9oZWxwZXIvbW9kdWxlL0V4cG9ydEhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uLy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEhlbHBlciB9IGZyb20gJy4uL0hlbHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0SGVscGVyT3B0aW9ucyB7XG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmF1bHRFeHBvcnQ/OiBib29sZWFuO1xufVxuXG4vLyBJbnB1dDogW3ZhbCwgZXhwb3J0c11cbi8vIE91dHB1dDogW11cbmV4cG9ydCBjbGFzcyBFeHBvcnRIZWxwZXIgZXh0ZW5kcyBIZWxwZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RXhwb3J0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IG5hbWUsIGRlZmF1bHRFeHBvcnQgfTogRXhwb3J0SGVscGVyT3B0aW9ucykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmRlZmF1bHRFeHBvcnQgPSBkZWZhdWx0RXhwb3J0IHx8IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGVtaXQoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLk5vZGUsIF9vcHRpb25zSW46IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2IuYWRkRXhwb3J0KHRoaXMubmFtZSk7XG4gICAgICAvLyBbbmFtZSwgdmFsLCBleHBvcnRzXVxuICAgICAgc2IuZW1pdFB1c2hTdHJpbmcobm9kZSwgdGhpcy5uYW1lKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVmYXVsdEV4cG9ydCkge1xuICAgICAgLy8gW25hbWUsIHZhbCwgZXhwb3J0c11cbiAgICAgIHNiLmVtaXRQdXNoU3RyaW5nKG5vZGUsICdkZWZhdWx0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNiLmNvbnRleHQucmVwb3J0VW5zdXBwb3J0ZWQobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gW3ZhbCwgbmFtZSwgZXhwb3J0c11cbiAgICBzYi5lbWl0T3Aobm9kZSwgJ1NXQVAnKTtcbiAgICAvLyBbXVxuICAgIHNiLmVtaXRPcChub2RlLCAnU0VUSVRFTScpO1xuICB9XG59XG4iXX0=