From dfd0f3e2527daffa06da791ccaed7dfe3240963e Mon Sep 17 00:00:00 2001 From: dave caruso Date: Thu, 11 May 2023 22:58:41 -0400 Subject: Allow reading config from within plugins, and partially implement esbuild `initialOptions` (#2861) * Implement plugin build.config and initialOptions * update types * default initialoptions entrypoints --- src/bun.js/builtins/js/BundlerPlugin.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/bun.js/builtins/js/BundlerPlugin.js') diff --git a/src/bun.js/builtins/js/BundlerPlugin.js b/src/bun.js/builtins/js/BundlerPlugin.js index ec8fee397..43f6e889a 100644 --- a/src/bun.js/builtins/js/BundlerPlugin.js +++ b/src/bun.js/builtins/js/BundlerPlugin.js @@ -178,7 +178,7 @@ function runOnResolvePlugins( } } -function runSetupFunction(setup) { +function runSetupFunction(setup, config) { "use strict"; var onLoadPlugins = new Map(), onResolvePlugins = new Map(); @@ -244,6 +244,10 @@ function runSetupFunction(setup) { @throwTypeError("On-dispose callbacks are not implemented yet. See https:/\/github.com/oven-sh/bun/issues/2771"); } + function onDispose(callback) { + @throwTypeError("build.resolve() is not implemented yet. See https:/\/github.com/oven-sh/bun/issues/2771"); + } + const processSetupResult = () => { var anyOnLoad = false, anyOnResolve = false; @@ -300,11 +304,27 @@ function runSetupFunction(setup) { }; var setupResult = setup({ + config, onDispose, onEnd, onLoad, onResolve, onStart, + resolve, + // esbuild's options argument is different, we provide some interop + initialOptions: { + ...config, + bundle: true, + entryPoints: config.entrypoints ?? config.entryPoints ?? [], + minify: typeof config.minify === 'boolean' ? config.minify : false, + minifyIdentifiers: config.minify === true || config.minify?.identifiers, + minifyWhitespace: config.minify === true || config.minify?.whitespace, + minifySyntax: config.minify === true || config.minify?.syntax, + outbase: config.root, + platform: config.target === 'bun' ? 'node' : config.target, + root: undefined, + }, + esbuild: {}, }); if (setupResult && @isPromise(setupResult)) { -- cgit v1.2.3