Migrate to ESM with esbuild/vitest and upgrade to node24 (#260)
Some checks failed
Run prettify / Prettier Check (push) Has been cancelled
Run unit tests. / build (macos-latest) (push) Has been cancelled
Run unit tests. / build (ubuntu-24.04-arm) (push) Has been cancelled
Run unit tests. / build (ubuntu-latest) (push) Has been cancelled
Run unit tests. / build (windows-11-arm) (push) Has been cancelled
Run unit tests. / build (windows-latest) (push) Has been cancelled

- Add "type": "module" to package.json for ESM support
- Replace ncc with esbuild for bundling (with createRequire banner for CJS compat)
- Replace jest/ts-jest with vitest for testing
- Upgrade @actions/core to ^3.0.0, @actions/exec to ^3.0.0, @actions/io to ^3.0.2, @actions/tool-cache to 4.0.0 (ESM-only versions)
- Update tsconfig.json to use NodeNext module resolution
- Convert all tests to use vi.mock() factory pattern for ESM-only module compatibility
- Update action.yml runtime from node20 to node24
- Bump version from 4.3.1 to 5.0.0 (major version bump for breaking node runtime change)
This commit is contained in:
David Gamero 2026-03-24 13:46:19 -04:00 committed by GitHub
parent 3894c84c36
commit 1e2e44e1bc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 1682 additions and 4424 deletions

View file

@ -5,31 +5,31 @@
"description": "Setup helm",
"author": "Anumita Shenoy",
"license": "MIT",
"type": "module",
"dependencies": {
"@actions/core": "^2.0.2",
"@actions/exec": "^2.0.0",
"@actions/io": "^2.0.0",
"@actions/tool-cache": "3.0.0",
"@actions/core": "^3.0.0",
"@actions/exec": "^3.0.0",
"@actions/io": "^3.0.2",
"@actions/tool-cache": "4.0.0",
"@octokit/action": "^8.0.4",
"semver": "^7.7.3"
},
"main": "lib/index.js",
"scripts": {
"build": "ncc build src/index.ts -o lib",
"test": "jest",
"test-coverage": "jest --coverage",
"build": "tsc --noEmit && esbuild src/index.ts --bundle --platform=node --target=node20 --format=esm --outfile=lib/index.js --banner:js=\"import { createRequire } from 'module';const require = createRequire(import.meta.url);\"",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test-coverage": "vitest run --coverage",
"format": "prettier --write .",
"format-check": "prettier --check .",
"prepare": "husky"
},
"devDependencies": {
"@types/jest": "^30.0.0",
"@types/node": "^25.0.9",
"@vercel/ncc": "^0.38.4",
"esbuild": "^0.27",
"husky": "^9.1.7",
"jest": "^30.2.0",
"prettier": "^3.8.0",
"ts-jest": "^29.4.6",
"typescript": "^5.9.3"
"typescript": "^5.9.3",
"vitest": "^4"
}
}