Typescript Shared Types
npm install @appandflow/tsst
- Allows you to centralize all of your types for one project liberating you from having to copy/paste them on each of your project's platform (web, backend, mobile etc)
- Leverage the power of git and github to centralize and to share with ease your typescript types
- Handy for js/ts fullstack projects
- Single place to maintain shared types
- Merge conflic safe
- Takes care of creating the repo holding all of your shared types for you if needed
So I am not a huge fan of mono repo and I was looking for something that would
allow me to declare and to write all of my ts types at a single place so then I could
use them on different components of a given project ecosystem.
Let's say you have a web platform, a mobile platform and an API.
Those components might needs to share some types and copy/pasting your types
across those platforms might be time consuming and definitely not ideal for maintainability.
So this little package aims to offer a solution to that problem. It creates another
github repo where all your types under the folder "sharedTypes" will be commited to. It's not 100% perfect, but it might save you some times.
```
npm i @appandflow/tsst --save-dev
1 - package.json script shortcut
You might wanna add this to your project's scripts in your package.json.
Also, this tool might play nice with a git pre-commit hook or a post-commit hook.
``
"scripts": {
"tsst": "node node_modules/@appandflow/tsst/dist/tsst.js"
}
2 - Initialization. You only need to do that the first time in each projects/components of your ecosystem
This will guide you through the only few steps required to use this tool.
``
npm run tsst init
3 - Each time you start working on your project or each time you add a new type that you wish to share across your project ecosystem, run this
Make sure to store all of the types you wish to share under the folder /sharedTypes/\*.
This folder will be generated when you run "npm run tsst init" or the first time you run
"npm run tsst sync"
```
npm run tsst sync
You might have some merge conflicts sometimes. Nothing new here - you open your text editor
and you fix them manualy just like you normally do. Then you commit/push on your repo and you run
"npm run tsst update" again to update the now well merged types.
4 - Profit ? That's it. Just run #3 when needed and store your shared types under /sharedTypes and you are all setup to share your types between your multiple project's components 👏