Registry / devops / alvintanudjaja-grpc-lib

alvintanudjaja-grpc-lib

JSON →
library1.0.6jsnpmunverified

A gRPC library providing base service and client classes for Node.js with middleware support. Version 1.0.6 offers pre-built middlewares (audit, authenticate, authorize, error handler, performance monitor) and utilities (config loader, JWT helper). It standardizes gRPC calls to Promises and allows custom middleware chains. Type definitions are included. Note: this is a niche, low-download package from a single author, not widely adopted; use with caution for production.

npm install alvintanudjaja-grpc-lib
INSTALL
IMPORT
SIG · ALVINTANUDJAJA-GRP
A
alvintanudjaja-grpc-lib
devopsjavascriptv1.0.6
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

BaseService
import { BaseService } from 'alvintanudjaja-grpc-lib';
Named export; package is ESM/CJS hybrid but recommends import syntax.
BaseClient
import { BaseClient } from 'alvintanudjaja-grpc-lib';
const { BaseClient } = require('alvintanudjaja-grpc-lib');
CommonJS require works but TypeScript consumers should use import.
Middleware
import { Middleware } from 'alvintanudjaja-grpc-lib';
Type exported for middleware signature (type only).
Authenticate
import { Authenticate } from 'alvintanudjaja-grpc-lib';
import { authenticate } from 'alvintanudjaja-grpc-lib';
Class names are PascalCase; incorrect casing is a common mistake.
jwtUtil
import { jwtUtil } from 'alvintanudjaja-grpc-lib';
Utility object with functions generate() and verify().

Demonstrates using BaseService with custom middleware (auth, audit, monitor), BaseClient for calling RPC, JWT utility, and config loader.

import { BaseService, BaseClient, Middleware, Authenticate, Authorize, Audit, ErrorHandler, Init, Monitor, jwtUtil, config } from 'alvintanudjaja-grpc-lib'; import * as protoLoader from '@grpc/proto-loader'; import { loadPackageDefinition, Server, ServerCredentials, credentials } from '@grpc/grpc-js'; // Load proto const packageDefinition = protoLoader.loadSync('service.proto', { keepCase: true, longs: String, enums: String, defaults: true, oneofs: true }); const proto = loadPackageDefinition(packageDefinition).helloworld; // Server class GreeterService extends BaseService { constructor() { super(); } async sayHello(call) { return { message: 'Hello ' + call.request.name }; } } const middleware = [ new Init(), new Authenticate({ secret: process.env.JWT_SECRET ?? 'default_secret' }), new Authorize({ service: 'greeter' }), new Audit(), new Monitor(), new ErrorHandler() ]; const server = new Server(); server.addService(proto.Greeter.service, new GreeterService().handleMiddlewares(middleware)); server.bindAsync('0.0.0.0:50051', ServerCredentials.createInsecure(), (err) => { if (err) throw err; console.log('Server running at 0.0.0.0:50051'); }); // Client const client = new BaseClient(proto.Greeter, 'localhost:50051', credentials.createInsecure()); client.call('sayHello', { name: 'World' }).then(res => console.log(res.message)).catch(err => console.error(err)); // JWT const token = jwtUtil.generate({ userId: 1, permissions: ['greeter.sayHello'] }, process.env.JWT_SECRET ?? 'secret', { expiresIn: '1h' }); const payload = jwtUtil.verify(token, process.env.JWT_SECRET ?? 'secret'); // Config (uses dotenv) config.load(); console.log(process.env.DB_HOST);
Debug
Known issues
gotchaMiddlewares must be instantiated with `new` and passed as an array to `handleMiddlewares`. Omitting `new` or passing a single middleware without array will cause runtime errors.
fix
Always use `new MiddlewareClass()` and wrap in array: `[new Authenticate({...})]`.
affects: >=1.0.0
gotchaBaseService methods must return an object or throw an error. Returning undefined may cause gRPC internal errors.
fix
Ensure every service method has a return statement returning an object or use `throw new Error(...)`.
affects: >=1.0.0
deprecatedThe `jwtUtil` may be deprecated in future versions; use `jsonwebtoken` directly for more flexibility.
fix
Install `jsonwebtoken` and use its `sign` and `verify` functions directly.
affects: >=1.0.0
gotchaPackage has low downloads and limited community support; breaking changes may occur without deprecation notice.
fix
Pin exact version in package.json and monitor the GitHub repo for changes.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Cannot find module '@grpc/grpc-js'
Missing peer dependency.
fix
Run: npm install @grpc/grpc-js @grpc/proto-loader
TypeError: Class extends value undefined is not a constructor or null
BaseService or BaseClient not imported correctly (likely wrong import path or CommonJS mismatch).
fix
Use: import { BaseService } from 'alvintanudjaja-grpc-lib'
Error: Unexpected token o in JSON at position 1
Returning a non-object from service method; gRPC expects serializable object.
fix
Ensure methods return an object, e.g., `return { message: 'Hello' }`.
TypeError: middleware is not a function
`handleMiddlewares` expects an array of middleware instances; passing something else.
fix
Pass array: `new MyService().handleMiddlewares([new Authenticate({...})])`.
Upgrade
Version history
1.0.6latest on npm
Audit
Dependencies
@grpc/grpc-jsrequiredgRPC core library
@grpc/proto-loaderrequiredProtocol buffer file loading
dotenvrequiredLoading .env files (config utility)
jsonwebtokenrequiredJWT generation/verification
Agent activity
11 hits · last 30 days
node
10
OpenAI (training)
1
Resources
alvintanudjaja-grpc-lib — npm install alvintanudjaja-grpc-lib · libregistry