New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hawkly-grpc

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hawkly-grpc - npm Package Compare versions

Comparing version 0.5.6 to 0.5.8

lib/errors.js

10

CHANGELOG.md

@@ -5,2 +5,12 @@ # Change Log

<a name="0.5.8"></a>
## [0.5.8](https://github.com/hawkly/hawkly-grpc-javascript/compare/v0.5.7...v0.5.8) (2017-03-12)
<a name="0.5.7"></a>
## [0.5.7](https://github.com/hawkly/hawkly-grpc-javascript/compare/v0.5.6...v0.5.7) (2017-03-12)
<a name="0.5.6"></a>

@@ -7,0 +17,0 @@ ## [0.5.6](https://github.com/hawkly/hawkly-grpc-javascript/compare/v0.5.5...v0.5.6) (2017-03-11)

11

lib/client.js

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

const hawkly_1 = require("hawkly");
const index_1 = require("./index");
let tracer;

@@ -105,2 +106,6 @@ // const lastSpan: Span | undefined;

if (err) {
const errMetadata = err.metadata.getMap();
if (errMetadata.type === 'HawklyError') {
reject(new index_1.HawklyError(errMetadata.message, errMetadata.event, JSON.parse(errMetadata.payload)));
}
reject(err);

@@ -166,2 +171,6 @@ span.setTag({ error: true });

if (err) {
const errMetadata = err.metadata.getMap();
if (errMetadata.type === 'HawklyError') {
reject(new index_1.HawklyError(errMetadata.message, errMetadata.event, JSON.parse(errMetadata.payload)));
}
reject(err);

@@ -264,2 +273,2 @@ span.setTag({ error: true });

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUF1RDtBQXdUckQsd0NBQWM7QUF2VGhCLDZCQUE2QjtBQUM3Qiw0Q0FBNEM7QUFFNUMsbUNBQXNDO0FBRXRDLElBQUksTUFBMEIsQ0FBQztBQUMvQixvQ0FBb0M7QUFDcEMsc0JBQXNCLE9BQVk7SUFDaEMsRUFBRSxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLGNBQWMsR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25HLE1BQU0sQ0FBQztRQUNMLE1BQU0sRUFBRSxjQUFjO1FBQ3RCLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQW9TQyxvQ0FBWTtBQWxTZDtJQUNFLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQWtTQyw0Q0FBZ0I7QUEvUmxCLGdEQUFnRDtBQUNoRCxnQkFBZ0IsSUFBWSxFQUFFLEtBQWEsRUFBRSxJQUFZLEVBQUUsT0FBWTtJQUNyRSxJQUFJLFVBQWUsQ0FBQztJQUNwQixFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxVQUFVLEdBQVEsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFD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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUF1RDtBQWtVckQsd0NBQWM7QUFqVWhCLDZCQUE2QjtBQUM3Qiw0Q0FBNEM7QUFFNUMsbUNBQXNDO0FBRXRDLG1DQUFzQztBQUV0QyxJQUFJLE1BQTBCLENBQUM7QUFDL0Isb0NBQW9DO0FBQ3BDLHNCQUFzQixPQUFZO0lBQ2hDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQVEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRyxNQUFNLENBQUM7UUFDTCxNQUFNLEVBQUUsY0FBYztRQUN0QixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUE0U0Msb0NBQVk7QUExU2Q7SUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDO0FBQ25CLENBQUM7QUEwU0MsNENBQWdCO0FBdlNsQixnREFBZ0Q7QUFDaEQsZ0JBQWdCLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLE9BQVk7SUFDckUsSUFBSSxVQUFlLENBQUM7SUFDcEIsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM5QixNQUFNLE1BQU0sR0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFRLFdBQVcsQ0FBQyxN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

@@ -9,2 +9,31 @@ "use strict";

exports.hawklyMiddleware = middleware_1.hawklyMiddleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIscUNBTWtCO0FBT2hCLDZDQUFZO0FBTGQsaUVBQWlFO0FBQ2pFLDZDQUFnRDtBQUc5Qyx5REFBZ0IifQ==
class HawklyError extends Error {
/**
*
* @param message A short message that is returned to the caller (not logged on span)
* @param eventName A very short eventName that is saved onto the span (logged on span)
* @param payload (optional) object that is returned to the caller (logged on span)
*/
constructor(message, eventName, payload) {
super(message);
if (typeof eventName !== 'string') {
throw new Error(`eventName must be a string, got ${typeof eventName}`);
}
this.eventName = eventName;
this.payload = payload;
}
getMessage() {
return this.message;
}
getEventName() {
return this.eventName;
}
getPayload() {
return this.payload;
}
getPayloadJSON() {
return JSON.stringify(this.payload);
}
}
exports.HawklyError = HawklyError;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5QkFBeUI7QUFDekIscUNBTWtCO0FBdUNoQiw2Q0FBWTtBQXJDZCxpRUFBaUU7QUFDakUsNkNBQWdEO0FBbUM5Qyx5REFBZ0I7QUFqQ2xCLGlCQUFrQixTQUFRLEtBQUs7SUFHN0I7Ozs7O09BS0c7SUFDSCxZQUFZLE9BQWUsRUFBRSxTQUFpQixFQUFFLE9BQVk7UUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsRUFBRSxDQUFDLENBQUMsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxPQUFPLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFDTSxVQUFVO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNNLFlBQVk7UUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNNLFVBQVU7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ00sY0FBYztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBVUMsa0NBQVcifQ==

@@ -127,2 +127,67 @@ "use strict";

}));
ava_1.test('unary request should return error in server handler back to client', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () {
t.plan(5);
const PROTO_PATH = __dirname + '/../proto/helloworld.proto';
const grpcHost = getHost();
const app = new Mali(PROTO_PATH);
const errMessage = 'test error';
const errEventName = 'testError';
const errPayload = { foo: 'bar' };
const hawklyTracerOptions = {
accessToken: 'test',
componentName: 'testServerComponent',
// recordCallback: serverRecordCallback,
recordCallback: () => { }
};
// Add the hawkly middleware for tracing server calls
app.use(index_1.hawklyMiddleware(hawklyTracerOptions));
// add our server handler for the sayHello call
app.use({
sayHello: () => {
throw new index_1.HawklyError(errMessage, errEventName, errPayload);
}
});
app.start(grpcHost);
const error = yield t.throws(new Promise((resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () {
// Create the client
const { tracer, client } = index_1.createClient({
// hawkly
accessToken: 'test',
componentName: 'testComponent',
recordCallback: () => { },
// grpc
host: grpcHost,
proto: PROTO_PATH,
name: 'Greeter',
});
app.silent = true;
// Create a span to encapsulate our work
const span = tracer.startSpan('/client/sayHello');
// create the gRPC request and wait for it to resolve
try {
const result = yield client.sayHello({
arg: { name: grpcHost },
// pass in our span
span,
});
console.warn('result', result);
span.finish();
resolve(result);
}
catch (error) {
span.finish();
reject(error);
}
})));
if (error) {
t.true(error instanceof index_1.HawklyError);
if (error instanceof index_1.HawklyError) {
t.is(error.getMessage(), errMessage);
t.is(error.getEventName(), errEventName);
t.deepEqual(error.getPayload(), errPayload);
}
}
// And close
yield app.close();
}));
// tslint:disable-next-line:max-func-body-length

@@ -449,2 +514,2 @@ ava_1.test('request streaming should work', (t) => tslib_1.__awaiter(this, void 0, void 0, function* () {

}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdCQUFnQjtBQUNoQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLDJDQUEyQztBQUMzQywrQkFBK0I7QUFFL0IsbUNBSWlCO0FBR2pCLDZCQUEyQjtBQUUzQixNQUFNLFdBQVcsR0FBVTtJQUN6QixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDcEIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0lBQ3BCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtJQUNwQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDcEIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0lBQ3BCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtDQUNyQixDQUFDO0FBR0Ysa0JBQWtCO0FBQ2xCLGVBQWUsS0FBYSxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFDRCwrQ0FBK0M7QUFDL0Msc0JBQXNCLEdBQVcsRUFBRSxHQUFXO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDM0QsQ0FBQztBQUNELElBQUksUUFBUSxHQUFXLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0FBQzNCO0lBQ0UsTUFBTSxJQUFJLEdBQVcsWUFBWSxRQUFRLEVBQUUsQ0FBQztJQUM1QyxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN4QixLQUFLLENBQUMsSUFB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdCQUFnQjtBQUNoQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLDJDQUEyQztBQUMzQywrQkFBK0I7QUFFL0IsbUNBS2lCO0FBR2pCLDZCQUEyQjtBQUUzQixNQUFNLFdBQVcsR0FBVTtJQUN6QixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDcEIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0lBQ3BCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtJQUNwQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7SUFDcEIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFO0lBQ3BCLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRTtDQUNyQixDQUFDO0FBR0Ysa0JBQWtCO0FBQ2xCLGVBQWUsS0FBYSxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFDRCwrQ0FBK0M7QUFDL0Msc0JBQXNCLEdBQVcsRUFBRSxHQUFXO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDM0QsQ0FBQztBQUNELElBQUksUUFBUSxHQUFXLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDO0FBQzNCO0lBQ0UsTUFBTSxJQUFJLEdBQVcsWUFBWSxRQUFRLEVBQUUsQ0FBQztJQUM1QyxRQUFRLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUN4QixLQUFLLENBQUMsSUFB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
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const createError = require("create-grpc-error");
const hawkly_1 = require("hawkly");
const index_1 = require("./index");
function hawklyMiddleware(options) {

@@ -23,3 +25,2 @@ let tracer;

catch (err) {
console.warn(err);
span = tracer.startSpan(ctx.name);

@@ -36,3 +37,21 @@ }

ctx.span = span;
yield next();
try {
yield next();
}
catch (error) {
if (error instanceof index_1.HawklyError) {
ctx.span.log({
event: error.getEventName(),
payload: error.getPayload(),
});
throw createError('HawklyError', {
type: 'HawklyError',
message: error.getMessage(),
event: error.getEventName(),
payload: error.getPayloadJSON(),
});
}
ctx.span.finish();
throw createError(error);
}
if (ctx.type !== 'duplex') {

@@ -45,2 +64,2 @@ ctx.span.finish();

exports.hawklyMiddleware = hawklyMiddleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFzQztBQUV0QywwQkFBMEIsT0FBWTtJQUNwQyxJQUFJLE1BQWMsQ0FBQztJQUNuQixFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN2QyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELHVFQUF1RTtJQUN2RSxNQUFNLENBQUMsMEJBQWdDLEdBQVEsRUFBRSxJQUFTOztZQUN4RCw2Q0FBNkM7WUFDN0MsSUFBSSxJQUFVLENBQUM7WUFDZixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxPQUFPLEdBQVEsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxpRUFBaUU7WUFFakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEMsb0VBQW9FO1lBQ3BFLHVCQUF1QjtZQUN2QixHQUFHLENBQUMsUUFBUSxxQkFDUCxHQUFHLENBQUMsUUFBUSxFQUNaLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDbEIsQ0FBQztZQUVGLHdDQUF3QztZQUN4QyxHQUFHLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNwQixzQ0FBc0M7WUFDdEMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFFaEIsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUViLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztLQUFBLENBQUM7QUFDSixDQUFDO0FBRUMsNENBQWdCIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFpRDtBQUVqRCxtQ0FBc0M7QUFFdEMsbUNBQXNDO0FBRXRDLDBCQUEwQixPQUFZO0lBQ3BDLElBQUksTUFBYyxDQUFDO0lBQ25CLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzFCLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLE1BQU0sQ0FBQywwQkFBZ0MsR0FBUSxFQUFFLElBQVM7O1lBQ3hELDZDQUE2QztZQUM3QyxJQUFJLElBQVUsQ0FBQztZQUNmLElBQUksQ0FBQztnQkFDSCxNQUFNLE9BQU8sR0FBUSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlELElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDYixJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELGlFQUFpRTtZQUVqRSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4QyxvRUFBb0U7WUFDcEUsdUJBQXVCO1lBQ3ZCLEdBQUcsQ0FBQyxRQUFRLHFCQUNQLEdBQUcsQ0FBQyxRQUFRLEVBQ1osSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUNsQixDQUFDO1lBRUYsd0NBQXdDO1lBQ3hDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLHNDQUFzQztZQUN0QyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNoQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNmLENBQUM7WUFBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxtQkFBVyxDQUFDLENBQUMsQ0FBQztvQkFDakMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7d0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUU7d0JBQzNCLE9BQU8sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFO3FCQUM1QixDQUFDLENBQUM7b0JBQ0gsTUFBTSxXQUFXLENBQUMsYUFBYSxFQUFFO3dCQUMvQixJQUFJLEVBQUUsYUFBYTt3QkFDbkIsT0FBTyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUU7d0JBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFO3dCQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRTtxQkFDaEMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFFbEIsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztLQUFBLENBQUM7QUFDSixDQUFDO0FBRUMsNENBQWdCIn0=

3

package.json
{
"name": "hawkly-grpc",
"version": "0.5.6",
"version": "0.5.8",
"description": "An gRPC wrapper with an OpenTracing compatible tracer for hawkly.io",

@@ -89,2 +89,3 @@ "main": "lib/index.js",

"dependencies": {
"create-grpc-error": "^0.1.0",
"google-protobuf": "^3.2.0",

@@ -91,0 +92,0 @@ "grpc": "^1.1.2",

@@ -17,3 +17,26 @@ # hawkly gRPC wrapper for javascript

To run the server, add the `hawklyMiddleware` with configuration as a middleware to `Mali`.
```javascript
const PROTO_PATH: string = __dirname + '/../proto/helloworld.proto';
const grpcHost = '0.0.0.0:1000";
const app: Mali = new Mali(PROTO_PATH);
const hawklyTracerOptions: any = {
accessToken: 'test',
componentName: 'testServerComponent',
};
app.use(hawklyMiddleware(hawklyTracerOptions));
app.use({
sayHello: () => {
// handler code
}
});
app.start(grpcHost);
```
### Client

@@ -93,2 +116,32 @@

### Errors
To simplify error handling for errors raised specifically in the server handler code we export an error type `HawklyError`.
When you throw it in your rpc handler it will be returned to the caller and instatiated as a `HawklyError` on the caller side.
```javascript
function sayHello() {
throw new HawklyError('This is a test error', 'testError', { foo: 'bar' });
}
try {
const result: any = await client.sayHello({
arg: { name: grpcHost },
// pass in our span
span,
});
// do something with result
} catch (error) {
if(error instanceof HawklyError){
// error throw by server rpc
console.log(error.getMessage()); // 'This is a test error'
console.log(error.getEventName()); //'testError'
console.log(error.getPayload()); //{ foo: 'bar' }
} else {
// any other grpc error
}
}
```
### More information

@@ -95,0 +148,0 @@

@@ -7,2 +7,4 @@ import * as createMetadata from 'grpc-create-metadata';

import { HawklyError } from './index';
let tracer: Tracer | undefined;

@@ -125,2 +127,6 @@ // const lastSpan: Span | undefined;

if (err) {
const errMetadata: any = err.metadata.getMap();
if (errMetadata.type === 'HawklyError') {
reject(new HawklyError(errMetadata.message, errMetadata.event, JSON.parse(errMetadata.payload)));
}
reject(err);

@@ -196,2 +202,6 @@

if (err) {
const errMetadata: any = err.metadata.getMap();
if (errMetadata.type === 'HawklyError') {
reject(new HawklyError(errMetadata.message, errMetadata.event, JSON.parse(errMetadata.payload)));
}
reject(err);

@@ -198,0 +208,0 @@ span.setTag({ error: true });

@@ -8,2 +8,3 @@ //tslint:disable

import {
HawklyError,
TracedRequestStream,

@@ -158,2 +159,74 @@ createClient,

test('unary request should return error in server handler back to client', async (t: any): Promise<void> => {
t.plan(5);
const PROTO_PATH: string = __dirname + '/../proto/helloworld.proto';
const grpcHost: string = getHost();
const app: Mali = new Mali(PROTO_PATH);
const errMessage: string = 'test error';
const errEventName: string = 'testError';
const errPayload: any = { foo: 'bar' };
const hawklyTracerOptions: any = {
accessToken: 'test',
componentName: 'testServerComponent',
// recordCallback: serverRecordCallback,
recordCallback: () => { }
};
// Add the hawkly middleware for tracing server calls
app.use(hawklyMiddleware(hawklyTracerOptions));
// add our server handler for the sayHello call
app.use({
sayHello: () => {
throw new HawklyError(errMessage, errEventName, errPayload);
}
});
app.start(grpcHost);
const error: Error | HawklyError = await t.throws(new Promise(
async (resolve: Function, reject: Function) => {
// Create the client
const { tracer, client } = createClient({
// hawkly
accessToken: 'test',
componentName: 'testComponent',
recordCallback: () => { },
// grpc
host: grpcHost,
proto: PROTO_PATH,
name: 'Greeter',
});
app.silent = true;
// Create a span to encapsulate our work
const span: any = tracer.startSpan('/client/sayHello');
// create the gRPC request and wait for it to resolve
try {
const result: any = await client.sayHello({
arg: { name: grpcHost },
// pass in our span
span,
});
console.warn('result', result)
span.finish();
resolve(result);
} catch (error) {
span.finish();
reject(error);
}
}));
if (error) {
t.true(error instanceof HawklyError);
if (error instanceof HawklyError) {
t.is(error.getMessage(), errMessage);
t.is(error.getEventName(), errEventName);
t.deepEqual(error.getPayload(), errPayload);
}
}
// And close
await app.close();
});
// tslint:disable-next-line:max-func-body-length

@@ -160,0 +233,0 @@ test('request streaming should work', async (t: any) => {

@@ -13,2 +13,34 @@ // Import our gRPC client

class HawklyError extends Error {
private eventName: string;
private payload: {} | undefined;
/**
*
* @param message A short message that is returned to the caller (not logged on span)
* @param eventName A very short eventName that is saved onto the span (logged on span)
* @param payload (optional) object that is returned to the caller (logged on span)
*/
constructor(message: string, eventName: string, payload?: {}) {
super(message);
if (typeof eventName !== 'string') {
throw new Error(`eventName must be a string, got ${typeof eventName}`);
}
this.eventName = eventName;
this.payload = payload;
}
public getMessage(): string {
return this.message;
}
public getEventName(): string {
return this.eventName;
}
public getPayload(): {} | undefined {
return this.payload;
}
public getPayloadJSON(): string | undefined {
return JSON.stringify(this.payload);
}
}
export {

@@ -20,3 +52,4 @@ hawklyMiddleware,

TracedResponseStream,
TracedDuplexStream
TracedDuplexStream,
HawklyError
};

@@ -0,3 +1,7 @@

import * as createError from 'create-grpc-error';
import { Span, Tracer } from 'hawkly';
import { HawklyError } from './index';
function hawklyMiddleware(options: any): any {

@@ -19,3 +23,2 @@ let tracer: Tracer;

} catch (err) {
console.warn(err);
span = tracer.startSpan(ctx.name);

@@ -38,5 +41,21 @@ }

ctx.span = span;
try {
await next();
} catch (error) {
if (error instanceof HawklyError) {
ctx.span.log({
event: error.getEventName(),
payload: error.getPayload(),
});
throw createError('HawklyError', {
type: 'HawklyError',
message: error.getMessage(),
event: error.getEventName(),
payload: error.getPayloadJSON(),
});
}
ctx.span.finish();
await next();
throw createError(error);
}
if (ctx.type !== 'duplex') {

@@ -43,0 +62,0 @@ ctx.span.finish();

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc