UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

33 lines (31 loc) 4.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const ts_utils_1 = require("@neo-one/ts-utils"); const typescript_concatenator_1 = require("@neo-one/typescript-concatenator"); const typescript_1 = tslib_1.__importDefault(require("typescript")); exports.transpile = ({ sourceFile, context }) => { const isExternalFile = (node, _importPath, decl) => { if (typescript_1.default.isImportDeclaration(decl) && !ts_utils_1.tsUtils.importExport.hasValueReference(context.program, context.languageService, decl)) { return true; } return context.builtins.isBuiltinFile(node); }; const concatenator = new typescript_concatenator_1.Concatenator({ context: { typeChecker: context.typeChecker, program: context.program, languageService: context.languageService, getSymbol: context.analysis.getSymbol.bind(context.analysis), isExternalFile, }, sourceFile, }); const sourceFiles = concatenator.sourceFiles; if (sourceFiles.length === 0 || sourceFiles.length === 1) { return undefined; } return ts_utils_1.tsUtils.printBundle(context.program, sourceFiles, concatenator.substituteNode); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zcGlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBNEM7QUFDNUMsOEVBQWdFO0FBRWhFLG9FQUE0QjtBQWFmLFFBQUEsU0FBUyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFvQixFQUErQixFQUFFO0lBQ2xHLE1BQU0sY0FBYyxHQUFHLENBQ3JCLElBQW1CLEVBQ25CLFdBQW1CLEVBQ25CLElBQWlELEVBQ2pELEVBQUU7UUFDRixJQUNFLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQzVCLENBQUMsa0JBQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUN2RjtZQUNBLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksc0NBQVksQ0FBQztRQUNwQyxPQUFPLEVBQUU7WUFDUCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7WUFDaEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZTtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDNUQsY0FBYztTQUNmO1FBQ0QsVUFBVTtLQUNYLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDN0MsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4RCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE9BQU8sa0JBQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3hGLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXNtYXJ0LWNvbnRyYWN0LWNvbXBpbGVyL3NyYy90cmFuc3BpbGUvdHJhbnNwaWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHNVdGlscyB9IGZyb20gJ0BuZW8tb25lL3RzLXV0aWxzJztcbmltcG9ydCB7IENvbmNhdGVuYXRvciB9IGZyb20gJ0BuZW8tb25lL3R5cGVzY3JpcHQtY29uY2F0ZW5hdG9yJztcbmltcG9ydCB7IFJhd1NvdXJjZU1hcCB9IGZyb20gJ3NvdXJjZS1tYXAnO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4uL0NvbnRleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zcGlsZU9wdGlvbnMge1xuICByZWFkb25seSBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlO1xuICByZWFkb25seSBjb250ZXh0OiBDb250ZXh0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zcGlsZVJlc3VsdCB7XG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc291cmNlTWFwOiBSYXdTb3VyY2VNYXA7XG59XG5cbmV4cG9ydCBjb25zdCB0cmFuc3BpbGUgPSAoeyBzb3VyY2VGaWxlLCBjb250ZXh0IH06IFRyYW5zcGlsZU9wdGlvbnMpOiBUcmFuc3BpbGVSZXN1bHQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBpc0V4dGVybmFsRmlsZSA9IChcbiAgICBub2RlOiB0cy5Tb3VyY2VGaWxlLFxuICAgIF9pbXBvcnRQYXRoOiBzdHJpbmcsXG4gICAgZGVjbDogdHMuSW1wb3J0RGVjbGFyYXRpb24gfCB0cy5FeHBvcnREZWNsYXJhdGlvbixcbiAgKSA9PiB7XG4gICAgaWYgKFxuICAgICAgdHMuaXNJbXBvcnREZWNsYXJhdGlvbihkZWNsKSAmJlxuICAgICAgIXRzVXRpbHMuaW1wb3J0RXhwb3J0Lmhhc1ZhbHVlUmVmZXJlbmNlKGNvbnRleHQucHJvZ3JhbSwgY29udGV4dC5sYW5ndWFnZVNlcnZpY2UsIGRlY2wpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dC5idWlsdGlucy5pc0J1aWx0aW5GaWxlKG5vZGUpO1xuICB9O1xuICBjb25zdCBjb25jYXRlbmF0b3IgPSBuZXcgQ29uY2F0ZW5hdG9yKHtcbiAgICBjb250ZXh0OiB7XG4gICAgICB0eXBlQ2hlY2tlcjogY29udGV4dC50eXBlQ2hlY2tlcixcbiAgICAgIHByb2dyYW06IGNvbnRleHQucHJvZ3JhbSxcbiAgICAgIGxhbmd1YWdlU2VydmljZTogY29udGV4dC5sYW5ndWFnZVNlcnZpY2UsXG4gICAgICBnZXRTeW1ib2w6IGNvbnRleHQuYW5hbHlzaXMuZ2V0U3ltYm9sLmJpbmQoY29udGV4dC5hbmFseXNpcyksXG4gICAgICBpc0V4dGVybmFsRmlsZSxcbiAgICB9LFxuICAgIHNvdXJjZUZpbGUsXG4gIH0pO1xuICBjb25zdCBzb3VyY2VGaWxlcyA9IGNvbmNhdGVuYXRvci5zb3VyY2VGaWxlcztcbiAgaWYgKHNvdXJjZUZpbGVzLmxlbmd0aCA9PT0gMCB8fCBzb3VyY2VGaWxlcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHRzVXRpbHMucHJpbnRCdW5kbGUoY29udGV4dC5wcm9ncmFtLCBzb3VyY2VGaWxlcywgY29uY2F0ZW5hdG9yLnN1YnN0aXR1dGVOb2RlKTtcbn07XG4iXX0=