chore: scaffold devflow workspace
This commit is contained in:
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
coverage/
|
||||||
|
.turbo/
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
*.log
|
||||||
|
*.tsbuildinfo
|
||||||
|
data/
|
||||||
|
!.gitkeep
|
||||||
1
apps/.gitkeep
Normal file
1
apps/.gitkeep
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
42
biome.json
Normal file
42
biome.json
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
|
||||||
|
"vcs": {
|
||||||
|
"enabled": true,
|
||||||
|
"clientKind": "git",
|
||||||
|
"useIgnoreFile": true
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"ignoreUnknown": false,
|
||||||
|
"ignore": ["node_modules", "dist", "coverage", "data"]
|
||||||
|
},
|
||||||
|
"formatter": {
|
||||||
|
"enabled": true,
|
||||||
|
"indentStyle": "space",
|
||||||
|
"indentWidth": 2,
|
||||||
|
"lineWidth": 100
|
||||||
|
},
|
||||||
|
"organizeImports": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"linter": {
|
||||||
|
"enabled": true,
|
||||||
|
"rules": {
|
||||||
|
"recommended": true,
|
||||||
|
"suspicious": {
|
||||||
|
"noExplicitAny": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"javascript": {
|
||||||
|
"formatter": {
|
||||||
|
"quoteStyle": "double",
|
||||||
|
"semicolons": "always",
|
||||||
|
"trailingCommas": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json": {
|
||||||
|
"formatter": {
|
||||||
|
"trailingCommas": "none"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1741
docs/plan.md
Normal file
1741
docs/plan.md
Normal file
File diff suppressed because it is too large
Load Diff
12
lefthook.yml
Normal file
12
lefthook.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
pre-commit:
|
||||||
|
parallel: false
|
||||||
|
commands:
|
||||||
|
biome:
|
||||||
|
glob: "*.{ts,tsx,js,jsx,json,jsonc,md,yml,yaml}"
|
||||||
|
run: npx pnpm@9.15.9 biome check --write {staged_files}
|
||||||
|
stage_fixed: true
|
||||||
|
typecheck:
|
||||||
|
run: npx pnpm@9.15.9 typecheck
|
||||||
|
test:
|
||||||
|
glob: "*.{ts,tsx,js,jsx}"
|
||||||
|
run: npx pnpm@9.15.9 vitest related --run --passWithNoTests {staged_files}
|
||||||
31
package.json
Normal file
31
package.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"name": "devflow",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"packageManager": "pnpm@9.15.9",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=22.0.0 <23",
|
||||||
|
"pnpm": ">=9.0.0 <10"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"build": "tsc -b",
|
||||||
|
"typecheck": "tsc -b --noEmit",
|
||||||
|
"test": "vitest run",
|
||||||
|
"test:watch": "vitest",
|
||||||
|
"coverage": "vitest run --coverage",
|
||||||
|
"lint": "biome check .",
|
||||||
|
"format": "biome check --write ."
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@biomejs/biome": "1.9.4",
|
||||||
|
"@types/node": "22.10.2",
|
||||||
|
"@vitest/coverage-v8": "2.1.8",
|
||||||
|
"lefthook": "2.1.6",
|
||||||
|
"tsup": "8.3.5",
|
||||||
|
"tsx": "4.19.2",
|
||||||
|
"typescript": "5.6.3",
|
||||||
|
"vite": "6.0.3",
|
||||||
|
"vitest": "2.1.8"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
packages/.gitkeep
Normal file
1
packages/.gitkeep
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
2444
pnpm-lock.yaml
generated
Normal file
2444
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
3
pnpm-workspace.yaml
Normal file
3
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
packages:
|
||||||
|
- "apps/*"
|
||||||
|
- "packages/*"
|
||||||
7
tests/workspace-smoke.test.ts
Normal file
7
tests/workspace-smoke.test.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
|
||||||
|
describe("workspace smoke", () => {
|
||||||
|
it("runs the root Vitest workspace", () => {
|
||||||
|
expect("devflow").toBe("devflow");
|
||||||
|
});
|
||||||
|
});
|
||||||
21
tsconfig.base.json
Normal file
21
tsconfig.base.json
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"target": "ES2022",
|
||||||
|
"lib": ["ES2022"],
|
||||||
|
"module": "NodeNext",
|
||||||
|
"moduleResolution": "NodeNext",
|
||||||
|
"strict": true,
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
"noUncheckedIndexedAccess": true,
|
||||||
|
"exactOptionalPropertyTypes": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"declaration": true,
|
||||||
|
"declarationMap": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"composite": true
|
||||||
|
}
|
||||||
|
}
|
||||||
9
tsconfig.json
Normal file
9
tsconfig.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"extends": "./tsconfig.base.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"noEmit": true,
|
||||||
|
"types": ["node", "vitest"]
|
||||||
|
},
|
||||||
|
"include": ["vitest.workspace.ts", "tests/**/*.ts"],
|
||||||
|
"references": []
|
||||||
|
}
|
||||||
11
vitest.workspace.ts
Normal file
11
vitest.workspace.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { defineWorkspace } from "vitest/config";
|
||||||
|
|
||||||
|
export default defineWorkspace([
|
||||||
|
{
|
||||||
|
test: {
|
||||||
|
name: "root",
|
||||||
|
include: ["tests/**/*.test.ts"],
|
||||||
|
environment: "node",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]);
|
||||||
Reference in New Issue
Block a user