-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeno.jsonc
More file actions
106 lines (89 loc) · 2.99 KB
/
deno.jsonc
File metadata and controls
106 lines (89 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"$schema": "https://deno.land/x/deno/cli/schemas/config-file.v1.json",
// Enable node_modules directory for Vite/Vitest/Playwright compatibility
// Creates physical node_modules instead of using Deno's global cache
"nodeModulesDir": "auto",
// Workspace configuration for frontend package
"workspace": ["./app/frontend"],
// Tasks for common operations (use `deno task <name>` to run)
"tasks": {
// Dependency management
"install": "cd app/frontend && deno install --node-modules-dir=auto",
// Development
"dev": "cd app/frontend && deno run -A npm:vite",
"build": "cd app/frontend && deno run -A npm:vite build",
"preview": "cd app/frontend && deno run -A npm:vite preview",
// Testing (requires Node due to worker thread limitations)
// Use npm commands which leverage deno-created node_modules
"test": "cd app/frontend && npm test",
"test:watch": "cd app/frontend && npm run test:watch",
"test:e2e": "cd app/frontend && npx playwright test",
"test:e2e:ui": "cd app/frontend && npx playwright test --ui"
},
"lint": {
// Include only frontend JavaScript source files
"include": [
"app/frontend/js/**/*.js",
"app/frontend/vite.config.js"
],
// Exclude build artifacts, dependencies, and non-JS code
"exclude": [
// Build outputs
"app/frontend/dist/",
"src-tauri/target/",
// Dependencies
"app/frontend/node_modules/",
".venv/",
"venv/",
// Vendor libraries
"app/frontend/public/js/basecoat/",
// Caches and artifacts
".cache/",
".pytest_cache/",
"**/*.pyc",
"**/__pycache__/",
// Python code (use Ruff instead)
"tests/**/*.py",
"**/*.py",
// Lock files
"*.lock",
"package-lock.json",
"Cargo.lock"
],
"rules": {
// Use Deno's recommended rule set
"tags": ["recommended"],
// Exclude rules incompatible with browser/Alpine.js/Vite code
"exclude": [
"no-undef", // Alpine.js and Tauri globals (no custom globals support)
"no-window", // Browser code uses window object
"no-window-prefix", // Browser code can use window.* APIs
"no-process-global" // Vite config uses process.env
]
}
},
"fmt": {
// Match linter includes
"include": [
"app/frontend/js/**/*.js",
"app/frontend/vite.config.js"
],
// Match linter excludes
"exclude": [
"app/frontend/dist/",
"src-tauri/target/",
"app/frontend/node_modules/",
"app/frontend/public/js/basecoat/",
".cache/",
"*.lock",
"package-lock.json",
"Cargo.lock"
],
// Flat options format (new in Deno 2.x)
"indentWidth": 2, // Match existing code style
"lineWidth": 100, // Standard for modern displays
"semiColons": true, // Match existing code style
"singleQuote": true, // Match existing code style
"proseWrap": "preserve" // Don't reflow comments
}
}