2.8 KiB
ZITADEL typescript with Turborepo and Changesets
This is an monorepo containing all typescript/javascript packages and applications for ZITADEL. Versioning and package publishing is handled by Changesets and fully automated with GitHub Actions.
What's inside?
This Turborepo includes the following:
Apps and Packages
login: The new login UI powered by Next.js@zitadel/core: core components for establishing client connection, grpc stub@zitadel/react: shared React utilities and components
@zitadel/next: shared Next.js utilities@zitadel/tsconfig: sharedtsconfig.jsons used throughout the monorepoeslint-config-zitadel: ESLint preset
Each package and app is 100% TypeScript.
Utilities
This repo has some additional tools:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
Useful commands
pnpm build- Build all packages and the docs sitepnpm dev- Develop all packages and the docs sitepnpm lint- Lint all packagespnpm changeset- Generate a changesetpnpm clean- Clean up allnode_modulesanddistfolders (runs each package's clean script)
Versioning and Publishing packages
Package publishing has been configured using Changesets. Here is their documentation for more information about the workflow.
The GitHub Action needs an NPM_TOKEN and GITHUB_TOKEN in the repository settings. The Changesets bot should also be installed on the GitHub repository.
Read the changesets documentation for more information about this automation
npm
If you want to publish package to the public npm registry and make them publicly available, this is already setup.
To publish packages to a private npm organization scope, remove the following from each of the package.json's
- "publishConfig": {
- "access": "public"
- },
GitHub Package Registry
See Working with the npm registry
TODOs
- Buf setup to get grpc stub in the core package
- Decide whether a seperate client package is required to expose public client convenience methods only or generate a grpc-web output there
- Fix #/* path in login application