UNPKG

esbuild-plugin-modify-entrypoints

Version:
45 lines (44 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modifyEntrypointsPlugin = exports.PLUGIN_NAME = void 0; const promises_1 = require("node:fs/promises"); exports.PLUGIN_NAME = 'modify-entrypoints'; const modifyEntrypointsPlugin = (...modifyFunctions) => ({ name: exports.PLUGIN_NAME, async setup(build) { const functions = modifyFunctions.flat(); build.onResolve({ filter: /.*/ }, ({ path, resolveDir, kind }) => { if (kind === 'entry-point') { return { path, namespace: exports.PLUGIN_NAME, pluginData: { resolveDir, }, }; } }); build.onLoad({ filter: /.*/, namespace: exports.PLUGIN_NAME }, async ({ path, pluginData }) => { const contents = await (0, promises_1.readFile)(path, 'utf8'); return functions.reduce((results, fn) => { const innerResults = fn({ contents: results.contents, loader: results.loader, path, resolveDir: pluginData?.resolveDir, options: build.initialOptions, }); const loader = innerResults.loader ?? results.loader; return { ...results, ...innerResults, ...(loader ? { loader } : {}), resolveDir: pluginData?.resolveDir, }; }, { contents, }); }); }, }); exports.modifyEntrypointsPlugin = modifyEntrypointsPlugin;