Ilia Mashkov
|
12e8bc0a89
|
chore: enforce brackets for if clause and for/while loops
|
2026-04-17 13:05:36 +03:00 |
|
Ilia Mashkov
|
cfaff46d59
|
chore: follow the general comments style
|
2026-04-17 12:14:55 +03:00 |
|
Ilia Mashkov
|
bc4ab58644
|
fix(buildQueryString): change the way the searchParams built
|
2026-04-03 16:08:15 +03:00 |
|
Ilia Mashkov
|
13818d5844
|
refactor(shared): update utilities, API layer, and types
|
2026-03-02 22:19:13 +03:00 |
|
Ilia Mashkov
|
51ea8a9902
|
test(smoothScroll): cast mock to the proper type
|
2026-02-18 20:40:00 +03:00 |
|
Ilia Mashkov
|
e81cadb32a
|
feat(smoothScroll): cover smoothScroll util with unit tests
|
2026-02-18 20:20:24 +03:00 |
|
Ilia Mashkov
|
ff71d1c8c9
|
test(splitArray): add unit tests for splitArray util
|
2026-02-18 20:18:18 +03:00 |
|
Ilia Mashkov
|
24ca2f6c41
|
test(throttle): add unit tests for throttle util
|
2026-02-18 20:17:33 +03:00 |
|
Ilia Mashkov
|
08d474289b
|
chore: add export/import
|
2026-02-12 10:30:43 +03:00 |
|
Ilia Mashkov
|
2e6fc0e858
|
feat(throttle): add tohrottling util
|
2026-02-12 10:29:52 +03:00 |
|
Ilia Mashkov
|
a5b9238306
|
chore: add export/import
|
2026-02-10 21:15:52 +03:00 |
|
Ilia Mashkov
|
f01299f3d1
|
feat(smoothScroll): add util to smoothly scroll to the id after anchor click
|
2026-02-10 21:15:39 +03:00 |
|
Ilia Mashkov
|
9cbf4fdc48
|
doc: comments for codebase and updated documentation
|
2026-01-18 15:55:07 +03:00 |
|
Ilia Mashkov
|
ef259c6fce
|
chore: add import shortcuts
|
2026-01-18 14:39:38 +03:00 |
|
Ilia Mashkov
|
df8eca6ef2
|
feat(splitArray): create a util to split an array based on a boolean resulting callback
|
2026-01-18 14:37:23 +03:00 |
|
Ilia Mashkov
|
d81af0a77b
|
feat: implement P0/P1 performance and code quality optimizations
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
|
2026-01-11 14:49:21 +03:00 |
|
Ilia Mashkov
|
36a326817d
|
feat: test coverage for utils
Lint / Lint Code (push) Failing after 7m20s
Test / Svelte Checks (push) Failing after 7m20s
|
2026-01-07 17:26:59 +03:00 |
|
Ilia Mashkov
|
f4c2a38873
|
fix: imports path
|
2026-01-07 16:54:19 +03:00 |
|
Ilia Mashkov
|
f26f56ddef
|
chore: move createVirtualizer
|
2026-01-07 16:53:44 +03:00 |
|
Ilia Mashkov
|
baff3b9e27
|
refactor(createFilter): createFilterStore rewrote to runes
|
2026-01-07 16:52:17 +03:00 |
|
Ilia Mashkov
|
d15b90cfcb
|
feat: move buildQueryString to separate directory
|
2026-01-07 16:49:37 +03:00 |
|
Ilia Mashkov
|
893bb02459
|
feat: move buildQueryString to separate directory
|
2026-01-07 16:49:18 +03:00 |
|
Ilia Mashkov
|
f7b19bd97f
|
feat: move functions to separate files
|
2026-01-07 16:48:49 +03:00 |
|
Ilia Mashkov
|
2c4bfaba41
|
fix: rename file from .ts to .svelte.ts to support svelte runes
|
2026-01-07 14:27:25 +03:00 |
|
Ilia Mashkov
|
9fd98aca5d
|
refactor(createFilterStore): move from store pattern to svelte 5 runes usage
|
2026-01-07 14:26:37 +03:00 |
|
Ilia Mashkov
|
86898bf83c
|
chore: move utils directory into shared/lib
|
2026-01-06 21:39:17 +03:00 |
|
Ilia Mashkov
|
7a9f7e238c
|
refactor(createVirtualizer): refactor createVirtualizerStore with modern svelte 5 patterns
|
2026-01-06 21:38:18 +03:00 |
|