Skip to content

chore: typed flat eslint config and strict tsconfig - #27

Merged
gshteynardt merged 1 commit into
mainfrom
chore/strict-lint-and-tsconfig
Sep 9, 2026
Merged

chore: typed flat eslint config and strict tsconfig#27
gshteynardt merged 1 commit into
mainfrom
chore/strict-lint-and-tsconfig

Conversation

@gshteynardt

Copy link
Copy Markdown
Contributor

Replace eslint-config-oclif + Prettier with a typed flat ESLint config (typescript-eslint strictTypeChecked, @Stylistic, eslint-plugin-n, eslint-plugin-import-x), reformat the tree to match, and run lint with --max-warnings 0.

Modernize tsconfig: target es2024, module/moduleResolution nodenext, lib pinned to es2024 so DOM globals stay out of a CLI, plus noUncheckedIndexedAccess, exactOptionalPropertyTypes, verbatimModuleSyntax, erasableSyntaxOnly, isolatedModules and the noUnused*/noImplicit* family.

Raise engines.node to ^22 || >=24. Node 18 and 20 are past end-of-life, and >=18.0.0 was already inaccurate: open@11 needs Node 20+.

Validate argv in auth login (await this.parse) — unknown flags now fail with exit code 2 instead of being silently ignored.

88 remaining violations are suppressed inline, each marked "FIXME if you see this" for a follow-up pass.

The oclif manifest is unchanged against main: 73 commands with identical metadata, so no command, flag or output moved. 193 tests pass.

Replace eslint-config-oclif + Prettier with a typed flat ESLint config
(typescript-eslint strictTypeChecked, @Stylistic, eslint-plugin-n,
eslint-plugin-import-x), reformat the tree to match, and run lint with
--max-warnings 0.

Modernize tsconfig: target es2024, module/moduleResolution nodenext, lib
pinned to es2024 so DOM globals stay out of a CLI, plus
noUncheckedIndexedAccess, exactOptionalPropertyTypes, verbatimModuleSyntax,
erasableSyntaxOnly, isolatedModules and the noUnused*/noImplicit* family.

Raise engines.node to ^22 || >=24. Node 18 and 20 are past end-of-life,
and >=18.0.0 was already inaccurate: open@11 needs Node 20+.

Validate argv in auth login (await this.parse) — unknown flags now fail
with exit code 2 instead of being silently ignored.

88 remaining violations are suppressed inline, each marked
"FIXME if you see this" for a follow-up pass.

The oclif manifest is unchanged against main: 73 commands with identical
metadata, so no command, flag or output moved. 193 tests pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gshteynardt
gshteynardt force-pushed the chore/strict-lint-and-tsconfig branch from a700fef to 25aa2fd Compare September 9, 2026 14:51
@gshteynardt
gshteynardt merged commit cfa0b58 into main Sep 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant