diff --git a/packages/backend-core/package.json b/packages/backend-core/package.json index 1d6aa5b9fd..970a4aab8d 100644 --- a/packages/backend-core/package.json +++ b/packages/backend-core/package.json @@ -6,7 +6,7 @@ "types": "dist/src/index.d.ts", "exports": { ".": "./dist/index.js", - "./tests": "./dist/tests.js", + "./tests": "./dist/tests/index.js", "./*": "./dist/*.js" }, "author": "Budibase", diff --git a/packages/backend-core/scripts/build.js b/packages/backend-core/scripts/build.js index bd00cbc7ff..8a15d09708 100644 --- a/packages/backend-core/scripts/build.js +++ b/packages/backend-core/scripts/build.js @@ -1,6 +1,21 @@ #!/usr/bin/node + const coreBuild = require("../../../scripts/build") coreBuild("./src/plugin/index.ts", "./dist/plugins.js") coreBuild("./src/index.ts", "./dist/index.js") -coreBuild("./tests/index.ts", "./dist/tests.js") + +const glob = require("glob") +const inputFiles = [ + ...glob.sync("./src/**/*.[tj]s", { nodir: true }), + ...glob.sync("./tests/**/*.[tj]s", { nodir: true }), +] + +const path = require("path") +for (const file of inputFiles) { + coreBuild(file, `./${path.join("dist", file.replace(/\.ts$/, ".js"))}`, { + skipMeta: true, + bundle: false, + forcedFormat: "cjs", + }) +} diff --git a/scripts/build.js b/scripts/build.js index 0175388051..8356f2e035 100755 --- a/scripts/build.js +++ b/scripts/build.js @@ -15,7 +15,7 @@ const { nodeExternalsPlugin } = require("esbuild-node-externals") var argv = require("minimist")(process.argv.slice(2)) -function runBuild(entry, outfile) { +function runBuild(entry, outfile, opts = { skipMeta: false, bundle: true }) { const isDev = process.env.NODE_ENV !== "production" const tsconfig = argv["p"] || `tsconfig.build.json` const tsconfigPathPluginContent = JSON.parse( @@ -36,12 +36,16 @@ function runBuild(entry, outfile) { ] } + const metafile = !opts.skipMeta + const { bundle } = opts + const sharedConfig = { entryPoints: [entry], - bundle: true, + bundle, minify: !isDev, sourcemap: isDev, tsconfig, + format: opts?.forcedFormat, plugins: [ TsconfigPathsPlugin({ tsconfig: tsconfigPathPluginContent }), nodeExternalsPlugin(), @@ -50,15 +54,10 @@ function runBuild(entry, outfile) { loader: { ".svelte": "copy", }, - metafile: true, - external: [ - "deasync", - "mock-aws-s3", - "nock", - "pino", - "koa-pino-logger", - "bull", - ], + metafile, + external: bundle + ? ["deasync", "mock-aws-s3", "nock", "pino", "koa-pino-logger", "bull"] + : undefined, } build({ @@ -77,10 +76,12 @@ function runBuild(entry, outfile) { ) }) - fs.writeFileSync( - `dist/${path.basename(outfile)}.meta.json`, - JSON.stringify(result.metafile) - ) + if (metafile) { + fs.writeFileSync( + `dist/${path.basename(outfile)}.meta.json`, + JSON.stringify(result.metafile) + ) + } }) }