Files
agentic-dev/packages/typescript-config/AGENTS.md

2.0 KiB

AGENTS.md — typescript-config

Shared TypeScript base configs (tsconfig.json files) and Vitest base config, consumed by all packages.

What it owns

  • base.json — Base tsconfig.json: target ES2022, module ESM, experimentalDecorators + emitDecoratorMetadata for InversifyJS
  • nextjs.json — Next.js app config: extends base, adds jsx: "preserve", Next.js lib types
  • react-library.json — React library config: extends base, adds jsx: "react-jsx", DOM lib
  • vitest.base.ts — Vitest base config: globals, isolate modules, common ignore patterns

How packages consume them

Packages extend the appropriate base:

// packages/blog/tsconfig.json
{
  "extends": "@repo/typescript-config/base.json",
  "compilerOptions": {
    "rootDir": ".",
    "outDir": "dist",
    "lib": ["ES2022"]
  },
  "include": ["src/**/*"]
}

Apps extend Next.js config:

// apps/web-next/tsconfig.json
{
  "extends": "@repo/typescript-config/nextjs.json",
  "compilerOptions": {
    "rootDir": ".",
    "outDir": ".next"
  }
}

Vitest configs import the base:

// packages/blog/vitest.config.ts
import { defineConfig } from "vitest/config";
import path from "path";
import { vitestBase } from "@repo/typescript-config";

export default defineConfig({
  ...vitestBase,
  test: {
    environment: "node",
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    },
  },
});

Test conventions

  • No unit tests (config validation via pnpm typecheck in other packages)
  • Verify at CI: pnpm typecheck succeeds across all packages
  • Type errors should propagate: pnpm typecheck fails on invalid source code

Structure

base.json                    # ES2022, ESM, decorators
nextjs.json                  # Next.js-specific paths + lib
react-library.json           # React JSX + DOM
vitest.base.ts               # Vitest defaults (globals, isolate)
package.json                 # Exports above files