Rules Hub
Code Ruleset
← Back to all rules
Rule priority, scope & exceptions
Use this to align rules with the senior-level structure (P0/P1/P2, scope, exceptions/tradeoffs).
backend ruleP2universalStack: typescript
performancecollectionsreadabilityordering
Filter a collection before mapping it
Apply filter prior to map so you only transform the items you keep, avoiding wasted work.
PR: vinify-backend · org-mining-deep-2026-06Created: Jun 17, 2026
Bad example
Old codetypescript
| 1 | items.map(toDto).filter(d => d.active); |
Explanation (EN)
A pure expensive transformation is wasted on items already known to be excluded.
Objašnjenje (HR)
Good example
New codetypescript
| 1 | items.filter(i => i.active).map(toDto); |
Explanation (EN)
Objašnjenje (HR)
Notes (EN)
Filter raw items first only when the predicate is equivalent before transformation and the mapper is pure with no required effects for discarded records.
Exceptions / Tradeoffs (EN)
Mapping may derive the field being filtered, normalize invalid values or intentionally produce side effects/errors. Moving the filter can change results and evaluation order.