panda-sky-client
Version:
Auto-assembling client for APIs deployed with Panda Sky
86 lines (72 loc) • 5.86 kB
JavaScript
;
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