UNPKG

@nlabs/arkhamjs-middleware-logger

Version:

Add console logging for ArkhamJS

3 lines (2 loc) 10.7 kB
import{cloneDeep as n,isEqual as r}from"@nlabs/utils";const s={DISABLED:0,LOGS:1,DISPATCH:2};class c{name="Logger";previousStore={};defaultOptions={debugLevel:s.DISABLED};options=this.defaultOptions;constructor(e){this.config=this.config.bind(this),this.debugError=this.debugError.bind(this),this.debugInfo=this.debugInfo.bind(this),this.debugLog=this.debugLog.bind(this),this.enableDebugger=this.enableDebugger.bind(this),this.getOptions=this.getOptions.bind(this),this.postDispatch=this.postDispatch.bind(this),this.preDispatch=this.preDispatch.bind(this),this.config(e)}config(e){this.options={...this.defaultOptions,...e}}debugError(...e){const{debugErrorFnc:o,debugLevel:t}=this.options;o&&o(t,...e)}debugInfo(...e){const{debugInfoFnc:o,debugLevel:t}=this.options;o&&o(t,...e)}debugLog(...e){const{debugLogFnc:o,debugLevel:t}=this.options;o&&o(t,...e)}enableDebugger(e=s.DISPATCH){this.options={...this.options,debugLevel:e}}getOptions(){return this.options}preDispatch(e,o){return this.previousStore=o,Promise.resolve(e)}postDispatch(e,o){const{debugLevel:t}=this.options;if(t&&t>s.LOGS){const{type:d}=e,i=!r(o,this.previousStore),l=i?"Changed State":"Unchanged State",p=i?"#00d484":"#959595",u=n(o)}return Promise.resolve(e)}}export{c as Logger,s as LoggerDebugLevel}; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0xvZ2dlci9Mb2dnZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFcXVhbH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhBY3Rpb259IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5cbmV4cG9ydCBjb25zdCBMb2dnZXJEZWJ1Z0xldmVsID0ge1xuICBESVNBQkxFRDogMCxcbiAgTE9HUzogMSxcbiAgRElTUEFUQ0g6IDJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIExvZ2dlckRlYnVnTGV2ZWxUeXBlID0gdHlwZW9mIExvZ2dlckRlYnVnTGV2ZWxba2V5b2YgdHlwZW9mIExvZ2dlckRlYnVnTGV2ZWxdO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlck9wdGlvbnMge1xuICByZWFkb25seSBkZWJ1Z0xldmVsPzogTG9nZ2VyRGVidWdMZXZlbFR5cGU7XG4gIHJlYWRvbmx5IGRlYnVnRXJyb3JGbmM/OiAoZGVidWdMZXZlbDogbnVtYmVyLCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgZGVidWdJbmZvRm5jPzogKGRlYnVnTGV2ZWw6IG51bWJlciwgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGRlYnVnTG9nRm5jPzogKGRlYnVnTGV2ZWw6IG51bWJlciwgLi4uYXJnczogYW55W10pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuICBuYW1lOiBzdHJpbmcgPSAnTG9nZ2VyJztcblxuICBwcml2YXRlIHByZXZpb3VzU3RvcmU6IGFueSA9IHt9O1xuICBwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBMb2dnZXJPcHRpb25zID0ge1xuICAgIGRlYnVnTGV2ZWw6IExvZ2dlckRlYnVnTGV2ZWwuRElTQUJMRURcbiAgfTtcbiAgcHJpdmF0ZSBvcHRpb25zOiBMb2dnZXJPcHRpb25zID0gdGhpcy5kZWZhdWx0T3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMb2dnZXJPcHRpb25zKSB7XG4gICAgLy8gTWV0aG9kc1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWcuYmluZCh0aGlzKTtcbiAgICB0aGlzLmRlYnVnRXJyb3IgPSB0aGlzLmRlYnVnRXJyb3IuYmluZCh0aGlzKTtcbiAgICB0aGlzLmRlYnVnSW5mbyA9IHRoaXMuZGVidWdJbmZvLmJpbmQodGhpcyk7XG4gICAgdGhpcy5kZWJ1Z0xvZyA9IHRoaXMuZGVidWdMb2cuYmluZCh0aGlzKTtcbiAgICB0aGlzLmVuYWJsZURlYnVnZ2VyID0gdGhpcy5lbmFibGVEZWJ1Z2dlci5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZ2V0T3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucy5iaW5kKHRoaXMpO1xuICAgIHRoaXMucG9zdERpc3BhdGNoID0gdGhpcy5wb3N0RGlzcGF0Y2guYmluZCh0aGlzKTtcbiAgICB0aGlzLnByZURpc3BhdGNoID0gdGhpcy5wcmVEaXNwYXRjaC5iaW5kKHRoaXMpO1xuXG4gICAgLy8gQ29uZmlndXJhdGlvblxuICAgIHRoaXMuY29uZmlnKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjb25maWd1cmF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbiAgICovXG4gIGNvbmZpZyhvcHRpb25zOiBMb2dnZXJPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0gey4uLnRoaXMuZGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgZXJyb3JzIGluIHRoZSBjb25zb2xlLiBXaWxsIGFsc28gY2FsbCB0aGUgZGVidWdFcnJvckZuYyBtZXRob2Qgc2V0IGluIHRoZSBjb25maWcuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvYmogQSBsaXN0IG9mIEphdmFTY3JpcHQgb2JqZWN0cyB0byBvdXRwdXQuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIGVhY2ggb2YgdGhlc2Ugb2JqZWN0c1xuICAgKiBhcmUgYXBwZW5kZWQgdG9nZXRoZXIgaW4gdGhlIG9yZGVyIGxpc3RlZCBhbmQgb3V0cHV0LlxuICAgKi9cbiAgZGVidWdFcnJvciguLi5vYmo6IGFueVtdKTogdm9pZCB7XG4gICAgY29uc3Qge2RlYnVnRXJyb3JGbmMsIGRlYnVnTGV2ZWx9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgaWYoZGVidWdMZXZlbCkge1xuICAgICAgY29uc29sZS5lcnJvciguLi5vYmopO1xuICAgIH1cblxuICAgIGlmKGRlYnVnRXJyb3JGbmMpIHtcbiAgICAgIGRlYnVnRXJyb3JGbmMoZGVidWdMZXZlbCBhcyBudW1iZXIsIC4uLm9iaik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvZ3MgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyB0byB0aGUgY29uc29sZS4gV2lsbCBhbHNvIGNhbGwgdGhlIGRlYnVnSW5mb0ZuYyBtZXRob2Qgc2V0IGluIHRoZSBjb25maWcuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBvYmogQSBsaXN0IG9mIEphdmFTY3JpcHQgb2JqZWN0cyB0byBvdXRwdXQuIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb25zIG9mIGVhY2ggb2YgdGhlc2Ugb2JqZWN0c1xuICAgKiBhcmUgYXBwZW5kZWQgdG9nZXRoZXIgaW4gdGhlIG9yZGVyIGxpc3RlZCBhbmQgb3V0cHV0LlxuICAgKi9cbiAgZGVidWdJbmZvKC4uLm9iajogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCB7ZGVidWdJbmZvRm5jLCBkZWJ1Z0xldmVsfSA9IHRoaXMub3B0aW9ucztcblxuICAgIGlmKGRlYnVnTGV2ZWwpIHtcbiAgICAgIGNvbnNvbGUuaW5mbyguLi5vYmopO1xuICAgIH1cblxuICAgIGlmKGRlYnVnSW5mb0ZuYykge1xuICAgICAgZGVidWdJbmZvRm5jKGRlYnVnTGV2ZWwgYXMgbnVtYmVyLCAuLi5vYmopO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dzIGRhdGEgaW4gdGhlIGNvbnNvbGUuIE9ubHkgbG9ncyB3aGVuIGluIGRlYnVnIG1vZGUuICBXaWxsIGFsc28gY2FsbCB0aGUgZGVidWdMb2dGbmMgbWV0aG9kIHNldCBpbiB0aGUgY29uZmlnLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gb2JqIEEgbGlzdCBvZiBKYXZhU2NyaXB0IG9iamVjdHMgdG8gb3V0cHV0LiBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBvZiBlYWNoIG9mIHRoZXNlIG9iamVjdHNcbiAgICogYXJlIGFwcGVuZGVkIHRvZ2V0aGVyIGluIHRoZSBvcmRlciBsaXN0ZWQgYW5kIG91dHB1dC5cbiAgICovXG4gIGRlYnVnTG9nKC4uLm9iajogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCB7ZGVidWdMb2dGbmMsIGRlYnVnTGV2ZWx9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgaWYoZGVidWdMZXZlbCkge1xuICAgICAgY29uc29sZS5sb2coLi4ub2JqKTtcbiAgICB9XG5cbiAgICBpZihkZWJ1Z0xvZ0ZuYykge1xuICAgICAgZGVidWdMb2dGbmMoZGVidWdMZXZlbCBhcyBudW1iZXIsIC4uLm9iaik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGNvbnNvbGUgZGVidWdnZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsZXZlbCBFbmFibGUgb3IgZGlzYWJsZSB0aGUgZGVidWdnZXIuIFVzZXMgdGhlIGNvbnN0YW50czpcbiAgICogICBMb2dnZXJEZWJ1Z0xldmVsLkRJU0FCTEVEICgwKSAtIERpc2FibGUuXG4gICAqICAgTG9nZ2VyRGVidWdMZXZlbC5MT0dTICgxKSAtIEVuYWJsZSBjb25zb2xlIGxvZ3MuXG4gICAqICAgTG9nZ2VyRGVidWdMZXZlbC5ESVNQQVRDSCAoMikgLSBFbmFibGUgY29uc29sZSBsb2dzIGFuZCBkaXNwYXRjaCBhY3Rpb24gZGF0YSAoZGVmYXVsdCkuXG4gICAqL1xuICBlbmFibGVEZWJ1Z2dlcihsZXZlbDogTG9nZ2VyRGVidWdMZXZlbFR5cGUgPSBMb2dnZXJEZWJ1Z0xldmVsLkRJU1BBVENIKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0gey4uLnRoaXMub3B0aW9ucywgZGVidWdMZXZlbDogbGV2ZWx9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBGbHV4TG9nZ2VyIG9wdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtMb2dnZXJPcHRpb25zfSB0aGUgRmx1eExvZ2dlciBvcHRpb25zIG9iamVjdC5cbiAgICovXG4gIGdldE9wdGlvbnMoKTogTG9nZ2VyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIHByZURpc3BhdGNoKGFjdGlvbjogRmx1eEFjdGlvbiwgc3RvcmUpOiBQcm9taXNlPEZsdXhBY3Rpb24+IHtcbiAgICB0aGlzLnByZXZpb3VzU3RvcmUgPSBzdG9yZTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFjdGlvbik7XG4gIH1cblxuICBwb3N0RGlzcGF0Y2goYWN0aW9uOiBGbHV4QWN0aW9uLCBzdG9yZTogb2JqZWN0KTogUHJvbWlzZTxGbHV4QWN0aW9uPiB7XG4gICAgY29uc3Qge2RlYnVnTGV2ZWx9ID0gdGhpcy5vcHRpb25zO1xuXG4gICAgaWYoZGVidWdMZXZlbCAmJiBkZWJ1Z0xldmVsID4gTG9nZ2VyRGVidWdMZXZlbC5MT0dTKSB7XG4gICAgICBjb25zdCB7dHlwZX0gPSBhY3Rpb247XG4gICAgICBjb25zdCBoYXNDaGFuZ2VkID0gIWlzRXF1YWwoc3RvcmUsIHRoaXMucHJldmlvdXNTdG9yZSk7XG4gICAgICBjb25zdCB1cGRhdGVkTGFiZWwgPSBoYXNDaGFuZ2VkID8gJ0NoYW5nZWQgU3RhdGUnIDogJ1VuY2hhbmdlZCBTdGF0ZSc7XG4gICAgICBjb25zdCB1cGRhdGVkQ29sb3IgPSBoYXNDaGFuZ2VkID8gJyMwMGQ0ODQnIDogJyM5NTk1OTUnO1xuICAgICAgY29uc3QgdXBkYXRlZFN0b3JlID0gY2xvbmVEZWVwKHN0b3JlKTtcblxuICAgICAgaWYoY29uc29sZS5ncm91cENvbGxhcHNlZCkge1xuICAgICAgICBjb25zb2xlLmdyb3VwQ29sbGFwc2VkKGBGTFVYIERJU1BBVENIOiAke3R5cGV9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCclYyBBY3Rpb246ICcsICdjb2xvcjogIzAwQzRGRicsIGFjdGlvbik7XG4gICAgICAgIGNvbnNvbGUubG9nKCclYyBMYXN0IFN0YXRlOiAnLCAnY29sb3I6ICM5NTk1OTUnLCB0aGlzLnByZXZpb3VzU3RvcmUpO1xuICAgICAgICBjb25zb2xlLmxvZyhgJWMgJHt1cGRhdGVkTGFiZWx9OiBgLCBgY29sb3I6ICR7dXBkYXRlZENvbG9yfWAsIHVwZGF0ZWRTdG9yZSk7XG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBGTFVYIERJU1BBVENIOiAke3R5cGV9YCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdBY3Rpb246ICcsIGFjdGlvbik7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMYXN0IFN0YXRlOiAnLCB0aGlzLnByZXZpb3VzU3RvcmUpO1xuICAgICAgICBjb25zb2xlLmxvZyhgJHt1cGRhdGVkTGFiZWx9OiBgLCB1cGRhdGVkU3RvcmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYWN0aW9uKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBS0EsT0FBUSxhQUFBQSxFQUFXLFdBQUFDLE1BQWMsZUFJMUIsTUFBTUMsRUFBbUIsQ0FDOUIsU0FBVSxFQUNWLEtBQU0sRUFDTixTQUFVLENBQ1osRUFXTyxNQUFNQyxDQUFPLENBQ2xCLEtBQWUsU0FFUCxjQUFxQixDQUFDLEVBQ3RCLGVBQWdDLENBQ3RDLFdBQVlELEVBQWlCLFFBQy9CLEVBQ1EsUUFBeUIsS0FBSyxlQUV0QyxZQUFZRSxFQUF3QixDQUVsQyxLQUFLLE9BQVMsS0FBSyxPQUFPLEtBQUssSUFBSSxFQUNuQyxLQUFLLFdBQWEsS0FBSyxXQUFXLEtBQUssSUFBSSxFQUMzQyxLQUFLLFVBQVksS0FBSyxVQUFVLEtBQUssSUFBSSxFQUN6QyxLQUFLLFNBQVcsS0FBSyxTQUFTLEtBQUssSUFBSSxFQUN2QyxLQUFLLGVBQWlCLEtBQUssZUFBZSxLQUFLLElBQUksRUFDbkQsS0FBSyxXQUFhLEtBQUssV0FBVyxLQUFLLElBQUksRUFDM0MsS0FBSyxhQUFlLEtBQUssYUFBYSxLQUFLLElBQUksRUFDL0MsS0FBSyxZQUFjLEtBQUssWUFBWSxLQUFLLElBQUksRUFHN0MsS0FBSyxPQUFPQSxDQUFPLENBQ3JCLENBT0EsT0FBT0EsRUFBOEIsQ0FDbkMsS0FBSyxRQUFVLENBQUMsR0FBRyxLQUFLLGVBQWdCLEdBQUdBLENBQU8sQ0FDcEQsQ0FRQSxjQUFjQyxFQUFrQixDQUM5QixLQUFNLENBQUMsY0FBQUMsRUFBZSxXQUFBQyxDQUFVLEVBQUksS0FBSyxRQU10Q0QsR0FDREEsRUFBY0MsRUFBc0IsR0FBR0YsQ0FBRyxDQUU5QyxDQVFBLGFBQWFBLEVBQWtCLENBQzdCLEtBQU0sQ0FBQyxhQUFBRyxFQUFjLFdBQUFELENBQVUsRUFBSSxLQUFLLFFBTXJDQyxHQUNEQSxFQUFhRCxFQUFzQixHQUFHRixDQUFHLENBRTdDLENBUUEsWUFBWUEsRUFBa0IsQ0FDNUIsS0FBTSxDQUFDLFlBQUFJLEVBQWEsV0FBQUYsQ0FBVSxFQUFJLEtBQUssUUFNcENFLEdBQ0RBLEVBQVlGLEVBQXNCLEdBQUdGLENBQUcsQ0FFNUMsQ0FVQSxlQUFlSyxFQUE4QlIsRUFBaUIsU0FBZ0IsQ0FDNUUsS0FBSyxRQUFVLENBQUMsR0FBRyxLQUFLLFFBQVMsV0FBWVEsQ0FBSyxDQUNwRCxDQU9BLFlBQTRCLENBQzFCLE9BQU8sS0FBSyxPQUNkLENBRUEsWUFBWUMsRUFBb0JDLEVBQTRCLENBQzFELFlBQUssY0FBZ0JBLEVBQ2QsUUFBUSxRQUFRRCxDQUFNLENBQy9CLENBRUEsYUFBYUEsRUFBb0JDLEVBQW9DLENBQ25FLEtBQU0sQ0FBQyxXQUFBTCxDQUFVLEVBQUksS0FBSyxRQUUxQixHQUFHQSxHQUFjQSxFQUFhTCxFQUFpQixLQUFNLENBQ25ELEtBQU0sQ0FBQyxLQUFBVyxDQUFJLEVBQUlGLEVBQ1RHLEVBQWEsQ0FBQ2IsRUFBUVcsRUFBTyxLQUFLLGFBQWEsRUFDL0NHLEVBQWVELEVBQWEsZ0JBQWtCLGtCQUM5Q0UsRUFBZUYsRUFBYSxVQUFZLFVBQ3hDRyxFQUFlakIsRUFBVVksQ0FBSyxDQWN0QyxDQUVBLE9BQU8sUUFBUSxRQUFRRCxDQUFNLENBQy9CLENBQ0YiLAogICJuYW1lcyI6IFsiY2xvbmVEZWVwIiwgImlzRXF1YWwiLCAiTG9nZ2VyRGVidWdMZXZlbCIsICJMb2dnZXIiLCAib3B0aW9ucyIsICJvYmoiLCAiZGVidWdFcnJvckZuYyIsICJkZWJ1Z0xldmVsIiwgImRlYnVnSW5mb0ZuYyIsICJkZWJ1Z0xvZ0ZuYyIsICJsZXZlbCIsICJhY3Rpb24iLCAic3RvcmUiLCAidHlwZSIsICJoYXNDaGFuZ2VkIiwgInVwZGF0ZWRMYWJlbCIsICJ1cGRhdGVkQ29sb3IiLCAidXBkYXRlZFN0b3JlIl0KfQo=