@neo-one/smart-contract-compiler
Version:
NEO•ONE TypeScript smart contract compiler.
28 lines (26 loc) • 3.53 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const ts_utils_1 = require("@neo-one/ts-utils");
const typescript_1 = tslib_1.__importDefault(require("typescript"));
const NodeCompiler_1 = require("../NodeCompiler");
class SourceFileCompiler extends NodeCompiler_1.NodeCompiler {
constructor() {
super(...arguments);
this.kind = typescript_1.default.SyntaxKind.SourceFile;
}
visitNode(sb, node, options) {
ts_utils_1.tsUtils.file.getImportDeclarations(node).forEach((decl) => {
sb.visit(decl, options);
});
sb.emitHelper(node, options, sb.helpers.processStatements({ createScope: false }));
ts_utils_1.tsUtils.file.getExportDeclarations(node).forEach((decl) => {
sb.visit(decl, options);
});
ts_utils_1.tsUtils.file.getExportAssignments(node).forEach((assignment) => {
sb.visit(assignment, options);
});
}
}
exports.SourceFileCompiler = SourceFileCompiler;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNvdXJjZUZpbGVDb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBNEM7QUFDNUMsb0VBQTRCO0FBQzVCLGtEQUErQztBQUkvQyxNQUFhLGtCQUFtQixTQUFRLDJCQUEyQjtJQUFuRTs7UUFDa0IsU0FBSSxHQUFHLG9CQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQWNsRCxDQUFDO0lBWlEsU0FBUyxDQUFDLEVBQWlCLEVBQUUsSUFBbUIsRUFBRSxPQUFxQjtRQUM1RSxrQkFBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixrQkFBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4RCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILGtCQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzdELEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBZkQsZ0RBZUMiLCJmaWxlIjoibmVvLW9uZS1zbWFydC1jb250cmFjdC1jb21waWxlci9zcmMvY29tcGlsZS9maWxlL1NvdXJjZUZpbGVDb21waWxlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRzVXRpbHMgfSBmcm9tICdAbmVvLW9uZS90cy11dGlscyc7XG5pbXBvcnQgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBOb2RlQ29tcGlsZXIgfSBmcm9tICcuLi9Ob2RlQ29tcGlsZXInO1xuaW1wb3J0IHsgU2NyaXB0QnVpbGRlciB9IGZyb20gJy4uL3NiJztcbmltcG9ydCB7IFZpc2l0T3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIFNvdXJjZUZpbGVDb21waWxlciBleHRlbmRzIE5vZGVDb21waWxlcjx0cy5Tb3VyY2VGaWxlPiB7XG4gIHB1YmxpYyByZWFkb25seSBraW5kID0gdHMuU3ludGF4S2luZC5Tb3VyY2VGaWxlO1xuXG4gIHB1YmxpYyB2aXNpdE5vZGUoc2I6IFNjcmlwdEJ1aWxkZXIsIG5vZGU6IHRzLlNvdXJjZUZpbGUsIG9wdGlvbnM6IFZpc2l0T3B0aW9ucyk6IHZvaWQge1xuICAgIHRzVXRpbHMuZmlsZS5nZXRJbXBvcnREZWNsYXJhdGlvbnMobm9kZSkuZm9yRWFjaCgoZGVjbCkgPT4ge1xuICAgICAgc2IudmlzaXQoZGVjbCwgb3B0aW9ucyk7XG4gICAgfSk7XG4gICAgc2IuZW1pdEhlbHBlcihub2RlLCBvcHRpb25zLCBzYi5oZWxwZXJzLnByb2Nlc3NTdGF0ZW1lbnRzKHsgY3JlYXRlU2NvcGU6IGZhbHNlIH0pKTtcbiAgICB0c1V0aWxzLmZpbGUuZ2V0RXhwb3J0RGVjbGFyYXRpb25zKG5vZGUpLmZvckVhY2goKGRlY2wpID0+IHtcbiAgICAgIHNiLnZpc2l0KGRlY2wsIG9wdGlvbnMpO1xuICAgIH0pO1xuICAgIHRzVXRpbHMuZmlsZS5nZXRFeHBvcnRBc3NpZ25tZW50cyhub2RlKS5mb3JFYWNoKChhc3NpZ25tZW50KSA9PiB7XG4gICAgICBzYi52aXNpdChhc3NpZ25tZW50LCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxufVxuIl19