{"id":16327297,"url":"https://github.com/bryopsida/node-ts-starter","last_synced_at":"2026-01-12T13:58:44.161Z","repository":{"id":105079477,"uuid":"582466162","full_name":"bryopsida/node-ts-starter","owner":"bryopsida","description":"A Node.JS Typescript starter template using Inversify for DI and Jest for testing.","archived":false,"fork":false,"pushed_at":"2024-05-28T14:28:36.000Z","size":1065,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-29T03:11:23.586Z","etag":null,"topics":["nodejs","starter","template","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bryopsida.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-26T23:33:24.000Z","updated_at":"2024-05-31T22:38:24.763Z","dependencies_parsed_at":"2023-12-18T05:40:54.277Z","dependency_job_id":"5c8a60c6-9c45-4d13-afd9-c67b7f06375a","html_url":"https://github.com/bryopsida/node-ts-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":"curium-rocks/kube-starter-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryopsida%2Fnode-ts-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryopsida%2Fnode-ts-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryopsida%2Fnode-ts-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryopsida%2Fnode-ts-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bryopsida","download_url":"https://codeload.github.com/bryopsida/node-ts-starter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246932294,"owners_count":20856964,"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":["nodejs","starter","template","typescript"],"created_at":"2024-10-10T23:11:01.422Z","updated_at":"2026-01-12T13:58:44.111Z","avatar_url":"https://github.com/bryopsida.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node-TS-Starter\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_node-ts-starter\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=bryopsida_node-ts-starter)\n\nThis template provides a few things to kick start a TypeScript Node.JS project, an IoC library (Inversify.JS), linting (ESLint and Prettier), automatic dependency updates (Renovate), logger (Pino), Dockerfile, Document generation (Typedoc). This template purposely avoids taking opinions on frameworks that would constrain the type of services/projects created.\n\n- [Jest](https://github.com/facebook/jest)\n- [Github Action CI](.github/workflows/ci.yaml)\n- [Renovate](https://github.com/renovatebot/renovate)\n- [Eslint (with standard config)](https://github.com/standard/eslint-config-standard)\n- [Typescript](https://github.com/Microsoft/TypeScript)\n- [InversifyJS](https://github.com/inversify/InversifyJS)\n- [Sonar Project File](./sonar-project.properties)\n- [Dockerfile](./Dockerfile)\n\n## NPM Scripts\n\nThe following scripts are included in the NPM project configuration\n\n- `lint`lints the source code using eslint\n- `lint:fix` automatically fixes any lint errors that can be fixed automatically\n- `test` uses jest to run test suites\n- `build` compiles the typescript into js and places it in the `dist` folder\n- `build:docs` generates the documentation pages from the code comments\n- `build:image` build the container image from the Dockerfile\n- `start` runs the compiled js in `dist`\n- `start:dev` runs using nodemon and will automatically rebuild and launch whenever a change is made under the source folder\n\n## Structure\n\n### [Services](./src/services/)\n\nThis is meant to include service abstractions, ideally each service should provide an interface/contract\nexposing the functionality that other things in the application need.\n\n### [Models](./src/models/)\n\nThis houses interfaces/models with little to no logic, the intent is these items can be passed/returned from the abstractions in services and avoid tight coupling to third party types.\n\n### [types.ts](./src/types.ts)\n\nThis defines symbols for each type that will be configured in the IoC container, these are used to identify the type when using `@inject(TYPES.Services.Echo)` for example. For more information refer to [inversify](https://github.com/inversify/InversifyJS).\n\n### [inversify.config.ts](./src/inversify.config.ts)\n\nThis file maps the types defined in `./src/types.ts` to interface types. For more information refer to [inversify](https://github.com/inversify/InversifyJS).\n\n## After Using as Template Todo List\n\n1. [ ] Update Sonar Project Properties For [Sonar Cloud](https://sonarcloud.io)\n2. [ ] Add SONARQUBE_KEY secret to your repo or org if not already present\n3. [ ] Point badges in README.md to correct location for you repo\n4. [ ] Update [renovate.json](./renovate.json) to meet desired behavior for your needs, docs can be found [here](https://docs.renovatebot.com).\n5. [ ] Update this readme to reflect your project name and info\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryopsida%2Fnode-ts-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryopsida%2Fnode-ts-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryopsida%2Fnode-ts-starter/lists"}