Skip to content

TL-M0-05 · Shared settings: .gitignore, README, TypeScript base, Turborepo tasks

Why: One TypeScript base that every package extends, and one typecheck task Turborepo runs across the workspace. The .gitignore additions keep Astro's cache, Playwright output, environment files and database dumps out of git.

ID TL-M0-05 · Level L0 · Run order row 5

The repository ignores what it must, explains itself in its README, shares a TypeScript base and runs typecheck through Turborepo.

TL-M0-04 is Done.

Terminal window
cat >> .gitignore <<'EOF'
# Opleet additions
.astro/
test-results/
playwright-report/
.env.e2e
.env.staging
*.dump
EOF
Terminal window
cat > README.md <<'EOF'
# Opleet
Opleet FMS v2: the fleet management app for OptimaPerkasa, rebuilt on schema V13.
Start with the Opleet Wiki: [Register] v2 decisions and working rules, then [Runbook] v2 timeline.
https://docs.google.com/document/d/1rXKFmIFa1nY3ZViF_Ojo2kCSSOfc0gutjiSHlQ6iGBs/edit
- apps/web: the Next.js app
- apps/docs: engineering docs (Astro Starlight), filled after cutover
- packages/db-types: generated database types
- supabase/: migrations, tests and seed, owned by the Supabase CLI
- tools/: database and migration scripts, outside the pnpm workspace
EOF

3 · The TypeScript settings every package extends

Section titled “3 · The TypeScript settings every package extends”
Terminal window
cat > tsconfig.base.json <<'EOF'
{
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"target": "ES2022",
"lib": ["ES2022"],
"module": "ESNext",
"moduleResolution": "Bundler",
"moduleDetection": "force",
"strict": true,
"noUncheckedIndexedAccess": true,
"isolatedModules": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"noEmit": true
}
}
EOF

4 · Turborepo tasks: build, typecheck and dev

Section titled “4 · Turborepo tasks: build, typecheck and dev”
Terminal window
cat > turbo.json <<'EOF'
{
"$schema": "https://turborepo.dev/schema.json",
"ui": "tui",
"tasks": {
"build": {
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": [".next/**", "!.next/cache/**", "!.next/dev/**", "dist/**"]
},
"typecheck": {
"dependsOn": ["^typecheck"]
},
"dev": {
"cache": false,
"persistent": true
}
}
}
EOF
pnpm pkg set scripts.typecheck="turbo run typecheck"
Terminal window
git add -A
git commit -m "build: shared TypeScript settings and Turborepo tasks"

Blocks 1 to 4 print nothing. Block 5 prints the commit line.

Terminal window
git show --stat HEAD

.gitignore, README.md, package.json, tsconfig.base.json and turbo.json changed.

zsh shows “heredoc>” and waits: the closing EOF wasn't pasted on a line of its own. Type EOF, press Enter, then check the file with cat.

Terminal window
git reset --hard HEAD~1

Done 2026-10-05 (zuki)