{"id":48008,"library":"grpc-create-error","title":"grpc-create-error","description":"Utility package (v2.0.0) for creating Error objects with gRPC status codes and metadata. Works with the `grpc` and `@grpc/grpc-js` libraries. Provides a flexible function that accepts message, code, and metadata in various forms (string, number, Error instance, plain object). Low-activity project; last release May 2018. Simpler than full gRPC error classes; useful for quick error construction.","status":"maintenance","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/bojand/grpc-create-error","tags":["javascript","protocol buffer","protobuf","grpc","client"],"install":[{"cmd":"npm install grpc-create-error","lang":"bash","label":"npm"},{"cmd":"yarn add grpc-create-error","lang":"bash","label":"yarn"},{"cmd":"pnpm add grpc-create-error","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"used internally to convert metadata objects to grpc.Metadata instances","package":"grpc-create-metadata","optional":true}],"imports":[{"note":"CJS only; no ESM wrapper, so default import will fail. Use require or dynamic import() if you must.","wrong":"import createGRPCError from 'grpc-create-error'","symbol":"createGRPCError","correct":"const createGRPCError = require('grpc-create-error')"},{"note":"The module exports a single function directly, not a named export. Destructuring will result in undefined.","wrong":"const { createGRPCError } = require('grpc-create-error')","symbol":"default export","correct":"const createGRPCError = require('grpc-create-error')"},{"note":"No type definitions shipped; you must provide your own.","wrong":"import createGRPCError from 'grpc-create-error' // will not compile in strict mode","symbol":"TypeScript types","correct":"// @ts-ignore or install @types/grpc-create-error (none available). Use `any` or define own types."}],"quickstart":{"code":"const grpc = require('grpc');\nconst createGRPCError = require('grpc-create-error');\n\n// Basic usage\nconst err1 = createGRPCError('Not found', grpc.status.NOT_FOUND);\nconsole.log(err1.message); // 'Not found'\nconsole.log(err1.code); // 5\n\n// With metadata\nconst err2 = createGRPCError('Unauthorized', 16, { reason: 'invalid token' });\nconsole.log(err2.metadata.getMap()); // { reason: 'invalid token' }\n\n// From existing error\nconst original = new Error('Boom');\noriginal.metadata = new grpc.Metadata();\noriginal.metadata.add('key', 'val');\nconst err3 = createGRPCError(original, grpc.status.INTERNAL, { extra: 'info' });\nconsole.log(err3.code); // 13","lang":"javascript","description":"Shows three common patterns: simple code+message, metadata, and merging existing errors."},"warnings":[{"fix":"Use `const createGRPCError = require('grpc-create-error');` or `const fn = require('grpc-create-error');`.","message":"The default export is a function, not an object. Destructuring will silently yield undefined.","severity":"gotcha","affected_versions":"*"},{"fix":"Add a type declaration file (e.g., `declare module 'grpc-create-error'`) or suppress type checking.","message":"This library does not have TypeScript type definitions. Using it in a TypeScript project requires manual type declarations or `any`.","severity":"gotcha","affected_versions":"*"},{"fix":"Ensure `grpc-create-metadata` is installed: `npm install grpc-create-metadata`.","message":"The package depends on `grpc-create-metadata` which may not be installed automatically as it's not a formal dependency (it's used internally).","severity":"gotcha","affected_versions":"*"},{"fix":"Use `@grpc/grpc-js` instead of `grpc`. This library works with both, but metadata handling may differ slightly.","message":"The underlying `grpc` package (grpc/grpc-node) is deprecated in favor of `@grpc/grpc-js`. Ensure compatibility.","severity":"deprecated","affected_versions":"*"}],"env_vars":null,"search_vec":"'2018':51 'accept':30 'activ':46 'buffer':65 'class':57 'client':68 'code':15,32 'construct':62 'creat':3,9 'error':4,10,40,56,61 'flexibl':27 'form':37 'full':54 'function':28 'grpc':2,13,21,55,67 'grpc-create-error':1 'grpc/grpc-js':23 'instanc':41 'javascript':63 'last':48 'librari':24 'low':45 'low-act':44 'may':50 'messag':31 'metadata':17,34 'number':39 'object':11,43 'packag':6 'plain':42 'project':47 'protobuf':66 'protocol':64 'provid':25 'quick':60 'releas':49 'simpler':52 'status':14 'string':38 'use':58 'util':5 'v2.0.0':7 'various':36 'work':18","created_at":"2026-06-07T16:54:27.290397+00:00","updated_at":"2026-06-07T16:54:27.290397+00:00","problems":[{"fix":"Change to `const createGRPCError = require('grpc-create-error');`","cause":"Using destructured import like `{ createGRPCError }` instead of default import.","error":"TypeError: createGRPCError is not a function"},{"fix":"Always pass a metadata argument, or check `err.metadata` before using.","cause":"Trying to call `err.metadata.add(...)` on an error without metadata (when no metadata argument passed).","error":"Cannot read property 'add' of undefined"},{"fix":"Run `npm install grpc-create-metadata`.","cause":"Missing peer dependency `grpc-create-metadata` not installed.","error":"Cannot find module 'grpc-create-metadata'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/bojand/grpc-create-error","github":"https://github.com/bojand/grpc-create-error","docs":null,"changelog":null,"pypi":null,"npm":"grpc-create-error","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}