Commit Graph

12 Commits

Author SHA1 Message Date
Mads Navntoft 436aa0401d PoC: switch esbuild bundles to ESM with code splitting + minify
Bundles each entry point as ESM with esbuild's splitting:true so
shared transitive dependencies (Azure storage, undici, octokit, ...)
live in shared chunk files under lib/chunks/ instead of being
duplicated into every entry bundle.

A small banner is injected so bundled CommonJS deps that call
require(), __filename or __dirname at runtime still work. A
lib/package.json with { "type": "module" } is written by the build
so the bundles can keep the .js extension while being loaded as ESM
by Node; this scope avoids touching the tsc output in build/ and the
action.yml entrypoints stay unchanged.

On a measured tar.gz of the working tree this takes the repo from
~9.5 MB to ~2.6 MB compressed (lib/ alone: 8.0 MB -> 0.7 MB).
2026-05-14 14:43:23 +02:00
Michael B. Gale f98bf5e347 Output relative to __dirname 2026-03-27 19:21:14 +00:00
Michael B. Gale 4ed3c0efe6 Generate esbuild metadata file 2026-03-27 17:54:29 +00:00
Michael B. Gale ea703668e0 Avoid bundling package.json
- `package.json` is bundled by `esbuild` because we depend on it in `actions-util.ts`
- That is so we can access the `version` property
- We now use `build.mjs` to define a constant for it instead
- We also set this constant in `ava.setup.mjs` for tests
- This reduces the size of the generated `.js` files and avoids changing them entirely in some cases
2026-03-12 18:55:03 +00:00
Henry Mercer d2dfa8cd83 Check in precompiled upload-lib.ts for testing environments 2025-08-27 10:59:27 +01:00
Henry Mercer d7c164044b Avoid automatic semicolon insertion
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-08-22 13:15:30 +01:00
Henry Mercer ca5a69b702 Specify esbuild target 2025-08-22 13:05:44 +01:00
Henry Mercer e274fb816f Implement clean and copy as custom plugins 2025-08-22 13:04:36 +01:00
Henry Mercer 8a3bfe665b Transpile separately in both build and test steps
This means we avoid doing a type checking pass twice
2025-08-22 12:31:57 +01:00
Henry Mercer 786d3aa219 Remove unused import in build script
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-08-21 16:47:09 +01:00
Henry Mercer 3e725de0bb Copy defaults.json to lib 2025-08-21 14:30:46 +01:00
Henry Mercer fee3663b18 Bundle Actions using esbuild 2025-08-21 13:38:56 +01:00