lisn.js
Version:
Simply handle user gestures and actions. Includes widgets.
1 lines • 13.7 kB
Source Map (JSON)
{"version":3,"file":"logger.cjs","names":["MH","_interopRequireWildcard","require","_settings","_text","_console","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Logger","constructor","config","_myConfig$name","_myConfig$verbosityLe","myConfig","merge","verbosityLevel","settings","remoteLoggerURL","remoteLoggerOnMobileOnly","debugID","randId","getBooleanURLParam","isMobile","_myConfig$remoteLogge","name","myConsole","Console","remoteLoggerConnectTimeout","logPrefix","debugPrefix","getName","getVerbosityLevel","setVerbosityLevel","l","debug1","args","logDebugN","debug2","debug3","debug4","debug5","debug6","debug7","debug8","debug9","debug10","debug","log","info","warn","error","logAtCreation","exports","logger","level","isNumber","unshift","bugError","regex","test","userAgent","getURLParameter","toLowerCase","hasDOM","loc","getDoc","location","URLSearchParams","urlParams","search","strReplace","RegExp","match","href","decodeURIComponent"],"sources":["../../../src/ts/debug/logger.ts"],"sourcesContent":["/**\n * @module Debugging\n *\n * @categoryDescription Logging\n * {@link Debugging.LocalConsole | LocalConsole} logs to the local browser\n * console. On iOS devices it uses `console.info` for all levels because of a\n * bug in WebKit whereby other log levels don't show in some remote debuggers.\n * Also, iOS console only supports a single argument, so it joins the given\n * arguments as a single string.\n *\n * {@link Debugging.RemoteConsole | RemoteConsole} connects to a remote\n * {@link https://socket.io/ | socket.io} server and logs messages to it.\n *\n * {@link Console} holds a {@link LocalConsole} and optionally a\n * {@link RemoteConsole} and logs to both.\n *\n * {@link Logger} holds a {@link Console} and implements debug at 10 different\n * levels. The maximum logged level is configurable. Also emits a prefix in\n * debug messages that identifies the instance.\n */\n\nimport * as MH from \"@lisn/globals/minification-helpers\";\n\nimport { settings } from \"@lisn/globals/settings\";\n\nimport { LogFunction } from \"@lisn/globals/types\";\n\nimport { randId } from \"@lisn/utils/text\";\n\nimport { LoggerInterface, LoggerConfig } from \"@lisn/debug/types\";\nimport { Console } from \"@lisn/debug/console\";\n\n/**\n * Holds a {@link Console} and implements debug at 10 different levels. The\n * maximum logged level is configurable. Also emits a prefix in debug messages\n * that identifies the instance.\n *\n * @category Logging\n */\nexport class Logger implements LoggerInterface {\n readonly debug: LogFunction;\n readonly log: LogFunction;\n readonly info: LogFunction;\n readonly warn: LogFunction;\n readonly error: LogFunction;\n readonly debug1: LogFunction;\n readonly debug2: LogFunction;\n readonly debug3: LogFunction;\n readonly debug4: LogFunction;\n readonly debug5: LogFunction;\n readonly debug6: LogFunction;\n readonly debug7: LogFunction;\n readonly debug8: LogFunction;\n readonly debug9: LogFunction;\n readonly debug10: LogFunction;\n readonly getName: () => string;\n readonly getVerbosityLevel: () => number;\n readonly setVerbosityLevel: (level: number) => void;\n\n constructor(config?: LoggerConfig) {\n config ??= {};\n const myConfig = MH.merge(\n {\n // set defaults\n verbosityLevel: settings.verbosityLevel,\n remoteLoggerURL: settings.remoteLoggerURL,\n remoteLoggerOnMobileOnly: settings.remoteLoggerOnMobileOnly,\n debugID: randId(),\n },\n config,\n );\n\n let remoteLoggerURL = \"\";\n if (\n !getBooleanURLParam(\"disableRemoteLog\") &&\n (myConfig.remoteLoggerOnMobileOnly === false || isMobile())\n ) {\n remoteLoggerURL = myConfig.remoteLoggerURL ?? \"\";\n }\n\n const name = myConfig.name ?? \"\";\n const myConsole = new Console(\n remoteLoggerURL,\n myConfig.remoteLoggerConnectTimeout,\n );\n // use setters bellow to validate value\n let verbosityLevel = 0;\n const logPrefix = `[LISN${name ? \": \" + name : \"\"}]`;\n const debugID = myConfig.debugID;\n const debugPrefix = `[LISN${(name ? \": \" + name : \"\") + (debugID ? \"-\" + debugID : \"\")}]`;\n\n this.getName = () => name;\n\n this.getVerbosityLevel = () => verbosityLevel;\n this.setVerbosityLevel = (l) => {\n verbosityLevel = l;\n };\n\n this.setVerbosityLevel(myConfig.verbosityLevel ?? 0);\n\n this.debug1 = (...args) => logDebugN(this, 1, debugPrefix, ...args);\n this.debug2 = (...args) => logDebugN(this, 2, debugPrefix, ...args);\n this.debug3 = (...args) => logDebugN(this, 3, debugPrefix, ...args);\n this.debug4 = (...args) => logDebugN(this, 4, debugPrefix, ...args);\n this.debug5 = (...args) => logDebugN(this, 5, debugPrefix, ...args);\n this.debug6 = (...args) => logDebugN(this, 6, debugPrefix, ...args);\n this.debug7 = (...args) => logDebugN(this, 7, debugPrefix, ...args);\n this.debug8 = (...args) => logDebugN(this, 8, debugPrefix, ...args);\n this.debug9 = (...args) => logDebugN(this, 9, debugPrefix, ...args);\n this.debug10 = (...args) => logDebugN(this, 10, debugPrefix, ...args);\n\n this.debug = (...args) => myConsole.debug(debugPrefix, ...args);\n this.log = (...args) => myConsole.log(logPrefix, ...args);\n this.info = (...args) => myConsole.info(logPrefix, ...args);\n this.warn = (...args) => myConsole.warn(logPrefix, ...args);\n this.error = (...args) => {\n myConsole.error(logPrefix, ...args);\n };\n\n // --------------------\n if (\"logAtCreation\" in myConfig) {\n this.debug6(\"New logger:\", myConfig.logAtCreation);\n }\n }\n}\n\nexport type ErrorMatchList = Array<\n RegExp | string | { new (): Error } | symbol\n>;\n\n// ----------------------------------------\n\nconst logDebugN = (logger: Logger, level: number, ...args: unknown[]) => {\n if (!MH.isNumber(level)) {\n args.unshift(level);\n level = 1;\n logger.error(MH.bugError(\"Missing logger.debug level\"));\n }\n\n if (logger.getVerbosityLevel() < level) {\n return;\n }\n\n logger.debug(`[DEBUG ${level}]`, ...args);\n};\n\nconst isMobile = () => {\n const regex =\n /Mobi|Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;\n return regex.test(MH.userAgent);\n};\n\nconst getBooleanURLParam = (name: string) => {\n const value = getURLParameter(name);\n return value && (value === \"1\" || MH.toLowerCase(value) === \"true\");\n};\n\nconst getURLParameter = (name: string) => {\n if (!MH.hasDOM()) {\n return null;\n }\n\n const loc = MH.getDoc().location;\n if (typeof URLSearchParams !== \"undefined\") {\n const urlParams = new URLSearchParams(loc.search);\n return urlParams.get(name);\n }\n\n name = MH.strReplace(name, /[[\\]]/g, \"\\\\$&\");\n const regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\");\n const match = loc.href.match(regex);\n\n if (!match) {\n return null;\n }\n\n if (!match[2]) {\n return \"\";\n }\n return decodeURIComponent(MH.strReplace(match[2], /\\+/g, \" \"));\n};\n"],"mappings":"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","ignoreList":[]}