Skip to content

v3.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 17:46
· 459 commits to main since this release

v3.1.0: New Jecs and Promise diagnostics

v3.1.0 adds four diagnostics for Promise rejection handling, Jecs component operations and queries, and native Roblox collection copies. It also updates assertion-comment matching for oxlint-tsgolint 7.0.2002 and moves the existing Jecs query rule to its new public name.

⚠️ Breaking Changes

  • prefer-single-world-query-in-jecs: Replaces the public rule key prefer-single-world-query with prefer-single-world-query-in-jecs, with no compatibility alias; change small-rules/prefer-single-world-query to small-rules/prefer-single-world-query-in-jecs in your Oxlint configuration - by @howmanysmall in #66

🚀 Added

  • no-discarded-rejection: Reports empty or undefined-returning .catch() handlers on provable native Promises, such as Promise.resolve(value).catch(() => undefined), while leaving custom Promise-like values, handlers that record or rethrow failures, and shadowed undefined alone - by @howmanysmall in #66
  • no-has-before-remove-in-jecs: Reports a matching World.has(entity, Component) guard around World.remove(entity, Component) because Jecs handles absent components, and autofixes stable calls to the direct removal - by @howmanysmall in #66
  • prefer-membership-filter-in-jecs: Reports queried Jecs components whose values are not consumed and moves them into .with(...), for example query(Visual, Transform) becomes query(Visual).with(Transform); it leaves stored queries, rest bindings, and side-effect-sensitive expressions unchanged - by @howmanysmall in #66
  • prefer-native-collection-copy: Reports proven shallow-copy loops for Map and Set and autofixes them to table.clone(source), while skipping weak collections, opaque iterables, filtered or transformed copies, and shadowed table - by @howmanysmall in #66

🐞 Fixed

  • require-safety-comment-for-type-assertion: Matches described oxlint-disable, oxlint-disable-line, and oxlint-disable-next-line directives against the type-assertion syntax when oxlint-tsgolint is 7.0.2002 or newer, while retaining enclosing-statement matching for older versions; the version can come from settings["small-rules"].tsgolintVersion or project metadata - by @howmanysmall in #64

Full Changelog: v3.0.2...v3.1.0