1.8 KiB
FSD Final Cleanup
Goal
Complete the Feature-Sliced Design (FSD) migration of the frontend codebase by eliminating all remaining architecture compliance gaps — relative cross-layer imports, misplaced components, missing API layers, and deep imports into entity internals.
Requirements
R1: All imports use @/ path aliases
No ../../../ or ../../ relative imports across the entire src/ tree. Every import must use the @/ alias pointing to src/.
R2: BrokerAccountLayout lives in widgets layer
The BrokerAccountLayout component (layout with routing + useOutletContext) currently lives in entities/broker-account/ui/. It must be moved to widgets/broker-account-layout/ since it is a page layout, not a business entity.
R3: entities/search has an api/ layer
The searchSecurities function — a domain API call — currently lives in shared/api/client.ts. It must be moved to entities/search/api/searchApi.ts so that each entity owns its domain calls.
R4: App layer uses barrel imports
Files in app/ must import from entity barrel files (@/entities/session) rather than deep-importing into model/ or api/ subdirectories.
R5: Tests use @/ path aliases
All test files must import test/server and test/test-utils via @/ prefix instead of relative paths.
Constraints
- Only modify imports and restructure entities/search and BrokerAccountLayout. Do not change business logic.
- Share
request()from shared/api —entities/search/api/searchApi.tsimportsrequestfrom shared. entities/broker-account/index.tsbarrel exports remain unchanged.
Out of Scope
- Moving
styles.cssormain.tsxintoapp/ - Type deduplication (
responses.tsvstypes.ts) - Moving
src/test/toshared/lib/tests/ - Refactoring
entities/broker-account/model/brokerAccountsOverviewdeep imports