analogger 1.6.2 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.run/Debuggable demo.run.xml +12 -0
- package/.run/Demo in browser with importmap.run.xml +12 -0
- package/.toesm.cjs +4 -20
- package/CHANGELOG.md +11 -5
- package/README.md +14 -9
- package/dist/analogger-browser.min.mjs +2 -0
- package/generated/browser/demo.mjs +102 -0
- package/generated/browser/example/cjs/contexts-def.mjs +22 -0
- package/generated/browser/node_modules/rgb-hex/index.mjs +43 -0
- package/generated/browser/node_modules/to-ansi/index.mjs +285 -0
- package/generated/browser/src/cjs/ana-logger.mjs +800 -0
- package/generated/browser/src/cjs/constants.mjs +37 -0
- package/package.json +37 -21
- package/dist/index-cjs.min.cjs +0 -2
- package/dist/index-esm.min.mjs +0 -2
- package/dist/index.css +0 -83
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DO NOT EDIT THIS FILE DIRECTLY.
|
|
3
|
+
* This file is generated following the conversion of
|
|
4
|
+
* [./src/cjs/constants.cjs]{@link ./src/cjs/constants.cjs}
|
|
5
|
+
*
|
|
6
|
+
**/
|
|
7
|
+
const constants = {
|
|
8
|
+
COLOR_TABLE: [
|
|
9
|
+
"#d2466e", // Error context color
|
|
10
|
+
"#FFA07A", // Default context color
|
|
11
|
+
"#FF7F50",
|
|
12
|
+
"#FF6347",
|
|
13
|
+
"#FFE4B5",
|
|
14
|
+
"#ADFF2F",
|
|
15
|
+
"#808000",
|
|
16
|
+
"#40E0D0",
|
|
17
|
+
"#1E90FF",
|
|
18
|
+
"#EE82EE",
|
|
19
|
+
"#708090",
|
|
20
|
+
"#DEB887",
|
|
21
|
+
"#FE642E",
|
|
22
|
+
"#210B61",
|
|
23
|
+
"#088A4B",
|
|
24
|
+
"#5E610B",
|
|
25
|
+
"#FA8258",
|
|
26
|
+
"#088A68",
|
|
27
|
+
"#B40431",
|
|
28
|
+
],
|
|
29
|
+
SYSTEM: {
|
|
30
|
+
BROWSER: "BROWSER",
|
|
31
|
+
NODE: "NODE"
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const COLOR_TABLE = constants.COLOR_TABLE;
|
|
37
|
+
export const SYSTEM = constants.SYSTEM;
|
package/package.json
CHANGED
|
@@ -1,27 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "analogger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Js Logger",
|
|
5
|
-
"main": "
|
|
6
|
-
"module": "
|
|
5
|
+
"main": "./example/cjs/demo.cjs",
|
|
6
|
+
"module": "./generated/browser/demo.mjs",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"require": "./
|
|
11
|
-
"import": "./
|
|
10
|
+
"require": "./example/cjs/demo.cjs",
|
|
11
|
+
"import": "./generated/browser/demo.mjs"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"scripts": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"bundle:prod:cjs": "rollup --config rollup-cjs.config.js",
|
|
18
|
-
"bundle:prod:esm": "rollup --config rollup-esm.config.js",
|
|
19
|
-
"bundle:prod": "npm run convert-cjs:esm && npm run convert-cjs:browser && npm run bundle:prod:cjs && npm run bundle:prod:esm",
|
|
20
|
-
"test": "npm run bundle:prod && nyc mocha --exit --sort --retries 2",
|
|
15
|
+
"lint": "eslint.cmd \"src/**/*.{cjs,js}\"",
|
|
16
|
+
"test": "npm run build:esm:browser && nyc --reporter=lcov --reporter=text-summary mocha --exit --sort --retries 2",
|
|
21
17
|
"server:start": "http-server.cmd -c-1 -s -p 9880 ./ > log.log",
|
|
22
18
|
"manual:check": "http-server.cmd -c-1 -p 9877 -o example/index.html ./ ",
|
|
23
19
|
"manual:test": "concurrently --success first --kill-others \"npm run test\" \"npm run server:start\"",
|
|
24
|
-
"demo": "
|
|
20
|
+
"demo:terminal:cjs": "node example/cjs/demo.cjs",
|
|
21
|
+
"*** Pre-Cleaning-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
22
|
+
"*** Pre-Cleaning-2 ****": "# Clean directory",
|
|
23
|
+
"*** Pre-Cleaning-3 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
24
|
+
"clean:generated": "rimraf ./generated && rimraf ./dist",
|
|
25
|
+
"*** On the Terminal-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
26
|
+
"*** On the Terminal-2 ****": "# Generate ESM code",
|
|
27
|
+
"*** On the Terminal-3 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
28
|
+
"build:esm:terminal": "npm run clean:generated && to-esm.cmd example/cjs/demo.cjs --output=generated/terminal/ --entrypoint=./src/cjs/ana-logger.cjs --config=\".toesm.cjs\" --target=esm --update-all",
|
|
29
|
+
"demo:terminal:esm": "npm run build:esm:terminal && node ./generated/terminal/demo.mjs",
|
|
30
|
+
"*** In the Browser-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
31
|
+
"*** In the Browser-2 ****": "# Generate Browser code",
|
|
32
|
+
"*** In the Browser-3 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
33
|
+
"build:esm:browser": "npm run clean:generated && to-esm.cmd example/cjs/demo.cjs --output=generated/browser/ --entrypoint=./src/cjs/ana-logger.cjs --config=\".toesm.cjs\" --target=browser --update-all --bundle=\"./dist/analogger-browser.min.mjs\"",
|
|
34
|
+
"demo:browser": "npm run build:esm:browser && node example/cjs/demo.cjs",
|
|
35
|
+
"*** In the Browser with importmap-1 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
36
|
+
"*** In the Browser with importmap-2 ****": "# Generate ESM code with import map",
|
|
37
|
+
"*** In the Browser with importmap-3 ****": "# ----------------------------------------------------------------------------------------------------------",
|
|
38
|
+
"build:browser:importmap": "npm run build:esm:browser -- --html=example/index.html",
|
|
39
|
+
"demo:browser:importmap": "npm run build:browser:importmap && node example/cjs/demo.cjs",
|
|
40
|
+
"quick:run": "node example/cjs/demo.cjs"
|
|
25
41
|
},
|
|
26
42
|
"author": "Patrice Thimothee",
|
|
27
43
|
"license": "MIT",
|
|
@@ -41,8 +57,6 @@
|
|
|
41
57
|
"@babel/core": "^7.17.0",
|
|
42
58
|
"@babel/eslint-parser": "^7.17.0",
|
|
43
59
|
"@babel/preset-env": "^7.16.11",
|
|
44
|
-
"@rollup/plugin-commonjs": "^21.0.1",
|
|
45
|
-
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
46
60
|
"@semantic-release/changelog": "^6.0.1",
|
|
47
61
|
"@semantic-release/commit-analyzer": "^9.0.2",
|
|
48
62
|
"@semantic-release/git": "^10.0.1",
|
|
@@ -62,21 +76,23 @@
|
|
|
62
76
|
"jsdom-global": "3.0.2",
|
|
63
77
|
"mocha": "^9.2.0",
|
|
64
78
|
"nyc": "^15.1.0",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"rollup-plugin-delete": "^2.0.0",
|
|
68
|
-
"rollup-plugin-uglify": "^6.0.4",
|
|
79
|
+
"rimraf": "^3.0.2",
|
|
80
|
+
"selenium-webdriver": "^4.1.1",
|
|
69
81
|
"semantic-release": "^19.0.2",
|
|
70
|
-
"sinon": "^13.0.1"
|
|
71
|
-
"to-esm": "^1.6.8"
|
|
82
|
+
"sinon": "^13.0.1"
|
|
72
83
|
},
|
|
73
84
|
"dependencies": {
|
|
74
85
|
"chalk": "^5.0.0",
|
|
75
86
|
"chalk-cjs": "npm:chalk@^4.1.2",
|
|
76
87
|
"color-convert": "^2.0.1",
|
|
77
88
|
"color-convert-cjs": "npm:color-convert@^2.0.1",
|
|
89
|
+
"js-beautify": "^1.10.1-rc2",
|
|
90
|
+
"node_modules-path": "^2.0.5",
|
|
91
|
+
"pretty-js": "^0.2.2",
|
|
78
92
|
"rgb-hex": "^4.0.0",
|
|
79
93
|
"rgb-hex-cjs": "npm:rgb-hex@^3.0.0",
|
|
80
|
-
"
|
|
94
|
+
"to-ansi": "^1.0.5",
|
|
95
|
+
"to-esm": "^2.6.0",
|
|
96
|
+
"uglify-js": "^3.15.1"
|
|
81
97
|
}
|
|
82
98
|
}
|
package/dist/index-cjs.min.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var require$$0=require("chalk-cjs"),require$$1=require("color-convert-cjs"),require$$2=require("rgb-hex-cjs");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0),require$$1__default=_interopDefaultLegacy(require$$1),require$$2__default=_interopDefaultLegacy(require$$2),anaLogger={},constants$1={};const constants={COLOR_TABLE:["#d2466e","#FFA07A","#FF7F50","#FF6347","#FFE4B5","#ADFF2F","#808000","#40E0D0","#1E90FF","#EE82EE","#708090","#DEB887","#FE642E","#210B61","#088A4B","#5E610B","#FA8258","#088A68","#B40431"],SYSTEM:{BROWSER:"BROWSER",NODE:"NODE"}},chalk=(constants$1.COLOR_TABLE=constants.COLOR_TABLE,constants$1.SYSTEM=constants.SYSTEM,require$$0__default.default),colorConvert=require$$1__default.default,rgbHex=require$$2__default.default,{COLOR_TABLE,SYSTEM}=constants$1,EOL=`
|
|
2
|
-
`;class AnaLogger{system="";logIndex=0;logCounter=0;contexts=[];targets={};activeTarget=null;indexColor=0;format="";keepLog=!1;logHistory=[];$containers=null;options={hideHookMessage:!1};static ALIGN={LEFT:"LEFT",RIGHT:"RIGHT"};static ENVIRONMENT_TYPE={BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"};originalFormatFunction;constructor(){this.system="object"==typeof process?SYSTEM.NODE:SYSTEM.BROWSER,this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.realConsoleLog=console.log,this.realConsoleInfo=console.info,this.realConsoleWarn=console.warn,this.realConsoleError=console.error,this.ALIGN=AnaLogger.ALIGN,this.ENVIRONMENT_TYPE=AnaLogger.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,t=EOL){const o=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?o.join(t):o}isNode(){return this.system===SYSTEM.NODE}isBrowser(){return!this.isNode()}setOptions({contextLenMax:e=10,idLenMax:t=5,lidLenMax:o=5,symbolLenMax:r=2,messageLenMax:s=60,hideLog:n=!1,hideError:i=!1,hideHookMessage:a=!1,showPassingTests:l=!0,logToDom:g=void 0,silent:h=!1}={}){this.options.contextLenMax=e,this.options.idLenMax=t,this.options.lidLenMax=o,this.options.messageLenMax=s,this.options.symbolLenMax=r,this.options.hideLog=!!n,this.options.hideError=!!i,this.options.hideHookMessage=!!a,this.options.showPassingTests=!!l,void 0!==g&&(this.options.logToDom=g||"#analogger"),h&&(this.options.hideLog=!0,this.options.hideHookMessage=!0,this.options.silent=!0)}getOptions(){return this.options}truncateMessage(e="",{fit:t=0,align:o=AnaLogger.ALIGN.LEFT}){return e=""+e,t&&e.length>=t+2&&(e=e.substring(0,t-3)+"..."),e=o===AnaLogger.ALIGN.LEFT?e.padEnd(t+1," "):e.padStart(t+1," ")}onBuildLog({contextName:e,message:t="",lid:o="",symbol:r=""}={}){const s=new Date;var n=("0"+s.getHours()).slice(-2)+":"+("0"+s.getMinutes()).slice(-2)+":"+("0"+s.getSeconds()).slice(-2),n=this.truncateMessage(n,{fit:7});return e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:AnaLogger.ALIGN.RIGHT}),o=this.truncateMessage(o,{fit:this.options.lidLenMax}),t=this.truncateMessage(t,{fit:this.options.messageLenMax}),`[${n}] ${e}: (${o}) ${r=this.truncateMessage(r,{fit:this.options.symbolLenMax})} `+t}onErrorForUserTarget(e,...t){this.errorUserTargetHandler(e,...t)}onError(e,...t){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...t)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if("function"!=typeof e)return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=e.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(e){this.errorTargetHandler=e.bind(this)}setErrorHandlerForUserTarget(e){this.errorUserTargetHandler=e.bind(this)}isContextValid(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e&&(e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"))}generateDefaultContext(){const e={name:"DEFAULT",contextName:"DEFAULT",target:"ALL",symbol:"⚡"};return e.id=this.logIndex++,e.color=COLOR_TABLE[1],e}generateNewContext(){const e=this.generateDefaultContext();return e.color=COLOR_TABLE[this.indexColor++%(COLOR_TABLE.length-3)+2],e.symbol="",e}generateErrorContext(){const e=this.generateDefaultContext();return e.color=COLOR_TABLE[0],e.symbol="v",e.error=!0,e}#allegeProperties(e){let t=e;e=this.generateNewContext();return t=Object.assign({},e,t),-1<t.color.toLowerCase().indexOf("rgb")?t.color="#"+rgbHex(t.color):-1===t.color.indexOf("#")&&colorConvert&&(t.color="#"+colorConvert.keyword.hex(t.color)),t}setContexts(o){const e=Object.keys(o);o.DEFAULT=this.contexts.DEFAULT=this.generateDefaultContext(),o.ERROR=this.contexts.ERROR=this.generateErrorContext(),e.forEach(e=>{const t=o[e]||{};t.contextName=e,t.name=e,this.contexts[e]=this.#allegeProperties(t),o[e]=this.contexts[e]})}setTargets(e={}){this.targets=Object.assign({},e,{ALL:"ALL",USER:"USER"})}setActiveTarget(e){this.activeTarget=e}isTargetAllowed(e){return!e||!this.activeTarget||(e===this.targets.ALL||this.activeTarget===e)}setColumns(e,t,o){let r=0;for(var s in t)if("name"!==s){var n=t[s];const i=document.createElement("span");i.classList.add("analogger-col","analogger-col-"+s,"analogger-col-"+r),++r,i.textContent=n,e.append(i)}const i=document.createElement("span");i.classList.add("analogger-col","analogger-col-text","analogger-col-"+r),i.textContent=o,e.append(i)}writeLogToDom(o,r){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let t=0;t<this.$containers.length;++t){const s=this.$containers[t];let e=s.querySelector(".analogger-view");e||(e=document.createElement("div"),e.classList.add("analogger-view"),s.append(e));const n=document.createElement("div");n.classList.add("to-esm-line"),n.style.color=o.color,n.setAttribute("data-log-counter",this.logCounter),n.setAttribute("data-log-index",this.logIndex),this.setColumns(n,o,r),e.append(n)}}processOutput(o={}){try{if(!this.isTargetAllowed(o.target))return;let e=Array.prototype.slice.call(arguments);e.shift();var r=e.join(" | ");let t="";var s=this.format({...o,message:r});if(++this.logCounter,t=this.isBrowser()?(o.environnment=AnaLogger.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(o,s),"%c"+s):(o.environnment=AnaLogger.ENVIRONMENT_TYPE.NODE,chalk.hex(o.color)(s)),this.keepLog&&this.logHistory.push(t),this.options.hideLog)return;this.isBrowser()?this.realConsoleLog(t,"color: "+o.color):this.realConsoleLog(t),this.errorTargetHandler(o,e)}catch(e){console.error("AnaLogger:",e.message)}}isExtendedOptionsPassed(e){return"object"==typeof e&&(e.hasOwnProperty("context")||e.hasOwnProperty("target"))}convertToContext(e,t){t=t||this.generateDefaultContext();let o=e=e||t;if(e.context&&"object"==typeof e.context){const r=Object.assign({},e);delete r.context,o=Object.assign({},e.context,r)}return o=Object.assign({},t,o),delete o.context,o}log(e,...t){if(!this.isExtendedOptionsPassed(e))return o=this.generateDefaultContext(),void this.processOutput.apply(this,[o,e,...t]);var o=this.convertToContext(e);this.processOutput.apply(this,[o,...t])}error(e,...t){if(!this.options.hideError){if(!this.isExtendedOptionsPassed(e))return o=this.generateErrorContext(),void this.processOutput.apply(this,[o,e,...t]);var o=this.generateErrorContext(),t=this.convertToContext(e,o),e=Array.prototype.slice.call(arguments);this.log(t,...e)}}overrideError(){this.options.hideHookMessage||this.realConsoleLog("AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:t=!0,warn:o=!0,error:r=!1}={}){this.options.hideHookMessage||this.realConsoleLog("AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),t&&(console.info=this.onDisplayLog.bind(this)),o&&(console.warn=this.onDisplayLog.bind(this)),r&&this.overrideError()}removeOverrideError(){console.warn=this.realConsoleError}removeOverride({log:e=!0,info:t=!0,warn:o=!0,error:r=!1}={}){e&&(console.log=this.realConsoleLog),t&&(console.info=this.realConsoleInfo),o&&(console.warn=this.realConsoleWarn),r&&this.removeOverrideError()}info(...e){return this.log(...e)}warn(...e){return this.log(...e)}alert(...e){if(this.isNode())return this.log(...e);e=e.join(" | ");alert(e)}assert(e,t=!0,...o){try{return"function"==typeof e?e(...o)!==t?(this.error("Asset failed"),!1):(this.options.showPassingTests&&this.log("SUCCESS: Assert passed"),!0):e!==t?(this.error("Assert failed"),!1):(this.options.showPassingTests&&this.log("SUCCESS: Assert passed"),!0)}catch(e){this.error("Unexpected error in assert")}return!1}}var anaLogger_1=anaLogger.anaLogger=new AnaLogger;exports.anaLogger=anaLogger_1,exports.default=anaLogger;
|
package/dist/index-esm.min.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function rgbHex(e,t,o,s){var r=(e+(s||"")).toString().includes("%");if("string"==typeof e?[e,t,o,s]=e.match(/(0?\.?\d{1,3})%?\b/g).map(e=>Number(e)):void 0!==s&&(s=Number.parseFloat(s)),"number"!=typeof e||"number"!=typeof t||"number"!=typeof o||255<e||255<t||255<o)throw new TypeError("Expected three numbers below 256");if("number"==typeof s){if(!r&&0<=s&&s<=1)s=Math.round(255*s);else{if(!(r&&0<=s&&s<=100))throw new TypeError(`Expected alpha value (${s}) as a fraction or percentage`);s=Math.round(255*s/100)}s=(256|s).toString(16).slice(1)}else s="";return(o|t<<8|e<<16|1<<24).toString(16).slice(1)+s}const constants={COLOR_TABLE:["#d2466e","#FFA07A","#FF7F50","#FF6347","#FFE4B5","#ADFF2F","#808000","#40E0D0","#1E90FF","#EE82EE","#708090","#DEB887","#FE642E","#210B61","#088A4B","#5E610B","#FA8258","#088A68","#B40431"],SYSTEM:{BROWSER:"BROWSER",NODE:"NODE"}},COLOR_TABLE=constants.COLOR_TABLE,SYSTEM=constants.SYSTEM,chalk=null,EOL=`
|
|
2
|
-
`;class AnaLogger{system="";logIndex=0;logCounter=0;contexts=[];targets={};activeTarget=null;indexColor=0;format="";keepLog=!1;logHistory=[];$containers=null;options={hideHookMessage:!1};static ALIGN={LEFT:"LEFT",RIGHT:"RIGHT"};static ENVIRONMENT_TYPE={BROWSER:"BROWSER",NODE:"NODE",OTHER:"OTHER"};originalFormatFunction;constructor(){this.system="object"==typeof process?SYSTEM.NODE:SYSTEM.BROWSER,this.format=this.onBuildLog.bind(this),this.originalFormatFunction=this.format,this.errorTargetHandler=this.onError.bind(this),this.errorUserTargetHandler=this.onErrorForUserTarget.bind(this),this.setOptions(this.options),this.realConsoleLog=console.log,this.realConsoleInfo=console.info,this.realConsoleWarn=console.warn,this.realConsoleError=console.error,this.ALIGN=AnaLogger.ALIGN,this.ENVIRONMENT_TYPE=AnaLogger.ENVIRONMENT_TYPE}keepLogHistory(){this.keepLog=!0}releaseLogHistory(){this.keepLog=!1}resetLogHistory(){this.logHistory=[]}getLogHistory(e=!0,t=EOL){const o=JSON.parse(JSON.stringify(this.logHistory.slice(0)));return e?o.join(t):o}isNode(){return this.system===SYSTEM.NODE}isBrowser(){return!this.isNode()}setOptions({contextLenMax:e=10,idLenMax:t=5,lidLenMax:o=5,symbolLenMax:s=2,messageLenMax:r=60,hideLog:n=!1,hideError:i=!1,hideHookMessage:a=!1,showPassingTests:l=!0,logToDom:g=void 0,silent:h=!1}={}){this.options.contextLenMax=e,this.options.idLenMax=t,this.options.lidLenMax=o,this.options.messageLenMax=r,this.options.symbolLenMax=s,this.options.hideLog=!!n,this.options.hideError=!!i,this.options.hideHookMessage=!!a,this.options.showPassingTests=!!l,void 0!==g&&(this.options.logToDom=g||"#analogger"),h&&(this.options.hideLog=!0,this.options.hideHookMessage=!0,this.options.silent=!0)}getOptions(){return this.options}truncateMessage(e="",{fit:t=0,align:o=AnaLogger.ALIGN.LEFT}){return e=""+e,t&&e.length>=t+2&&(e=e.substring(0,t-3)+"..."),e=o===AnaLogger.ALIGN.LEFT?e.padEnd(t+1," "):e.padStart(t+1," ")}onBuildLog({contextName:e,message:t="",lid:o="",symbol:s=""}={}){const r=new Date;var n=("0"+r.getHours()).slice(-2)+":"+("0"+r.getMinutes()).slice(-2)+":"+("0"+r.getSeconds()).slice(-2),n=this.truncateMessage(n,{fit:7});return e=this.truncateMessage(e,{fit:this.options.contextLenMax,align:AnaLogger.ALIGN.RIGHT}),o=this.truncateMessage(o,{fit:this.options.lidLenMax}),t=this.truncateMessage(t,{fit:this.options.messageLenMax}),`[${n}] ${e}: (${o}) ${s=this.truncateMessage(s,{fit:this.options.symbolLenMax})} `+t}onErrorForUserTarget(e,...t){this.errorUserTargetHandler(e,...t)}onError(e,...t){e.target===this.targets.USER&&this.onErrorForUserTarget(e,...t)}onDisplayLog(...e){this.log(...e)}onDisplayError(...e){this.error(...e)}setLogFormat(e){if("function"!=typeof e)return console.error("Invalid parameter for setFormat. It is expecting a function or method."),!1;this.format=e.bind(this)}resetLogFormatter(){this.format=this.originalFormatFunction}setErrorHandler(e){this.errorTargetHandler=e.bind(this)}setErrorHandlerForUserTarget(e){this.errorUserTargetHandler=e.bind(this)}isContextValid(e){return"object"==typeof e&&!Array.isArray(e)&&null!==e&&(e.hasOwnProperty("contextName")&&e.hasOwnProperty("target"))}generateDefaultContext(){const e={name:"DEFAULT",contextName:"DEFAULT",target:"ALL",symbol:"⚡"};return e.id=this.logIndex++,e.color=COLOR_TABLE[1],e}generateNewContext(){const e=this.generateDefaultContext();return e.color=COLOR_TABLE[this.indexColor++%(COLOR_TABLE.length-3)+2],e.symbol="",e}generateErrorContext(){const e=this.generateDefaultContext();return e.color=COLOR_TABLE[0],e.symbol="v",e.error=!0,e}#allegeProperties(e){let t=e;e=this.generateNewContext();return t=Object.assign({},e,t),-1<t.color.toLowerCase().indexOf("rgb")?t.color="#"+rgbHex(t.color):t.color.indexOf("#"),t}setContexts(o){const e=Object.keys(o);o.DEFAULT=this.contexts.DEFAULT=this.generateDefaultContext(),o.ERROR=this.contexts.ERROR=this.generateErrorContext(),e.forEach(e=>{const t=o[e]||{};t.contextName=e,t.name=e,this.contexts[e]=this.#allegeProperties(t),o[e]=this.contexts[e]})}setTargets(e={}){this.targets=Object.assign({},e,{ALL:"ALL",USER:"USER"})}setActiveTarget(e){this.activeTarget=e}isTargetAllowed(e){return!e||!this.activeTarget||(e===this.targets.ALL||this.activeTarget===e)}setColumns(e,t,o){let s=0;for(var r in t)if("name"!==r){var n=t[r];const i=document.createElement("span");i.classList.add("analogger-col","analogger-col-"+r,"analogger-col-"+s),++s,i.textContent=n,e.append(i)}const i=document.createElement("span");i.classList.add("analogger-col","analogger-col-text","analogger-col-"+s),i.textContent=o,e.append(i)}writeLogToDom(o,s){this.$containers=this.$containers||document.querySelectorAll(this.options.logToDom);for(let t=0;t<this.$containers.length;++t){const r=this.$containers[t];let e=r.querySelector(".analogger-view");e||(e=document.createElement("div"),e.classList.add("analogger-view"),r.append(e));const n=document.createElement("div");n.classList.add("to-esm-line"),n.style.color=o.color,n.setAttribute("data-log-counter",this.logCounter),n.setAttribute("data-log-index",this.logIndex),this.setColumns(n,o,s),e.append(n)}}processOutput(o={}){try{if(!this.isTargetAllowed(o.target))return;let e=Array.prototype.slice.call(arguments);e.shift();var s=e.join(" | ");let t="";var r=this.format({...o,message:s});if(++this.logCounter,t=this.isBrowser()?(o.environnment=AnaLogger.ENVIRONMENT_TYPE.BROWSER,this.options.logToDom&&this.writeLogToDom(o,r),"%c"+r):(o.environnment=AnaLogger.ENVIRONMENT_TYPE.NODE,chalk.hex(o.color)(r)),this.keepLog&&this.logHistory.push(t),this.options.hideLog)return;this.isBrowser()?this.realConsoleLog(t,"color: "+o.color):this.realConsoleLog(t),this.errorTargetHandler(o,e)}catch(e){console.error("AnaLogger:",e.message)}}isExtendedOptionsPassed(e){return"object"==typeof e&&(e.hasOwnProperty("context")||e.hasOwnProperty("target"))}convertToContext(e,t){t=t||this.generateDefaultContext();let o=e=e||t;if(e.context&&"object"==typeof e.context){const s=Object.assign({},e);delete s.context,o=Object.assign({},e.context,s)}return o=Object.assign({},t,o),delete o.context,o}log(e,...t){if(!this.isExtendedOptionsPassed(e))return o=this.generateDefaultContext(),void this.processOutput.apply(this,[o,e,...t]);var o=this.convertToContext(e);this.processOutput.apply(this,[o,...t])}error(e,...t){if(!this.options.hideError){if(!this.isExtendedOptionsPassed(e))return o=this.generateErrorContext(),void this.processOutput.apply(this,[o,e,...t]);var o=this.generateErrorContext(),o=this.convertToContext(e,o),s=Array.prototype.slice.call(arguments);this.log(o,...s)}}overrideError(){this.options.hideHookMessage||this.realConsoleLog("AnaLogger: Hook placed on console.error"),console.error=this.onDisplayError.bind(this)}overrideConsole({log:e=!0,info:t=!0,warn:o=!0,error:s=!1}={}){this.options.hideHookMessage||this.realConsoleLog("AnaLogger: Hook placed on console.log"),e&&(console.log=this.onDisplayLog.bind(this)),t&&(console.info=this.onDisplayLog.bind(this)),o&&(console.warn=this.onDisplayLog.bind(this)),s&&this.overrideError()}removeOverrideError(){console.warn=this.realConsoleError}removeOverride({log:e=!0,info:t=!0,warn:o=!0,error:s=!1}={}){e&&(console.log=this.realConsoleLog),t&&(console.info=this.realConsoleInfo),o&&(console.warn=this.realConsoleWarn),s&&this.removeOverrideError()}info(...e){return this.log(...e)}warn(...e){return this.log(...e)}alert(...e){if(this.isNode())return this.log(...e);e=e.join(" | ");alert(e)}assert(e,t=!0,...o){try{return"function"==typeof e?e(...o)!==t?(this.error("Asset failed"),!1):(this.options.showPassingTests&&this.log("SUCCESS: Assert passed"),!0):e!==t?(this.error("Assert failed"),!1):(this.options.showPassingTests&&this.log("SUCCESS: Assert passed"),!0)}catch(e){this.error("Unexpected error in assert")}return!1}}const anaLogger=new AnaLogger;export{anaLogger};
|
package/dist/index.css
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
.analogger {
|
|
2
|
-
background-color: #462210;
|
|
3
|
-
border: 4px solid #16122a;
|
|
4
|
-
box-shadow: 3px 4px 9px 0px rgba(0, 0, 0, 0.75);
|
|
5
|
-
height: 320px;
|
|
6
|
-
overflow: hidden;
|
|
7
|
-
margin: 1rem;
|
|
8
|
-
padding: 13px 0 0 0;
|
|
9
|
-
width: 80%;
|
|
10
|
-
max-height: 300px;
|
|
11
|
-
}
|
|
12
|
-
.analogger .analogger-view {
|
|
13
|
-
background-color: #0c0c0c;
|
|
14
|
-
box-sizing: border-box;
|
|
15
|
-
color: antiquewhite;
|
|
16
|
-
display: block;
|
|
17
|
-
font-family: sans-serif;
|
|
18
|
-
font-size: 12px;
|
|
19
|
-
line-height: 30px;
|
|
20
|
-
height: calc(100% - 20px);
|
|
21
|
-
margin: 20px 0 0 0;
|
|
22
|
-
padding: 12px;
|
|
23
|
-
overflow: auto;
|
|
24
|
-
position: relative;
|
|
25
|
-
width: 100%;
|
|
26
|
-
}
|
|
27
|
-
.analogger .analogger-view .to-esm-line {
|
|
28
|
-
display: inline-block;
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
white-space: nowrap;
|
|
31
|
-
}
|
|
32
|
-
.analogger .analogger-view .to-esm-line .analogger-col {
|
|
33
|
-
display: inline-block;
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
padding: 0 4px;
|
|
36
|
-
text-overflow: ellipsis;
|
|
37
|
-
white-space: nowrap;
|
|
38
|
-
}
|
|
39
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(1) {
|
|
40
|
-
width: 60px;
|
|
41
|
-
}
|
|
42
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(2) {
|
|
43
|
-
width: 40px;
|
|
44
|
-
}
|
|
45
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(3) {
|
|
46
|
-
width: 20px;
|
|
47
|
-
}
|
|
48
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(4) {
|
|
49
|
-
width: 16px;
|
|
50
|
-
}
|
|
51
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(5) {
|
|
52
|
-
width: 60px;
|
|
53
|
-
}
|
|
54
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(6) {
|
|
55
|
-
width: 70px;
|
|
56
|
-
}
|
|
57
|
-
.analogger .analogger-view .to-esm-line .analogger-col:nth-child(7) {
|
|
58
|
-
width: auto;
|
|
59
|
-
}
|
|
60
|
-
.analogger .analogger-view .to-esm-line .analogger-col-text {
|
|
61
|
-
min-width: 200px;
|
|
62
|
-
}
|
|
63
|
-
.analogger .analogger-view::-webkit-scrollbar-thumb {
|
|
64
|
-
border: 5px solid transparent;
|
|
65
|
-
border-radius: 100px;
|
|
66
|
-
background-color: #514b6e;
|
|
67
|
-
background-clip: content-box;
|
|
68
|
-
}
|
|
69
|
-
.analogger .analogger-view::-webkit-scrollbar {
|
|
70
|
-
width: 20px;
|
|
71
|
-
}
|
|
72
|
-
.analogger .analogger-view::-webkit-scrollbar-track {
|
|
73
|
-
background-color: #382525;
|
|
74
|
-
border-radius: 100px;
|
|
75
|
-
}
|
|
76
|
-
.analogger .analogger-view::-webkit-scrollbar-thumb {
|
|
77
|
-
border-radius: 100px;
|
|
78
|
-
border: 4px solid transparent;
|
|
79
|
-
background-clip: content-box;
|
|
80
|
-
background-color: #9f6c53;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|