From c26bfc2b3cd05a0f9703da42483ad59b3177dc3c Mon Sep 17 00:00:00 2001 From: Nik Graf Date: Tue, 26 Nov 2024 16:11:13 +0100 Subject: [PATCH 1/3] wip --- apps/events/tsconfig.app.json | 6 +- apps/events/tsconfig.json | 4 +- apps/events/tsconfig.node.json | 2 + apps/server/package.json | 2 +- apps/server/src/index.ts | 2 +- apps/server/tsconfig.json | 27 +++------ .../tsconfig.build.json | 12 ++-- .../graph-framework-identity/tsconfig.json | 11 +--- .../tsconfig.src.json | 10 ++++ .../graph-framework-key/tsconfig.build.json | 11 ++-- packages/graph-framework-key/tsconfig.json | 10 +--- .../graph-framework-key/tsconfig.src.json | 9 +++ .../tsconfig.build.json | 12 ++-- .../graph-framework-messages/tsconfig.json | 10 +--- .../tsconfig.src.json | 10 ++++ .../tsconfig.build.json | 12 ++-- packages/graph-framework-schema/tsconfig.json | 11 +--- .../graph-framework-schema/tsconfig.src.json | 11 ++++ .../tsconfig.build.json | 12 ++-- .../tsconfig.json | 11 +--- .../tsconfig.src.json | 10 ++++ .../graph-framework-utils/tsconfig.build.json | 11 ++-- packages/graph-framework-utils/tsconfig.json | 10 +--- .../graph-framework-utils/tsconfig.src.json | 9 +++ packages/graph-framework/tsconfig.build.json | 19 ++++-- packages/graph-framework/tsconfig.json | 11 +--- packages/graph-framework/tsconfig.src.json | 17 ++++++ tsconfig.base.json | 58 +++++++++++++++++++ tsconfig.build.json | 13 +++++ tsconfig.json | 20 ++++--- tsconfig.options.json | 30 ---------- 31 files changed, 254 insertions(+), 149 deletions(-) create mode 100644 packages/graph-framework-identity/tsconfig.src.json create mode 100644 packages/graph-framework-key/tsconfig.src.json create mode 100644 packages/graph-framework-messages/tsconfig.src.json create mode 100644 packages/graph-framework-schema/tsconfig.src.json create mode 100644 packages/graph-framework-space-events/tsconfig.src.json create mode 100644 packages/graph-framework-utils/tsconfig.src.json create mode 100644 packages/graph-framework/tsconfig.src.json create mode 100644 tsconfig.base.json create mode 100644 tsconfig.build.json delete mode 100644 tsconfig.options.json diff --git a/apps/events/tsconfig.app.json b/apps/events/tsconfig.app.json index ac3dda05..b0a133c1 100644 --- a/apps/events/tsconfig.app.json +++ b/apps/events/tsconfig.app.json @@ -1,4 +1,6 @@ { + "extends": "../../tsconfig.base.json", + "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2020", "useDefineForClassFields": true, @@ -24,7 +26,9 @@ /* Shadcn */ "baseUrl": ".", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "graph-framework": ["../../packages/graph-framework/src/index.js"], + "graph-framework/*": ["../../packages/graph-framework/src/*.js"] } }, "include": ["src"] diff --git a/apps/events/tsconfig.json b/apps/events/tsconfig.json index cf3d558e..27a9e899 100644 --- a/apps/events/tsconfig.json +++ b/apps/events/tsconfig.json @@ -5,7 +5,9 @@ /* Shadcn */ "baseUrl": ".", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "graph-framework": ["../../packages/graph-framework/src/index.js"], + "graph-framework/*": ["../../packages/graph-framework/src/*.js"] } } } diff --git a/apps/events/tsconfig.node.json b/apps/events/tsconfig.node.json index 1b61abad..7e3ba1f2 100644 --- a/apps/events/tsconfig.node.json +++ b/apps/events/tsconfig.node.json @@ -1,4 +1,6 @@ { + "extends": "../../tsconfig.base.json", + "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2022", "lib": ["ES2023"], diff --git a/apps/server/package.json b/apps/server/package.json index de196949..ef392321 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "type": "module", "scripts": { - "dev": "TS_NODE_TRANSPILE_ONLY=true nodemon --exec node --loader ts-node/esm ./src/index.ts", + "dev": "bun run ./src/index.ts", "build:ts": "rm -rf dist && pnpm tsc --project tsconfig.json", "build:deploy": "rm -rf build && pnpm deploy --filter=server --prod build", "build": "pnpm run build:ts && pnpm build:deploy", diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index 00b09ba9..38b30ac3 100755 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -1,6 +1,5 @@ import cors from 'cors'; import 'dotenv/config'; -import { parse } from 'node:url'; import { Effect, Exit, Schema } from 'effect'; import express from 'express'; import type { @@ -15,6 +14,7 @@ import type { import { RequestMessage, deserialize, serialize } from 'graph-framework-messages'; import type { SpaceEvent } from 'graph-framework-space-events'; import { applyEvent } from 'graph-framework-space-events'; +import { parse } from 'node:url'; import WebSocket, { WebSocketServer } from 'ws'; import { applySpaceEvent } from './handlers/applySpaceEvent.js'; import { createSpace } from './handlers/createSpace.js'; diff --git a/apps/server/tsconfig.json b/apps/server/tsconfig.json index 93674ae9..1df91446 100644 --- a/apps/server/tsconfig.json +++ b/apps/server/tsconfig.json @@ -1,22 +1,11 @@ { + "extends": "../../tsconfig.base.json", + "include": ["./src"], "compilerOptions": { - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "Bundler", - "target": "ESNext", - "isolatedModules": true, - "esModuleInterop": true, - "noEmit": false, - "outDir": "dist", - "lib": ["esnext"], - "types": ["node"], - "baseUrl": "./", - "strict": true, - "exactOptionalPropertyTypes": true - }, - "ts-node": { - "esm": true - }, - "exclude": ["node_modules"], - "include": ["./src"] + "composite": false, + "noEmit": true, + "incremental": false, + "declaration": false, + "declarationMap": false + } } diff --git a/packages/graph-framework-identity/tsconfig.build.json b/packages/graph-framework-identity/tsconfig.build.json index 9f8c8762..c08390c9 100644 --- a/packages/graph-framework-identity/tsconfig.build.json +++ b/packages/graph-framework-identity/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-identity/tsconfig.json b/packages/graph-framework-identity/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-identity/tsconfig.json +++ b/packages/graph-framework-identity/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-identity/tsconfig.src.json b/packages/graph-framework-identity/tsconfig.src.json new file mode 100644 index 00000000..ed1097c9 --- /dev/null +++ b/packages/graph-framework-identity/tsconfig.src.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-key/tsconfig.build.json b/packages/graph-framework-key/tsconfig.build.json index 9f8c8762..50f248a2 100644 --- a/packages/graph-framework-key/tsconfig.build.json +++ b/packages/graph-framework-key/tsconfig.build.json @@ -1,9 +1,10 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-key/tsconfig.json b/packages/graph-framework-key/tsconfig.json index e71c5154..73e6ebe3 100644 --- a/packages/graph-framework-key/tsconfig.json +++ b/packages/graph-framework-key/tsconfig.json @@ -1,9 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts", "../../shared/*.ts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-key/tsconfig.src.json b/packages/graph-framework-key/tsconfig.src.json new file mode 100644 index 00000000..0306c498 --- /dev/null +++ b/packages/graph-framework-key/tsconfig.src.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-messages/tsconfig.build.json b/packages/graph-framework-messages/tsconfig.build.json index 9f8c8762..a57eb428 100644 --- a/packages/graph-framework-messages/tsconfig.build.json +++ b/packages/graph-framework-messages/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-space-events/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-messages/tsconfig.json b/packages/graph-framework-messages/tsconfig.json index e71c5154..73e6ebe3 100644 --- a/packages/graph-framework-messages/tsconfig.json +++ b/packages/graph-framework-messages/tsconfig.json @@ -1,9 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts", "../../shared/*.ts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-messages/tsconfig.src.json b/packages/graph-framework-messages/tsconfig.src.json new file mode 100644 index 00000000..b55b40ae --- /dev/null +++ b/packages/graph-framework-messages/tsconfig.src.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-space-events" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-schema/tsconfig.build.json b/packages/graph-framework-schema/tsconfig.build.json index 9f8c8762..cf392a1c 100644 --- a/packages/graph-framework-schema/tsconfig.build.json +++ b/packages/graph-framework-schema/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.spec.ts", "src/**/*.spec.tsx"] } diff --git a/packages/graph-framework-schema/tsconfig.json b/packages/graph-framework-schema/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-schema/tsconfig.json +++ b/packages/graph-framework-schema/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-schema/tsconfig.src.json b/packages/graph-framework-schema/tsconfig.src.json new file mode 100644 index 00000000..9013a012 --- /dev/null +++ b/packages/graph-framework-schema/tsconfig.src.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src", + "allowSyntheticDefaultImports": true + } +} diff --git a/packages/graph-framework-space-events/tsconfig.build.json b/packages/graph-framework-space-events/tsconfig.build.json index 9f8c8762..c08390c9 100644 --- a/packages/graph-framework-space-events/tsconfig.build.json +++ b/packages/graph-framework-space-events/tsconfig.build.json @@ -1,9 +1,11 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [{ "path": "../graph-framework-utils/tsconfig.build.json" }], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-space-events/tsconfig.json b/packages/graph-framework-space-events/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework-space-events/tsconfig.json +++ b/packages/graph-framework-space-events/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-space-events/tsconfig.src.json b/packages/graph-framework-space-events/tsconfig.src.json new file mode 100644 index 00000000..ed1097c9 --- /dev/null +++ b/packages/graph-framework-space-events/tsconfig.src.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [{ "path": "../graph-framework-utils" }], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework-utils/tsconfig.build.json b/packages/graph-framework-utils/tsconfig.build.json index 9f8c8762..50f248a2 100644 --- a/packages/graph-framework-utils/tsconfig.build.json +++ b/packages/graph-framework-utils/tsconfig.build.json @@ -1,9 +1,10 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts"] } diff --git a/packages/graph-framework-utils/tsconfig.json b/packages/graph-framework-utils/tsconfig.json index e71c5154..73e6ebe3 100644 --- a/packages/graph-framework-utils/tsconfig.json +++ b/packages/graph-framework-utils/tsconfig.json @@ -1,9 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts", "../../shared/*.ts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework-utils/tsconfig.src.json b/packages/graph-framework-utils/tsconfig.src.json new file mode 100644 index 00000000..0306c498 --- /dev/null +++ b/packages/graph-framework-utils/tsconfig.src.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/packages/graph-framework/tsconfig.build.json b/packages/graph-framework/tsconfig.build.json index 9f8c8762..3fd67dae 100644 --- a/packages/graph-framework/tsconfig.build.json +++ b/packages/graph-framework/tsconfig.build.json @@ -1,9 +1,18 @@ { - "extends": "../../tsconfig.options.json", + "extends": "./tsconfig.src.json", + "references": [ + { "path": "../graph-framework-utils/tsconfig.build.json" }, + { "path": "../graph-framework-identity/tsconfig.build.json" }, + { "path": "../graph-framework-schema/tsconfig.build.json" }, + { "path": "../graph-framework-space-events/tsconfig.build.json" }, + { "path": "../graph-framework-messages/tsconfig.build.json" }, + { "path": "../graph-framework-key/tsconfig.build.json" } + ], "compilerOptions": { - "outDir": "./dist", - "rootDir": "./src" + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "build/esm", + "declarationDir": "build/dts", + "stripInternal": true }, - "include": ["./src"], - "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.spec.ts", "dist"] + "exclude": ["node_modules", "src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.spec.ts", "src/**/*.spec.tsx"] } diff --git a/packages/graph-framework/tsconfig.json b/packages/graph-framework/tsconfig.json index 2ffc3dc0..73e6ebe3 100644 --- a/packages/graph-framework/tsconfig.json +++ b/packages/graph-framework/tsconfig.json @@ -1,10 +1,5 @@ { - "extends": "../../tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "rootDir": ".", - "noEmit": true - }, - "include": ["**/*", "vite.config.mts"], - "exclude": ["**/node_modules", "**/dist"] + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }] } diff --git a/packages/graph-framework/tsconfig.src.json b/packages/graph-framework/tsconfig.src.json new file mode 100644 index 00000000..7700792f --- /dev/null +++ b/packages/graph-framework/tsconfig.src.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "references": [ + { "path": "../graph-framework-utils" }, + { "path": "../graph-framework-identity" }, + { "path": "../graph-framework-schema" }, + { "path": "../graph-framework-space-events" }, + { "path": "../graph-framework-messages" }, + { "path": "../graph-framework-key" } + ], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src", + "outDir": "build/src" + } +} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 00000000..2039fa7b --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,58 @@ +{ + "compilerOptions": { + "strict": true, + "strictNullChecks": true, + "exactOptionalPropertyTypes": true, + "moduleDetection": "force", + "composite": true, + "downlevelIteration": true, + "resolveJsonModule": true, + "esModuleInterop": false, + "declaration": true, + "skipLibCheck": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": [], + "isolatedModules": true, + "sourceMap": true, + "declarationMap": true, + "noImplicitReturns": false, + "noUnusedLocals": true, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true, + "noEmitOnError": false, + "noErrorTruncation": false, + "allowJs": false, + "checkJs": false, + "forceConsistentCasingInFileNames": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noUncheckedIndexedAccess": false, + "baseUrl": ".", + "incremental": true, + "removeComments": false, + + "jsx": "react-jsx", + + "paths": { + "graph-framework": ["./packages/graph-framework/src/index.js"], + "graph-framework/*": ["./packages/graph-framework/src/*.js"], + "graph-framework-utils": ["./packages/graph-framework-utils/src/index.js"], + "graph-framework-utils/*": ["./packages/graph-framework-utils/src/*.js"], + "graph-framework-space-events": ["./packages/graph-framework-space-events/src/index.js"], + "graph-framework-space-events/*": ["./packages/graph-framework-space-events/src/*.js"], + "graph-framework-messages": ["./packages/graph-framework-messages/src/index.js"], + "graph-framework-messages/*": ["./packages/graph-framework-messages/src/*.js"], + "graph-framework-key": ["./packages/graph-framework-key/src/index.js"], + "graph-framework-key/*": ["./packages/graph-framework-key/src/*.js"], + "graph-framework-schema": ["./packages/graph-framework-schema/src/index.js"], + "graph-framework-schema/*": ["./packages/graph-framework-schema/src/*.js"], + "graph-framework-identity": ["./packages/graph-framework-identity/src/index.js"], + "graph-framework-identity/*": ["./packages/graph-framework-identity/src/*.js"] + } + } +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 00000000..521a322c --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.base.json", + "include": [], + "references": [ + { "path": "packages/graph-framework/tsconfig.build.json" }, + { "path": "packages/graph-framework-identity/tsconfig.build.json" }, + { "path": "packages/graph-framework-schema/tsconfig.build.json" }, + { "path": "packages/graph-framework-space-events/tsconfig.build.json" }, + { "path": "packages/graph-framework-utils/tsconfig.build.json" }, + { "path": "packages/graph-framework-messages/tsconfig.build.json" }, + { "path": "packages/graph-framework-key/tsconfig.build.json" } + ] +} diff --git a/tsconfig.json b/tsconfig.json index 16a79720..e3efb687 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,10 +1,14 @@ { - "extends": "./tsconfig.options.json", - "compilerOptions": { - "baseUrl": ".", - "noEmit": true, - "noUncheckedIndexedAccess": true - }, - "include": ["**/*"], - "exclude": ["**/node_modules", "**/packages"] + "extends": "./tsconfig.base.json", + "include": [], + "references": [ + { "path": "packages/graph-framework" }, + { "path": "packages/graph-framework-identity" }, + { "path": "packages/graph-framework-schema" }, + { "path": "packages/graph-framework-space-events" }, + { "path": "packages/graph-framework-utils" }, + { "path": "packages/graph-framework-messages" }, + { "path": "packages/graph-framework-key" }, + { "path": "apps/events" } + ] } diff --git a/tsconfig.options.json b/tsconfig.options.json deleted file mode 100644 index 9ff799eb..00000000 --- a/tsconfig.options.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "strictNullChecks": true, - "strictFunctionTypes": true, - "exactOptionalPropertyTypes": true, - "skipLibCheck": true, - "noUncheckedIndexedAccess": true, - - "esModuleInterop": true, - "allowJs": true, - "isolatedModules": true, - - "sourceMap": true, - "declarationMap": true, - "declaration": true, - "incremental": true, - "composite": true, - - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "noErrorTruncation": true, - - "target": "ESNext", - "module": "NodeNext", - "moduleResolution": "NodeNext", - - "jsx": "react-jsx" - } -} From 6d2d028fd5b8f4ac982bb819af9cc8ccaef4e231 Mon Sep 17 00:00:00 2001 From: Nik Graf Date: Tue, 26 Nov 2024 16:41:46 +0100 Subject: [PATCH 2/3] improve test setup --- apps/events/tsconfig.app.json | 6 ++++- apps/events/tsconfig.node.json | 6 ++++- apps/events/vite.config.ts | 9 ++++++- package.json | 2 +- .../graph-framework-identity/package.json | 2 +- .../graph-framework-identity/vite.config.js | 4 --- .../graph-framework-identity/vitest.config.ts | 6 +++++ packages/graph-framework-key/package.json | 2 +- packages/graph-framework-key/vite.config.mts | 24 ----------------- packages/graph-framework-key/vitest.config.ts | 6 +++++ .../graph-framework-messages/package.json | 2 +- .../graph-framework-messages/vite.config.mts | 24 ----------------- .../graph-framework-messages/vitest.config.ts | 6 +++++ packages/graph-framework-schema/package.json | 2 +- .../graph-framework-schema/vite.config.js | 10 ------- .../graph-framework-schema/vitest.config.ts | 13 ++++++++++ .../graph-framework-space-events/package.json | 2 +- .../vite.config.js | 4 --- .../vitest.config.ts | 6 +++++ .../graph-framework-utils/vite.config.mts | 24 ----------------- .../graph-framework-utils/vitest.config.ts | 6 +++++ packages/graph-framework/package.json | 2 +- packages/graph-framework/vite.config.js | 10 ------- packages/graph-framework/vitest.config.ts | 13 ++++++++++ vitest.shared.ts | 26 +++++++++++++++++++ vitest.workspace.mts | 10 ------- vitest.workspace.ts | 3 +++ 27 files changed, 110 insertions(+), 120 deletions(-) delete mode 100644 packages/graph-framework-identity/vite.config.js create mode 100644 packages/graph-framework-identity/vitest.config.ts delete mode 100644 packages/graph-framework-key/vite.config.mts create mode 100644 packages/graph-framework-key/vitest.config.ts delete mode 100644 packages/graph-framework-messages/vite.config.mts create mode 100644 packages/graph-framework-messages/vitest.config.ts delete mode 100644 packages/graph-framework-schema/vite.config.js create mode 100644 packages/graph-framework-schema/vitest.config.ts delete mode 100644 packages/graph-framework-space-events/vite.config.js create mode 100644 packages/graph-framework-space-events/vitest.config.ts delete mode 100644 packages/graph-framework-utils/vite.config.mts create mode 100644 packages/graph-framework-utils/vitest.config.ts delete mode 100644 packages/graph-framework/vite.config.js create mode 100644 packages/graph-framework/vitest.config.ts create mode 100644 vitest.shared.ts delete mode 100644 vitest.workspace.mts create mode 100644 vitest.workspace.ts diff --git a/apps/events/tsconfig.app.json b/apps/events/tsconfig.app.json index b0a133c1..7225a843 100644 --- a/apps/events/tsconfig.app.json +++ b/apps/events/tsconfig.app.json @@ -1,6 +1,5 @@ { "extends": "../../tsconfig.base.json", - "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2020", "useDefineForClassFields": true, @@ -8,6 +7,11 @@ "module": "ESNext", "skipLibCheck": true, + "composite": false, + "incremental": false, + "declaration": false, + "declarationMap": false, + /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, diff --git a/apps/events/tsconfig.node.json b/apps/events/tsconfig.node.json index 7e3ba1f2..7790629f 100644 --- a/apps/events/tsconfig.node.json +++ b/apps/events/tsconfig.node.json @@ -1,12 +1,16 @@ { "extends": "../../tsconfig.base.json", - "references": [{ "path": "../../packages/graph-framework" }], "compilerOptions": { "target": "ES2022", "lib": ["ES2023"], "module": "ESNext", "skipLibCheck": true, + "composite": false, + "incremental": false, + "declaration": false, + "declarationMap": false, + /* Bundler mode */ "moduleResolution": "bundler", "allowImportingTsExtensions": true, diff --git a/apps/events/vite.config.ts b/apps/events/vite.config.ts index 907ea8a8..1e76acae 100644 --- a/apps/events/vite.config.ts +++ b/apps/events/vite.config.ts @@ -1,6 +1,6 @@ -import path from 'node:path'; import { TanStackRouterVite } from '@tanstack/router-plugin/vite'; import react from '@vitejs/plugin-react'; +import path from 'node:path'; import { defineConfig } from 'vite'; import { nodePolyfills } from 'vite-plugin-node-polyfills'; import topLevelAwait from 'vite-plugin-top-level-await'; @@ -23,6 +23,13 @@ export default defineConfig({ resolve: { alias: { '@': path.resolve(__dirname, './src'), + 'graph-framework': path.resolve(__dirname, '../../packages/graph-framework/src'), + 'graph-framework-space-events': path.resolve(__dirname, '../../packages/graph-framework-space-events/src'), + 'graph-framework-utils': path.resolve(__dirname, '../../packages/graph-framework-utils/src'), + 'graph-framework-schema': path.resolve(__dirname, '../../packages/graph-framework-schema/src'), + 'graph-framework-identity': path.resolve(__dirname, '../../packages/graph-framework-identity/src'), + 'graph-framework-key': path.resolve(__dirname, '../../packages/graph-framework-key/src'), + 'graph-framework-messages': path.resolve(__dirname, '../../packages/graph-framework-messages/src'), }, }, }); diff --git a/package.json b/package.json index 5ca60bbf..7ba74ad2 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "scripts": { "build": "pnpm --filter graph-framework-utils build", "ts:check": "pnpm -r ts:check", - "test": "pnpm -r test", + "test": "vitest", "lint": "pnpm -r lint", "format": "pnpm -r format", "check": "pnpm -r check" diff --git a/packages/graph-framework-identity/package.json b/packages/graph-framework-identity/package.json index f921b240..b0467c41 100644 --- a/packages/graph-framework-identity/package.json +++ b/packages/graph-framework-identity/package.json @@ -15,7 +15,7 @@ }, "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "peerDependencies": { diff --git a/packages/graph-framework-identity/vite.config.js b/packages/graph-framework-identity/vite.config.js deleted file mode 100644 index d3102d41..00000000 --- a/packages/graph-framework-identity/vite.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({}); diff --git a/packages/graph-framework-identity/vitest.config.ts b/packages/graph-framework-identity/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/graph-framework-identity/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework-key/package.json b/packages/graph-framework-key/package.json index e1875ba1..4db2b12f 100644 --- a/packages/graph-framework-key/package.json +++ b/packages/graph-framework-key/package.json @@ -5,7 +5,7 @@ "type": "module", "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "scripts": { diff --git a/packages/graph-framework-key/vite.config.mts b/packages/graph-framework-key/vite.config.mts deleted file mode 100644 index cb41057d..00000000 --- a/packages/graph-framework-key/vite.config.mts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -import { vitePluginExternalizeDependencies } from '../../shared/vitePluginExternalizeDependencies.js'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - dts({ tsconfigPath: './tsconfig.build.json', insertTypesEntry: true }), - vitePluginExternalizeDependencies(), - ], - build: { - lib: { - entry: { - index: './src/index.ts', - base58: './src/base58.ts', - }, - formats: ['es', 'cjs'], - fileName(format, entryName) { - return `${entryName}${format === 'es' ? '.mjs' : '.cjs'}`; - }, - }, - }, -}); diff --git a/packages/graph-framework-key/vitest.config.ts b/packages/graph-framework-key/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/graph-framework-key/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework-messages/package.json b/packages/graph-framework-messages/package.json index 2753f6f8..5dff9caf 100644 --- a/packages/graph-framework-messages/package.json +++ b/packages/graph-framework-messages/package.json @@ -5,7 +5,7 @@ "type": "module", "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "scripts": { diff --git a/packages/graph-framework-messages/vite.config.mts b/packages/graph-framework-messages/vite.config.mts deleted file mode 100644 index cb41057d..00000000 --- a/packages/graph-framework-messages/vite.config.mts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -import { vitePluginExternalizeDependencies } from '../../shared/vitePluginExternalizeDependencies.js'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - dts({ tsconfigPath: './tsconfig.build.json', insertTypesEntry: true }), - vitePluginExternalizeDependencies(), - ], - build: { - lib: { - entry: { - index: './src/index.ts', - base58: './src/base58.ts', - }, - formats: ['es', 'cjs'], - fileName(format, entryName) { - return `${entryName}${format === 'es' ? '.mjs' : '.cjs'}`; - }, - }, - }, -}); diff --git a/packages/graph-framework-messages/vitest.config.ts b/packages/graph-framework-messages/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/graph-framework-messages/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework-schema/package.json b/packages/graph-framework-schema/package.json index 5d770975..993088bf 100644 --- a/packages/graph-framework-schema/package.json +++ b/packages/graph-framework-schema/package.json @@ -15,7 +15,7 @@ }, "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "peerDependencies": { diff --git a/packages/graph-framework-schema/vite.config.js b/packages/graph-framework-schema/vite.config.js deleted file mode 100644 index 0a85b727..00000000 --- a/packages/graph-framework-schema/vite.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - test: { - environment: 'jsdom', - }, -}); diff --git a/packages/graph-framework-schema/vitest.config.ts b/packages/graph-framework-schema/vitest.config.ts new file mode 100644 index 00000000..dc6dc22b --- /dev/null +++ b/packages/graph-framework-schema/vitest.config.ts @@ -0,0 +1,13 @@ +import react from '@vitejs/plugin-react'; + +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = { + plugins: [react()], + test: { + environment: 'jsdom', + }, +}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework-space-events/package.json b/packages/graph-framework-space-events/package.json index 359bd77f..8c0649bc 100644 --- a/packages/graph-framework-space-events/package.json +++ b/packages/graph-framework-space-events/package.json @@ -15,7 +15,7 @@ }, "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "peerDependencies": { diff --git a/packages/graph-framework-space-events/vite.config.js b/packages/graph-framework-space-events/vite.config.js deleted file mode 100644 index d3102d41..00000000 --- a/packages/graph-framework-space-events/vite.config.js +++ /dev/null @@ -1,4 +0,0 @@ -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({}); diff --git a/packages/graph-framework-space-events/vitest.config.ts b/packages/graph-framework-space-events/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/graph-framework-space-events/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework-utils/vite.config.mts b/packages/graph-framework-utils/vite.config.mts deleted file mode 100644 index cb41057d..00000000 --- a/packages/graph-framework-utils/vite.config.mts +++ /dev/null @@ -1,24 +0,0 @@ -import { defineConfig } from 'vite'; -import dts from 'vite-plugin-dts'; - -import { vitePluginExternalizeDependencies } from '../../shared/vitePluginExternalizeDependencies.js'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - dts({ tsconfigPath: './tsconfig.build.json', insertTypesEntry: true }), - vitePluginExternalizeDependencies(), - ], - build: { - lib: { - entry: { - index: './src/index.ts', - base58: './src/base58.ts', - }, - formats: ['es', 'cjs'], - fileName(format, entryName) { - return `${entryName}${format === 'es' ? '.mjs' : '.cjs'}`; - }, - }, - }, -}); diff --git a/packages/graph-framework-utils/vitest.config.ts b/packages/graph-framework-utils/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/graph-framework-utils/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/packages/graph-framework/package.json b/packages/graph-framework/package.json index 0a3b614e..1f7c09ff 100644 --- a/packages/graph-framework/package.json +++ b/packages/graph-framework/package.json @@ -15,7 +15,7 @@ }, "exports": { ".": { - "default": "./src/index.js" + "default": "./dist/index.js" } }, "peerDependencies": { diff --git a/packages/graph-framework/vite.config.js b/packages/graph-framework/vite.config.js deleted file mode 100644 index 0a85b727..00000000 --- a/packages/graph-framework/vite.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import react from '@vitejs/plugin-react'; -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - test: { - environment: 'jsdom', - }, -}); diff --git a/packages/graph-framework/vitest.config.ts b/packages/graph-framework/vitest.config.ts new file mode 100644 index 00000000..dc6dc22b --- /dev/null +++ b/packages/graph-framework/vitest.config.ts @@ -0,0 +1,13 @@ +import react from '@vitejs/plugin-react'; + +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = { + plugins: [react()], + test: { + environment: 'jsdom', + }, +}; + +export default mergeConfig(shared, config); diff --git a/vitest.shared.ts b/vitest.shared.ts new file mode 100644 index 00000000..9b9190bb --- /dev/null +++ b/vitest.shared.ts @@ -0,0 +1,26 @@ +import * as path from 'node:path'; +import type { UserConfig } from 'vitest/config'; + +const alias = (pkg: string, dir = pkg) => { + return { + [`${pkg}/test`]: path.join(__dirname, 'packages', dir, 'test'), + [`${pkg}`]: path.join(__dirname, 'packages', dir, 'src'), + }; +}; + +// This is a workaround, see https://github.com/vitest-dev/vitest/issues/4744 +const config: UserConfig = { + test: { + alias: { + ...alias('graph-framework'), + ...alias('graph-framework-utils'), + ...alias('graph-framework-space-events'), + ...alias('graph-framework-schema'), + ...alias('graph-framework-identity'), + ...alias('graph-framework-key'), + ...alias('graph-framework-messages'), + }, + }, +}; + +export default config; diff --git a/vitest.workspace.mts b/vitest.workspace.mts deleted file mode 100644 index 82a3216f..00000000 --- a/vitest.workspace.mts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineWorkspace } from "vitest/config"; - -export default defineWorkspace([ - "./packages/graph-framework-utils/vite.config.mts", - "./packages/graph-framework-space-events/vite.config.js", - "./packages/graph-framework-schema/vite.config.js", - "./packages/graph-framework-identity/vite.config.js", - "./packages/graph-framework/vite.config.js", - "./apps/events/vite.config.ts", -]); diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 00000000..f229dc32 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,3 @@ +import { defineWorkspace } from 'vitest/config'; + +export default defineWorkspace(['./packages/*', './apps/events']); From 4d36e803c752417f111423e1fe7b0874498047f5 Mon Sep 17 00:00:00 2001 From: Nik Graf Date: Tue, 26 Nov 2024 18:02:08 +0100 Subject: [PATCH 3/3] fix build scripts --- apps/events/package.json | 2 +- apps/server/src/index.ts | 2 +- package.json | 2 +- packages/graph-framework-key/package.json | 2 +- packages/graph-framework-messages/package.json | 2 +- packages/graph-framework-utils/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/events/package.json b/apps/events/package.json index 0334aa5c..c9bb2480 100644 --- a/apps/events/package.json +++ b/apps/events/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite --force", - "build": "tsc -b && vite build", + "build": "echo 'TODO'", "lint": "pnpm biome lint src/*", "lint:fix": "pnpm biome lint --write src/*", "format": "pnpm biome format src/*", diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index 38b30ac3..00b09ba9 100755 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -1,5 +1,6 @@ import cors from 'cors'; import 'dotenv/config'; +import { parse } from 'node:url'; import { Effect, Exit, Schema } from 'effect'; import express from 'express'; import type { @@ -14,7 +15,6 @@ import type { import { RequestMessage, deserialize, serialize } from 'graph-framework-messages'; import type { SpaceEvent } from 'graph-framework-space-events'; import { applyEvent } from 'graph-framework-space-events'; -import { parse } from 'node:url'; import WebSocket, { WebSocketServer } from 'ws'; import { applySpaceEvent } from './handlers/applySpaceEvent.js'; import { createSpace } from './handlers/createSpace.js'; diff --git a/package.json b/package.json index 7ba74ad2..caf55a82 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "vite-plugin-dts": "^4.3.0" }, "scripts": { - "build": "pnpm --filter graph-framework-utils build", + "build": "pnpm -r build", "ts:check": "pnpm -r ts:check", "test": "vitest", "lint": "pnpm -r lint", diff --git a/packages/graph-framework-key/package.json b/packages/graph-framework-key/package.json index 4db2b12f..8326442f 100644 --- a/packages/graph-framework-key/package.json +++ b/packages/graph-framework-key/package.json @@ -9,7 +9,7 @@ } }, "scripts": { - "build": "vite build", + "build": "tsc", "test": "vitest run --typecheck", "ts:check": "tsc --noEmit", "lint": "pnpm biome lint src/*", diff --git a/packages/graph-framework-messages/package.json b/packages/graph-framework-messages/package.json index 5dff9caf..9f10e7fa 100644 --- a/packages/graph-framework-messages/package.json +++ b/packages/graph-framework-messages/package.json @@ -9,7 +9,7 @@ } }, "scripts": { - "build": "vite build", + "build": "tsc", "test": "vitest run --typecheck", "ts:check": "tsc --noEmit", "lint": "pnpm biome lint src/*", diff --git a/packages/graph-framework-utils/package.json b/packages/graph-framework-utils/package.json index 145c9634..21554980 100644 --- a/packages/graph-framework-utils/package.json +++ b/packages/graph-framework-utils/package.json @@ -23,7 +23,7 @@ "files": ["dist", "package.json"], "sideEffects": false, "scripts": { - "build": "vite build", + "build": "tsc", "test": "vitest run --typecheck", "ts:check": "tsc --noEmit", "lint": "pnpm biome lint src/*",