packages/platform/*– Platform adapters (Express, Fastify, Koa, etc.)packages/orm/*– ORM integrations (Mongoose, Prisma, MikroORM, etc.)packages/graphql/*– GraphQL integrations (Apollo, TypeGraphQL)packages/security/*– Security plugins (Passport, OIDC, JWKS)packages/specs/*– Schema and specification tools (AJV, JSON Schema, Swagger)packages/third-parties/*– Third-party integrationspackages/utils/*– Utility packages
yarn install # Install dependencies via Yarn workspaces
yarn configure # Generate workspace package references
yarn build # Build all packages
yarn api:build # Generate API documentation- Lerna configuration selects Yarn as npm client, manages 8+ package categories.
- TypeScript project references via
tsconfig.json->tsconfig.node.json+tsconfig.spec.json. - ESLint integrates TypeScript, Prettier, import sorting, workspace rules.
- Vitest multi-project setup with per-package configs.
- Vitest with individual
vitest.config.mtsper package, leveraging@tsed/vitest/presets.
yarn test # Run all tests
yarn test:core # Core packages (@tsed/{core,di,config,hooks,engines})
yarn test:platform # Platform packages (@tsed/platform-*)
yarn test:specs # Schema packages (@tsed/{ajv,exceptions,json-mapper,schema,swagger})
yarn test:orm # ORM packages (@tsed/{adapters,mongoose,prisma,etc})
yarn test:graphql # GraphQL packages (@tsed/{apollo,typegraphql})
yarn test:security # Security packages (@tsed/{jwks,oidc-provider,passport})
yarn test:third-parties # Third-party integrations
cd packages/<path> && yarn test # Run tests for specific package
yarn test --coverage # Coverage enabled by default per package- To speed iteration, run package-scoped tests from the package directory (e.g.,
cd packages/specs/schema && yarn test). - Individual test files:
npx vitest run specific-file.spec.tsand watch mode vianpx vitest watch.
yarn test:lint # Lint workspace
yarn test:lint:fix # Fix lint issues
yarn prettier # Format all files- ESLint uses
@typescript-eslint,eslint-plugin-prettier,eslint-plugin-simple-import-sort, and workspace-specific rules prohibiting absolute imports between packages. - Test rules enforced through Vitest ESLint plugin.
- Project references enable incremental builds with separate configs for Node code and tests.
- Base
tsconfigsetsbaseUrl: "."for consistent resolution.
- Package Management: Lerna + Yarn workspaces.
- Build System: TypeScript project references with incremental compilation.
- Testing: Vitest per-package configs.
- Documentation: TSDoc for API docs, VitePress for user docs.
- CI/CD: Parallelized suites with concurrency limits.
yarn api:build # Build API docs
yarn docs:build # Build user docs
yarn docs:serve # Serve docs locallyyarn clean # Clean all packages
yarn sync:packages # Sync dependencies
yarn build:references # Update TS references
lerna run <command> --stream # Run command across packages- semantic-release drives automated releases with conventional commits.
- Lerna manages individual package versioning.
yarn benchmarks
yarn benchmarks:prepare- Use the OpenSpec workflow for all non-trivial work. Review
openspec/AGENTS.mdandopenspec/project.mdbefore drafting a proposal. - Store new plans/specs under
openspec/changes/<change-id>/with the standardproposal.md,tasks.md,design.md, andspecs/structure. - JSDoc coverage progress now lives in
reports/jsdoc/; do not recreate.plan/*trackers. For historical context seeopenspec/changes/standardize-jsdoc-tracking.
- Package-specific progress reports live under
reports/jsdoc/(core.md,di.md,hooks.md,json-mapper.md,schema.md). - Each tracker captures the symbol-only rules (including language-specific reminders) plus validation expectations.
- When you update documentation in any of these packages, update the corresponding tracker and run
yarn api:buildto validate TSDoc.
This AGENTS file is the authoritative source for Ts.ED development guidance. Update this document first whenever processes change, and mirror references elsewhere.