Skip to content

@kekkai/blueprint / EmitLintOptions

Interface: EmitLintOptions

Defined in: emit/lint/types.ts:41

Caller-supplied wiring for emitLint — kept injectable so the library stays zero-dependency.

Properties

imports?

optional imports?: Plugin

Defined in: emit/lint/types.ts:86

The eslint-plugin-import-x plugin. Carrier for importBlock (import-x/first + import-x/no-duplicates) — nothing in ESLint core or @stylistic merges duplicate imports, and both mistakes are ones an agent editing incrementally makes routinely. Without this, the gate emits nothing.

-x rather than eslint-plugin-import, whose peer range stops at ESLint 9 (field issue #37) — it cannot be installed at all on the ESLint 10 baseline this package now targets.

It replaced eslint-plugin-import-lite, which was chosen when the baseline still included repos that import-x could not install into: it peers on @typescript-eslint/utils@^8.56 for its resolvers, and a repo pinned below that failed adoption outright (field issue #41). On an ESLint 10 baseline that repo does not exist — nothing resolves ESLint 10 while holding typescript-eslint below 8.56 — so the trade reverses: the resolvers stop being dead weight and become the reason to take it.

What they buy is the whole-graph family import-lite structurally could not carry, no-cycle above all. This package does not emit it: cycles are a graph property and inspect already walks that graph once, where a per-file rule re-walks it for every file. But a project that wants the cycle red at edit time can now reach for it without adding a plugin — see the gate catalog for the ignoreExternal setting that keeps the walk inside its own source.


stylistic?

optional stylistic?: Plugin

Defined in: emit/lint/types.ts:58

The @stylistic/eslint-plugin. Carrier for the shape family (codeStyle, statementsPerLine, statementPadding) — ESLint's own formatting rules were deprecated and frozen when it handed them to @stylistic, so emitting the core ids would ship rules slated for removal. Without this, all three gates emit nothing. codeStyle additionally needs the real plugin's configs.customize() factory.


typescript?

optional typescript?: Plugin

Defined in: emit/lint/types.ts:49

The @typescript-eslint plugin (e.g. tseslint.plugin). When provided, the unusedVars gate emits @typescript-eslint/no-unused-vars instead of core no-unused-vars, whose TS blind spots false-flag enum members and type parameters. Also the carrier for the explicitAny gate, which has no core twin at all — without this, that gate emits nothing.