Repository navigation
feat: migrate to ESM + yeoman-generator ^8 + Jest->Vitest (APPBLD-4615) - #88
Merged
AnujVishwakarma-src merged 2 commits intoSep 15, 2026
Conversation
This was referenced Sep 11, 2026
Merged
BREAKING CHANGE: package is now ESM ("type": "module") — consumers must import it via ESM.
- Converts all source (index + lib) from CommonJS to native ESM.
- Bumps yeoman-generator ^5.5.2 -> ^8 (ESM-only), which drops the deprecated
glob/npmlog/inflight/rimraf/gauge/are-we-there-yet cluster from the production
tree (verified: `npm ls --omit=dev` clean).
- Migrates the test suite from Jest to Vitest, coverage preserved at 100%
(76 tests / 7 suites; statements/branches/functions/lines all 100%).
- Template payloads under lib/common-templates/* are intentionally left as-is
(emitted verbatim into scaffolded apps).
Part of the Track B generator ESM migration; this is the hub every other
app-builder generator extends, so it lands first.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
AnujVishwakarma-src
force-pushed
the
APPBLD-4615-generator-app-common-lib-esm
branch
from
September 15, 2026 07:40
3033cf3 to
e92519c
Compare
AnujVishwakarma-src
marked this pull request as ready for review
September 15, 2026 07:41
aroragarvit666-hue
approved these changes
Sep 15, 2026
aroragarvit666-hue
left a comment
Collaborator
There was a problem hiding this comment.
LGTM. Please publish as major version.
aroragarvit666-hue
approved these changes
Sep 15, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Track B — generator ESM migration (APPBLD-4615), hub / pilot
generator-app-common-libis the base every app-builder generator extends, so it migrates first. This bumpsyeoman-generator ^5.5.2 -> ^8(ESM-only), which is what actually clears the deprecatedglob/npmlog/inflight/rimraf/gauge/are-we-there-yetcluster from the aio-cli production tree.What changed
index.js+ all oflib/):require->import(extensions added),module.exports->export,__dirnameviaimport.meta.url. Template payloads underlib/common-templates/*are intentionally left as-is (emitted verbatim into scaffolded user apps).yeoman-generator ^5.5.2 -> ^8(ESM-only). Verified the baseGeneratorAPI used here (option/prompt/destinationPath/templatePath/optionsHelp) is unchanged on v8.@adobe/aio-lib-imsis default-imported (namedgetTokenisn't exposed under ESM); the deep@adobe/aio-lib-ims/src/contextimport now carries the.jsextension.Validation
npm run lintclean (swappedeslint-plugin-jest->standard+ explicit test globals).npm ls --omit=devshows none of glob/npmlog/inflight/rimraf/gauge);yeoman-generator@8.4.0resolved.utilstest relied on CJS sloppy-mode silently no-op'ing a property write onto a string; under ESM strict mode that throws, so the test mock now feeds realistic YAML (assertion + coverage unchanged).