UNPKG

proto-coverage-reporter

Version:
32 lines (31 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.protoCoverageInterceptor = void 0; const grpc_js_1 = require("@grpc/grpc-js"); const logs_1 = require("../logs"); const protoCoverageInterceptor = (options, nextCall) => new grpc_js_1.InterceptingCall(nextCall(options), { start: (metadata, listener, next) => { // Metadataを再設定 const metadataMap = options.internalRepr; if (typeof metadataMap === 'object') { for (const [key, value] of metadataMap.entries()) { metadata.set(key, value); } } const methodPath = options.method_definition.path; const [package_name, method_name] = methodPath.split('/').filter(Boolean); const _listener = new grpc_js_1.ListenerBuilder(); _listener.withOnReceiveStatus((status, next) => { const log = { package_name, method_name, status_code: status.code, timestamp: Date.now(), }; (0, logs_1.writeLog)(log); next(status); }); next(metadata, _listener.build()); }, }); exports.protoCoverageInterceptor = protoCoverageInterceptor;