Socket
Socket
Sign inDemoInstall

protocat

Package Overview
Dependencies
35
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.5-beta.0 to 0.6.5-beta.1

dist/test/server/server.status.test.d.ts

2

dist/lib/client/client.d.ts

@@ -28,3 +28,3 @@ import * as grpc from '@grpc/grpc-js';

declare type UpdatedClient_<C> = C extends grpc.Client ? UpdatedClient<C> : never;
declare type UpdatedClient<C extends grpc.Client> = OmitNeverKeys<{
export declare type UpdatedClient<C extends grpc.Client> = OmitNeverKeys<{
[K in keyof C]: C[K] extends (request: infer Req, metadata?: grpc.Metadata, options?: Partial<grpc.CallOptions>) => grpc.ClientReadableStream<infer Res> ? ServerStreamCall<Req, Res> : C[K] extends (metadata: grpc.Metadata, options?: Partial<grpc.CallOptions>) => grpc.ClientDuplexStream<infer Req, infer Res> ? BidiCall<Req, Res> : C[K] extends (request: infer Req, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: infer Res) => void) => grpc.ClientUnaryCall ? UnaryCall<Req, Res> : C[K] extends (metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: infer Res) => void) => grpc.ClientWritableStream<infer Req> ? ClientStreamCall<Req, Res> : never;

@@ -31,0 +31,0 @@ }>;

@@ -34,3 +34,3 @@ import * as grpc from '@grpc/grpc-js';

*/
start(address: string, creds?: grpc.ServerCredentials): Promise<void>;
start(address: string, creds?: grpc.ServerCredentials): Promise<number>;
/**

@@ -37,0 +37,0 @@ * Try to shutdown server gracefully.

@@ -57,4 +57,5 @@ "use strict";

this.registerHandlers();
await (0, grpc_helpers_1.bindAsync)(this.server, address, creds);
const port = await (0, grpc_helpers_1.bindAsync)(this.server, address, creds);
this.server.start();
return port;
}

@@ -61,0 +62,0 @@ /**

@@ -10,2 +10,3 @@ "use strict";

const access_log_interceptor_1 = require("../lib/client/interceptors/access-log-interceptor");
const util_1 = require("./server/util");
const createMeta = (x) => {

@@ -19,3 +20,3 @@ const meta = new grpc_js_1.Metadata();

const spyInterceptors = jest.fn();
const ADDR = '0.0.0.0:3000';
const address = (0, util_1.testAddress)();
describe('Client', () => {

@@ -60,3 +61,4 @@ let server;

});
await (0, grpc_helpers_1.bindAsync)(server, ADDR, grpc_js_1.ServerCredentials.createInsecure());
const port = await (0, grpc_helpers_1.bindAsync)(server, address.getAddress(), grpc_js_1.ServerCredentials.createInsecure());
address.setPort(port);
server.start();

@@ -73,15 +75,15 @@ });

});
const singleClient = (0, client_1.createClient)(hello_grpc_pb_1.GreetingClient, ADDR, grpc_js_1.ChannelCredentials.createInsecure(), {
const getSingleClient = () => (0, client_1.createClient)(hello_grpc_pb_1.GreetingClient, address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure(), {
interceptors: [metadataInt, alInt],
});
const nestedClient = (0, client_1.createClient)({ foo: hello_grpc_pb_1.GreetingClient }, ADDR, undefined, {
const getNestedClient = () => (0, client_1.createClient)({ foo: hello_grpc_pb_1.GreetingClient }, address.getAddress(), undefined, {
interceptors: [metadataInt, alInt],
});
for (const [label, client] of [
['Single', singleClient],
['Multi', nestedClient.foo],
for (const [label, getClient] of [
['Single', getSingleClient],
['Multi', () => getNestedClient().foo],
]) {
describe(`${label} service client`, () => {
test('Unary', async () => {
const { status, metadata, response } = await client.unary(req => req.setName('Meow'));
const { status, metadata, response } = await getClient().unary(req => req.setName('Meow'));
expect(response.getName()).toBe('Meow!');

@@ -92,3 +94,3 @@ expect(metadata.getMap().initial).toBe('unary');

test('ServerStream', async () => {
const { status, metadata, call } = client.serverStream(req => req.setName('meow'));
const { status, metadata, call } = getClient().serverStream(req => req.setName('meow'));
const acc = [];

@@ -102,3 +104,3 @@ call.on('data', res => acc.push(res.getName()));

test('ClientStream', async () => {
const { status, metadata, call, response } = client.clientStream();
const { status, metadata, call, response } = getClient().clientStream();
'meeoaw!'.split('').forEach(c => {

@@ -113,3 +115,3 @@ call.write(new hello_pb_1.Hello().setName(c));

test('Bidi', async () => {
const { status, metadata, call } = await client.bidi();
const { status, metadata, call } = await getClient().bidi();
const acc = [];

@@ -116,0 +118,0 @@ call.on('data', res => acc.push(res.getName()));

@@ -8,5 +8,6 @@ "use strict";

const client_1 = require("../../../lib/client/client");
const util_1 = require("../util");
const inf = () => (_) => _;
const uniq = (xs) => Array.from(new Set(xs));
const ADDR = '0.0.0.0:3000';
const address = (0, util_1.testAddress)();
let c = {};

@@ -35,7 +36,9 @@ const cache = inf()({

}));
await app.start(ADDR);
const port = await app.start(address.getAddress());
address.setPort(port);
});
describe('Caching', () => {
const client = (0, client_1.createClient)(hello_grpc_pb_1.GreetingClient, ADDR);
let client;
beforeEach(() => {
client = (0, client_1.createClient)(hello_grpc_pb_1.GreetingClient, address.getAddress());
cache.set.mockClear();

@@ -42,0 +45,0 @@ cache.get.mockClear();

@@ -7,2 +7,3 @@ "use strict";

const hello_pb_1 = require("../../../../dist/test/api/v1/hello_pb");
const util_1 = require("../util");
const createError = (x) => {

@@ -13,3 +14,4 @@ const metadata = new grpc_js_1.Metadata();

};
const ADDR = '0.0.0.0:3000';
const address = (0, util_1.testAddress)();
const getClient = () => new hello_grpc_pb_1.GreetingClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
describe('Error handling', () => {

@@ -73,6 +75,6 @@ const app = new __1.ProtoCat();

});
await app.start(ADDR, grpc_js_1.ServerCredentials.createInsecure());
const port = await app.start(address.getAddress(), grpc_js_1.ServerCredentials.createInsecure());
address.setPort(port);
});
describe('Unary', () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
const clientMeta = new grpc_js_1.Metadata();

@@ -82,3 +84,3 @@ clientMeta.set('catch', 'true');

await new Promise((resolve, reject) => {
client.unary(new hello_pb_1.Hello(), clientMeta, (err, res) => err ? reject(err) : resolve(res));
getClient().unary(new hello_pb_1.Hello(), clientMeta, (err, res) => err ? reject(err) : resolve(res));
});

@@ -92,3 +94,3 @@ expect(lastError.message).toMatch(/unary-error/);

await expect(new Promise((resolve, reject) => {
const call = client.unary(new hello_pb_1.Hello(), (err, res) => err ? reject(err) : resolve(res));
const call = getClient().unary(new hello_pb_1.Hello(), (err, res) => err ? reject(err) : resolve(res));
status = new Promise(resolve => call.on('status', resolve));

@@ -117,3 +119,2 @@ metadata = new Promise(resolve => call.on('metadata', resolve));

describe(`ServerStream (${type} error)`, () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
test('Caught error does not reach client', async () => {

@@ -124,3 +125,3 @@ const clientMeta = new grpc_js_1.Metadata();

await new Promise((resolve, reject) => {
const call = client.serverStream(new hello_pb_1.Hello(), clientMeta);
const call = getClient().serverStream(new hello_pb_1.Hello(), clientMeta);
call.on('data', hello => hello);

@@ -139,3 +140,3 @@ call.on('end', () => resolve());

await expect(new Promise((resolve, reject) => {
const call = client.serverStream(new hello_pb_1.Hello(), clientMeta);
const call = getClient().serverStream(new hello_pb_1.Hello(), clientMeta);
call.on('end', () => resolve());

@@ -170,3 +171,2 @@ metadata = new Promise(resolve => call.on('metadata', resolve));

describe(`ClientStream (${type} error)`, () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
test('Caught error does not reach client', async () => {

@@ -177,3 +177,3 @@ const clientMeta = new grpc_js_1.Metadata();

await new Promise((resolve, reject) => {
client.clientStream(clientMeta, (err, res) => err ? reject(err) : resolve(res));
getClient().clientStream(clientMeta, (err, res) => err ? reject(err) : resolve(res));
});

@@ -189,3 +189,3 @@ expect(lastError.message).toMatch(new RegExp(`clientStream-${type}-error`));

await expect(new Promise((resolve, reject) => {
const call = client.clientStream(clientMeta, (err, res) => {
const call = getClient().clientStream(clientMeta, (err, res) => {
if (err) {

@@ -220,3 +220,2 @@ status = err;

describe(`Bidi (${type} error)`, () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
test('Caught error does not reach client', async () => {

@@ -227,3 +226,3 @@ const clientMeta = new grpc_js_1.Metadata();

await new Promise((resolve, reject) => {
const call = client.bidi(clientMeta);
const call = getClient().bidi(clientMeta);
call.on('data', hello => hello);

@@ -242,3 +241,3 @@ call.on('end', () => resolve());

await expect(new Promise((resolve, reject) => {
const call = client.bidi(clientMeta);
const call = getClient().bidi(clientMeta);
call.on('end', () => resolve());

@@ -245,0 +244,0 @@ metadata = new Promise(resolve => call.on('metadata', resolve));

@@ -8,3 +8,4 @@ "use strict";

const cat_pb_2 = require("../../../dist/test/api/v1/cat_pb");
const ADDR = '0.0.0.0:3000';
const util_1 = require("./util");
const address = (0, util_1.testAddress)();
describe('CatService (real world example)', () => {

@@ -56,6 +57,7 @@ let app;

});
await app.start(ADDR);
const port = await app.start(address.getAddress());
address.setPort(port);
});
test('GetCat (Unary)', async () => {
const client = new cat_grpc_pb_1.CatClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
const client = new cat_grpc_pb_1.CatClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
const cat = await new Promise((resolve, reject) => {

@@ -67,3 +69,3 @@ client.getCat(new cat_pb_2.GetCatRequest().setName('Proto'), (err, res) => err ? reject(err) : resolve(res));

test('WatchCats (client-cancelled server side stream)', async () => {
const client = new cat_grpc_pb_1.CatClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
const client = new cat_grpc_pb_1.CatClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
await new Promise((resolve, reject) => {

@@ -83,3 +85,3 @@ const call = client.watchCats(new cat_pb_2.WatchCatsRequest());

test('ShareLocation (client streaming)', async () => {
const client = new cat_grpc_pb_1.CatClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
const client = new cat_grpc_pb_1.CatClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
const res = await new Promise((resolve, reject) => {

@@ -95,3 +97,3 @@ const call = client.shareLocation((err, res) => err ? reject(err) : resolve(res));

test('FeedCats (bidi)', async () => {
const client = new cat_grpc_pb_1.CatClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
const client = new cat_grpc_pb_1.CatClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
await new Promise((resolve, reject) => {

@@ -98,0 +100,0 @@ const call = client.feedCats();

@@ -8,3 +8,5 @@ "use strict";

const perf_hooks_1 = require("perf_hooks");
const ADDR = '0.0.0.0:3000';
const util_1 = require("./util");
const address = (0, util_1.testAddress)();
const getClient = () => new hello_grpc_pb_1.GreetingClient(address.getAddress(), grpc_js_1.ChannelCredentials.createInsecure());
describe('HelloService (boring, predictable and exhaustive)', () => {

@@ -76,3 +78,4 @@ let app;

test('start', async () => {
await app.start(ADDR, grpc_js_1.ServerCredentials.createInsecure());
const port = await app.start(address.getAddress(), grpc_js_1.ServerCredentials.createInsecure());
address.setPort(port);
});

@@ -82,3 +85,2 @@ const responseTimeSet = (m) => expect(Number(m.getMap()['response-time'])).toBeGreaterThan(0);

describe('Unary', () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
let metadata = null;

@@ -90,3 +92,3 @@ let status = null;

const hello = await new Promise((resolve, reject) => {
const call = client.unary(new hello_pb_1.Hello().setName('X'), clientMeta, (err, res) => (err ? reject(err) : resolve(res)));
const call = getClient().unary(new hello_pb_1.Hello().setName('X'), clientMeta, (err, res) => (err ? reject(err) : resolve(res)));
metadata = new Promise(resolve => call.on('metadata', resolve));

@@ -114,3 +116,2 @@ status = new Promise(resolve => call.on('status', resolve));

describe('ServerStream', () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
let metadata = null;

@@ -123,3 +124,3 @@ let status = null;

await new Promise((resolve, reject) => {
const call = client.serverStream(new hello_pb_1.Hello(), clientMeta);
const call = getClient().serverStream(new hello_pb_1.Hello(), clientMeta);
metadata = new Promise(resolve => call.on('metadata', resolve));

@@ -152,3 +153,2 @@ status = new Promise(resolve => call.on('status', resolve));

describe('ClientStream', () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
let metadata = null;

@@ -160,3 +160,3 @@ let status = null;

const res = await new Promise((resolve, reject) => {
const call = client.clientStream(clientMeta, (err, res) => err ? reject(err) : resolve(res));
const call = getClient().clientStream(clientMeta, (err, res) => err ? reject(err) : resolve(res));
metadata = new Promise(resolve => call.on('metadata', resolve));

@@ -188,3 +188,2 @@ status = new Promise(resolve => call.on('status', resolve));

describe('Bidi', () => {
const client = new hello_grpc_pb_1.GreetingClient(ADDR, grpc_js_1.ChannelCredentials.createInsecure());
let metadata = null;

@@ -196,3 +195,3 @@ let status = null;

await new Promise((resolve, reject) => {
const call = client.bidi(clientMeta);
const call = getClient().bidi(clientMeta);
let cnt = 0;

@@ -199,0 +198,0 @@ call.write(new hello_pb_1.Hello().setName('foo'));

{
"name": "protocat",
"description": "Modern, minimalist type-safe gRPC framework for Node.js",
"version": "0.6.5-beta.0",
"version": "0.6.5-beta.1",
"author": "Jaroslav Šmolík <grissius@gmail.com>",

@@ -26,3 +26,3 @@ "main": "./dist/index.js",

"prebuild": "npm run build:proto",
"test": "jest --runInBand --verbose",
"test": "jest --verbose",
"test:coverage": "npm run test -- --collectCoverage",

@@ -29,0 +29,0 @@ "test:codecov": "codecov",

@@ -9,3 +9,3 @@ <div align="center">

[![](https://flat.badgen.net/travis/grissius/protocat/master)](https://travis-ci.com/github/grissius/protocat)
[![](https://flat.badgen.net/github/status/grissius/protocat)](https://github.com/grissius/protocat/actions/workflows/node.js.yml)
[![](https://flat.badgen.net/npm/v/protocat)](https://www.npmjs.com/package/protocat)

@@ -12,0 +12,0 @@ [![](https://flat.badgen.net/codecov/c/github/grissius/protocat)](https://codecov.io/gh/grissius/protocat)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc