UNPKG

@neo-one/smart-contract-compiler

Version:

NEO•ONE TypeScript smart contract compiler.

38 lines (36 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.compileContract = void 0; const tslib_1 = require("tslib"); const ts_utils_1 = require("@neo-one/ts-utils"); const utils_1 = require("@neo-one/utils"); const lodash_1 = tslib_1.__importDefault(require("lodash")); const compile_1 = require("./compile"); const createContext_1 = require("./createContext"); const transpile_1 = require("./transpile"); exports.compileContract = ({ filePath: filePathIn, host, linked: linkedIn = {}, }) => { const filePath = utils_1.normalizePath(filePathIn); const linked = lodash_1.default.fromPairs(Object.entries(linkedIn).map(([key, value]) => [utils_1.normalizePath(key), value])); const transpileContext = createContext_1.createContextForPath(filePath, host); const transpileResult = transpile_1.transpile({ sourceFile: ts_utils_1.tsUtils.file.getSourceFileOrThrow(transpileContext.program, filePath), context: transpileContext, }); const context = transpileResult === undefined ? transpileContext : createContext_1.updateContext(transpileContext, { [filePath]: transpileResult.text }); const { abi, sourceMap: finalSourceMap, contract, debugInfo } = compile_1.compile({ sourceFile: ts_utils_1.tsUtils.file.getSourceFileOrThrow(context.program, filePath), context, linked, sourceMaps: transpileResult === undefined ? {} : { [filePath]: transpileResult.sourceMap }, }); return { diagnostics: context.diagnostics, sourceMap: finalSourceMap, abi, contract, debugInfo, }; }; //# sourceMappingURL=compileContract.js.map