UNPKG

panda-sky-client

Version:

Auto-assembling client for APIs deployed with Panda Sky

86 lines (72 loc) 5.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _pandaParchment = require("panda-parchment"); var Log, isCacheHit, json; json = function (obj) { return console.log("JSON", JSON.stringify(obj)); }; isCacheHit = function (response) { var value; if (value = response.headers.get("x-cache")) { return /^Hit/.test(value); } else { return false; } }; Log = function (fn) { return async function (...args) { var duration, e, methodName, out, resourceName, result, start, tag; if (args[2]) { ({ methodName, resourceName } = args[2]); } else { methodName = "get"; resourceName = "discovery"; } tag = `${resourceName + methodName.toUpperCase()}`; json({ networkAttempt: true, tag: tag }); try { start = Date.now(); result = await fn(...args); duration = Date.now() - start; out = { [`${tag}`]: duration, networkSuccess: true, cacheHit: isCacheHit(result), tag: tag }; if (/^5[0-9][0-9]/.test(result.status)) { json((0, _pandaParchment.merge)(out, { Status500Class: true })); } else if (/^4[0-9][0-9]/.test(result.status)) { json((0, _pandaParchment.merge)(out, { Status400Class: true })); } else { json(out); } // Don't forget to return the actual result after we finish logging. return result; } catch (error) { e = error; json({ networkFail: true, tag: tag }); console.log(e); throw new Error(e); } }; }; var _default = Log; exports.default = _default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYXZpZC9yZXBvcy9wYW5kYS1za3ktY2xpZW50L3NyYy9sb2cuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFBQSxJQUFBLEdBQUEsRUFBQSxVQUFBLEVBQUEsSUFBQTs7QUFFQSxJQUFBLEdBQU8sVUFBQSxHQUFBLEVBQUE7U0FBUyxPQUFPLENBQVAsR0FBQSxDQUFBLE1BQUEsRUFBb0IsSUFBSSxDQUFKLFNBQUEsQ0FBcEIsR0FBb0IsQ0FBcEIsQztBQUFULENBQVA7O0FBRUEsVUFBQSxHQUFhLFVBQUEsUUFBQSxFQUFBO0FBQ1gsTUFBQSxLQUFBOztBQUFBLE1BQUcsS0FBQSxHQUFRLFFBQVEsQ0FBQyxPQUFULENBQUEsR0FBQSxDQUFYLFNBQVcsQ0FBWCxFQUFBO1dBQ0UsT0FBQSxJQUFBLENBREYsS0FDRSxDO0FBREYsR0FBQSxNQUFBO1dBQUEsSzs7QUFEVyxDQUFiOztBQU1BLEdBQUEsR0FBTSxVQUFBLEVBQUEsRUFBQTtTQUNKLGdCQUFBLEdBQUEsSUFBQSxFQUFBO0FBQ0UsUUFBQSxRQUFBLEVBQUEsQ0FBQSxFQUFBLFVBQUEsRUFBQSxHQUFBLEVBQUEsWUFBQSxFQUFBLE1BQUEsRUFBQSxLQUFBLEVBQUEsR0FBQTs7QUFBQSxRQUFHLElBQUssQ0FBUixDQUFRLENBQVIsRUFBQTtBQUNFLE9BQUE7QUFBQSxRQUFBLFVBQUE7QUFBQSxRQUFBO0FBQUEsVUFBNkIsSUFBSyxDQURwQyxDQUNvQyxDQUFsQztBQURGLEtBQUEsTUFBQTtBQUdFLE1BQUEsVUFBQSxHQUFhLEtBQWI7QUFDQSxNQUFBLFlBQUEsR0FKRixXQUlFOzs7QUFFRixJQUFBLEdBQUEsR0FBTSxHQUFHLFlBQUEsR0FBZSxVQUFVLENBQTVCLFdBQWtCLEVBQWxCLEVBQU47QUFFQSxJQUFBLElBQUEsQ0FDRTtBQUFBLE1BQUEsY0FBQSxFQUFBLElBQUE7QUFDQSxNQUFBLEdBQUEsRUFBSztBQURMLEtBREYsQ0FBQTs7QUFHQSxRQUFBO0FBQ0UsTUFBQSxLQUFBLEdBQVEsSUFBSSxDQUFKLEdBQUEsRUFBUjtBQUNBLE1BQUEsTUFBQSxHQUFTLE1BQU0sRUFBQSxDQUFHLEdBQVQsSUFBTSxDQUFmO0FBQ0EsTUFBQSxRQUFBLEdBQVcsSUFBSSxDQUFKLEdBQUEsS0FBYSxLQUF4QjtBQUVBLE1BQUEsR0FBQSxHQUNFO0FBQUEsU0FBQSxHQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUE7QUFDQSxRQUFBLGNBQUEsRUFEQSxJQUFBO0FBRUEsUUFBQSxRQUFBLEVBQVUsVUFBQSxDQUZWLE1BRVUsQ0FGVjtBQUdBLFFBQUEsR0FBQSxFQUFLO0FBSEwsT0FERjs7QUFNQSxVQUFHLGVBQUEsSUFBQSxDQUFvQixNQUFNLENBQTdCLE1BQUcsQ0FBSCxFQUFBO0FBQ0UsUUFBQSxJQUFBLENBQUssMkJBQUEsR0FBQSxFQUFXO0FBQUMsVUFBQSxjQUFBLEVBQWdCO0FBQWpCLFNBQVgsQ0FBTCxDQUFBO0FBREYsT0FBQSxNQUVLLElBQUcsZUFBQSxJQUFBLENBQW9CLE1BQU0sQ0FBN0IsTUFBRyxDQUFILEVBQUE7QUFDSCxRQUFBLElBQUEsQ0FBSywyQkFBQSxHQUFBLEVBQVc7QUFBQyxVQUFBLGNBQUEsRUFBZ0I7QUFBakIsU0FBWCxDQUFMLENBQUE7QUFERyxPQUFBLE1BQUE7QUFHSCxRQUFBLElBQUEsQ0FIRyxHQUdILENBQUE7QUFmRixPQURGLEM7OztBQW1CRSxhQW5CRixNQW1CRTtBQW5CRixLQUFBLENBQUEsT0FBQSxLQUFBLEVBQUE7QUFxQk0sTUFBQSxDQUFBLEdBQUEsS0FBQTtBQUNKLE1BQUEsSUFBQSxDQUNFO0FBQUEsUUFBQSxXQUFBLEVBQUEsSUFBQTtBQUNBLFFBQUEsR0FBQSxFQUFLO0FBREwsT0FERixDQUFBO0FBR0EsTUFBQSxPQUFPLENBQVAsR0FBQSxDQUFBLENBQUE7QUFDQSxZQUFNLElBQUEsS0FBQSxDQTFCUixDQTBCUSxDQUFOOztBQXRDSixHO0FBREksQ0FBTjs7ZUF5Q2UsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bWVyZ2V9IGZyb20gXCJwYW5kYS1wYXJjaG1lbnRcIlxuXG5qc29uID0gKG9iaikgLT4gY29uc29sZS5sb2cgXCJKU09OXCIsIEpTT04uc3RyaW5naWZ5IG9ialxuXG5pc0NhY2hlSGl0ID0gKHJlc3BvbnNlKSAtPlxuICBpZiB2YWx1ZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwieC1jYWNoZVwiKVxuICAgIC9eSGl0Ly50ZXN0IHZhbHVlXG4gIGVsc2VcbiAgICBmYWxzZVxuXG5Mb2cgPSAoZm4pIC0+XG4gIChhcmdzLi4uKSAtPlxuICAgIGlmIGFyZ3NbMl1cbiAgICAgIHttZXRob2ROYW1lLCByZXNvdXJjZU5hbWV9ID0gYXJnc1syXVxuICAgIGVsc2VcbiAgICAgIG1ldGhvZE5hbWUgPSBcImdldFwiXG4gICAgICByZXNvdXJjZU5hbWUgPSBcImRpc2NvdmVyeVwiXG5cbiAgICB0YWcgPSBcIiN7cmVzb3VyY2VOYW1lICsgbWV0aG9kTmFtZS50b1VwcGVyQ2FzZSgpfVwiXG5cbiAgICBqc29uXG4gICAgICBuZXR3b3JrQXR0ZW1wdDogdHJ1ZVxuICAgICAgdGFnOiB0YWdcbiAgICB0cnlcbiAgICAgIHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgICAgcmVzdWx0ID0gYXdhaXQgZm4gYXJncy4uLlxuICAgICAgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRcblxuICAgICAgb3V0ID1cbiAgICAgICAgXCIje3RhZ31cIjogZHVyYXRpb25cbiAgICAgICAgbmV0d29ya1N1Y2Nlc3M6IHRydWVcbiAgICAgICAgY2FjaGVIaXQ6IGlzQ2FjaGVIaXQgcmVzdWx0XG4gICAgICAgIHRhZzogdGFnXG5cbiAgICAgIGlmIC9eNVswLTldWzAtOV0vLnRlc3QgcmVzdWx0LnN0YXR1c1xuICAgICAgICBqc29uIG1lcmdlIG91dCwge1N0YXR1czUwMENsYXNzOiB0cnVlfVxuICAgICAgZWxzZSBpZiAvXjRbMC05XVswLTldLy50ZXN0IHJlc3VsdC5zdGF0dXNcbiAgICAgICAganNvbiBtZXJnZSBvdXQsIHtTdGF0dXM0MDBDbGFzczogdHJ1ZX1cbiAgICAgIGVsc2VcbiAgICAgICAganNvbiBvdXRcblxuICAgICAgIyBEb24ndCBmb3JnZXQgdG8gcmV0dXJuIHRoZSBhY3R1YWwgcmVzdWx0IGFmdGVyIHdlIGZpbmlzaCBsb2dnaW5nLlxuICAgICAgcmV0dXJuIHJlc3VsdFxuXG4gICAgY2F0Y2ggZVxuICAgICAganNvblxuICAgICAgICBuZXR3b3JrRmFpbDogdHJ1ZVxuICAgICAgICB0YWc6IHRhZ1xuICAgICAgY29uc29sZS5sb2cgZVxuICAgICAgdGhyb3cgbmV3IEVycm9yIGVcblxuZXhwb3J0IGRlZmF1bHQgTG9nXG4iXSwic291cmNlUm9vdCI6IiJ9 //# sourceURL=/Users/david/repos/panda-sky-client/src/log.coffee