UNPKG

radashi-helper

Version:
116 lines (102 loc) 4.59 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _chunk6FV2MASScjs = require('./chunk-6FV2MASS.cjs'); require('./chunk-3KDGKCY3.cjs'); require('./chunk-QJPNUX4P.cjs'); require('./chunk-7UCE7HEG.cjs'); var _chunk27XA2ZBLcjs = require('./chunk-27XA2ZBL.cjs'); require('./chunk-DNQVKCXJ.cjs'); var _chunkZP624W2Acjs = require('./chunk-ZP624W2A.cjs'); var _chunkST3J6QTNcjs = require('./chunk-ST3J6QTN.cjs'); var _chunk5R2KEZLQcjs = require('./chunk-5R2KEZLQ.cjs'); // src/build.ts var _chokidar = require('chokidar'); var chokidar = _interopRequireWildcard(_chokidar); var _esbuild = require('esbuild'); var esbuild = _interopRequireWildcard(_esbuild); var _promises = require('fs/promises'); var _promises2 = _interopRequireDefault(_promises); var _path = require('path'); async function build_default(options = {}) { const env = _nullishCoalesce(options.env, () => ( _chunkZP624W2Acjs.getEnv.call(void 0, options.dir))); const { root, config } = env; const outDir = _path.resolve.call(void 0, _nullishCoalesce(options.outDir, () => ( env.outDir))); await _promises2.default.rm(outDir, { recursive: true }).catch(() => { }); const esmOptions = { entryPoints: [env.modPath], external: ["radashi"], bundle: true, outfile: _path.join.call(void 0, outDir, "radashi.js"), platform: "node", target: "node16", format: "esm", plugins: [_chunk6FV2MASScjs.esbuildRadashi.call(void 0, { env })], logLevel: "info" }; const cjsOptions = { ...esmOptions, format: "cjs", outfile: _path.join.call(void 0, outDir, "radashi.cjs") }; if (_optionalChain([options, 'optionalAccess', _ => _.watch])) { const ctx = await esbuild.context( config.formats.includes("esm") ? esmOptions : cjsOptions ); await ctx.watch(); } else { if (config.formats.includes("esm")) { await esbuild.build(esmOptions); } if (config.formats.includes("cjs")) { await esbuild.build(cjsOptions); } } if (config.dts) { await emitDeclarationTypes(root, _path.join.call(void 0, outDir, "types"), options); } } async function emitDeclarationTypes(root, outDir, flags = {}) { _chunkST3J6QTNcjs.log.call(void 0, "Emitting declaration types..."); const result = _chunkST3J6QTNcjs.exec.call(void 0, _path.resolve.call(void 0, root, "node_modules/.bin/tsc"), _chunk5R2KEZLQcjs.sift.call(void 0, [ "--project", "tsconfig.dts.json", "--outDir", outDir, "--emitDeclarationOnly", flags.watch && "--watch", flags.watch && "--preserveWatchOutput" ]), { cwd: root, stdio: _chunk27XA2ZBLcjs.stdio } ); const modPath = _path.join.call(void 0, outDir, "mod.d.ts"); const rewriteRadashiImport = async () => { await editFile(modPath, (data) => { return data.replace("./node_modules/radashi/dist/radashi", "radashi"); }); }; if (flags.watch) { let rewriting = false; chokidar.watch(outDir).on("all", async (type, file) => { if (!rewriting && file === modPath && type !== "unlink") { rewriting = true; await rewriteRadashiImport(); setTimeout(() => { rewriting = false; }, 250); } }); } else { await result; await rewriteRadashiImport(); } } async function editFile(filePath, callback) { const data = await _promises.readFile.call(void 0, filePath, "utf-8"); const newData = await callback(data); if (newData) { await _promises.writeFile.call(void 0, filePath, newData, "utf-8"); } } exports.default = build_default;