Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ jobs:
- name: Lint
run: pnpm lint

- name: Build Cache Config
run: pnpm check:build-cache

- name: Build
run: pnpm build

Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"scripts": {
"build": "turbo run build",
"check": "turbo run check",
"ci:validate": "pnpm lint && pnpm build && pnpm typecheck && pnpm test && pnpm test:release-publish && pnpm test:upload-release-assets && node scripts/check-docs.mjs && pnpm pack:check && pnpm verify:harness:self-test && pnpm verify:harness",
"check:build-cache": "node scripts/check-build-cache-config.mjs",
"ci:validate": "pnpm lint && pnpm check:build-cache && pnpm build && pnpm typecheck && pnpm test && pnpm test:release-publish && pnpm test:upload-release-assets && node scripts/check-docs.mjs && pnpm pack:check && pnpm verify:harness:self-test && pnpm verify:harness",
"dev": "turbo run dev --parallel",
"lint": "pnpm exec biome check --config-path packages/config-biome/biome.json package.json scripts && turbo run lint",
"lint:fix": "pnpm exec biome check --write --unsafe --config-path packages/config-biome/biome.json package.json scripts && turbo run lint -- --write",
Expand Down
1 change: 1 addition & 0 deletions packages/cli/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"compilerOptions": {
"noEmit": false,
"outDir": "dist",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo",
"paths": {
"@dawn-ai/core": ["../core/src/index.ts"],
"@dawn-ai/langchain": ["../langchain/src/index.ts"],
Expand Down
3 changes: 2 additions & 1 deletion packages/core/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"],
"references": [
Expand Down
3 changes: 2 additions & 1 deletion packages/create-dawn-app/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"],
"references": [
Expand Down
3 changes: 2 additions & 1 deletion packages/devkit/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/evals/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/langchain/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/langgraph/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
6 changes: 5 additions & 1 deletion packages/memory/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../config-typescript/node.json",
"compilerOptions": { "outDir": "dist", "rootDir": "src" },
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"references": [{ "path": "../sqlite-storage" }],
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/permissions/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/sdk/tsconfig.contracts.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": true,
"rootDir": "."
"rootDir": ".",
"tsBuildInfoFile": "dist/tsconfig.contracts.tsbuildinfo"
},
"include": ["src/**/*.ts", "test/*.contract.ts"]
}
3 changes: 2 additions & 1 deletion packages/sdk/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
6 changes: 5 additions & 1 deletion packages/sqlite-storage/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../config-typescript/node.json",
"compilerOptions": { "outDir": "dist", "rootDir": "src" },
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
6 changes: 5 additions & 1 deletion packages/testing/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../config-typescript/node.json",
"compilerOptions": { "outDir": "dist", "rootDir": "src" },
"compilerOptions": {
"outDir": "dist",
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"references": [{ "path": "../memory" }],
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/vite-plugin/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
3 changes: 2 additions & 1 deletion packages/workspace/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"extends": "../config-typescript/node.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
"rootDir": "src",
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo"
},
"include": ["src/**/*.ts"]
}
76 changes: 76 additions & 0 deletions scripts/check-build-cache-config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import { readdirSync, readFileSync, statSync } from "node:fs"
import { dirname, join, posix, resolve } from "node:path"
import { fileURLToPath } from "node:url"

const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..")
const packageRoot = join(repoRoot, "packages")

const readJson = (path) => JSON.parse(readFileSync(path, "utf8"))
const toPosix = (path) => path.split(/[/\\]+/).join(posix.sep)

const errors = []
const checkedConfigs = []

for (const packageDirName of readdirSync(packageRoot).sort()) {
const packageDir = join(packageRoot, packageDirName)

if (!statSync(packageDir).isDirectory()) {
continue
}

for (const fileName of readdirSync(packageDir).sort()) {
if (!/^tsconfig(?:\..+)?\.json$/.test(fileName)) {
continue
}

const configPath = join(packageDir, fileName)
const relativeConfigPath = toPosix(configPath.slice(repoRoot.length + 1))
const config = readJson(configPath)
const compilerOptions = config.compilerOptions ?? {}
const outDir = compilerOptions.outDir
const tsBuildInfoFile = compilerOptions.tsBuildInfoFile

if (typeof outDir === "string" && compilerOptions.noEmit !== true) {
const expectedBuildInfoFile = `${outDir.replace(/\/+$/, "")}/tsconfig.tsbuildinfo`

checkedConfigs.push(relativeConfigPath)

if (tsBuildInfoFile !== expectedBuildInfoFile) {
errors.push(
`${relativeConfigPath} must set compilerOptions.tsBuildInfoFile to ${expectedBuildInfoFile}`,
)
}
}

if (
typeof tsBuildInfoFile === "string" &&
!toPosix(tsBuildInfoFile).startsWith(`${toPosix(outDir ?? "dist")}/`)
) {
errors.push(
`${relativeConfigPath} writes compilerOptions.tsBuildInfoFile outside its build output: ${tsBuildInfoFile}`,
)
}
}
}

const turboConfig = readJson(join(repoRoot, "turbo.json"))
const buildOutputs = turboConfig.tasks?.build?.outputs ?? []

if (!buildOutputs.includes("dist/**")) {
errors.push('turbo.json build task must include "dist/**" in outputs')
}

if (errors.length > 0) {
console.error("Build cache config check failed.")
console.error("")

for (const error of errors) {
console.error(`- ${error}`)
}

process.exit(1)
}

console.log(
`Build cache config check passed (${checkedConfigs.length} emitting tsconfig file(s), dist/** cached).`,
)