Repository navigation
v3.1.0
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-querywithprefer-single-world-query-in-jecs, with no compatibility alias; changesmall-rules/prefer-single-world-querytosmall-rules/prefer-single-world-query-in-jecsin your Oxlint configuration - by @howmanysmall in #66
🚀 Added
- no-discarded-rejection: Reports empty or
undefined-returning.catch()handlers on provable native Promises, such asPromise.resolve(value).catch(() => undefined), while leaving custom Promise-like values, handlers that record or rethrow failures, and shadowedundefinedalone - by @howmanysmall in #66 - no-has-before-remove-in-jecs: Reports a matching
World.has(entity, Component)guard aroundWorld.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 examplequery(Visual, Transform)becomesquery(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
MapandSetand autofixes them totable.clone(source), while skipping weak collections, opaque iterables, filtered or transformed copies, and shadowedtable- by @howmanysmall in #66
🐞 Fixed
- require-safety-comment-for-type-assertion: Matches described
oxlint-disable,oxlint-disable-line, andoxlint-disable-next-linedirectives against the type-assertion syntax whenoxlint-tsgolintis7.0.2002or newer, while retaining enclosing-statement matching for older versions; the version can come fromsettings["small-rules"].tsgolintVersionor project metadata - by @howmanysmall in #64
Full Changelog: v3.0.2...v3.1.0