Skip to content

knip: resolve remaining unused-export and duplicate-export warnings (Phase 6) #366

@phillipc

Description

@phillipc

bun run knip currently exits with code 1 due to unresolved warnings that were
not addressed when knip was introduced (see plans/knip.md, Phase 5). The
findings were intentionally deferred to Phase 6, after the previous attempt in
#234 mixed the linter setup with code changes across 56 files and had to be
reverted.

This issue tracks the remaining cleanup, to be addressed in separate, focused
PRs (one category at a time).

Current findings

bun run knip output:

Unused exports (9)

  • getObservable — packages/computed/src/proxy.ts:91
  • peek — packages/computed/src/proxy.ts:94
  • isProxied — packages/computed/src/proxy.ts:97
  • notify — packages/observable/src/extenders.ts:39
  • deferred — packages/observable/src/extenders.ts:46
  • rateLimit — packages/observable/src/extenders.ts:55
  • innerParse — packages/provider.mustache/src/mustacheParser.ts:72
  • parseOuterMatch — packages/provider.mustache/src/mustacheParser.ts:84
  • JsxObserver — packages/utils.jsx/src/JsxObserver.ts:55

Unused exported types (19)

  • BindingHandlerControlsDescendant — packages/bind/src/BindingHandler.ts:6
  • BindingHandlerAddBinding — packages/bind/src/BindingHandler.ts:7
  • RenderStatusKeys — packages/binding.if/src/ConditionalBindingHandler.ts:12
  • Utils — packages/builder/src/Builder.ts:106
  • ComputedFunctions — packages/computed/src/computed.ts:47
  • PureComputed — packages/computed/src/computed.ts:60
  • ComputedReadFunction — packages/computed/src/computed.ts:62
  • ComputedWriteFunction — packages/computed/src/computed.ts:67
  • MaybeComputed — packages/computed/src/computed.ts:68
  • ComputedOptions — packages/computed/src/computed.ts:70
  • BaseExtendersType — packages/observable/src/extenders.ts:75
  • MaybeObservable — packages/observable/src/observable.ts:16
  • MaybeObservableArray — packages/observable/src/observableArray.ts:15
  • BindingAccessors — packages/provider/src/Provider.ts:17
  • OperatorFunction — packages/utils.parser/src/operators.ts:19
  • OperatorWithProperties — packages/utils.parser/src/operators.ts:21
  • Operators — packages/utils.parser/src/operators.ts:26
  • CustomBindingGlobalProperties — packages/utils/src/options.ts:4
  • BindingStringPreparsersFunction — packages/utils/src/options.ts:8

Duplicate exports (2)

  • JsxObserver|default — packages/utils.jsx/src/JsxObserver.ts
  • isStartComment|hasBindingValue — packages/utils/src/dom/virtualElements.ts

Configuration hints (1)

  • @vitest/browser — knip.json: remove from ignoreDependencies

Context

These warnings were already cleaned up once in #234, but that PR was reverted
because it bundled the knip introduction with the cleanup (and additional
unrelated changes like verbatimModuleSyntax and type refactoring) in a
single 56-file diff. The current plan (plans/knip.md) splits the work:

  • Phase 5 (done): add knip.json, bun run knip script, CI wiring
  • Phase 6 (this issue): fix findings in focused, per-category PRs

#234 is a useful reference for the cleanup itself — most of these symbols
were removed there and can be removed the same way now, just split across
smaller PRs.

Suggested PR breakdown

  1. Remove or annotated with internal unused exports (9 symbols)
  2. Remove unused exported types (19 symbols)
  3. De-duplicate the 2 duplicate exports
  4. Remove @vitest/browser from knip.json ignoreDependencies

Each PR should keep bun run verify green and avoid touching unrelated
behavior. Public-API-touching removals need a changeset.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions