{"id":22887270,"url":"https://github.com/appandflow/tsst","last_synced_at":"2025-03-31T19:13:32.696Z","repository":{"id":57098284,"uuid":"306778666","full_name":"AppAndFlow/tsst","owner":"AppAndFlow","description":"Little command-line-tool to help you to centralize your typescript types across different components of your project's ecosystem. ","archived":false,"fork":false,"pushed_at":"2020-11-03T21:22:41.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T14:46:37.607Z","etag":null,"topics":["command-line-tool","tool","types","typescript","typescript-library"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AppAndFlow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-24T01:00:03.000Z","updated_at":"2020-11-03T21:22:43.000Z","dependencies_parsed_at":"2022-08-20T18:10:14.837Z","dependency_job_id":null,"html_url":"https://github.com/AppAndFlow/tsst","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppAndFlow%2Ftsst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppAndFlow%2Ftsst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppAndFlow%2Ftsst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppAndFlow%2Ftsst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AppAndFlow","download_url":"https://codeload.github.com/AppAndFlow/tsst/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246523875,"owners_count":20791444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-tool","tool","types","typescript","typescript-library"],"created_at":"2024-12-13T20:32:12.921Z","updated_at":"2025-03-31T19:13:32.655Z","avatar_url":"https://github.com/AppAndFlow.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Typescript Shared Types (or tsst)\n\n[![npm (scoped)](https://img.shields.io/npm/v/@appandflow/tsst.svg)](https://www.npmjs.com/package/@appandflow/tsst)\n\n## Features\n\n- **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)**\n- **Leverage the power of git and github to centralize and to share with ease your typescript types**\n- **Handy for js/ts fullstack projects**\n- **Single place to maintain shared types**\n- **Merge conflic safe**\n- **Takes care of creating the repo holding all of your shared types for you if needed**\n\nSo I am not a huge fan of mono repo and I was looking for something that would\nallow me to declare and to write all of my ts types at a single place so then I could\nuse them on different components of a given project ecosystem.\n\nLet's say you have a web platform, a mobile platform and an API.\nThose components might needs to share some types and copy/pasting your types\nacross those platforms might be time consuming and definitely not ideal for maintainability.\n\nSo this little package aims to offer a solution to that problem. It creates another\ngithub 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.\n\n### Installation\n\n```\n  npm i @appandflow/tsst --save-dev\n```\n\n### Usage\n\n**1 - package.json script shortcut**\n\nYou might wanna add this to your project's scripts in your package.json.\nAlso, this tool might play nice with a git pre-commit hook or a post-commit hook.\n\n```\n\"scripts\": {\n  \"tsst\": \"node node_modules/@appandflow/tsst/dist/tsst.js\"\n}\n```\n\n**2 - Initialization. You only need to do that the first time in each projects/components of your ecosystem **\n\nThis will guide you through the only few steps required to use this tool.\n\n```\n  npm run tsst init\n```\n\n**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**\n\nMake sure to store all of the types you wish to share under the folder /sharedTypes/\\*.\nThis folder will be generated when you run \"npm run tsst init\" or the first time you run\n\"npm run tsst sync\"\n\n```\n  npm run tsst sync\n```\n\nYou might have some merge conflicts sometimes. Nothing new here - you open your text editor\nand you fix them manualy just like you normally do. Then you commit/push on your repo and you run\n\"npm run tsst update\" again to update the now well merged types.\n\n**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 👏**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappandflow%2Ftsst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappandflow%2Ftsst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappandflow%2Ftsst/lists"}