How creativogee/masq works
Masq is a dependency-free TypeScript library for selecting and masking object fields and producing allow-listed query projections and relation joins. The main workflow is to parse a requested field mask, optionally validate it against an allow-list, then apply it to data; separate helpers turn field and relation specifications into query-builder descriptors. The runtime is contained in src/index.ts; the excerpts are partial, so links between unsampled helpers are shown only where documented.
Main entry points: index.ts applyMask
Components 19
Other components
- API consumer
- Object data
- Field spec
- Field allow-list
- parseFieldsSpec
src/index.ts - isValidMask
src/index.ts - applyMask
src/index.ts - applyFieldMask
src/index.ts - Filtered data
- parseFlatFieldsSpec
src/index.ts - SELECT columns
- Relation spec
- parseRelationsSpec
src/index.ts - Join descriptors
- Column projection
src/index.ts - projectRelation
src/index.ts - Relation allow-list
- Validated columns
- Validated joins
Connections 25
- API consumer → parseFieldsSpec: parses fields
- Field spec → parseFieldsSpec: supplies spec
- API consumer → isValidMask: validates mask
- parseFieldsSpec → isValidMask: provides mask
- Field allow-list → isValidMask: constrains fields
- API consumer → applyMask: requests filtering
- Field spec → applyMask: supplies mask
- applyMask → parseFieldsSpec: parses string
- applyMask → applyFieldMask: applies mask
- API consumer → applyFieldMask: applies parsed mask
- Object data → applyFieldMask: filters source
- applyFieldMask → Filtered data: returns subset
- API consumer → parseFlatFieldsSpec: requests paths
- Field spec → parseFlatFieldsSpec: supplies spec
- Field allow-list → parseFlatFieldsSpec: limits paths
- parseFlatFieldsSpec → SELECT columns: emits paths
- API consumer → parseRelationsSpec: requests joins
- Relation spec → parseRelationsSpec: supplies spec
- parseRelationsSpec → Join descriptors: emits descriptors
- API consumer → Column projection: requests projection
- Column projection → Validated columns: validates columns
- API consumer → projectRelation: requests projection
- Relation allow-list → projectRelation: constrains joins
- projectRelation → parseRelationsSpec: parses requested joins
- projectRelation → Validated joins: validates paths