Skip to content

v0.18.1

Latest

Choose a tag to compare

@ryansolid ryansolid released this 04 Oct 01:10

Bug-fix patch release. Thanks @thedanchez for the detailed reports (#233, #234, #235), @brenelz for #230, and @milomg for #228.

solid/reactivity

  • dynamic() sources from @solidjs/web are now tracked scopes, like createMemo — async sources included (#230 by @brenelz; fixes item 1 of #235).
  • Optional callback properties wrapped in a conditional or logical expression ({ onDrag: props.onDrag ? (e) => props.onDrag(e) : undefined }) now classify like the unconditional property form instead of reporting badUnnamedDerivedSignal (#235 item 2).
  • .then()/.catch()/.finally() callbacks are treated as called functions, like timer callbacks and code after await (#235 item 3).

solid/no-unused-signal

  • Function-form derived primitives (createSignal(fn), createStore(fn, seed)) are no longer reported as "never written" — they change through their source function (#234).
  • The export exemption now applies only to the exported declaration itself, so signals inside export function Component() {} are checked again; export const [a, setA] = createSignal(0) stays exempt (#234).

Types

  • Public exports are now assignable to ESLint's defineConfig() from eslint/config: the plugin's rules are declared with a loose structural type at the export boundary (mirroring typescript-eslint's workaround for typescript-eslint#11543), and configs validate against ESLint's own Linter.Config. Runtime unchanged; a type-level test now guards this in CI (#233).

eslint-solid-standalone

  • The Linter instance sets cwd: "/", needed by solid-playground (#228 by @milomg).