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.
NewServerInterceptor
✓ import { NewServerInterceptor } from 'grpc-hmac-interceptor'
✗ const NewServerInterceptor = require('grpc-hmac-interceptor').NewServerInterceptor
Library is ESM-only; CommonJS require not supported. TypeScript types included.
NewClientInterceptor
✓ import { NewClientInterceptor } from 'grpc-hmac-interceptor'
✗ import NewClientInterceptor from 'grpc-hmac-interceptor'
Named export, not default. Second argument is secretKey string, third optional boolean for protoc.
GetSecret
✓ import { GetSecret } from 'grpc-hmac-interceptor'
✗ import { GetSecret } from 'grpc-hmac-interceptor/dist/interceptor'
Type export; version ≥1.0.0 includes type definitions.
Sets up gRPC server and client with HMAC authentication interceptors using grpc-hmac-interceptor.
import { NewServerInterceptor, NewClientInterceptor, GetSecret } from 'grpc-hmac-interceptor';
import { Server, ServerCredentials, credentials } from '@grpc/grpc-js';
// Server side
const getSecret: GetSecret = (keyId: string) => {
const secrets: Record<string, string> = {
'user1': 'my-secret-key-123',
};
if (!secrets[keyId]) throw new Error(`Unknown keyId: ${keyId}`);
return secrets[keyId];
};
const serverInterceptor = NewServerInterceptor(getSecret);
const server = new Server({ interceptors: [serverInterceptor.WithInterceptor()] });
server.bindAsync('0.0.0.0:50051', ServerCredentials.createInsecure(), () => {
server.start();
});
// Client side
const keyId = 'user1';
const secretKey = 'my-secret-key-123';
const clientInterceptor = NewClientInterceptor(keyId, secretKey);
const client = new SomeServiceClient('localhost:50051', credentials.createInsecure(), {
interceptors: [clientInterceptor.WithInterceptor()],
});
Errors
Common errors & fixes
Error: Cannot find module 'grpc-hmac-interceptor'
Package not installed or in devDependencies only.
fixnpm install grpc-hmac-interceptor --save
TypeError: NewClientInterceptor is not a function
Using default import instead of named import.
fiximport { NewClientInterceptor } from 'grpc-hmac-interceptor' Error: Unknown keyId: undefined
GetSecret callback not returning a secret for given keyId.
fixEnsure GetSecret returns correct secret or handle missing keys
Audit
Dependencies
@grpc/grpc-jsrequiredPeer dependency; library builds on gRPC interceptor API