Ilia Mashkov
dbd48b287d
feat(shared): add getPretextFontString formatter
2026-06-24 13:49:02 +03:00
Ilia Mashkov
c6c8497906
fix: break import cycles
...
import/no-cycle (now active) flagged 17 cycles across 12 files:
- shared/ui self-barrel cycles (Logo/Stat/StatGroup/ComboControl/
FilterGroup/SectionHeader): import siblings relatively instead of
through the $shared/ui barrel that re-exports them
- shared/lib/utils: roundToStepPrecision imports getDecimalPlaces
relatively instead of via the utils barrel
- routes: lazy-load Redirect in the router so it no longer statically
imports a component that imports navigate back from it
2026-06-02 23:02:07 +03:00
Ilia Mashkov
f3a10e38df
refactor: clear remaining lint errors (comma operator, bind:this ref)
...
- splitArray: replace the comma-operator reduce body with an explicit
block + return (no-sequences); behaviour unchanged
- BreadcrumbHeaderSeeded: declare the bind:this ref with $state() so it
is not flagged as never-assigned (oxlint cannot see template bindings),
matching the rest of the codebase; guard the onMount use
2026-06-02 23:01:59 +03:00
Ilia Mashkov
2c579a3336
feat(shared): add cn utility for tailwind-aware class merging
2026-04-23 14:59:32 +03:00
Ilia Mashkov
a801903fd3
feat(FontList): use getSkeletonWidth utility for skeleton row widths
2026-04-22 09:02:32 +03:00
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