{"id":13740902,"url":"https://github.com/bojand/grpc-create-error","last_synced_at":"2025-03-25T02:31:08.754Z","repository":{"id":15150402,"uuid":"77656014","full_name":"bojand/grpc-create-error","owner":"bojand","description":"Utility to crete errors for gRPC responses","archived":false,"fork":false,"pushed_at":"2023-03-04T02:32:49.000Z","size":690,"stargazers_count":8,"open_issues_count":6,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T07:02:11.459Z","etag":null,"topics":["grpc","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://bojand.github.io/grpc-create-error","language":"JavaScript","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/bojand.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}},"created_at":"2016-12-30T03:01:57.000Z","updated_at":"2021-09-15T14:38:34.000Z","dependencies_parsed_at":"2023-10-20T18:30:49.066Z","dependency_job_id":null,"html_url":"https://github.com/bojand/grpc-create-error","commit_stats":{"total_commits":38,"total_committers":3,"mean_commits":"12.666666666666666","dds":0.2894736842105263,"last_synced_commit":"86d9a6ee9f88755398c932fd8ef2297c6b445f3f"},"previous_names":["bojand/create-grpc-error"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bojand%2Fgrpc-create-error","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bojand%2Fgrpc-create-error/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bojand%2Fgrpc-create-error/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bojand%2Fgrpc-create-error/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bojand","download_url":"https://codeload.github.com/bojand/grpc-create-error/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245385328,"owners_count":20606648,"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","hacktoberfest"],"created_at":"2024-08-03T04:00:53.444Z","updated_at":"2025-03-25T02:31:08.454Z","avatar_url":"https://github.com/bojand.png","language":"JavaScript","funding_links":[],"categories":["Language-Specific"],"sub_categories":["Node.js"],"readme":"# grpc-create-error\n\nUtility function that creates an Error suitable for gRPC responses\n\n[![npm version](https://img.shields.io/npm/v/grpc-create-error.svg?style=flat-square)](https://www.npmjs.com/package/grpc-create-error)\n[![build status](https://img.shields.io/travis/bojand/grpc-create-error/master.svg?style=flat-square)](https://travis-ci.org/bojand/grpc-create-error)\n[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg?style=flat-square)](https://standardjs.com)\n[![License](https://img.shields.io/github/license/bojand/grpc-create-error.svg?style=flat-square)](https://raw.githubusercontent.com/bojand/grpc-create-error/master/LICENSE)\n\n### Related\n\n[grpc-error](https://github.com/bojand/grpc-error) - `GRPCError` class that uses this module\n\n[grpc status codes](https://grpc.io/grpc/node/grpc.html) - The grpc status codes.\n\n## API\n\n\u003ca name=\"createGRPCError\"\u003e\u003c/a\u003e\n\n### createGRPCError([message], [code], [metadata]) ⇒ \u003ccode\u003eError\u003c/code\u003e\nUtility function that creates an Error suitable for gRPC responses.\nSee tests for all examples\n\n**Kind**: global function  \n**Returns**: \u003ccode\u003eError\u003c/code\u003e - The new Error  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| [message] | \u003ccode\u003eString\u003c/code\u003e \\| \u003ccode\u003eNumber\u003c/code\u003e \\| \u003ccode\u003eError\u003c/code\u003e \\| \u003ccode\u003eObject\u003c/code\u003e | If \u003ccode\u003eString\u003c/code\u003e the error message                                              If \u003ccode\u003eNumber\u003c/code\u003e the error code                                              If instanceof \u003ccode\u003eError\u003c/code\u003e, the error to source data from. We still create a new                                              \u003ccode\u003eError\u003c/code\u003e instance, copy data from the passed error and assign / merge the rest                                              of arguments. This can be used to mege metadata of existing error with                                              additional metadata.                                              If \u003ccode\u003eObject\u003c/code\u003e, assumed to be metadata, either plain object representation                                              or actual \u003ccode\u003egrpc.Metadata\u003c/code\u003e instance. We use                                              \u003ccode\u003egrpc-create-metadata\u003c/code\u003e module to create metadata for the                                              return value. |\n| [code] | \u003ccode\u003eNumber\u003c/code\u003e \\| \u003ccode\u003eObject\u003c/code\u003e | If \u003ccode\u003eNumber\u003c/code\u003e the error code                              If \u003ccode\u003eObject\u003c/code\u003e, assumed to be metadata, either plain object representation                              or actual \u003ccode\u003egrpc.Metadata\u003c/code\u003e instance. We use                              \u003ccode\u003egrpc-create-metadata\u003c/code\u003e module to create metadata for the                              return value. |\n| [metadata] | \u003ccode\u003eObject\u003c/code\u003e | The error metadata. Either plain object representation or actual                           \u003ccode\u003egrpc.Metadata\u003c/code\u003e instance. We use \u003ccode\u003egrpc-create-metadata\u003c/code\u003e                           module to create metadata for the return value. |\n\n**Example** *(Using standard grpc status code)*  \n```js\nconst grpc = require('grpc')\nconst createGRPCError = require('create-grpc-error')\nconst err = createGRPCError('Ouch!', grpc.status.INVALID_ARGUMENT)\n```\n**Example** *(Custom error with metadata)*  \n```js\nconst createGRPCError = require('create-grpc-error')\nconst err = createGRPCError('Boom', 2000, { ERROR_CODE: 'INVALID_TOKEN' })\nconsole.log(err.message) // 'Boom'\nconsole.log(err.code) // 2000\nconsole.log(err.metadata instanceof grpc.Metadata) // true\nconsole.log(err.metadata.getMap()) // { error_code: 'INVALID_TOKEN' }\n```\n**Example** *(Source from error and merge metadatas)*  \n```js\nconst createGRPCError = require('create-grpc-error')\n\nconst existingError = new Error('Boom')\nexistingError.metadata = new grpc.Metadata()\nexistingError.metadata.add('foo', 'bar')\n\nconst err = createGRPCError(existingError, 2000, { ERROR_CODE: 'INVALID_TOKEN' })\nconsole.log(err.message) // 'Boom'\nconsole.log(err.code) // 2000\nconsole.log(err.metadata instanceof grpc.Metadata) // true\nconsole.log(err.metadata.getMap()) // { foo: 'bar', error_code: 'INVALID_TOKEN' }\n```\n\u003ca name=\"applyCreate\"\u003e\u003c/a\u003e\n\n### applyCreate(err, message, code, metadata) ⇒ \u003ccode\u003eError\u003c/code\u003e\nActual function that does all the work.\nSame as createGRPCError but applies cretion to the existing error.\n\n**Kind**: global function  \n**Returns**: \u003ccode\u003eError\u003c/code\u003e - See \u003ccode\u003ecreateGRPCError\u003c/code\u003e description  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| err | \u003ccode\u003eError\u003c/code\u003e | The error to apply creation to |\n| message | \u003ccode\u003eString\u003c/code\u003e \\| \u003ccode\u003eNumber\u003c/code\u003e \\| \u003ccode\u003eError\u003c/code\u003e \\| \u003ccode\u003eObject\u003c/code\u003e | See \u003ccode\u003ecreateGRPCError\u003c/code\u003e description |\n| code | \u003ccode\u003eNumber\u003c/code\u003e \\| \u003ccode\u003eObject\u003c/code\u003e | See \u003ccode\u003ecreateGRPCError\u003c/code\u003e description |\n| metadata | \u003ccode\u003eObject\u003c/code\u003e | See \u003ccode\u003ecreateGRPCError\u003c/code\u003e description |\n\n## License\n\n  Apache-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbojand%2Fgrpc-create-error","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbojand%2Fgrpc-create-error","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbojand%2Fgrpc-create-error/lists"}