fluentcart-mcp: TypeScript 7 - #125
Merged
Merged
Conversation
Checked the migration notes before touching anything, which mattered: 7.0.2 is npm latest, so it is a shipped release rather than the preview the December 2025 post described. The tsconfig change is one line. TypeScript 7 removes the ability to set esModuleInterop to false — the behaviour is always on now, so the option is simply deleted. Nothing else in the config was affected: target is already ES2023 rather than a removed es5, module resolution is already NodeNext rather than the deprecated node10, strict was already true, and there is no baseUrl. The three namespace imports in the codebase are used as namespaces rather than called, so the interop switch does not touch them. The real obstacle was not the config. TypeScript 7 removes the classic compiler API: the package exports only version.cjs from its entry, ships no lib/typescript.js at all, and offers ASTs solely through an unstable/ surface that has no createSourceFile and no ScriptTarget. Exactly one file needs it — live-test-honesty.test.mjs parses test sources to catch a silent prerequisite return — so it keeps a pinned 5.9.3 aliased as typescript-ast, with a comment saying why and what would retire it. Rewriting it against an API TypeScript itself labels unstable would trade a working test for a fragile one. Compiler on 7, one AST test on a pinned 5. Build, typecheck of src and tests, lint across 310 files, 2823 unit, 225 acceptance, 22 conformance runs, 194 routes, compatibility, and tooling back at its 404/405 baseline — the single failure being the stale gitignored dist-packages fixture. Contract and manifest regenerated for the changed dependency tree.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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.
Checked the migration notes before touching anything this time, and it mattered: 7.0.2 is npm
latest, so this is a shipped release, not the preview the December 2025 progress post described.The tsconfig part is one line
TypeScript 7 removes the ability to set
esModuleInteroptofalse— the behaviour is always on — so the option is deleted. That was the entireTS5108failure that got this rejected twice.Nothing else in the config was affected, checked against the removals rather than assumed:
--target es5removedES2023node10/noderesolution deprecatedNodeNext--stricton by defaulttrue--baseUrlremovedThe three
import * assites in the codebase are used as namespaces, never called, so the interop switch does not reach them.The real obstacle was not the config
TypeScript 7 removes the classic compiler API. The package exports only
version.cjsfrom its entry, ships nolib/typescript.jsat all, and offers ASTs solely through anunstable/surface with nocreateSourceFileand noScriptTarget.Exactly one file needs it:
live-test-honesty.test.mjs, which parses test sources to catch a silent prerequisite return — a test that exists to stop live tests quietly passing when their prerequisites are missing. It keeps a pinned 5.9.3 aliased astypescript-ast, with a comment stating why and what would retire it.Rewriting it against an API TypeScript itself labels
unstablewould trade a working test for a fragile one, on a surface that does not appear to support standalone parsing at all.So: compiler on 7, one AST test on a pinned 5.
Gates
build/typecheck/typecheck:testslintdist-packagesfixturerelease-contract.jsonandmanifest.jsonregenerated for the changed dependency tree — 291 tools, 20 categories, 25 advertised, all unchanged, andversions.jsonstill agrees.Still on 5.9.3
fchub-thank-you, where TypeScript 7 crashesvue-tscwithERR_PACKAGE_PATH_NOT_EXPORTEDon./lib/tsc— the same API removal, hitting a tool that has not caught up yet. That one is not ours to fix.