Skip to content

refactor: simplify schema property filtering with class-based approach - #1

Merged
PVinaches merged 1 commit into
PVinaches:filter-improve-backportfrom
lordrip:chore/simplify-get-filtered-properties
Jul 30, 2026
Merged

refactor: simplify schema property filtering with class-based approach#1
PVinaches merged 1 commit into
PVinaches:filter-improve-backportfrom
lordrip:chore/simplify-get-filtered-properties

Conversation

@lordrip

@lordrip lordrip commented Jul 30, 2026

Copy link
Copy Markdown

Context

Replace functional implementation with SchemaPropertyFilter class for better code organization and maintainability.

Changes

  • Rename get-filtered-properties.ts → SchemaPropertyFilter.ts
  • Convert from functional to class-based static methods
  • Add type guards (hasNestedProperties, hasArrayItemProperties, isMatchablePrimitive)
  • Extract helper methods for better separation of concerns:
    • matchesKeyOrTitle() - centralized key/title matching
    • matchesModelValue() - value-based matching logic
    • getNestedModelSlice() - type-safe model extraction for objects
    • getArrayModelSlice() - type-safe model extraction for arrays
    • filterObjectProperty() - dedicated object filtering
    • filterArrayProperty() - dedicated array filtering
    • matchesPrimitiveProperty() - primitive property matching
  • Improve documentation with JSDoc comments
  • Enhance type safety throughout the implementation
  • Maintain all existing functionality and test coverage

The new structure makes the code more maintainable by breaking down complex logic into focused, well-documented methods while preserving the original filtering behavior.

Replace functional implementation with SchemaPropertyFilter class for better
code organization and maintainability.

Changes:
- Rename get-filtered-properties.ts → SchemaPropertyFilter.ts
- Convert from functional to class-based static methods
- Add type guards (hasNestedProperties, hasArrayItemProperties, isMatchablePrimitive)
- Extract helper methods for better separation of concerns:
  - matchesKeyOrTitle() - centralized key/title matching
  - matchesModelValue() - value-based matching logic
  - getNestedModelSlice() - type-safe model extraction for objects
  - getArrayModelSlice() - type-safe model extraction for arrays
  - filterObjectProperty() - dedicated object filtering
  - filterArrayProperty() - dedicated array filtering
  - matchesPrimitiveProperty() - primitive property matching
- Improve documentation with JSDoc comments
- Enhance type safety throughout the implementation
- Maintain all existing functionality and test coverage

The new structure makes the code more maintainable by breaking down complex
logic into focused, well-documented methods while preserving the original
filtering behavior.
@PVinaches
PVinaches merged commit b40e2f8 into PVinaches:filter-improve-backport Jul 30, 2026
0 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants