bigbluebutton-html-plugin-sdk
Version:
This repository contains the SDK for developing BigBlueButton plugins. Plugins are React components that can be loaded from external sources by the BigBlueButton HTML5 client to extend its functionalities.
105 lines • 3.52 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.fallbackLogger = void 0;
var browser_bunyan_1 = require("browser-bunyan");
var console_formatted_stream_1 = require("@browser-bunyan/console-formatted-stream");
var core_1 = require("../../core");
var uuid = ((_a = document.currentScript) === null || _a === void 0 ? void 0 : _a.getAttribute('uuid')) || 'root';
exports.fallbackLogger = (0, browser_bunyan_1.createLogger)({
name: 'PluginLogger',
streams: [
{
level: browser_bunyan_1.INFO,
stream: new console_formatted_stream_1.ConsoleFormattedStream(),
},
],
serializers: browser_bunyan_1.stdSerializers,
src: true,
});
function isValidLogger(obj) {
return (typeof obj === 'object'
&& obj !== null
&& typeof obj.info === 'function'
&& typeof obj.error === 'function');
}
function getLogger() {
try {
var api = core_1.BbbPluginSdk.getPluginApi(uuid);
var logger = api === null || api === void 0 ? void 0 : api.logger;
if (isValidLogger(logger)) {
return logger;
}
return exports.fallbackLogger;
}
catch (err) {
return exports.fallbackLogger;
}
}
function logWith(level) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
var logger = getLogger();
var method = logger[level];
try {
method.call.apply(method, __spreadArray([logger], args, false));
}
catch (err) {
// eslint-disable-next-line no-console
console.error.apply(console, __spreadArray(["[pluginLogger.".concat(String(level), "] fallback"), err], args, false));
}
}
var pluginLogger = {
error: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return logWith.apply(void 0, __spreadArray(['error'], args, false));
},
warn: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return logWith.apply(void 0, __spreadArray(['warn'], args, false));
},
info: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return logWith.apply(void 0, __spreadArray(['info'], args, false));
},
debug: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return logWith.apply(void 0, __spreadArray(['debug'], args, false));
},
trace: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return logWith.apply(void 0, __spreadArray(['trace'], args, false));
},
addStream: function (stream) {
var logger = getLogger();
logger.addStream.call(logger, stream);
},
};
exports.default = pluginLogger;
//# sourceMappingURL=logger.js.map