https://github.com/appandflow/tsst
Little command-line-tool to help you to centralize your typescript types across different components of your project's ecosystem.
https://github.com/appandflow/tsst
command-line-tool tool types typescript typescript-library
Last synced: about 1 year ago
JSON representation
Little command-line-tool to help you to centralize your typescript types across different components of your project's ecosystem.
- Host: GitHub
- URL: https://github.com/appandflow/tsst
- Owner: AppAndFlow
- Created: 2020-10-24T01:00:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-11-03T21:22:41.000Z (over 5 years ago)
- Last Synced: 2025-03-11T14:46:37.607Z (about 1 year ago)
- Topics: command-line-tool, tool, types, typescript, typescript-library
- Language: JavaScript
- Homepage:
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Typescript Shared Types (or tsst)
[](https://www.npmjs.com/package/@appandflow/tsst)
## Features
- **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.
### Installation
```
npm i @appandflow/tsst --save-dev
```
### Usage
**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 👏**