baqend
Version:
Baqend JavaScript SDK
178 lines • 11.8 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
var msg = __importStar(require("../message"));
/**
* A Logger to store log notes when running the app.
*/
var Logger = /** @class */ (function () {
function Logger() {
this.entityManager = null;
this.levelIndex = 2;
}
/**
* Creates a Logger instance for the given EntityManager
* @param entityManager - Theo owning entityManager
* @return The created logger instance
*/
Logger.create = function (entityManager) {
var proto = this.prototype;
var logger = (function () {
function LoggerFunction() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
proto.log.apply(LoggerFunction, args);
}
Object.getOwnPropertyNames(proto).forEach(function (key) {
Object.defineProperty(LoggerFunction, key, Object.getOwnPropertyDescriptor(proto, key));
});
return LoggerFunction;
})();
logger.init(entityManager);
return logger;
};
Object.defineProperty(Logger.prototype, "level", {
/**
* The log level which will be logged
*
* The log level can be one of 'trace', 'debug', 'info', 'warn', 'error'
* @type string
*/
get: function () {
return Logger.LEVELS[this.levelIndex];
},
/**
* Sets the log level which will be logged
* @param value
*/
set: function (value) {
var index = Logger.LEVELS.indexOf(value);
if (index === -1) {
throw new Error("Unknown logging level ".concat(value));
}
this.levelIndex = index;
},
enumerable: false,
configurable: true
});
Logger.prototype.log = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var level = Logger.LEVELS.indexOf(args[0]) === -1 ? 'info' : args.shift();
if (this.levelIndex > Logger.LEVELS.indexOf(level)) {
return Promise.resolve(null);
}
var message = typeof args[0] === 'string' ? this.format(args.shift(), args) : '[no message]';
var data = null;
if (args.length) {
var arg = args.pop();
data = arg;
if (typeof arg !== 'object' || Array.isArray(arg)) {
data = { data: arg };
}
if (arg instanceof Error) {
// errors aren't loggable by default, since they do not have any visible property
var
// @ts-ignore
stack = arg.stack, data1 = arg.data, message1 = arg.message, name_1 = arg.name, status_1 = arg.status;
data = {
name: name_1,
message: message1,
stack: stack,
status: status_1,
data: data1,
};
}
}
if (args.length) {
message += ", ".concat(args.join(', '));
}
return this.logJSON(__assign({ date: new Date().toISOString(), message: message, level: level, data: data }, (this.entityManager.me && { user: this.entityManager.me.id })));
};
Logger.prototype.format = function (message, args) {
if (args.length === 0) {
return message;
}
var str = String(message).replace(Logger.FORMAT_REGEXP, function (x) {
if (x === '%%') {
return '%';
}
if (!args.length) {
return x;
}
switch (x) {
case '%s':
return String(args.shift());
case '%d':
return String(Number(args.shift()));
case '%j':
try {
return JSON.stringify(args.shift());
}
catch (_) {
return '[Circular]';
}
default:
return x;
}
});
return str;
};
Logger.prototype.init = function (entityManager) {
var _this = this;
this.entityManager = entityManager;
this.levelIndex = 2;
Logger.LEVELS.forEach(function (level) {
_this[level] = _this.log.bind(_this, level);
});
};
Logger.prototype.logJSON = function (json) {
if (!this.entityManager.isReady) {
return this.entityManager.ready(this.logJSON.bind(this, json));
}
return this.entityManager.send(new msg.CreateObject('logs.AppLog', json));
};
Logger.LEVELS = ['trace', 'debug', 'info', 'warn', 'error'];
Logger.FORMAT_REGEXP = /%[sdj%]/g;
return Logger;
}());
exports.Logger = Logger;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2ludGVyc2VjdGlvbi9Mb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUFrQztBQU1sQzs7R0FFRztBQUNIO0lBQUE7UUFLUyxrQkFBYSxHQUFrQixJQUFXLENBQUM7UUFFM0MsZUFBVSxHQUFXLENBQUMsQ0FBQztJQWtNaEMsQ0FBQztJQWhNQzs7OztPQUlHO0lBQ0ksYUFBTSxHQUFiLFVBQWMsYUFBNEI7UUFDeEMsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUU3QixJQUFNLE1BQU0sR0FBRyxDQUFDO1lBQ2QsU0FBUyxjQUFjO2dCQUFDLGNBQWM7cUJBQWQsVUFBYyxFQUFkLHFCQUFjLEVBQWQsSUFBYztvQkFBZCx5QkFBYzs7Z0JBQ3BDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFXLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7Z0JBQzVDLE1BQU0sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBRSxDQUFDLENBQUM7WUFDM0YsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLGNBQStCLENBQUM7UUFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVMLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFM0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQVFELHNCQUFJLHlCQUFLO1FBTlQ7Ozs7O1dBS0c7YUFDSDtZQUNFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7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