github Nick2bad4u/eslint-plugin-typefest v1.2.2

latest releases: v1.2.4, v1.2.3
13 days ago

[1.2.2] - 2026-04-18

598adda...c99ef2a

✨ Features

  • b9c3d9a — ✨ feat(rules): add 6 new rules for type-fest v5.6 and ts-extras v1.0 (R097–R102)

New rules:

  • ✨ prefer-type-fest-absolute (R097): replace Abs/AbsoluteValue with Absolute
  • ✨ prefer-type-fest-non-nullable-deep (R098): replace DeepNonNullable with NonNullableDeep
  • ✨ prefer-type-fest-union-length (R099): replace UnionToTuple['length'] with UnionLength
  • ✨ prefer-ts-extras-assert-never (R100): replace manual never checks with assertNever()
  • ✨ prefer-ts-extras-is-property-defined (R101): replace filter !== undefined callbacks with isPropertyDefined()
  • ✨ prefer-ts-extras-is-property-present (R102): replace filter != null callbacks with isPropertyPresent()

Each rule ships with:

  • 📝 Rule source with autofix or hasSuggestions support
  • 🧪 RuleTester test coverage including fixer output and fast-check parse-safety guards
  • 📁 Valid/invalid typed fixture files
  • 📖 Docs page with correct catalog ID placement and required heading structure
  • 🗂️ Registration in rules-registry and rule-catalog (R097–R102)
  • 🔧 Preset membership (recommended, strict, all, type-fest/types, ts-extras/type-guards as appropriate)

Also:

  • 🔄 Sync README rules table and presets matrix with new rules
  • 📸 Update Vitest snapshots (docs-heading, plugin-contract, rule-metadata, readme-rules-section)
  • 🔐 Switch Codecov uploads in ci.yml and codecov.yml from CODECOV_TOKEN to OIDC (use_oidc: true + id-token: write)

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

📦 Dependencies

  • d10b1da — ⬆️ [chore] Upgrade eslint and stylelint-config-inspector dependencies

  • [dependency] Update eslint ^10.2.1

  • Update stylelint-config-inspector from ^2.1.0 to ^2.1.1

  • Adjust peer dependency for eslint to ^9.0.0 || ^10.2.1

  • Remove size-limit configuration from package.json

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 993cb97 — ⬆️ [chore] Upgrade dependencies for TypeScript and related packages

  • [dependency] Update TypeScript version 6.0.3

  • Update ts-extras to version 1.0.0

  • Upgrade type-fest to version 5.6.0

  • Update fast-check to version 4.7.0

  • Upgrade stylelint-config-inspector to version 2.1.0

  • Update stylelint-plugin-docusaurus to version 1.0.2

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 8c06554 — ⬆️ [chore] [dependency] Update dev deps and configure new stylelint rules

⬆️ [chore] Upgrade dev dependencies to latest versions

  • @vitest/eslint-plugin: ^1.6.15 → ^1.6.16

  • eslint-plugin-case-police: ^2.2.0 → ^2.2.1

  • eslint-plugin-stylelint-2: ^1.0.11 → ^1.0.13

  • eslint-plugin-typefest: ^1.2.0 → ^1.2.1

  • postcss: ^8.5.9 → ^8.5.10

  • prettier: ^3.8.2 → ^3.8.3

  • stylelint: ^17.7.0 → ^17.8.0

🔧 [chore] (stylelint) Disable new rules from stylelint/plugin upgrades

  • @stylistic/no-multiple-whitespaces: null (handled by Prettier)

  • defensive-css/no-unsafe-clamp-font-size: null

  • defensive-css/no-unsafe-will-change: null

  • defensive-css/no-user-select-none: null

  • defensive-css/require-at-layer: null

  • defensive-css/require-forced-colors-focus: null

  • defensive-css/require-pure-selectors: null

  • defensive-css/require-system-font-fallback: null

  • order/custom-properties-alphabetical-order: null (handled by Prettier)

✨ [chore] (stylelint) Enable new rules from stylelint/plugin upgrades

  • property-layout-mappings: "flow-relative"

  • relative-selector-nesting-notation: "explicit"

  • selector-no-deprecated: true

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

  • 598adda — ⬆️ [chore] [dependency] Update dev deps and configure new stylelint rules

⬆️ [chore] Upgrade dev dependencies to latest versions

  • @vitest/eslint-plugin: ^1.6.15 → ^1.6.16

  • eslint-plugin-case-police: ^2.2.0 → ^2.2.1

  • eslint-plugin-stylelint-2: ^1.0.11 → ^1.0.13

  • eslint-plugin-typefest: ^1.2.0 → ^1.2.1

  • postcss: ^8.5.9 → ^8.5.10

  • prettier: ^3.8.2 → ^3.8.3

  • stylelint: ^17.7.0 → ^17.8.0

🔧 [chore] (stylelint) Disable new rules from stylelint/plugin upgrades

  • @stylistic/no-multiple-whitespaces: null (handled by Prettier)

  • defensive-css/no-unsafe-clamp-font-size: null

  • defensive-css/no-unsafe-will-change: null

  • defensive-css/no-user-select-none: null

  • defensive-css/require-at-layer: null

  • defensive-css/require-forced-colors-focus: null

  • defensive-css/require-pure-selectors: null

  • defensive-css/require-system-font-fallback: null

  • order/custom-properties-alphabetical-order: null (handled by Prettier)

✨ [chore] (stylelint) Enable new rules from stylelint/plugin upgrades

  • property-layout-mappings: "flow-relative"

  • relative-selector-nesting-notation: "explicit"

  • selector-no-deprecated: true

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

🧹 Chores

  • c99ef2a — Release v1.2.2

  • 36f103b — 🧹 [chore] Updates lint tooling and styles

  • 🎨 Extracts reusable CSS custom properties for homepage sections, cards, and stats blocks to improve consistency and theme flexibility.

  • 🔧 Upgrades lint-related dependencies and switches to the newer Docusaurus stylelint ruleset for better compatibility with current tooling.

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

👷 CI/CD

  • 7a5f9d4 — 👷 [ci] Add Codecov integration and update CI configuration

  • Introduced CODECOV_TOKEN environment variable for Codecov uploads.

  • Added step to upload bundle analysis to Codecov for improved coverage tracking.

  • Updated CI steps to include conditional upload based on environment variables.

🧹 [chore] Update package.json and package-lock.json for size-limit

  • Added size-limit as a dependency and configured size limits for ESM and CJS bundles.

  • Updated package-lock.json to reflect new dependencies and their versions.

Signed-off-by: Nick2bad4u 20943337+Nick2bad4u@users.noreply.github.com

Don't miss a new eslint-plugin-typefest release

NewReleases is sending notifications on new releases.