diff options
Diffstat (limited to 'src/bun.js/builtins')
-rw-r--r-- | src/bun.js/builtins/cpp/BundlerPluginBuiltins.cpp | 24 | ||||
-rw-r--r-- | src/bun.js/builtins/cpp/BundlerPluginBuiltins.h | 2 | ||||
-rw-r--r-- | src/bun.js/builtins/js/BundlerPlugin.js | 22 |
3 files changed, 44 insertions, 4 deletions
diff --git a/src/bun.js/builtins/cpp/BundlerPluginBuiltins.cpp b/src/bun.js/builtins/cpp/BundlerPluginBuiltins.cpp index be049ae13..f66e568a3 100644 --- a/src/bun.js/builtins/cpp/BundlerPluginBuiltins.cpp +++ b/src/bun.js/builtins/cpp/BundlerPluginBuiltins.cpp @@ -202,10 +202,10 @@ const char* const s_bundlerPluginRunOnResolvePluginsCode = const JSC::ConstructAbility s_bundlerPluginRunSetupFunctionCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_bundlerPluginRunSetupFunctionCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_bundlerPluginRunSetupFunctionCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_bundlerPluginRunSetupFunctionCodeLength = 3794; +const int s_bundlerPluginRunSetupFunctionCodeLength = 4551; static const JSC::Intrinsic s_bundlerPluginRunSetupFunctionCodeIntrinsic = JSC::NoIntrinsic; const char* const s_bundlerPluginRunSetupFunctionCode = - "(function (setup) {\n" \ + "(function (setup, config) {\n" \ " \"use strict\";\n" \ " var onLoadPlugins = new Map(),\n" \ " onResolvePlugins = new Map();\n" \ @@ -271,6 +271,10 @@ const char* const s_bundlerPluginRunSetupFunctionCode = " @throwTypeError(\"On-dispose callbacks are not implemented yet. See https:/\\/github.com/oven-sh/bun/issues/2771\");\n" \ " }\n" \ "\n" \ + " function onDispose(callback) {\n" \ + " @throwTypeError(\"build.resolve() is not implemented yet. See https:/\\/github.com/oven-sh/bun/issues/2771\");\n" \ + " }\n" \ + "\n" \ " const processSetupResult = () => {\n" \ " var anyOnLoad = false,\n" \ " anyOnResolve = false;\n" \ @@ -327,11 +331,27 @@ const char* const s_bundlerPluginRunSetupFunctionCode = " };\n" \ "\n" \ " var setupResult = setup({\n" \ + " config,\n" \ " onDispose,\n" \ " onEnd,\n" \ " onLoad,\n" \ " onResolve,\n" \ " onStart,\n" \ + " resolve,\n" \ + " //\n" \ + " initialOptions: {\n" \ + " ...config,\n" \ + " bundle: true,\n" \ + " entryPoints: config.entrypoints ?? config.entryPoints ?? [],\n" \ + " minify: typeof config.minify === 'boolean' ? config.minify : false,\n" \ + " minifyIdentifiers: config.minify === true || config.minify?.identifiers,\n" \ + " minifyWhitespace: config.minify === true || config.minify?.whitespace,\n" \ + " minifySyntax: config.minify === true || config.minify?.syntax,\n" \ + " outbase: config.root,\n" \ + " platform: config.target === 'bun' ? 'node' : config.target,\n" \ + " root: undefined,\n" \ + " },\n" \ + " esbuild: {},\n" \ " });\n" \ "\n" \ " if (setupResult && @isPromise(setupResult)) {\n" \ diff --git a/src/bun.js/builtins/cpp/BundlerPluginBuiltins.h b/src/bun.js/builtins/cpp/BundlerPluginBuiltins.h index 91b3233f2..d1fdaf4ec 100644 --- a/src/bun.js/builtins/cpp/BundlerPluginBuiltins.h +++ b/src/bun.js/builtins/cpp/BundlerPluginBuiltins.h @@ -65,7 +65,7 @@ extern const JSC::ImplementationVisibility s_bundlerPluginRunOnLoadPluginsCodeIm #define WEBCORE_FOREACH_BUNDLERPLUGIN_BUILTIN_DATA(macro) \ macro(runOnResolvePlugins, bundlerPluginRunOnResolvePlugins, 5) \ - macro(runSetupFunction, bundlerPluginRunSetupFunction, 1) \ + macro(runSetupFunction, bundlerPluginRunSetupFunction, 2) \ macro(runOnLoadPlugins, bundlerPluginRunOnLoadPlugins, 4) \ #define WEBCORE_BUILTIN_BUNDLERPLUGIN_RUNONRESOLVEPLUGINS 1 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)) { |