Merge pull request #16 from Vasanthdev2004/codex/fix-open-build-missing-stubs
fix: stub internal-only modules in open build
This commit is contained in:
@@ -65,6 +65,39 @@ const result = await Bun.build({
|
|||||||
{
|
{
|
||||||
name: 'bun-bundle-shim',
|
name: 'bun-bundle-shim',
|
||||||
setup(build) {
|
setup(build) {
|
||||||
|
const internalFeatureStubModules = new Map([
|
||||||
|
[
|
||||||
|
'../daemon/workerRegistry.js',
|
||||||
|
'export async function runDaemonWorker() { throw new Error("Daemon worker is unavailable in the open build."); }',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'../daemon/main.js',
|
||||||
|
'export async function daemonMain() { throw new Error("Daemon mode is unavailable in the open build."); }',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'../cli/bg.js',
|
||||||
|
`
|
||||||
|
export async function psHandler() { throw new Error("Background sessions are unavailable in the open build."); }
|
||||||
|
export async function logsHandler() { throw new Error("Background sessions are unavailable in the open build."); }
|
||||||
|
export async function attachHandler() { throw new Error("Background sessions are unavailable in the open build."); }
|
||||||
|
export async function killHandler() { throw new Error("Background sessions are unavailable in the open build."); }
|
||||||
|
export async function handleBgFlag() { throw new Error("Background sessions are unavailable in the open build."); }
|
||||||
|
`,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'../cli/handlers/templateJobs.js',
|
||||||
|
'export async function templatesMain() { throw new Error("Template jobs are unavailable in the open build."); }',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'../environment-runner/main.js',
|
||||||
|
'export async function environmentRunnerMain() { throw new Error("Environment runner is unavailable in the open build."); }',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'../self-hosted-runner/main.js',
|
||||||
|
'export async function selfHostedRunnerMain() { throw new Error("Self-hosted runner is unavailable in the open build."); }',
|
||||||
|
],
|
||||||
|
] as const)
|
||||||
|
|
||||||
// Resolve `import { feature } from 'bun:bundle'` to a shim
|
// Resolve `import { feature } from 'bun:bundle'` to a shim
|
||||||
build.onResolve({ filter: /^bun:bundle$/ }, () => ({
|
build.onResolve({ filter: /^bun:bundle$/ }, () => ({
|
||||||
path: 'bun:bundle',
|
path: 'bun:bundle',
|
||||||
@@ -78,6 +111,26 @@ const result = await Bun.build({
|
|||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
build.onResolve(
|
||||||
|
{ filter: /^\.\.\/(daemon\/workerRegistry|daemon\/main|cli\/bg|cli\/handlers\/templateJobs|environment-runner\/main|self-hosted-runner\/main)\.js$/ },
|
||||||
|
args => {
|
||||||
|
if (!internalFeatureStubModules.has(args.path)) return null
|
||||||
|
return {
|
||||||
|
path: args.path,
|
||||||
|
namespace: 'internal-feature-stub',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
)
|
||||||
|
build.onLoad(
|
||||||
|
{ filter: /.*/, namespace: 'internal-feature-stub' },
|
||||||
|
args => ({
|
||||||
|
contents:
|
||||||
|
internalFeatureStubModules.get(args.path) ??
|
||||||
|
'export {}',
|
||||||
|
loader: 'js',
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
// Resolve react/compiler-runtime to the standalone package
|
// Resolve react/compiler-runtime to the standalone package
|
||||||
build.onResolve({ filter: /^react\/compiler-runtime$/ }, () => ({
|
build.onResolve({ filter: /^react\/compiler-runtime$/ }, () => ({
|
||||||
path: 'react/compiler-runtime',
|
path: 'react/compiler-runtime',
|
||||||
|
|||||||
Reference in New Issue
Block a user