P0 Performance Optimizations: - Add debounced search (300ms) to reduce re-renders during typing - Implement single-pass filter function for O(n) complexity - Add TanStack Query cancellation before new requests P1 Code Quality Optimizations: - Add runtime type guards for filter validation - Implement two derived values (filteredFonts + sortedFilteredFonts) - Remove all 'as any[]' casts from filter bridge - Add fast-path for default sorting (skip unnecessary operations) New Utilities: - debounce utility with 4 tests (all pass) - filterUtils with 15 tests (all pass) - typeGuards with 20 tests (all pass) - Total: 39 new tests Modified Files: - unifiedFontStore.svelte.ts: Add debouncing, use filter/sort utilities - filterBridge.svelte.ts: Type-safe validation with type guards - unifiedFontStore.test.ts: Fix pre-existing bugs (missing async, duplicate imports) Code Quality: - 0 linting warnings/errors (oxlint) - FSD compliant architecture (entity lib layer) - Backward compatible store API
14 lines
423 B
TypeScript
14 lines
423 B
TypeScript
/**
|
|
* Shared utility functions
|
|
*/
|
|
|
|
export {
|
|
buildQueryString,
|
|
type QueryParams,
|
|
type QueryParamValue,
|
|
} from './buildQueryString/buildQueryString';
|
|
export { clampNumber } from './clampNumber/clampNumber';
|
|
export { debounce } from './debounce/debounce';
|
|
export { getDecimalPlaces } from './getDecimalPlaces/getDecimalPlaces';
|
|
export { roundToStepPrecision } from './roundToStepPrecision/roundToStepPrecision';
|