mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-11-04 08:10:28 +09:00
컴포넌트를 도메인과 무관한 UI 컴포넌트와 도메인 컴포넌트로 재구성하고 중복된 파일 목록 컴포넌트 통합 및 모듈 간 의존성 방향을 ESLint로 강제
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4e82c5e556
commit
877cf9c42e
94 files changed
+398
-518
No files matched your search
@@ -13,6 +13,20 @@ const svelteConfig = (await loadConfig("./", { traverse: false }))?.config;
|
||||
|
||||
const gitignorePath = fileURLToPath(new URL("./.gitignore", import.meta.url));
|
||||
|
||||
// Restricts the direction of dependencies between modules
|
||||
const defineImportBoundaries = (boundaries) =>
|
||||
Object.entries(boundaries).map(([files, regex]) => ({
|
||||
files: [files],
|
||||
rules: {
|
||||
"no-restricted-imports": [
|
||||
"error",
|
||||
{
|
||||
patterns: [{ regex, message: "Violates the dependency direction between modules." }],
|
||||
},
|
||||
],
|
||||
},
|
||||
}));
|
||||
|
||||
export default defineConfig(
|
||||
includeIgnoreFile(gitignorePath),
|
||||
js.configs.recommended,
|
||||
@@ -37,6 +51,17 @@ export default defineConfig(
|
||||
"no-undef": "off",
|
||||
},
|
||||
},
|
||||
...defineImportBoundaries({
|
||||
// Pure code shared by the server, the client, and the service worker
|
||||
"src/lib/shared/**": "^(#lib/(?!shared/)|#trpc/|#workers/|\\$app/|svelte($|/))",
|
||||
"src/lib/server/**": "^(#lib/(client|features|ui)/|#trpc/)",
|
||||
// Infrastructure of the browser
|
||||
"src/lib/client/**": "^#lib/(server|features|ui)/",
|
||||
// Domain-agnostic components
|
||||
"src/lib/ui/**": "^(#lib/(server|client|features)/|#trpc/)",
|
||||
"src/lib/features/**": "^#lib/server/",
|
||||
"src/service-worker/**": "^(#lib/(?!shared/|client/storage/opfs\\.js$)|#trpc/|#workers/)",
|
||||
}),
|
||||
{
|
||||
files: ["**/*.svelte", "**/*.svelte.ts", "**/*.svelte.js"],
|
||||
languageOptions: {
|
||||
|
||||
Reference in new issue
Block a user