UNPKG

fcr-core

Version:

Core APIs for building online scenes

55 lines (54 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLogger = exports.generateLogObserver = exports.createLogger = exports.FcrCoreLoggerManagerHolder = void 0; var _imports = require("../imports"); class FcrCoreLoggerManagerHolder { static instance = null; static isDestroying = false; static label = 'fcr-core'; static initialize(opts) { if (this.instance && !this.isDestroying) { console.warn(`${this.label} LoggerManager is already initialized. Reinitializing...`); } this.destroy(); this.instance = new _imports.LoggerManager({ label: this.label, maxSize: opts.maxSize }); } static getInstance() { if (!this.instance) { throw new Error(`LoggerManager is not initialized. Call ${this.label} LoggerManager.initialize() first.`); } return this.instance; } static createLogger(opts) { return this.getInstance().createLogger(opts); } static getLogger() { return this.getInstance().getLogger(); } static generateLogObserver(logger, callbackMethods) { return this.getInstance().generateLogObserver(logger, callbackMethods); } static destroy() { if (this.instance && !this.isDestroying) { this.isDestroying = true; try { this.instance.release(); } finally { this.instance = null; this.isDestroying = false; } } } static isInitialized() { return this.instance !== null; } } exports.FcrCoreLoggerManagerHolder = FcrCoreLoggerManagerHolder; const getLogger = exports.getLogger = FcrCoreLoggerManagerHolder.getLogger.bind(FcrCoreLoggerManagerHolder); const createLogger = exports.createLogger = FcrCoreLoggerManagerHolder.createLogger.bind(FcrCoreLoggerManagerHolder); const generateLogObserver = exports.generateLogObserver = FcrCoreLoggerManagerHolder.generateLogObserver.bind(FcrCoreLoggerManagerHolder);