-
Notifications
You must be signed in to change notification settings - Fork 29
chore: fix CommonJS remnants in ESM codebase #1020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Should we add a |
|
@FabienMotte Done! Added The |
FabienMotte
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
a9240b0 to
5928c5a
Compare
edd2c07 to
c670ac5
Compare
Update build tooling for shipjs-lib: - rollup: 2.14.0 → 4.34.8 - rollup-plugin-commonjs → @rollup/[email protected] - rollup-plugin-node-resolve → @rollup/[email protected] Updated rollup.config.js to use the new scoped plugin packages and createRequire for JSON imports (ESM compatible). Co-Authored-By: Claude Opus 4.5 <[email protected]>
Update linting tooling: ESLint: - eslint: 7.2.0 → 8.57.1 - eslint-config-algolia: 16.0.0 → 20.0.0 - eslint-config-prettier: 6.11.0 → 8.10.0 - eslint-plugin-import: 2.20.2 → 2.31.0 - eslint-plugin-jest: 23.13.2 → 27.9.0 - eslint-plugin-prettier: 3.1.3 → 4.2.1 - eslint-plugin-jsdoc: added 46.10.1 Parser: - babel-eslint → @babel/[email protected] Updated .eslintrc.cjs to use @babel/eslint-parser and disable removed/incompatible rules. Note: Prettier remains at 2.x due to ESM compatibility issues with Jest. Prettier 3.x upgrade can be done in a future PR. Co-Authored-By: Claude Opus 4.5 <[email protected]>
Auto-fixed lint errors from ESLint 8 stricter rules: - import/order: Sorted imports by group (builtin, external, internal) - import/newline-after-import: Added newlines after imports - no-else-return: Removed unnecessary else after return - jest/prefer-to-be: Use toBe/toBeNull for primitive checks Also fixed a buggy mock in updateVersionMonorepo.spec.js that was attempting to spy on a non-existent property. Co-Authored-By: Claude Opus 4.5 <[email protected]>
5928c5a to
46a1406
Compare
Update testing and transpilation tooling: Jest ecosystem: - jest: 26.0.1 → 29.7.0 - babel-jest: 26.0.1 → 29.7.0 - jest-watch-typeahead: 0.6.0 → 2.2.2 Babel ecosystem (required for Jest 29 compatibility): - @babel/core: 7.10.2 → 7.26.9 - @babel/preset-env: 7.10.2 → 7.26.9 - @babel/plugin-transform-runtime: 7.10.1 → 7.26.9 - @babel/runtime: ^7.6.3 → ^7.28.6 Co-Authored-By: Claude Opus 4.5 <[email protected]>
- Convert require() to dynamic import() in updateChangelog.js - Replace .toString() with 'utf-8' encoding parameter in readFileSync calls - Fix 'require' to 'import' in updateChangelog.spec.js Co-Authored-By: Claude Opus 4.5 <[email protected]>
Exclude test directories from security-focused rules. Tests legitimately use dynamic paths (e.g., __dirname + path.resolve) to load fixtures, which triggers false positive "path injection" warnings. Co-Authored-By: Claude Opus 4.5 <[email protected]>
c670ac5 to
c2deda9
Compare
2a79787 to
4be773b
Compare
Summary
require()to dynamicimport()inupdateChangelog.jsfor config loading.toString()with'utf-8'encoding parameter inreadFileSync()calls across the codebaserequire('path')toimport path from 'path'inupdateChangelog.spec.jsFiles changed
shipjs-lib:
src/lib/util/updateVersion.js- use'utf-8'encodingshipjs:
src/step/prepare/updateChangelog.js- convertrequire()to dynamicimport()src/step/prepare/__tests__/updateChangelog.spec.js- convertrequiretoimportsrc/helper/extractSpecificChangelog.spec.js- remove unusedimport.meta.urlimportsrc/helper/dependencyUpdater.js- use'utf-8'encodingsrc/helper/getChangelog.js- use'utf-8'encodingsrc/helper/runPrettier.js- use'utf-8'encodingsrc/step/setup/addDevDependencies.js- use'utf-8'encodingsrc/step/setup/addScriptsToPackageJson.js- use'utf-8'encodingsrc/step/setup/addShipConfig.js- use'utf-8'encodingsrc/step/setup/askQuestions.js- use'utf-8'encoding