UNPKG

panda-sky-client

Version:

Auto-assembling client for APIs deployed with Panda Sky

77 lines (66 loc) 5.71 kB
var Log, isCacheHit, json; import { merge } from "panda-parchment"; 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(merge(out, { Status500Class: true })); } else if (/^4[0-9][0-9]/.test(result.status)) { json(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); } }; }; export default Log; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYXZpZC9yZXBvcy9wYW5kYS1za3ktY2xpZW50L3NyYy9sb2cuY29mZmVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUEsR0FBQSxFQUFBLFVBQUEsRUFBQSxJQUFBO0FBQUEsU0FBQSxLQUFBLFFBQUEsaUJBQUE7O0FBRUEsSUFBQSxHQUFPLFVBQUEsR0FBQSxFQUFBO1NBQVMsT0FBTyxDQUFQLEdBQUEsQ0FBQSxNQUFBLEVBQW9CLElBQUksQ0FBSixTQUFBLENBQXBCLEdBQW9CLENBQXBCLEM7QUFBVCxDQUFQOztBQUVBLFVBQUEsR0FBYSxVQUFBLFFBQUEsRUFBQTtBQUNYLE1BQUEsS0FBQTs7QUFBQSxNQUFHLEtBQUEsR0FBUSxRQUFRLENBQUMsT0FBVCxDQUFBLEdBQUEsQ0FBWCxTQUFXLENBQVgsRUFBQTtXQUNFLE9BQUEsSUFBQSxDQURGLEtBQ0UsQztBQURGLEdBQUEsTUFBQTtXQUFBLEs7O0FBRFcsQ0FBYjs7QUFNQSxHQUFBLEdBQU0sVUFBQSxFQUFBLEVBQUE7U0FDSixnQkFBQSxHQUFBLElBQUEsRUFBQTtBQUNFLFFBQUEsUUFBQSxFQUFBLENBQUEsRUFBQSxVQUFBLEVBQUEsR0FBQSxFQUFBLFlBQUEsRUFBQSxNQUFBLEVBQUEsS0FBQSxFQUFBLEdBQUE7O0FBQUEsUUFBRyxJQUFLLENBQVIsQ0FBUSxDQUFSLEVBQUE7QUFDRSxPQUFBO0FBQUEsUUFBQSxVQUFBO0FBQUEsUUFBQTtBQUFBLFVBQTZCLElBQUssQ0FEcEMsQ0FDb0MsQ0FBbEM7QUFERixLQUFBLE1BQUE7QUFHRSxNQUFBLFVBQUEsR0FBYSxLQUFiO0FBQ0EsTUFBQSxZQUFBLEdBSkYsV0FJRTs7O0FBRUYsSUFBQSxHQUFBLEdBQU0sR0FBRyxZQUFBLEdBQWUsVUFBVSxDQUE1QixXQUFrQixFQUFsQixFQUFOO0FBRUEsSUFBQSxJQUFBLENBQ0U7QUFBQSxNQUFBLGNBQUEsRUFBQSxJQUFBO0FBQ0EsTUFBQSxHQUFBLEVBQUs7QUFETCxLQURGLENBQUE7O0FBR0EsUUFBQTtBQUNFLE1BQUEsS0FBQSxHQUFRLElBQUksQ0FBSixHQUFBLEVBQVI7QUFDQSxNQUFBLE1BQUEsR0FBUyxNQUFNLEVBQUEsQ0FBRyxHQUFULElBQU0sQ0FBZjtBQUNBLE1BQUEsUUFBQSxHQUFXLElBQUksQ0FBSixHQUFBLEtBQWEsS0FBeEI7QUFFQSxNQUFBLEdBQUEsR0FDRTtBQUFBLFNBQUEsR0FBQSxHQUFBLEVBQUEsR0FBQSxRQUFBO0FBQ0EsUUFBQSxjQUFBLEVBREEsSUFBQTtBQUVBLFFBQUEsUUFBQSxFQUFVLFVBQUEsQ0FGVixNQUVVLENBRlY7QUFHQSxRQUFBLEdBQUEsRUFBSztBQUhMLE9BREY7O0FBTUEsVUFBRyxlQUFBLElBQUEsQ0FBb0IsTUFBTSxDQUE3QixNQUFHLENBQUgsRUFBQTtBQUNFLFFBQUEsSUFBQSxDQUFLLEtBQUEsQ0FBQSxHQUFBLEVBQVc7QUFBQyxVQUFBLGNBQUEsRUFBZ0I7QUFBakIsU0FBWCxDQUFMLENBQUE7QUFERixPQUFBLE1BRUssSUFBRyxlQUFBLElBQUEsQ0FBb0IsTUFBTSxDQUE3QixNQUFHLENBQUgsRUFBQTtBQUNILFFBQUEsSUFBQSxDQUFLLEtBQUEsQ0FBQSxHQUFBLEVBQVc7QUFBQyxVQUFBLGNBQUEsRUFBZ0I7QUFBakIsU0FBWCxDQUFMLENBQUE7QUFERyxPQUFBLE1BQUE7QUFHSCxRQUFBLElBQUEsQ0FIRyxHQUdILENBQUE7QUFmRixPQURGLEM7OztBQW1CRSxhQW5CRixNQW1CRTtBQW5CRixLQUFBLENBQUEsT0FBQSxLQUFBLEVBQUE7QUFxQk0sTUFBQSxDQUFBLEdBQUEsS0FBQTtBQUNKLE1BQUEsSUFBQSxDQUNFO0FBQUEsUUFBQSxXQUFBLEVBQUEsSUFBQTtBQUNBLFFBQUEsR0FBQSxFQUFLO0FBREwsT0FERixDQUFBO0FBR0EsTUFBQSxPQUFPLENBQVAsR0FBQSxDQUFBLENBQUE7QUFDQSxZQUFNLElBQUEsS0FBQSxDQTFCUixDQTBCUSxDQUFOOztBQXRDSixHO0FBREksQ0FBTjs7QUF5Q0EsZUFBZSxHQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHttZXJnZX0gZnJvbSBcInBhbmRhLXBhcmNobWVudFwiXG5cbmpzb24gPSAob2JqKSAtPiBjb25zb2xlLmxvZyBcIkpTT05cIiwgSlNPTi5zdHJpbmdpZnkgb2JqXG5cbmlzQ2FjaGVIaXQgPSAocmVzcG9uc2UpIC0+XG4gIGlmIHZhbHVlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoXCJ4LWNhY2hlXCIpXG4gICAgL15IaXQvLnRlc3QgdmFsdWVcbiAgZWxzZVxuICAgIGZhbHNlXG5cbkxvZyA9IChmbikgLT5cbiAgKGFyZ3MuLi4pIC0+XG4gICAgaWYgYXJnc1syXVxuICAgICAge21ldGhvZE5hbWUsIHJlc291cmNlTmFtZX0gPSBhcmdzWzJdXG4gICAgZWxzZVxuICAgICAgbWV0aG9kTmFtZSA9IFwiZ2V0XCJcbiAgICAgIHJlc291cmNlTmFtZSA9IFwiZGlzY292ZXJ5XCJcblxuICAgIHRhZyA9IFwiI3tyZXNvdXJjZU5hbWUgKyBtZXRob2ROYW1lLnRvVXBwZXJDYXNlKCl9XCJcblxuICAgIGpzb25cbiAgICAgIG5ldHdvcmtBdHRlbXB0OiB0cnVlXG4gICAgICB0YWc6IHRhZ1xuICAgIHRyeVxuICAgICAgc3RhcnQgPSBEYXRlLm5vdygpXG4gICAgICByZXN1bHQgPSBhd2FpdCBmbiBhcmdzLi4uXG4gICAgICBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFxuXG4gICAgICBvdXQgPVxuICAgICAgICBcIiN7dGFnfVwiOiBkdXJhdGlvblxuICAgICAgICBuZXR3b3JrU3VjY2VzczogdHJ1ZVxuICAgICAgICBjYWNoZUhpdDogaXNDYWNoZUhpdCByZXN1bHRcbiAgICAgICAgdGFnOiB0YWdcblxuICAgICAgaWYgL141WzAtOV1bMC05XS8udGVzdCByZXN1bHQuc3RhdHVzXG4gICAgICAgIGpzb24gbWVyZ2Ugb3V0LCB7U3RhdHVzNTAwQ2xhc3M6IHRydWV9XG4gICAgICBlbHNlIGlmIC9eNFswLTldWzAtOV0vLnRlc3QgcmVzdWx0LnN0YXR1c1xuICAgICAgICBqc29uIG1lcmdlIG91dCwge1N0YXR1czQwMENsYXNzOiB0cnVlfVxuICAgICAgZWxzZVxuICAgICAgICBqc29uIG91dFxuXG4gICAgICAjIERvbid0IGZvcmdldCB0byByZXR1cm4gdGhlIGFjdHVhbCByZXN1bHQgYWZ0ZXIgd2UgZmluaXNoIGxvZ2dpbmcuXG4gICAgICByZXR1cm4gcmVzdWx0XG5cbiAgICBjYXRjaCBlXG4gICAgICBqc29uXG4gICAgICAgIG5ldHdvcmtGYWlsOiB0cnVlXG4gICAgICAgIHRhZzogdGFnXG4gICAgICBjb25zb2xlLmxvZyBlXG4gICAgICB0aHJvdyBuZXcgRXJyb3IgZVxuXG5leHBvcnQgZGVmYXVsdCBMb2dcbiJdLCJzb3VyY2VSb290IjoiIn0= //# sourceURL=/Users/david/repos/panda-sky-client/src/log.coffee