UNPKG

@kcinternals/heft-esbuild-plugin

Version:
57 lines 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const node_path_1 = require("node:path"); const node_fs_1 = require("node:fs"); const esbuild_1 = require("esbuild"); const shared_1 = require("./shared"); class EsbuildPlugin { _accessor; get accessor() { return this._accessor; } apply(session, heftConfiguration, options) { if (session.parameters.watch) { throw new Error(shared_1.UNSUPPORTED_WATCH_MODE); } session.hooks.run.tapPromise(shared_1.PLUGIN_NAME, async () => { session.logger.terminal.writeLine(`Using esbuild version ${esbuild_1.version}`); const basePath = heftConfiguration.buildFolderPath; const entries = []; const length = options?.entrypoints?.length ?? 0; if (length > 0) { entries.push(...options .entrypoints.map(p => { const output = p.replace("<pwd>", basePath); if ((0, node_fs_1.existsSync)(output)) return output; session.logger.terminal.writeWarningLine(`Remove '${p}' entrypoint from list because file is missing`); return ""; }) .filter(p => p !== "")); } else { const main = heftConfiguration.projectPackageJson.main ?? options?.entrypoint ?? ""; entries.push((0, node_path_1.join)(basePath, main)); } const output = options?.output ?? "lib-bundle"; const outdir = (0, node_path_1.join)(basePath, output); const buildOptions = { entryPoints: entries, outdir: outdir, bundle: options?.bundle ?? true, minify: options?.minify ?? true, sourcemap: options?.sourcemap ?? false, external: options?.external, }; if (options?.platform) buildOptions.platform = options.platform; if (options?.target) buildOptions.target = options.target; await (0, esbuild_1.build)(buildOptions); }); } } exports.default = EsbuildPlugin; //# sourceMappingURL=EsbuildPlugin.js.map