chore: scaffold devflow workspace

This commit is contained in:
chungyeong
2026-05-09 22:22:13 +09:00
commit 6bd4c9382a
14 changed files with 4336 additions and 0 deletions

12
.gitignore vendored Normal file
View File

@@ -0,0 +1,12 @@
node_modules/
dist/
coverage/
.turbo/
.DS_Store
.env
.env.local
.env.*.local
*.log
*.tsbuildinfo
data/
!.gitkeep

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
22

1
apps/.gitkeep Normal file
View File

@@ -0,0 +1 @@

42
biome.json Normal file
View 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

File diff suppressed because it is too large Load Diff

12
lefthook.yml Normal file
View 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
View 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
View File

@@ -0,0 +1 @@

2444
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

3
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,3 @@
packages:
- "apps/*"
- "packages/*"

View 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
View 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
View 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
View File

@@ -0,0 +1,11 @@
import { defineWorkspace } from "vitest/config";
export default defineWorkspace([
{
test: {
name: "root",
include: ["tests/**/*.test.ts"],
environment: "node",
},
},
]);