v0.6.2
Patch Changes
-
ae4f87fThanks @kimjbstar! - No functional change -- dev-tooling only.- Removes
swagger-ui-expressandts-toolbeltfromdevDependencies: neither is imported
anywhere insrc/, andswagger-ui-expresswas pulling in a stale peer-dependency warning
on every install (unmet peer dependency "express"). - Adds a
test:coveragescript (jest --coverage) and scopescollectCoverageFromin
jest.config.jstosrc/**/*.ts(excluding specs,_gen, andbin.ts). CI now prints a
coverage summary to the job summary on the node-22 leg (once per run, not once per matrix
leg -- coverage doesn't vary by Node version).
- Removes
-
6f2100fThanks @kimjbstar! - Adds ESLint (flat config,typescript-eslint+eslint-config-prettierso it never fights
Prettier on style) and alintscript, wired into CI right aftertypecheck. Kept to
typescript-eslint'srecommendedrule set rather than a stricter/type-checked one --
tsconfig.jsonalready documentsstrict: falseas a deliberate, separately-scoped decision
(~60 pre-existing errors), and piling a stricter lint config on top of that today would just
be the same undertaking wearing a different hat.@typescript-eslint/no-explicit-anyis a
warning, not an error: this codebase'sDecoratorComponent/ImportComponentparams are
genuinely heterogeneous template-fill values (see CLAUDE.md's string-template-pipeline
description) -- forcing a type there wouldn't add real safety.Fixed everything the first
eslint srcrun actually flagged as an error (not a drive-by
sweep, just what the tool surfaced):- 3
letthat were never reassigned (prefer-const) - An unused
pascalCaseimport and an unusedoptionslocal - Two real
any-typed values found to always bestringin practice, now typed as such
(ImportComponent#add) - One real bug the loose typing was hiding:
GeneratorFormatNotValidError's constructor took
config: anybut calledsuper()with no arguments, so.messagewas always empty --
and the two real call sites (parseBoolean/parseNumberin util.ts) pass a formatted
string, not theDictionary<string>the class's own field type claimed. Now takes
message: stringand callssuper(message);handleGenerateErrorlogse.message
instead ofJSON.stringify(e.config), which used to just re-quote the same string.
eslint/typescript-eslint/@eslint/jsare pinned carefully for Node 18 (this repo's own
floor):eslint@^9.39.5(not the latest 10.x, which requires Node >=20.19) and
typescript-eslint@8.55.0exactly, no caret -- 8.56.0+ bumps a transitive
eslint-visitor-keysdependency to^5.0.0, which also requires Node >=20.19. Verified with
a cleanyarn install --frozen-lockfile+ typecheck/lint/build/test on real Node 18.20.8. - 3