UNPKG

esbuild-plugin-modify-entrypoints

Version:
41 lines (40 loc) 1.48 kB
import { readFile } from 'node:fs/promises'; export const PLUGIN_NAME = 'modify-entrypoints'; export const modifyEntrypointsPlugin = (...modifyFunctions) => ({ name: PLUGIN_NAME, async setup(build) { const functions = modifyFunctions.flat(); build.onResolve({ filter: /.*/ }, ({ path, resolveDir, kind }) => { if (kind === 'entry-point') { return { path, namespace: PLUGIN_NAME, pluginData: { resolveDir, }, }; } }); build.onLoad({ filter: /.*/, namespace: PLUGIN_NAME }, async ({ path, pluginData }) => { const contents = await 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, }); }); }, });