hawkly-grpc
Advanced tools
Comparing version 0.5.6 to 0.5.8
@@ -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) |
@@ -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= |
{ | ||
"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
268004
1882
152
9
24
+ Addedcreate-grpc-error@^0.1.0
+ Addedcreate-grpc-error@0.1.0(transitive)