{"id":21599170,"url":"https://github.com/gridonic/client-services","last_synced_at":"2025-07-05T23:08:52.147Z","repository":{"id":55300181,"uuid":"226372837","full_name":"gridonic/client-services","owner":"gridonic","description":"Typescript service wrappers for usage in our projects","archived":false,"fork":false,"pushed_at":"2021-01-05T18:28:55.000Z","size":1726,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-27T01:48:43.027Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gridonic.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-06T16:54:41.000Z","updated_at":"2020-03-02T13:05:46.000Z","dependencies_parsed_at":"2022-08-14T20:03:53.421Z","dependency_job_id":null,"html_url":"https://github.com/gridonic/client-services","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridonic%2Fclient-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridonic%2Fclient-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridonic%2Fclient-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gridonic%2Fclient-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gridonic","download_url":"https://codeload.github.com/gridonic/client-services/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244216700,"owners_count":20417650,"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":[],"created_at":"2024-11-24T18:14:31.897Z","updated_at":"2025-03-18T11:41:37.453Z","avatar_url":"https://github.com/gridonic.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gridonic Client Services\n\nA service library for our projects respecting application boundaries and encapsulating dependencies.\n\nIt works best for projects created with [@gridonic/cli](https://www.npmjs.com/package/@gridonic/cli).\n\n## Concepts\n\nThe library is designed to provide services used repeatedly in projects.\n\n- Provides interfaces for each exported service and model\n- The services are mostly independent from each other, so they can be added selectively to the projects\n- Written in typescript \n\n### Benefits\n\n- Standardizes our projects by using interfaces for common services and models\n- Encapsulates dependencies, making it possible to replace them easier if needed\n- No magic or restrictions: services can be extended, copied or completely replaced if they are not suiting the project\n- Only used services get compiled into project\n\n## Usage in Projects\n\nServices can be imported selectively into a project. It is recommended to do all imports in one file in each project\nand exporting the types. This prevents the code from being cluttered with import statements from this library.\n\n## Developing the library\n\n### Local project setup\n\nInstall dependencies\n```\nnpm install\n```\n\nRun unit tests\n```\nnpm run test\n```\n\nLints and fixes files\n```\nnpm run lint\n```\n\n### Publishing\n\nWhen ready to release, execute the following steps, given that all changes are commited in the master branch:\n- List changes in the CHANGELOG.md\n- Bump your version and automatically create a git tag with `npm version \u003ctype\u003e`, where type is patch, minor or major\n- Push the master branch `git push` and the tags `git push --tags`\n- Create a release in github. A github action will then automatically publish the package to npm\n\n### Guidelines\n\n- Every service must be documented\n- Every service must implement an interface\n- Every service must be unit-tested\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridonic%2Fclient-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgridonic%2Fclient-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgridonic%2Fclient-services/lists"}