{"id":23813859,"url":"https://github.com/lucasbassetti/node-grpc-typescript-boilerplate","last_synced_at":"2025-07-01T16:06:46.533Z","repository":{"id":40924519,"uuid":"219235295","full_name":"LucasBassetti/node-grpc-typescript-boilerplate","owner":"LucasBassetti","description":"Minimalistic boilerplate to jump-start a gRPC Node.js project in TypeScript 3.6.","archived":false,"fork":false,"pushed_at":"2023-01-04T23:59:48.000Z","size":655,"stargazers_count":9,"open_issues_count":23,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T11:51:34.650Z","etag":null,"topics":["grpc","grpc-node","jest","nodejs","prettier","tslint","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LucasBassetti.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}},"created_at":"2019-11-03T01:17:01.000Z","updated_at":"2024-05-01T19:13:26.000Z","dependencies_parsed_at":"2023-02-03T01:01:28.431Z","dependency_job_id":null,"html_url":"https://github.com/LucasBassetti/node-grpc-typescript-boilerplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LucasBassetti/node-grpc-typescript-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasBassetti%2Fnode-grpc-typescript-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasBassetti%2Fnode-grpc-typescript-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasBassetti%2Fnode-grpc-typescript-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasBassetti%2Fnode-grpc-typescript-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LucasBassetti","download_url":"https://codeload.github.com/LucasBassetti/node-grpc-typescript-boilerplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LucasBassetti%2Fnode-grpc-typescript-boilerplate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262996402,"owners_count":23396903,"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":["grpc","grpc-node","jest","nodejs","prettier","tslint","typescript"],"created_at":"2025-01-02T03:38:19.523Z","updated_at":"2025-07-01T16:06:46.487Z","avatar_url":"https://github.com/LucasBassetti.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![TypeScript version][ts-badge]][typescript-36]\n[![Node.js version][nodejs-badge]][nodejs]\n[![APLv2][license-badge]][LICENSE]\n[![Build Status][travis-badge]][travis-ci]\n\n# node-grpc-typescript-boilerplate\n\nMinimalistic boilerplate to jump-start a [gRPC][grpc] [Node.js][nodejs] project in [TypeScript][typescript] [3.6][typescript-36].\n\nWhat's included:\n\n+ [gRPC][grpc] open source remote procedure call\n+ [TypeScript][typescript] [3.6][typescript-36],\n+ [TSLint][tslint] with [Microsoft rules][tslint-microsoft-contrib],\n+ [Jest][jest] unit testing and code coverage,\n+ Type definitions for Node.js and Jest,\n+ [Prettier][prettier] to enforce a consistent code style,\n+ [NPM scripts for common operations](#available-scripts),\n+ a simple example of TypeScript code and unit test,\n+ .editorconfig for consistent file format.\n\n## Quick start\n\nThis project is intended to be used with the latest Active LTS release of [Node.js][nodejs]. To start, just clone the repository with following commands:\n\n```sh\ngit clone https://github.com/jsynowiec/node-typescript-boilerplate\ncd node-grpc-typescript-boilerplate\nnpm install\n```\n\nor download and unzip current `master` branch:\n\n```sh\nwget https://github.com/jsynowiec/node-typescript-boilerplate/archive/master.zip -O node-typescript-boilerplate\nunzip node-typescript-boilerplate.zip \u0026\u0026 rm node-typescript-boilerplate.zip\n```\n\nNow start adding your code in the `src` and unit tests in the `__tests__` directories. Have fun and build amazing things 🚀\n\n### Unit tests in JavaScript\n\nWriting unit tests in TypeScript can sometimes be troublesome and confusing. Especially when mocking dependencies and using spies.\n\nThis is **optional**, but if you want to learn how to write JavaScript tests for TypeScript modules, read the [corresponding wiki page][wiki-js-tests].\n\n## Available scripts\n\n+ `start` - start project to development running `format:watch` and `start:watch`\n+ `start:watch` - start project with nodemon to automatically watch changes\n+ `format:watch` - format code with prettier automatically when save file\n+ `clean` - remove coverage data, Jest cache and transpiled files,\n+ `build` - transpile TypeScript to ES6,\n+ `build:watch` - interactive watch mode to automatically transpile source files,\n+ `lint` - lint source files and tests,\n+ `test` - run tests,\n+ `test:watch` - interactive watch mode to automatically re-run tests\n+ `doc` - generate grpc protos documentation in html\n\n## Requirements\n\n[go][go]\n\n```\n// add GOPATH to default PATH definitions\nvi ~/.bash_profile\n\n// add the following commands\nexport GOPATH=$HOME/go\nexport PATH=$PATH:$GOPATH/bin\n```\n\n[protoc][protoc]\n\n`brew install protobuf`\n\n[protolint][protolint]\n\n`go get -u -v github.com/yoheimuta/protolint/cmd/protolint`\n\n[vscode-protolint][vscode-protolint] \n\n## Environment Variables\n\nCreate a `.env` from a copy of `.env.example` and change the values with your preferences.\n\n### \n\n## License\nLicensed under the APLv2. See the [LICENSE](https://github.com/jsynowiec/node-typescript-boilerplate/blob/master/LICENSE) file for details.\n\n[ts-badge]: https://img.shields.io/badge/TypeScript-3.6-blue.svg\n[nodejs-badge]: https://img.shields.io/badge/Node.js-\u003e=%2010.13-blue.svg\n[nodejs]: https://nodejs.org/dist/latest-v10.x/docs/api/\n[travis-badge]: https://travis-ci.org/jsynowiec/node-typescript-boilerplate.svg?branch=master\n[travis-ci]: https://travis-ci.org/jsynowiec/node-typescript-boilerplate\n[typescript]: https://www.typescriptlang.org/\n[typescript-36]: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-6.html\n[license-badge]: https://img.shields.io/badge/license-APLv2-blue.svg\n[license]: https://github.com/jsynowiec/node-typescript-boilerplate/blob/master/LICENSE\n\n[grpc]: https://grpc.io/\n[jest]: https://facebook.github.io/jest/\n[tslint]: https://palantir.github.io/tslint/\n[tslint-microsoft-contrib]: https://github.com/Microsoft/tslint-microsoft-contrib\n[wiki-js-tests]: https://github.com/jsynowiec/node-typescript-boilerplate/wiki/Unit-tests-in-plain-JavaScript\n[prettier]: https://prettier.io\n\n[go]: https://golang.org/doc/install\n[protoc]: http://google.github.io/proto-lens/installing-protoc.html\n[protolint]: https://github.com/yoheimuta/protolint\n[vscode-protolint]: https://marketplace.visualstudio.com/items?itemName=mfuentesg.vscode-protolint\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasbassetti%2Fnode-grpc-typescript-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucasbassetti%2Fnode-grpc-typescript-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucasbassetti%2Fnode-grpc-typescript-boilerplate/lists"}