UNPKG

@ton-contests/tolk-utils

Version:
49 lines (48 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.build = build; const path_1 = require("path"); const fs_js_1 = require("./misc/fs.js"); const fs_1 = require("fs"); const tolk_js_1 = require("@ton/tolk-js"); const getProjectStructure_js_1 = require("./project/getProjectStructure.js"); async function build({ root }) { const fileSystem = (0, getProjectStructure_js_1.getProjectStructure)(root); /* Remove previous build */ (0, fs_js_1.rmForceSync)(fileSystem.srcDir.buildDir); /* Get Tolk build configuration */ const tolkConfig = getTolkConfig(fileSystem.tolkConfig); try { const compilationResults = []; for (const targetConfig of tolkConfig.targets) { const result = await (0, tolk_js_1.runTolkCompiler)({ ...targetConfig, fsReadCallback: (path) => (0, fs_1.readFileSync)((0, path_1.resolve)(fileSystem.rootDir, path), "utf-8"), }); if (result.status === "ok") { console.log("Compiled successfully!"); } else { console.error(result.message); console.log("Tolk compilation failed"); return; } compilationResults.push({ name: (0, path_1.parse)(targetConfig.entrypointFileName).name, output: result, }); } for (const result of compilationResults) { (0, fs_js_1.writeFileWithDirsSync)((0, path_1.resolve)(fileSystem.srcDir.buildDir, `./${result.name}.ts`), Buffer.from(`export const code = "${result.output.codeBoc64}"`)); } } catch (err) { console.log(err.message); console.log("Tolk compilation failed"); return; } } function getTolkConfig(path) { const tolkConfig = JSON.parse((0, fs_1.readFileSync)(path).toString("utf-8")); return tolkConfig; }