Comparison operators available to conditional style rules (styleRules[].when.operator).
Single declaration (S5 backlog B.2). This table used to exist twice — once as
GeoJSONShared.STYLE_OPERATORS (shared.ts) and once as a module-local
DEFAULT_STYLE_OPERATORS in style-resolver.ts, described there as a "fallback when
GeoJSONShared is not yet loaded". The two were byte-for-byte equivalent across all 16
operators, and the duplication was a real hazard: adding an operator to one silently
gave different behaviour depending on which one a call site resolved.
The fallback itself is kept — style-resolver.ts reads
GeoJSONShared?.STYLE_OPERATORS ?? STYLE_OPERATORS — but both branches now point at
THIS object. The optional chain guards against a test that mocks GeoJSONShared with a
partial object, not against a load-order problem (style-resolver.ts imports shared.ts
statically, so it is always evaluated first).
⚠️ Weigh that sentence correctly: style-resolver.ts is outside every shipped graph
(its own header carries the measured verdict), so the reader described above exists in
the repository and its tests, never in a deliverable. THIS table, by contrast, is alive
in the bundle — the style schema's operator enum is checked against it.
This module deliberately imports nothing: it is depended on by both sides, so any import
here could reintroduce a cycle.
Comparison operators available to conditional style rules (
styleRules[].when.operator).Single declaration (S5 backlog B.2). This table used to exist twice — once as
GeoJSONShared.STYLE_OPERATORS(shared.ts) and once as a module-localDEFAULT_STYLE_OPERATORSin style-resolver.ts, described there as a "fallback when GeoJSONShared is not yet loaded". The two were byte-for-byte equivalent across all 16 operators, and the duplication was a real hazard: adding an operator to one silently gave different behaviour depending on which one a call site resolved.The fallback itself is kept —
style-resolver.tsreadsGeoJSONShared?.STYLE_OPERATORS ?? STYLE_OPERATORS— but both branches now point at THIS object. The optional chain guards against a test that mocksGeoJSONSharedwith a partial object, not against a load-order problem (style-resolver.ts imports shared.ts statically, so it is always evaluated first).⚠️ Weigh that sentence correctly:
style-resolver.tsis outside every shipped graph (its own header carries the measured verdict), so the reader described above exists in the repository and its tests, never in a deliverable. THIS table, by contrast, is alive in the bundle — the style schema's operator enum is checked against it.This module deliberately imports nothing: it is depended on by both sides, so any import here could reintroduce a cycle.