@ngxs/logger-plugin 3.8.2-dev.master-0fd1fe5 → 3.8.2

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.
@@ -0,0 +1,231 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ngxs/store'), require('rxjs/operators')) :
3
+ typeof define === 'function' && define.amd ? define('@ngxs/logger-plugin', ['exports', '@angular/core', '@ngxs/store', 'rxjs/operators'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ngxs = global.ngxs || {}, global.ngxs["logger-plugin"] = {}), global.ng.core, global["ngxs-store"], global.rxjs.operators));
5
+ })(this, (function (exports, i0, store, operators) { 'use strict';
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
+
27
+ var repeat = function (str, times) { return new Array(times + 1).join(str); };
28
+ var pad = function (num, maxLength) { return repeat('0', maxLength - num.toString().length) + num; };
29
+ function formatTime(time) {
30
+ return (pad(time.getHours(), 2) +
31
+ ":" +
32
+ pad(time.getMinutes(), 2) +
33
+ ":" +
34
+ pad(time.getSeconds(), 2) +
35
+ "." +
36
+ pad(time.getMilliseconds(), 3));
37
+ }
38
+
39
+ var ActionLogger = /** @class */ (function () {
40
+ function ActionLogger(action, store, logWriter) {
41
+ this.action = action;
42
+ this.store = store;
43
+ this.logWriter = logWriter;
44
+ }
45
+ ActionLogger.prototype.dispatched = function (state) {
46
+ var actionName = store.getActionTypeFromInstance(this.action);
47
+ var formattedTime = formatTime(new Date());
48
+ var message = "action " + actionName + " @ " + formattedTime;
49
+ this.logWriter.startGroup(message);
50
+ // print payload only if at least one property is supplied
51
+ if (this._hasPayload(this.action)) {
52
+ this.logWriter.logGrey('payload', Object.assign({}, this.action));
53
+ }
54
+ this.logWriter.logGrey('prev state', state);
55
+ };
56
+ ActionLogger.prototype.completed = function (nextState) {
57
+ this.logWriter.logGreen('next state', nextState);
58
+ this.logWriter.endGroup();
59
+ };
60
+ ActionLogger.prototype.errored = function (error) {
61
+ this.logWriter.logRedish('next state after error', this.store.snapshot());
62
+ this.logWriter.logRedish('error', error);
63
+ this.logWriter.endGroup();
64
+ };
65
+ ActionLogger.prototype._hasPayload = function (event) {
66
+ var nonEmptyProperties = this._getNonEmptyProperties(event);
67
+ return nonEmptyProperties.length > 0;
68
+ };
69
+ ActionLogger.prototype._getNonEmptyProperties = function (event) {
70
+ var keys = Object.keys(event);
71
+ var values = keys.map(function (key) { return event[key]; });
72
+ return values.filter(function (value) { return value !== undefined; });
73
+ };
74
+ return ActionLogger;
75
+ }());
76
+
77
+ var LogWriter = /** @class */ (function () {
78
+ function LogWriter(options) {
79
+ this.options = options;
80
+ this.options = this.options || {};
81
+ this.logger = options.logger || console;
82
+ }
83
+ LogWriter.prototype.startGroup = function (message) {
84
+ var startGroupFn = this.options.collapsed
85
+ ? this.logger.groupCollapsed
86
+ : this.logger.group;
87
+ try {
88
+ startGroupFn.call(this.logger, message);
89
+ }
90
+ catch (e) {
91
+ console.log(message);
92
+ }
93
+ };
94
+ LogWriter.prototype.endGroup = function () {
95
+ try {
96
+ this.logger.groupEnd();
97
+ }
98
+ catch (e) {
99
+ this.logger.log('—— log end ——');
100
+ }
101
+ };
102
+ LogWriter.prototype.logGrey = function (title, payload) {
103
+ var greyStyle = 'color: #9E9E9E; font-weight: bold';
104
+ this.log(title, greyStyle, payload);
105
+ };
106
+ LogWriter.prototype.logGreen = function (title, payload) {
107
+ var greenStyle = 'color: #4CAF50; font-weight: bold';
108
+ this.log(title, greenStyle, payload);
109
+ };
110
+ LogWriter.prototype.logRedish = function (title, payload) {
111
+ var redishStyle = 'color: #FD8182; font-weight: bold';
112
+ this.log(title, redishStyle, payload);
113
+ };
114
+ LogWriter.prototype.log = function (title, color, payload) {
115
+ if (this.isIE()) {
116
+ this.logger.log(title, payload);
117
+ }
118
+ else {
119
+ this.logger.log('%c ' + title, color, payload);
120
+ }
121
+ };
122
+ LogWriter.prototype.isIE = function () {
123
+ var ua = typeof window !== 'undefined' && window.navigator.userAgent
124
+ ? window.navigator.userAgent
125
+ : '';
126
+ var msIE = false;
127
+ var oldIE = ua.indexOf('MSIE ');
128
+ var newIE = ua.indexOf('Trident/');
129
+ if (oldIE > -1 || newIE > -1) {
130
+ msIE = true;
131
+ }
132
+ return msIE;
133
+ };
134
+ return LogWriter;
135
+ }());
136
+
137
+ var NGXS_LOGGER_PLUGIN_OPTIONS = new i0.InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');
138
+
139
+ var NgxsLoggerPlugin = /** @class */ (function () {
140
+ function NgxsLoggerPlugin(_options, _injector) {
141
+ this._options = _options;
142
+ this._injector = _injector;
143
+ }
144
+ NgxsLoggerPlugin.prototype.handle = function (state, event, next) {
145
+ if (this._options.disabled || !this._options.filter(event, state)) {
146
+ return next(state, event);
147
+ }
148
+ this._logWriter = this._logWriter || new LogWriter(this._options);
149
+ // Retrieve lazily to avoid cyclic dependency exception
150
+ this._store = this._store || this._injector.get(store.Store);
151
+ var actionLogger = new ActionLogger(event, this._store, this._logWriter);
152
+ actionLogger.dispatched(state);
153
+ return next(state, event).pipe(operators.tap(function (nextState) {
154
+ actionLogger.completed(nextState);
155
+ }), operators.catchError(function (error) {
156
+ actionLogger.errored(error);
157
+ throw error;
158
+ }));
159
+ };
160
+ return NgxsLoggerPlugin;
161
+ }());
162
+ /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
163
+ /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPlugin });
164
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPlugin, decorators: [{
165
+ type: i0.Injectable
166
+ }], ctorParameters: function () {
167
+ return [{ type: undefined, decorators: [{
168
+ type: i0.Inject,
169
+ args: [NGXS_LOGGER_PLUGIN_OPTIONS]
170
+ }] }, { type: i0__namespace.Injector }];
171
+ } });
172
+
173
+ var USER_OPTIONS = new i0.InjectionToken('LOGGER_USER_OPTIONS');
174
+ function loggerOptionsFactory(options) {
175
+ var defaultLoggerOptions = {
176
+ logger: console,
177
+ collapsed: false,
178
+ disabled: false,
179
+ filter: function () { return true; }
180
+ };
181
+ return Object.assign(Object.assign({}, defaultLoggerOptions), options);
182
+ }
183
+ var NgxsLoggerPluginModule = /** @class */ (function () {
184
+ function NgxsLoggerPluginModule() {
185
+ }
186
+ NgxsLoggerPluginModule.forRoot = function (options) {
187
+ return {
188
+ ngModule: NgxsLoggerPluginModule,
189
+ providers: [
190
+ {
191
+ provide: store.NGXS_PLUGINS,
192
+ useClass: NgxsLoggerPlugin,
193
+ multi: true
194
+ },
195
+ {
196
+ provide: USER_OPTIONS,
197
+ useValue: options
198
+ },
199
+ {
200
+ provide: NGXS_LOGGER_PLUGIN_OPTIONS,
201
+ useFactory: loggerOptionsFactory,
202
+ deps: [USER_OPTIONS]
203
+ }
204
+ ]
205
+ };
206
+ };
207
+ return NgxsLoggerPluginModule;
208
+ }());
209
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPluginModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
210
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPluginModule });
211
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPluginModule });
212
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsLoggerPluginModule, decorators: [{
213
+ type: i0.NgModule
214
+ }] });
215
+
216
+ /**
217
+ * The public api for consumers of @ngxs/logger-plugin
218
+ */
219
+
220
+ /**
221
+ * Generated bundle index. Do not edit.
222
+ */
223
+
224
+ exports.NGXS_LOGGER_PLUGIN_OPTIONS = NGXS_LOGGER_PLUGIN_OPTIONS;
225
+ exports.NgxsLoggerPlugin = NgxsLoggerPlugin;
226
+ exports.NgxsLoggerPluginModule = NgxsLoggerPluginModule;
227
+
228
+ Object.defineProperty(exports, '__esModule', { value: true });
229
+
230
+ }));
231
+ //# sourceMappingURL=ngxs-logger-plugin.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngxs-logger-plugin.umd.js","sources":["../../../packages/logger-plugin/src/internals.ts","../../../packages/logger-plugin/src/action-logger.ts","../../../packages/logger-plugin/src/log-writer.ts","../../../packages/logger-plugin/src/symbols.ts","../../../packages/logger-plugin/src/logger.plugin.ts","../../../packages/logger-plugin/src/logger.module.ts","../../../packages/logger-plugin/index.ts","../../../packages/logger-plugin/ngxs-logger-plugin.ts"],"sourcesContent":["export const repeat = (str: string, times: number) => new Array(times + 1).join(str);\n\nexport const pad = (num: number, maxLength: number) =>\n repeat('0', maxLength - num.toString().length) + num;\n\nexport function formatTime(time: Date) {\n return (\n pad(time.getHours(), 2) +\n `:` +\n pad(time.getMinutes(), 2) +\n `:` +\n pad(time.getSeconds(), 2) +\n `.` +\n pad(time.getMilliseconds(), 3)\n );\n}\n","import { getActionTypeFromInstance, Store } from '@ngxs/store';\n\nimport { formatTime } from './internals';\nimport { LogWriter } from './log-writer';\n\nexport class ActionLogger {\n constructor(private action: any, private store: Store, private logWriter: LogWriter) {}\n\n dispatched(state: any) {\n const actionName = getActionTypeFromInstance(this.action);\n const formattedTime = formatTime(new Date());\n\n const message = `action ${actionName} @ ${formattedTime}`;\n this.logWriter.startGroup(message);\n\n // print payload only if at least one property is supplied\n if (this._hasPayload(this.action)) {\n this.logWriter.logGrey('payload', { ...this.action });\n }\n\n this.logWriter.logGrey('prev state', state);\n }\n\n completed(nextState: any) {\n this.logWriter.logGreen('next state', nextState);\n this.logWriter.endGroup();\n }\n\n errored(error: any) {\n this.logWriter.logRedish('next state after error', this.store.snapshot());\n this.logWriter.logRedish('error', error);\n this.logWriter.endGroup();\n }\n\n private _hasPayload(event: any) {\n const nonEmptyProperties = this._getNonEmptyProperties(event);\n return nonEmptyProperties.length > 0;\n }\n\n private _getNonEmptyProperties(event: any) {\n const keys = Object.keys(event);\n const values = keys.map(key => event[key]);\n return values.filter(value => value !== undefined);\n }\n}\n","import { NgxsLoggerPluginOptions } from './symbols';\nexport class LogWriter {\n private logger: any;\n\n constructor(private options: NgxsLoggerPluginOptions) {\n this.options = this.options || <any>{};\n this.logger = options.logger || console;\n }\n\n startGroup(message: string) {\n const startGroupFn = this.options.collapsed\n ? this.logger.groupCollapsed\n : this.logger.group;\n try {\n startGroupFn.call(this.logger, message);\n } catch (e) {\n console.log(message);\n }\n }\n\n endGroup() {\n try {\n this.logger.groupEnd();\n } catch (e) {\n this.logger.log('—— log end ——');\n }\n }\n\n logGrey(title: string, payload: any) {\n const greyStyle = 'color: #9E9E9E; font-weight: bold';\n this.log(title, greyStyle, payload);\n }\n\n logGreen(title: string, payload: any) {\n const greenStyle = 'color: #4CAF50; font-weight: bold';\n this.log(title, greenStyle, payload);\n }\n\n logRedish(title: string, payload: any) {\n const redishStyle = 'color: #FD8182; font-weight: bold';\n this.log(title, redishStyle, payload);\n }\n\n log(title: string, color: string, payload: any) {\n if (this.isIE()) {\n this.logger.log(title, payload);\n } else {\n this.logger.log('%c ' + title, color, payload);\n }\n }\n\n isIE(): boolean {\n const ua =\n typeof window !== 'undefined' && window.navigator.userAgent\n ? window.navigator.userAgent\n : '';\n let msIE = false;\n const oldIE = ua.indexOf('MSIE ');\n const newIE = ua.indexOf('Trident/');\n if (oldIE > -1 || newIE > -1) {\n msIE = true;\n }\n return msIE;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NgxsLoggerPluginOptions {\n /** Auto expand logged actions */\n collapsed?: boolean;\n\n /** Provide alternate console.log implementation */\n logger?: any;\n\n /** Disable the logger. Useful for prod mode. */\n disabled?: boolean;\n\n /** Predicate for actions to be the logged. Takes action and state snapshot as parameters */\n filter?: (action: any, state: any) => boolean;\n}\n\nexport const NGXS_LOGGER_PLUGIN_OPTIONS = new InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { NgxsNextPluginFn, NgxsPlugin, Store } from '@ngxs/store';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActionLogger } from './action-logger';\nimport { LogWriter } from './log-writer';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsLoggerPlugin implements NgxsPlugin {\n private _store: Store;\n private _logWriter: LogWriter;\n\n constructor(\n @Inject(NGXS_LOGGER_PLUGIN_OPTIONS) private _options: NgxsLoggerPluginOptions,\n private _injector: Injector\n ) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n if (this._options.disabled || !this._options.filter!(event, state)) {\n return next(state, event);\n }\n\n this._logWriter = this._logWriter || new LogWriter(this._options);\n // Retrieve lazily to avoid cyclic dependency exception\n this._store = this._store || this._injector.get<Store>(Store);\n\n const actionLogger = new ActionLogger(event, this._store, this._logWriter);\n\n actionLogger.dispatched(state);\n\n return next(state, event).pipe(\n tap(nextState => {\n actionLogger.completed(nextState);\n }),\n catchError(error => {\n actionLogger.errored(error);\n throw error;\n })\n );\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NGXS_PLUGINS } from '@ngxs/store';\nimport { NgxsLoggerPlugin } from './logger.plugin';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\nexport const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');\n\nexport function loggerOptionsFactory(options: NgxsLoggerPluginOptions) {\n const defaultLoggerOptions: NgxsLoggerPluginOptions = {\n logger: console,\n collapsed: false,\n disabled: false,\n filter: () => true\n };\n\n return {\n ...defaultLoggerOptions,\n ...options\n };\n}\n\n@NgModule()\nexport class NgxsLoggerPluginModule {\n static forRoot(\n options?: NgxsLoggerPluginOptions\n ): ModuleWithProviders<NgxsLoggerPluginModule> {\n return {\n ngModule: NgxsLoggerPluginModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: NgxsLoggerPlugin,\n multi: true\n },\n {\n provide: USER_OPTIONS,\n useValue: options\n },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]\n };\n }\n}\n","/**\n * The public api for consumers of @ngxs/logger-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getActionTypeFromInstance","InjectionToken","Store","tap","catchError","i0","Injectable","Inject","NGXS_PLUGINS","NgModule"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { getActionTypeFromInstance } from '@ngxs/store';
2
+ import { formatTime } from './internals';
3
+ export class ActionLogger {
4
+ constructor(action, store, logWriter) {
5
+ this.action = action;
6
+ this.store = store;
7
+ this.logWriter = logWriter;
8
+ }
9
+ dispatched(state) {
10
+ const actionName = getActionTypeFromInstance(this.action);
11
+ const formattedTime = formatTime(new Date());
12
+ const message = `action ${actionName} @ ${formattedTime}`;
13
+ this.logWriter.startGroup(message);
14
+ // print payload only if at least one property is supplied
15
+ if (this._hasPayload(this.action)) {
16
+ this.logWriter.logGrey('payload', Object.assign({}, this.action));
17
+ }
18
+ this.logWriter.logGrey('prev state', state);
19
+ }
20
+ completed(nextState) {
21
+ this.logWriter.logGreen('next state', nextState);
22
+ this.logWriter.endGroup();
23
+ }
24
+ errored(error) {
25
+ this.logWriter.logRedish('next state after error', this.store.snapshot());
26
+ this.logWriter.logRedish('error', error);
27
+ this.logWriter.endGroup();
28
+ }
29
+ _hasPayload(event) {
30
+ const nonEmptyProperties = this._getNonEmptyProperties(event);
31
+ return nonEmptyProperties.length > 0;
32
+ }
33
+ _getNonEmptyProperties(event) {
34
+ const keys = Object.keys(event);
35
+ const values = keys.map(key => event[key]);
36
+ return values.filter(value => value !== undefined);
37
+ }
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2FjdGlvbi1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHekMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsTUFBVyxFQUFVLEtBQVksRUFBVSxTQUFvQjtRQUEvRCxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRXZGLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sT0FBTyxHQUFHLFVBQVUsVUFBVSxNQUFNLGFBQWEsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLDBEQUEwRDtRQUMxRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsb0JBQU8sSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBYztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVTtRQUM1QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxPQUFPLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQVU7UUFDdkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBmb3JtYXRUaW1lIH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgTG9nV3JpdGVyIH0gZnJvbSAnLi9sb2ctd3JpdGVyJztcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkxvZ2dlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aW9uOiBhbnksIHByaXZhdGUgc3RvcmU6IFN0b3JlLCBwcml2YXRlIGxvZ1dyaXRlcjogTG9nV3JpdGVyKSB7fVxuXG4gIGRpc3BhdGNoZWQoc3RhdGU6IGFueSkge1xuICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKHRoaXMuYWN0aW9uKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gZm9ybWF0VGltZShuZXcgRGF0ZSgpKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgYWN0aW9uICR7YWN0aW9uTmFtZX0gQCAke2Zvcm1hdHRlZFRpbWV9YDtcbiAgICB0aGlzLmxvZ1dyaXRlci5zdGFydEdyb3VwKG1lc3NhZ2UpO1xuXG4gICAgLy8gcHJpbnQgcGF5bG9hZCBvbmx5IGlmIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBpcyBzdXBwbGllZFxuICAgIGlmICh0aGlzLl9oYXNQYXlsb2FkKHRoaXMuYWN0aW9uKSkge1xuICAgICAgdGhpcy5sb2dXcml0ZXIubG9nR3JleSgncGF5bG9hZCcsIHsgLi4udGhpcy5hY3Rpb24gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dXcml0ZXIubG9nR3JleSgncHJldiBzdGF0ZScsIHN0YXRlKTtcbiAgfVxuXG4gIGNvbXBsZXRlZChuZXh0U3RhdGU6IGFueSkge1xuICAgIHRoaXMubG9nV3JpdGVyLmxvZ0dyZWVuKCduZXh0IHN0YXRlJywgbmV4dFN0YXRlKTtcbiAgICB0aGlzLmxvZ1dyaXRlci5lbmRHcm91cCgpO1xuICB9XG5cbiAgZXJyb3JlZChlcnJvcjogYW55KSB7XG4gICAgdGhpcy5sb2dXcml0ZXIubG9nUmVkaXNoKCduZXh0IHN0YXRlIGFmdGVyIGVycm9yJywgdGhpcy5zdG9yZS5zbmFwc2hvdCgpKTtcbiAgICB0aGlzLmxvZ1dyaXRlci5sb2dSZWRpc2goJ2Vycm9yJywgZXJyb3IpO1xuICAgIHRoaXMubG9nV3JpdGVyLmVuZEdyb3VwKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYXNQYXlsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBub25FbXB0eVByb3BlcnRpZXMgPSB0aGlzLl9nZXROb25FbXB0eVByb3BlcnRpZXMoZXZlbnQpO1xuICAgIHJldHVybiBub25FbXB0eVByb3BlcnRpZXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vbkVtcHR5UHJvcGVydGllcyhldmVudDogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50KTtcbiAgICBjb25zdCB2YWx1ZXMgPSBrZXlzLm1hcChrZXkgPT4gZXZlbnRba2V5XSk7XG4gICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { InjectionToken, NgModule } from '@angular/core';
2
+ import { NGXS_PLUGINS } from '@ngxs/store';
3
+ import { NgxsLoggerPlugin } from './logger.plugin';
4
+ import { NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';
5
+ import * as i0 from "@angular/core";
6
+ export const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');
7
+ export function loggerOptionsFactory(options) {
8
+ const defaultLoggerOptions = {
9
+ logger: console,
10
+ collapsed: false,
11
+ disabled: false,
12
+ filter: () => true
13
+ };
14
+ return Object.assign(Object.assign({}, defaultLoggerOptions), options);
15
+ }
16
+ export class NgxsLoggerPluginModule {
17
+ static forRoot(options) {
18
+ return {
19
+ ngModule: NgxsLoggerPluginModule,
20
+ providers: [
21
+ {
22
+ provide: NGXS_PLUGINS,
23
+ useClass: NgxsLoggerPlugin,
24
+ multi: true
25
+ },
26
+ {
27
+ provide: USER_OPTIONS,
28
+ useValue: options
29
+ },
30
+ {
31
+ provide: NGXS_LOGGER_PLUGIN_OPTIONS,
32
+ useFactory: loggerOptionsFactory,
33
+ deps: [USER_OPTIONS]
34
+ }
35
+ ]
36
+ };
37
+ }
38
+ }
39
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule });
41
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
43
+ type: NgModule
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUEyQiwwQkFBMEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFaEYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFFdEUsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWdDO0lBQ25FLE1BQU0sb0JBQW9CLEdBQTRCO1FBQ3BELE1BQU0sRUFBRSxPQUFPO1FBQ2YsU0FBUyxFQUFFLEtBQUs7UUFDaEIsUUFBUSxFQUFFLEtBQUs7UUFDZixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtLQUNuQixDQUFDO0lBRUYsdUNBQ0ssb0JBQW9CLEdBQ3BCLE9BQU8sRUFDVjtBQUNKLENBQUM7QUFHRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBQyxPQUFPLENBQ1osT0FBaUM7UUFFakMsT0FBTztZQUNMLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE9BQU87aUJBQ2xCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFVBQVUsRUFBRSxvQkFBb0I7b0JBQ2hDLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzt1SUF2QlUsc0JBQXNCO3dJQUF0QixzQkFBc0I7d0lBQXRCLHNCQUFzQjs0RkFBdEIsc0JBQXNCO2tCQURsQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luIH0gZnJvbSAnLi9sb2dnZXIucGx1Z2luJztcbmltcG9ydCB7IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zLCBOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUyB9IGZyb20gJy4vc3ltYm9scyc7XG5cbmV4cG9ydCBjb25zdCBVU0VSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0xPR0dFUl9VU0VSX09QVElPTlMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvZ2dlck9wdGlvbnNGYWN0b3J5KG9wdGlvbnM6IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zKSB7XG4gIGNvbnN0IGRlZmF1bHRMb2dnZXJPcHRpb25zOiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucyA9IHtcbiAgICBsb2dnZXI6IGNvbnNvbGUsXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgZmlsdGVyOiAoKSA9PiB0cnVlXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZhdWx0TG9nZ2VyT3B0aW9ucyxcbiAgICAuLi5vcHRpb25zXG4gIH07XG59XG5cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgTmd4c0xvZ2dlclBsdWdpbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KFxuICAgIG9wdGlvbnM/OiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9uc1xuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNMb2dnZXJQbHVnaW5Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE5neHNMb2dnZXJQbHVnaW5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfUExVR0lOUyxcbiAgICAgICAgICB1c2VDbGFzczogTmd4c0xvZ2dlclBsdWdpbixcbiAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVVNFUl9PUFRJT05TLFxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBsb2dnZXJPcHRpb25zRmFjdG9yeSxcbiAgICAgICAgICBkZXBzOiBbVVNFUl9PUFRJT05TXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -27,12 +27,12 @@ export class NgxsLoggerPlugin {
27
27
  }));
28
28
  }
29
29
  }
30
- /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
31
- /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
30
+ /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
33
33
  type: Injectable
34
34
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
35
35
  type: Inject,
36
36
  args: [NGXS_LOGGER_PLUGIN_OPTIONS]
37
37
  }] }, { type: i0.Injector }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUEyQiwwQkFBMEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHaEYsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUM4QyxRQUFpQyxFQUNyRSxTQUFtQjtRQURpQixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQUNyRSxjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQzFCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBUSxLQUFLLENBQUMsQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0UsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZCxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2dJQS9CVSxnQkFBZ0Isa0JBS2pCLDBCQUEwQjtvSUFMekIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c05leHRQbHVnaW5GbiwgTmd4c1BsdWdpbiwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Mb2dnZXIgfSBmcm9tICcuL2FjdGlvbi1sb2dnZXInO1xuaW1wb3J0IHsgTG9nV3JpdGVyIH0gZnJvbSAnLi9sb2ctd3JpdGVyJztcbmltcG9ydCB7IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zLCBOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUyB9IGZyb20gJy4vc3ltYm9scyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTG9nZ2VyUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgX3N0b3JlOiBTdG9yZTtcbiAgcHJpdmF0ZSBfbG9nV3JpdGVyOiBMb2dXcml0ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yXG4gICkge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmICh0aGlzLl9vcHRpb25zLmRpc2FibGVkIHx8ICF0aGlzLl9vcHRpb25zLmZpbHRlciEoZXZlbnQsIHN0YXRlKSkge1xuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dXcml0ZXIgPSB0aGlzLl9sb2dXcml0ZXIgfHwgbmV3IExvZ1dyaXRlcih0aGlzLl9vcHRpb25zKTtcbiAgICAvLyBSZXRyaWV2ZSBsYXppbHkgdG8gYXZvaWQgY3ljbGljIGRlcGVuZGVuY3kgZXhjZXB0aW9uXG4gICAgdGhpcy5fc3RvcmUgPSB0aGlzLl9zdG9yZSB8fCB0aGlzLl9pbmplY3Rvci5nZXQ8U3RvcmU+KFN0b3JlKTtcblxuICAgIGNvbnN0IGFjdGlvbkxvZ2dlciA9IG5ldyBBY3Rpb25Mb2dnZXIoZXZlbnQsIHRoaXMuX3N0b3JlLCB0aGlzLl9sb2dXcml0ZXIpO1xuXG4gICAgYWN0aW9uTG9nZ2VyLmRpc3BhdGNoZWQoc3RhdGUpO1xuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5jb21wbGV0ZWQobmV4dFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5lcnJvcmVkKGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUEyQiwwQkFBMEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHaEYsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUM4QyxRQUFpQyxFQUNyRSxTQUFtQjtRQURpQixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQUNyRSxjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQzFCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBUSxLQUFLLENBQUMsQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0UsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZCxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2lJQS9CVSxnQkFBZ0Isa0JBS2pCLDBCQUEwQjtxSUFMekIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c05leHRQbHVnaW5GbiwgTmd4c1BsdWdpbiwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Mb2dnZXIgfSBmcm9tICcuL2FjdGlvbi1sb2dnZXInO1xuaW1wb3J0IHsgTG9nV3JpdGVyIH0gZnJvbSAnLi9sb2ctd3JpdGVyJztcbmltcG9ydCB7IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zLCBOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUyB9IGZyb20gJy4vc3ltYm9scyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTG9nZ2VyUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgX3N0b3JlOiBTdG9yZTtcbiAgcHJpdmF0ZSBfbG9nV3JpdGVyOiBMb2dXcml0ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yXG4gICkge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmICh0aGlzLl9vcHRpb25zLmRpc2FibGVkIHx8ICF0aGlzLl9vcHRpb25zLmZpbHRlciEoZXZlbnQsIHN0YXRlKSkge1xuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dXcml0ZXIgPSB0aGlzLl9sb2dXcml0ZXIgfHwgbmV3IExvZ1dyaXRlcih0aGlzLl9vcHRpb25zKTtcbiAgICAvLyBSZXRyaWV2ZSBsYXppbHkgdG8gYXZvaWQgY3ljbGljIGRlcGVuZGVuY3kgZXhjZXB0aW9uXG4gICAgdGhpcy5fc3RvcmUgPSB0aGlzLl9zdG9yZSB8fCB0aGlzLl9pbmplY3Rvci5nZXQ8U3RvcmU+KFN0b3JlKTtcblxuICAgIGNvbnN0IGFjdGlvbkxvZ2dlciA9IG5ldyBBY3Rpb25Mb2dnZXIoZXZlbnQsIHRoaXMuX3N0b3JlLCB0aGlzLl9sb2dXcml0ZXIpO1xuXG4gICAgYWN0aW9uTG9nZ2VyLmRpc3BhdGNoZWQoc3RhdGUpO1xuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5jb21wbGV0ZWQobmV4dFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5lcnJvcmVkKGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export { NgxsLoggerPluginModule } from './logger.module';
2
+ export { NgxsLoggerPlugin } from './logger.plugin';
3
+ export * from './symbols';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlIH0gZnJvbSAnLi9sb2dnZXIubW9kdWxlJztcbmV4cG9ydCB7IE5neHNMb2dnZXJQbHVnaW4gfSBmcm9tICcuL2xvZ2dlci5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1ib2xzJztcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Inject, NgModule, makeEnvironmentProviders } from '@angular/core';
3
- import { getActionTypeFromInstance, Store, NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
2
+ import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
3
+ import { getActionTypeFromInstance, Store, NGXS_PLUGINS } from '@ngxs/store';
4
4
  import { tap, catchError } from 'rxjs/operators';
5
5
 
6
6
  const repeat = (str, times) => new Array(times + 1).join(str);
@@ -28,7 +28,7 @@ class ActionLogger {
28
28
  this.logWriter.startGroup(message);
29
29
  // print payload only if at least one property is supplied
30
30
  if (this._hasPayload(this.action)) {
31
- this.logWriter.logGrey('payload', { ...this.action });
31
+ this.logWriter.logGrey('payload', Object.assign({}, this.action));
32
32
  }
33
33
  this.logWriter.logGrey('prev state', state);
34
34
  }
@@ -135,9 +135,9 @@ class NgxsLoggerPlugin {
135
135
  }));
136
136
  }
137
137
  }
138
- /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
139
- /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
138
+ /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
139
+ /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin });
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
141
141
  type: Injectable
142
142
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
143
143
  type: Inject,
@@ -152,10 +152,7 @@ function loggerOptionsFactory(options) {
152
152
  disabled: false,
153
153
  filter: () => true
154
154
  };
155
- return {
156
- ...defaultLoggerOptions,
157
- ...options
158
- };
155
+ return Object.assign(Object.assign({}, defaultLoggerOptions), options);
159
156
  }
160
157
  class NgxsLoggerPluginModule {
161
158
  static forRoot(options) {
@@ -180,23 +177,12 @@ class NgxsLoggerPluginModule {
180
177
  };
181
178
  }
182
179
  }
183
- /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
184
- /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
185
- /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
180
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
181
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule });
182
+ /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule });
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
187
184
  type: NgModule
188
185
  }] });
189
- function withNgxsLoggerPlugin(options) {
190
- return makeEnvironmentProviders([
191
- withNgxsPlugin(NgxsLoggerPlugin),
192
- { provide: USER_OPTIONS, useValue: options },
193
- {
194
- provide: NGXS_LOGGER_PLUGIN_OPTIONS,
195
- useFactory: loggerOptionsFactory,
196
- deps: [USER_OPTIONS]
197
- }
198
- ]);
199
- }
200
186
 
201
187
  /**
202
188
  * The public api for consumers of @ngxs/logger-plugin
@@ -206,5 +192,5 @@ function withNgxsLoggerPlugin(options) {
206
192
  * Generated bundle index. Do not edit.
207
193
  */
208
194
 
209
- export { NGXS_LOGGER_PLUGIN_OPTIONS, NgxsLoggerPlugin, NgxsLoggerPluginModule, withNgxsLoggerPlugin };
210
- //# sourceMappingURL=ngxs-logger-plugin.mjs.map
195
+ export { NGXS_LOGGER_PLUGIN_OPTIONS, NgxsLoggerPlugin, NgxsLoggerPluginModule };
196
+ //# sourceMappingURL=ngxs-logger-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngxs-logger-plugin.js","sources":["../../../packages/logger-plugin/src/internals.ts","../../../packages/logger-plugin/src/action-logger.ts","../../../packages/logger-plugin/src/log-writer.ts","../../../packages/logger-plugin/src/symbols.ts","../../../packages/logger-plugin/src/logger.plugin.ts","../../../packages/logger-plugin/src/logger.module.ts","../../../packages/logger-plugin/index.ts","../../../packages/logger-plugin/ngxs-logger-plugin.ts"],"sourcesContent":["export const repeat = (str: string, times: number) => new Array(times + 1).join(str);\n\nexport const pad = (num: number, maxLength: number) =>\n repeat('0', maxLength - num.toString().length) + num;\n\nexport function formatTime(time: Date) {\n return (\n pad(time.getHours(), 2) +\n `:` +\n pad(time.getMinutes(), 2) +\n `:` +\n pad(time.getSeconds(), 2) +\n `.` +\n pad(time.getMilliseconds(), 3)\n );\n}\n","import { getActionTypeFromInstance, Store } from '@ngxs/store';\n\nimport { formatTime } from './internals';\nimport { LogWriter } from './log-writer';\n\nexport class ActionLogger {\n constructor(private action: any, private store: Store, private logWriter: LogWriter) {}\n\n dispatched(state: any) {\n const actionName = getActionTypeFromInstance(this.action);\n const formattedTime = formatTime(new Date());\n\n const message = `action ${actionName} @ ${formattedTime}`;\n this.logWriter.startGroup(message);\n\n // print payload only if at least one property is supplied\n if (this._hasPayload(this.action)) {\n this.logWriter.logGrey('payload', { ...this.action });\n }\n\n this.logWriter.logGrey('prev state', state);\n }\n\n completed(nextState: any) {\n this.logWriter.logGreen('next state', nextState);\n this.logWriter.endGroup();\n }\n\n errored(error: any) {\n this.logWriter.logRedish('next state after error', this.store.snapshot());\n this.logWriter.logRedish('error', error);\n this.logWriter.endGroup();\n }\n\n private _hasPayload(event: any) {\n const nonEmptyProperties = this._getNonEmptyProperties(event);\n return nonEmptyProperties.length > 0;\n }\n\n private _getNonEmptyProperties(event: any) {\n const keys = Object.keys(event);\n const values = keys.map(key => event[key]);\n return values.filter(value => value !== undefined);\n }\n}\n","import { NgxsLoggerPluginOptions } from './symbols';\nexport class LogWriter {\n private logger: any;\n\n constructor(private options: NgxsLoggerPluginOptions) {\n this.options = this.options || <any>{};\n this.logger = options.logger || console;\n }\n\n startGroup(message: string) {\n const startGroupFn = this.options.collapsed\n ? this.logger.groupCollapsed\n : this.logger.group;\n try {\n startGroupFn.call(this.logger, message);\n } catch (e) {\n console.log(message);\n }\n }\n\n endGroup() {\n try {\n this.logger.groupEnd();\n } catch (e) {\n this.logger.log('—— log end ——');\n }\n }\n\n logGrey(title: string, payload: any) {\n const greyStyle = 'color: #9E9E9E; font-weight: bold';\n this.log(title, greyStyle, payload);\n }\n\n logGreen(title: string, payload: any) {\n const greenStyle = 'color: #4CAF50; font-weight: bold';\n this.log(title, greenStyle, payload);\n }\n\n logRedish(title: string, payload: any) {\n const redishStyle = 'color: #FD8182; font-weight: bold';\n this.log(title, redishStyle, payload);\n }\n\n log(title: string, color: string, payload: any) {\n if (this.isIE()) {\n this.logger.log(title, payload);\n } else {\n this.logger.log('%c ' + title, color, payload);\n }\n }\n\n isIE(): boolean {\n const ua =\n typeof window !== 'undefined' && window.navigator.userAgent\n ? window.navigator.userAgent\n : '';\n let msIE = false;\n const oldIE = ua.indexOf('MSIE ');\n const newIE = ua.indexOf('Trident/');\n if (oldIE > -1 || newIE > -1) {\n msIE = true;\n }\n return msIE;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NgxsLoggerPluginOptions {\n /** Auto expand logged actions */\n collapsed?: boolean;\n\n /** Provide alternate console.log implementation */\n logger?: any;\n\n /** Disable the logger. Useful for prod mode. */\n disabled?: boolean;\n\n /** Predicate for actions to be the logged. Takes action and state snapshot as parameters */\n filter?: (action: any, state: any) => boolean;\n}\n\nexport const NGXS_LOGGER_PLUGIN_OPTIONS = new InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { NgxsNextPluginFn, NgxsPlugin, Store } from '@ngxs/store';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActionLogger } from './action-logger';\nimport { LogWriter } from './log-writer';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsLoggerPlugin implements NgxsPlugin {\n private _store: Store;\n private _logWriter: LogWriter;\n\n constructor(\n @Inject(NGXS_LOGGER_PLUGIN_OPTIONS) private _options: NgxsLoggerPluginOptions,\n private _injector: Injector\n ) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n if (this._options.disabled || !this._options.filter!(event, state)) {\n return next(state, event);\n }\n\n this._logWriter = this._logWriter || new LogWriter(this._options);\n // Retrieve lazily to avoid cyclic dependency exception\n this._store = this._store || this._injector.get<Store>(Store);\n\n const actionLogger = new ActionLogger(event, this._store, this._logWriter);\n\n actionLogger.dispatched(state);\n\n return next(state, event).pipe(\n tap(nextState => {\n actionLogger.completed(nextState);\n }),\n catchError(error => {\n actionLogger.errored(error);\n throw error;\n })\n );\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NGXS_PLUGINS } from '@ngxs/store';\nimport { NgxsLoggerPlugin } from './logger.plugin';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\nexport const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');\n\nexport function loggerOptionsFactory(options: NgxsLoggerPluginOptions) {\n const defaultLoggerOptions: NgxsLoggerPluginOptions = {\n logger: console,\n collapsed: false,\n disabled: false,\n filter: () => true\n };\n\n return {\n ...defaultLoggerOptions,\n ...options\n };\n}\n\n@NgModule()\nexport class NgxsLoggerPluginModule {\n static forRoot(\n options?: NgxsLoggerPluginOptions\n ): ModuleWithProviders<NgxsLoggerPluginModule> {\n return {\n ngModule: NgxsLoggerPluginModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: NgxsLoggerPlugin,\n multi: true\n },\n {\n provide: USER_OPTIONS,\n useValue: options\n },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]\n };\n }\n}\n","/**\n * The public api for consumers of @ngxs/logger-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ngxs/logger-plugin" />
5
+ export * from './index';
package/package.json CHANGED
@@ -1,34 +1,22 @@
1
1
  {
2
+ "$schema": "../../node_modules/ng-packagr/package.schema.json",
2
3
  "name": "@ngxs/logger-plugin",
3
4
  "description": "logger plugin for @ngxs/store",
4
- "version": "3.8.2-dev.master-0fd1fe5",
5
- "sideEffects": false,
5
+ "version": "3.8.2",
6
+ "sideEffects": true,
6
7
  "peerDependencies": {
7
- "@angular/core": ">=12.0.0 <18.0.0",
8
8
  "@ngxs/store": "^3.8.2 || ^3.8.2-dev",
9
+ "@angular/core": ">=12.0.0 <18.0.0",
9
10
  "rxjs": ">=6.5.5"
10
11
  },
11
- "module": "fesm2015/ngxs-logger-plugin.mjs",
12
- "es2020": "fesm2020/ngxs-logger-plugin.mjs",
13
- "esm2020": "esm2020/ngxs-logger-plugin.mjs",
14
- "fesm2020": "fesm2020/ngxs-logger-plugin.mjs",
15
- "fesm2015": "fesm2015/ngxs-logger-plugin.mjs",
16
- "typings": "index.d.ts",
17
- "exports": {
18
- "./package.json": {
19
- "default": "./package.json"
20
- },
21
- ".": {
22
- "types": "./index.d.ts",
23
- "esm2020": "./esm2020/ngxs-logger-plugin.mjs",
24
- "es2020": "./fesm2020/ngxs-logger-plugin.mjs",
25
- "es2015": "./fesm2015/ngxs-logger-plugin.mjs",
26
- "node": "./fesm2015/ngxs-logger-plugin.mjs",
27
- "default": "./fesm2020/ngxs-logger-plugin.mjs"
28
- }
29
- },
12
+ "main": "bundles/ngxs-logger-plugin.umd.js",
13
+ "module": "fesm2015/ngxs-logger-plugin.js",
14
+ "es2015": "fesm2015/ngxs-logger-plugin.js",
15
+ "esm2015": "esm2015/ngxs-logger-plugin.js",
16
+ "fesm2015": "fesm2015/ngxs-logger-plugin.js",
17
+ "typings": "ngxs-logger-plugin.d.ts",
30
18
  "dependencies": {
31
- "tslib": "^2.3.0"
19
+ "tslib": "^2.2.0"
32
20
  },
33
21
  "repository": {
34
22
  "type": "git",
@@ -74,4 +62,4 @@
74
62
  "type": "opencollective",
75
63
  "url": "https://opencollective.com/ngxs"
76
64
  }
77
- }
65
+ }
@@ -1,4 +1,4 @@
1
- import { EnvironmentProviders, InjectionToken, ModuleWithProviders } from '@angular/core';
1
+ import { InjectionToken, ModuleWithProviders } from '@angular/core';
2
2
  import { NgxsLoggerPluginOptions } from './symbols';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare const USER_OPTIONS: InjectionToken<unknown>;
@@ -14,4 +14,3 @@ export declare class NgxsLoggerPluginModule {
14
14
  static ɵmod: i0.ɵɵNgModuleDeclaration<NgxsLoggerPluginModule, never, never, never>;
15
15
  static ɵinj: i0.ɵɵInjectorDeclaration<NgxsLoggerPluginModule>;
16
16
  }
17
- export declare function withNgxsLoggerPlugin(options?: NgxsLoggerPluginOptions): EnvironmentProviders;
@@ -1,3 +1,3 @@
1
- export { NgxsLoggerPluginModule, withNgxsLoggerPlugin } from './logger.module';
1
+ export { NgxsLoggerPluginModule } from './logger.module';
2
2
  export { NgxsLoggerPlugin } from './logger.plugin';
3
3
  export * from './symbols';
@@ -1,39 +0,0 @@
1
- import { getActionTypeFromInstance } from '@ngxs/store';
2
- import { formatTime } from './internals';
3
- export class ActionLogger {
4
- constructor(action, store, logWriter) {
5
- this.action = action;
6
- this.store = store;
7
- this.logWriter = logWriter;
8
- }
9
- dispatched(state) {
10
- const actionName = getActionTypeFromInstance(this.action);
11
- const formattedTime = formatTime(new Date());
12
- const message = `action ${actionName} @ ${formattedTime}`;
13
- this.logWriter.startGroup(message);
14
- // print payload only if at least one property is supplied
15
- if (this._hasPayload(this.action)) {
16
- this.logWriter.logGrey('payload', { ...this.action });
17
- }
18
- this.logWriter.logGrey('prev state', state);
19
- }
20
- completed(nextState) {
21
- this.logWriter.logGreen('next state', nextState);
22
- this.logWriter.endGroup();
23
- }
24
- errored(error) {
25
- this.logWriter.logRedish('next state after error', this.store.snapshot());
26
- this.logWriter.logRedish('error', error);
27
- this.logWriter.endGroup();
28
- }
29
- _hasPayload(event) {
30
- const nonEmptyProperties = this._getNonEmptyProperties(event);
31
- return nonEmptyProperties.length > 0;
32
- }
33
- _getNonEmptyProperties(event) {
34
- const keys = Object.keys(event);
35
- const values = keys.map(key => event[key]);
36
- return values.filter(value => value !== undefined);
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2FjdGlvbi1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHekMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsTUFBVyxFQUFVLEtBQVksRUFBVSxTQUFvQjtRQUEvRCxXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7SUFBRyxDQUFDO0lBRXZGLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sVUFBVSxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sT0FBTyxHQUFHLFVBQVUsVUFBVSxNQUFNLGFBQWEsRUFBRSxDQUFDO1FBQzFELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLDBEQUEwRDtRQUMxRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFjO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVO1FBQzVCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELE9BQU8sa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBVTtRQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5cbmltcG9ydCB7IGZvcm1hdFRpbWUgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBMb2dXcml0ZXIgfSBmcm9tICcuL2xvZy13cml0ZXInO1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uTG9nZ2VyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb246IGFueSwgcHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgbG9nV3JpdGVyOiBMb2dXcml0ZXIpIHt9XG5cbiAgZGlzcGF0Y2hlZChzdGF0ZTogYW55KSB7XG4gICAgY29uc3QgYWN0aW9uTmFtZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UodGhpcy5hY3Rpb24pO1xuICAgIGNvbnN0IGZvcm1hdHRlZFRpbWUgPSBmb3JtYXRUaW1lKG5ldyBEYXRlKCkpO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IGBhY3Rpb24gJHthY3Rpb25OYW1lfSBAICR7Zm9ybWF0dGVkVGltZX1gO1xuICAgIHRoaXMubG9nV3JpdGVyLnN0YXJ0R3JvdXAobWVzc2FnZSk7XG5cbiAgICAvLyBwcmludCBwYXlsb2FkIG9ubHkgaWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGlzIHN1cHBsaWVkXG4gICAgaWYgKHRoaXMuX2hhc1BheWxvYWQodGhpcy5hY3Rpb24pKSB7XG4gICAgICB0aGlzLmxvZ1dyaXRlci5sb2dHcmV5KCdwYXlsb2FkJywgeyAuLi50aGlzLmFjdGlvbiB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ1dyaXRlci5sb2dHcmV5KCdwcmV2IHN0YXRlJywgc3RhdGUpO1xuICB9XG5cbiAgY29tcGxldGVkKG5leHRTdGF0ZTogYW55KSB7XG4gICAgdGhpcy5sb2dXcml0ZXIubG9nR3JlZW4oJ25leHQgc3RhdGUnLCBuZXh0U3RhdGUpO1xuICAgIHRoaXMubG9nV3JpdGVyLmVuZEdyb3VwKCk7XG4gIH1cblxuICBlcnJvcmVkKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmxvZ1dyaXRlci5sb2dSZWRpc2goJ25leHQgc3RhdGUgYWZ0ZXIgZXJyb3InLCB0aGlzLnN0b3JlLnNuYXBzaG90KCkpO1xuICAgIHRoaXMubG9nV3JpdGVyLmxvZ1JlZGlzaCgnZXJyb3InLCBlcnJvcik7XG4gICAgdGhpcy5sb2dXcml0ZXIuZW5kR3JvdXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhc1BheWxvYWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IG5vbkVtcHR5UHJvcGVydGllcyA9IHRoaXMuX2dldE5vbkVtcHR5UHJvcGVydGllcyhldmVudCk7XG4gICAgcmV0dXJuIG5vbkVtcHR5UHJvcGVydGllcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9uRW1wdHlQcm9wZXJ0aWVzKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZXZlbnQpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGtleXMubWFwKGtleSA9PiBldmVudFtrZXldKTtcbiAgICByZXR1cm4gdmFsdWVzLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgfVxufVxuIl19
@@ -1,59 +0,0 @@
1
- import { InjectionToken, NgModule, makeEnvironmentProviders } from '@angular/core';
2
- import { NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
3
- import { NgxsLoggerPlugin } from './logger.plugin';
4
- import { NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';
5
- import * as i0 from "@angular/core";
6
- export const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');
7
- export function loggerOptionsFactory(options) {
8
- const defaultLoggerOptions = {
9
- logger: console,
10
- collapsed: false,
11
- disabled: false,
12
- filter: () => true
13
- };
14
- return {
15
- ...defaultLoggerOptions,
16
- ...options
17
- };
18
- }
19
- export class NgxsLoggerPluginModule {
20
- static forRoot(options) {
21
- return {
22
- ngModule: NgxsLoggerPluginModule,
23
- providers: [
24
- {
25
- provide: NGXS_PLUGINS,
26
- useClass: NgxsLoggerPlugin,
27
- multi: true
28
- },
29
- {
30
- provide: USER_OPTIONS,
31
- useValue: options
32
- },
33
- {
34
- provide: NGXS_LOGGER_PLUGIN_OPTIONS,
35
- useFactory: loggerOptionsFactory,
36
- deps: [USER_OPTIONS]
37
- }
38
- ]
39
- };
40
- }
41
- }
42
- /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
43
- /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
44
- /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
46
- type: NgModule
47
- }] });
48
- export function withNgxsLoggerPlugin(options) {
49
- return makeEnvironmentProviders([
50
- withNgxsPlugin(NgxsLoggerPlugin),
51
- { provide: USER_OPTIONS, useValue: options },
52
- {
53
- provide: NGXS_LOGGER_PLUGIN_OPTIONS,
54
- useFactory: loggerOptionsFactory,
55
- deps: [USER_OPTIONS]
56
- }
57
- ]);
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFFZCxRQUFRLEVBQ1Isd0JBQXdCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBMkIsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRWhGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFnQztJQUNuRSxNQUFNLG9CQUFvQixHQUE0QjtRQUNwRCxNQUFNLEVBQUUsT0FBTztRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7S0FDbkIsQ0FBQztJQUVGLE9BQU87UUFDTCxHQUFHLG9CQUFvQjtRQUN2QixHQUFHLE9BQU87S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsVUFBVSxFQUFFLG9CQUFvQjtvQkFDaEMsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3NJQXZCVSxzQkFBc0I7dUlBQXRCLHNCQUFzQjt1SUFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFFBQVE7O0FBMkJULE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFpQztJQUNwRSxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtRQUM1QztZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDckI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdYU19QTFVHSU5TLCB3aXRoTmd4c1BsdWdpbiB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE5neHNMb2dnZXJQbHVnaW4gfSBmcm9tICcuL2xvZ2dlci5wbHVnaW4nO1xuaW1wb3J0IHsgTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMsIE5HWFNfTE9HR0VSX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IGNvbnN0IFVTRVJfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTE9HR0VSX1VTRVJfT1BUSU9OUycpO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VyT3B0aW9uc0ZhY3Rvcnkob3B0aW9uczogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMpIHtcbiAgY29uc3QgZGVmYXVsdExvZ2dlck9wdGlvbnM6IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zID0ge1xuICAgIGxvZ2dlcjogY29uc29sZSxcbiAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBmaWx0ZXI6ICgpID0+IHRydWVcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIC4uLmRlZmF1bHRMb2dnZXJPcHRpb25zLFxuICAgIC4uLm9wdGlvbnNcbiAgfTtcbn1cblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgb3B0aW9ucz86IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4c0xvZ2dlclBsdWdpbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c0xvZ2dlclBsdWdpbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19QTFVHSU5TLFxuICAgICAgICAgIHVzZUNsYXNzOiBOZ3hzTG9nZ2VyUGx1Z2luLFxuICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBVU0VSX09QVElPTlMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IE5HWFNfTE9HR0VSX1BMVUdJTl9PUFRJT05TLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvZ2dlck9wdGlvbnNGYWN0b3J5LFxuICAgICAgICAgIGRlcHM6IFtVU0VSX09QVElPTlNdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmd4c0xvZ2dlclBsdWdpbihvcHRpb25zPzogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHdpdGhOZ3hzUGx1Z2luKE5neHNMb2dnZXJQbHVnaW4pLFxuICAgIHsgcHJvdmlkZTogVVNFUl9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HWFNfTE9HR0VSX1BMVUdJTl9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogbG9nZ2VyT3B0aW9uc0ZhY3RvcnksXG4gICAgICBkZXBzOiBbVVNFUl9PUFRJT05TXVxuICAgIH1cbiAgXSk7XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export { NgxsLoggerPluginModule, withNgxsLoggerPlugin } from './logger.module';
2
- export { NgxsLoggerPlugin } from './logger.plugin';
3
- export * from './symbols';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlLCB3aXRoTmd4c0xvZ2dlclBsdWdpbiB9IGZyb20gJy4vbG9nZ2VyLm1vZHVsZSc7XG5leHBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luIH0gZnJvbSAnLi9sb2dnZXIucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vc3ltYm9scyc7XG4iXX0=
@@ -1,209 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Inject, NgModule, makeEnvironmentProviders } from '@angular/core';
3
- import { getActionTypeFromInstance, Store, NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
4
- import { tap, catchError } from 'rxjs/operators';
5
-
6
- const repeat = (str, times) => new Array(times + 1).join(str);
7
- const pad = (num, maxLength) => repeat('0', maxLength - num.toString().length) + num;
8
- function formatTime(time) {
9
- return (pad(time.getHours(), 2) +
10
- `:` +
11
- pad(time.getMinutes(), 2) +
12
- `:` +
13
- pad(time.getSeconds(), 2) +
14
- `.` +
15
- pad(time.getMilliseconds(), 3));
16
- }
17
-
18
- class ActionLogger {
19
- constructor(action, store, logWriter) {
20
- this.action = action;
21
- this.store = store;
22
- this.logWriter = logWriter;
23
- }
24
- dispatched(state) {
25
- const actionName = getActionTypeFromInstance(this.action);
26
- const formattedTime = formatTime(new Date());
27
- const message = `action ${actionName} @ ${formattedTime}`;
28
- this.logWriter.startGroup(message);
29
- // print payload only if at least one property is supplied
30
- if (this._hasPayload(this.action)) {
31
- this.logWriter.logGrey('payload', Object.assign({}, this.action));
32
- }
33
- this.logWriter.logGrey('prev state', state);
34
- }
35
- completed(nextState) {
36
- this.logWriter.logGreen('next state', nextState);
37
- this.logWriter.endGroup();
38
- }
39
- errored(error) {
40
- this.logWriter.logRedish('next state after error', this.store.snapshot());
41
- this.logWriter.logRedish('error', error);
42
- this.logWriter.endGroup();
43
- }
44
- _hasPayload(event) {
45
- const nonEmptyProperties = this._getNonEmptyProperties(event);
46
- return nonEmptyProperties.length > 0;
47
- }
48
- _getNonEmptyProperties(event) {
49
- const keys = Object.keys(event);
50
- const values = keys.map(key => event[key]);
51
- return values.filter(value => value !== undefined);
52
- }
53
- }
54
-
55
- class LogWriter {
56
- constructor(options) {
57
- this.options = options;
58
- this.options = this.options || {};
59
- this.logger = options.logger || console;
60
- }
61
- startGroup(message) {
62
- const startGroupFn = this.options.collapsed
63
- ? this.logger.groupCollapsed
64
- : this.logger.group;
65
- try {
66
- startGroupFn.call(this.logger, message);
67
- }
68
- catch (e) {
69
- console.log(message);
70
- }
71
- }
72
- endGroup() {
73
- try {
74
- this.logger.groupEnd();
75
- }
76
- catch (e) {
77
- this.logger.log('—— log end ——');
78
- }
79
- }
80
- logGrey(title, payload) {
81
- const greyStyle = 'color: #9E9E9E; font-weight: bold';
82
- this.log(title, greyStyle, payload);
83
- }
84
- logGreen(title, payload) {
85
- const greenStyle = 'color: #4CAF50; font-weight: bold';
86
- this.log(title, greenStyle, payload);
87
- }
88
- logRedish(title, payload) {
89
- const redishStyle = 'color: #FD8182; font-weight: bold';
90
- this.log(title, redishStyle, payload);
91
- }
92
- log(title, color, payload) {
93
- if (this.isIE()) {
94
- this.logger.log(title, payload);
95
- }
96
- else {
97
- this.logger.log('%c ' + title, color, payload);
98
- }
99
- }
100
- isIE() {
101
- const ua = typeof window !== 'undefined' && window.navigator.userAgent
102
- ? window.navigator.userAgent
103
- : '';
104
- let msIE = false;
105
- const oldIE = ua.indexOf('MSIE ');
106
- const newIE = ua.indexOf('Trident/');
107
- if (oldIE > -1 || newIE > -1) {
108
- msIE = true;
109
- }
110
- return msIE;
111
- }
112
- }
113
-
114
- const NGXS_LOGGER_PLUGIN_OPTIONS = new InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');
115
-
116
- class NgxsLoggerPlugin {
117
- constructor(_options, _injector) {
118
- this._options = _options;
119
- this._injector = _injector;
120
- }
121
- handle(state, event, next) {
122
- if (this._options.disabled || !this._options.filter(event, state)) {
123
- return next(state, event);
124
- }
125
- this._logWriter = this._logWriter || new LogWriter(this._options);
126
- // Retrieve lazily to avoid cyclic dependency exception
127
- this._store = this._store || this._injector.get(Store);
128
- const actionLogger = new ActionLogger(event, this._store, this._logWriter);
129
- actionLogger.dispatched(state);
130
- return next(state, event).pipe(tap(nextState => {
131
- actionLogger.completed(nextState);
132
- }), catchError(error => {
133
- actionLogger.errored(error);
134
- throw error;
135
- }));
136
- }
137
- }
138
- /** @nocollapse */ NgxsLoggerPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
139
- /** @nocollapse */ NgxsLoggerPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
141
- type: Injectable
142
- }], ctorParameters: function () {
143
- return [{ type: undefined, decorators: [{
144
- type: Inject,
145
- args: [NGXS_LOGGER_PLUGIN_OPTIONS]
146
- }] }, { type: i0.Injector }];
147
- } });
148
-
149
- const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');
150
- function loggerOptionsFactory(options) {
151
- const defaultLoggerOptions = {
152
- logger: console,
153
- collapsed: false,
154
- disabled: false,
155
- filter: () => true
156
- };
157
- return Object.assign(Object.assign({}, defaultLoggerOptions), options);
158
- }
159
- class NgxsLoggerPluginModule {
160
- static forRoot(options) {
161
- return {
162
- ngModule: NgxsLoggerPluginModule,
163
- providers: [
164
- {
165
- provide: NGXS_PLUGINS,
166
- useClass: NgxsLoggerPlugin,
167
- multi: true
168
- },
169
- {
170
- provide: USER_OPTIONS,
171
- useValue: options
172
- },
173
- {
174
- provide: NGXS_LOGGER_PLUGIN_OPTIONS,
175
- useFactory: loggerOptionsFactory,
176
- deps: [USER_OPTIONS]
177
- }
178
- ]
179
- };
180
- }
181
- }
182
- /** @nocollapse */ NgxsLoggerPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
183
- /** @nocollapse */ NgxsLoggerPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
184
- /** @nocollapse */ NgxsLoggerPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule });
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
186
- type: NgModule
187
- }] });
188
- function withNgxsLoggerPlugin(options) {
189
- return makeEnvironmentProviders([
190
- withNgxsPlugin(NgxsLoggerPlugin),
191
- { provide: USER_OPTIONS, useValue: options },
192
- {
193
- provide: NGXS_LOGGER_PLUGIN_OPTIONS,
194
- useFactory: loggerOptionsFactory,
195
- deps: [USER_OPTIONS]
196
- }
197
- ]);
198
- }
199
-
200
- /**
201
- * The public api for consumers of @ngxs/logger-plugin
202
- */
203
-
204
- /**
205
- * Generated bundle index. Do not edit.
206
- */
207
-
208
- export { NGXS_LOGGER_PLUGIN_OPTIONS, NgxsLoggerPlugin, NgxsLoggerPluginModule, withNgxsLoggerPlugin };
209
- //# sourceMappingURL=ngxs-logger-plugin.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngxs-logger-plugin.mjs","sources":["../../../packages/logger-plugin/src/internals.ts","../../../packages/logger-plugin/src/action-logger.ts","../../../packages/logger-plugin/src/log-writer.ts","../../../packages/logger-plugin/src/symbols.ts","../../../packages/logger-plugin/src/logger.plugin.ts","../../../packages/logger-plugin/src/logger.module.ts","../../../packages/logger-plugin/index.ts","../../../packages/logger-plugin/ngxs-logger-plugin.ts"],"sourcesContent":["export const repeat = (str: string, times: number) => new Array(times + 1).join(str);\n\nexport const pad = (num: number, maxLength: number) =>\n repeat('0', maxLength - num.toString().length) + num;\n\nexport function formatTime(time: Date) {\n return (\n pad(time.getHours(), 2) +\n `:` +\n pad(time.getMinutes(), 2) +\n `:` +\n pad(time.getSeconds(), 2) +\n `.` +\n pad(time.getMilliseconds(), 3)\n );\n}\n","import { getActionTypeFromInstance, Store } from '@ngxs/store';\n\nimport { formatTime } from './internals';\nimport { LogWriter } from './log-writer';\n\nexport class ActionLogger {\n constructor(private action: any, private store: Store, private logWriter: LogWriter) {}\n\n dispatched(state: any) {\n const actionName = getActionTypeFromInstance(this.action);\n const formattedTime = formatTime(new Date());\n\n const message = `action ${actionName} @ ${formattedTime}`;\n this.logWriter.startGroup(message);\n\n // print payload only if at least one property is supplied\n if (this._hasPayload(this.action)) {\n this.logWriter.logGrey('payload', { ...this.action });\n }\n\n this.logWriter.logGrey('prev state', state);\n }\n\n completed(nextState: any) {\n this.logWriter.logGreen('next state', nextState);\n this.logWriter.endGroup();\n }\n\n errored(error: any) {\n this.logWriter.logRedish('next state after error', this.store.snapshot());\n this.logWriter.logRedish('error', error);\n this.logWriter.endGroup();\n }\n\n private _hasPayload(event: any) {\n const nonEmptyProperties = this._getNonEmptyProperties(event);\n return nonEmptyProperties.length > 0;\n }\n\n private _getNonEmptyProperties(event: any) {\n const keys = Object.keys(event);\n const values = keys.map(key => event[key]);\n return values.filter(value => value !== undefined);\n }\n}\n","import { NgxsLoggerPluginOptions } from './symbols';\nexport class LogWriter {\n private logger: any;\n\n constructor(private options: NgxsLoggerPluginOptions) {\n this.options = this.options || <any>{};\n this.logger = options.logger || console;\n }\n\n startGroup(message: string) {\n const startGroupFn = this.options.collapsed\n ? this.logger.groupCollapsed\n : this.logger.group;\n try {\n startGroupFn.call(this.logger, message);\n } catch (e) {\n console.log(message);\n }\n }\n\n endGroup() {\n try {\n this.logger.groupEnd();\n } catch (e) {\n this.logger.log('—— log end ——');\n }\n }\n\n logGrey(title: string, payload: any) {\n const greyStyle = 'color: #9E9E9E; font-weight: bold';\n this.log(title, greyStyle, payload);\n }\n\n logGreen(title: string, payload: any) {\n const greenStyle = 'color: #4CAF50; font-weight: bold';\n this.log(title, greenStyle, payload);\n }\n\n logRedish(title: string, payload: any) {\n const redishStyle = 'color: #FD8182; font-weight: bold';\n this.log(title, redishStyle, payload);\n }\n\n log(title: string, color: string, payload: any) {\n if (this.isIE()) {\n this.logger.log(title, payload);\n } else {\n this.logger.log('%c ' + title, color, payload);\n }\n }\n\n isIE(): boolean {\n const ua =\n typeof window !== 'undefined' && window.navigator.userAgent\n ? window.navigator.userAgent\n : '';\n let msIE = false;\n const oldIE = ua.indexOf('MSIE ');\n const newIE = ua.indexOf('Trident/');\n if (oldIE > -1 || newIE > -1) {\n msIE = true;\n }\n return msIE;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NgxsLoggerPluginOptions {\n /** Auto expand logged actions */\n collapsed?: boolean;\n\n /** Provide alternate console.log implementation */\n logger?: any;\n\n /** Disable the logger. Useful for prod mode. */\n disabled?: boolean;\n\n /** Predicate for actions to be the logged. Takes action and state snapshot as parameters */\n filter?: (action: any, state: any) => boolean;\n}\n\nexport const NGXS_LOGGER_PLUGIN_OPTIONS = new InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { NgxsNextPluginFn, NgxsPlugin, Store } from '@ngxs/store';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActionLogger } from './action-logger';\nimport { LogWriter } from './log-writer';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsLoggerPlugin implements NgxsPlugin {\n private _store: Store;\n private _logWriter: LogWriter;\n\n constructor(\n @Inject(NGXS_LOGGER_PLUGIN_OPTIONS) private _options: NgxsLoggerPluginOptions,\n private _injector: Injector\n ) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n if (this._options.disabled || !this._options.filter!(event, state)) {\n return next(state, event);\n }\n\n this._logWriter = this._logWriter || new LogWriter(this._options);\n // Retrieve lazily to avoid cyclic dependency exception\n this._store = this._store || this._injector.get<Store>(Store);\n\n const actionLogger = new ActionLogger(event, this._store, this._logWriter);\n\n actionLogger.dispatched(state);\n\n return next(state, event).pipe(\n tap(nextState => {\n actionLogger.completed(nextState);\n }),\n catchError(error => {\n actionLogger.errored(error);\n throw error;\n })\n );\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';\nimport { NgxsLoggerPlugin } from './logger.plugin';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\nexport const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');\n\nexport function loggerOptionsFactory(options: NgxsLoggerPluginOptions) {\n const defaultLoggerOptions: NgxsLoggerPluginOptions = {\n logger: console,\n collapsed: false,\n disabled: false,\n filter: () => true\n };\n\n return {\n ...defaultLoggerOptions,\n ...options\n };\n}\n\n@NgModule()\nexport class NgxsLoggerPluginModule {\n static forRoot(\n options?: NgxsLoggerPluginOptions\n ): ModuleWithProviders<NgxsLoggerPluginModule> {\n return {\n ngModule: NgxsLoggerPluginModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: NgxsLoggerPlugin,\n multi: true\n },\n {\n provide: USER_OPTIONS,\n useValue: options\n },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]\n };\n }\n}\n\nexport function withNgxsLoggerPlugin(options?: NgxsLoggerPluginOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n withNgxsPlugin(NgxsLoggerPlugin),\n { provide: USER_OPTIONS, useValue: options },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]);\n}\n","/**\n * The public api for consumers of @ngxs/logger-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngxs-logger-plugin.mjs","sources":["../../../packages/logger-plugin/src/internals.ts","../../../packages/logger-plugin/src/action-logger.ts","../../../packages/logger-plugin/src/log-writer.ts","../../../packages/logger-plugin/src/symbols.ts","../../../packages/logger-plugin/src/logger.plugin.ts","../../../packages/logger-plugin/src/logger.module.ts","../../../packages/logger-plugin/index.ts","../../../packages/logger-plugin/ngxs-logger-plugin.ts"],"sourcesContent":["export const repeat = (str: string, times: number) => new Array(times + 1).join(str);\n\nexport const pad = (num: number, maxLength: number) =>\n repeat('0', maxLength - num.toString().length) + num;\n\nexport function formatTime(time: Date) {\n return (\n pad(time.getHours(), 2) +\n `:` +\n pad(time.getMinutes(), 2) +\n `:` +\n pad(time.getSeconds(), 2) +\n `.` +\n pad(time.getMilliseconds(), 3)\n );\n}\n","import { getActionTypeFromInstance, Store } from '@ngxs/store';\n\nimport { formatTime } from './internals';\nimport { LogWriter } from './log-writer';\n\nexport class ActionLogger {\n constructor(private action: any, private store: Store, private logWriter: LogWriter) {}\n\n dispatched(state: any) {\n const actionName = getActionTypeFromInstance(this.action);\n const formattedTime = formatTime(new Date());\n\n const message = `action ${actionName} @ ${formattedTime}`;\n this.logWriter.startGroup(message);\n\n // print payload only if at least one property is supplied\n if (this._hasPayload(this.action)) {\n this.logWriter.logGrey('payload', { ...this.action });\n }\n\n this.logWriter.logGrey('prev state', state);\n }\n\n completed(nextState: any) {\n this.logWriter.logGreen('next state', nextState);\n this.logWriter.endGroup();\n }\n\n errored(error: any) {\n this.logWriter.logRedish('next state after error', this.store.snapshot());\n this.logWriter.logRedish('error', error);\n this.logWriter.endGroup();\n }\n\n private _hasPayload(event: any) {\n const nonEmptyProperties = this._getNonEmptyProperties(event);\n return nonEmptyProperties.length > 0;\n }\n\n private _getNonEmptyProperties(event: any) {\n const keys = Object.keys(event);\n const values = keys.map(key => event[key]);\n return values.filter(value => value !== undefined);\n }\n}\n","import { NgxsLoggerPluginOptions } from './symbols';\nexport class LogWriter {\n private logger: any;\n\n constructor(private options: NgxsLoggerPluginOptions) {\n this.options = this.options || <any>{};\n this.logger = options.logger || console;\n }\n\n startGroup(message: string) {\n const startGroupFn = this.options.collapsed\n ? this.logger.groupCollapsed\n : this.logger.group;\n try {\n startGroupFn.call(this.logger, message);\n } catch (e) {\n console.log(message);\n }\n }\n\n endGroup() {\n try {\n this.logger.groupEnd();\n } catch (e) {\n this.logger.log('—— log end ——');\n }\n }\n\n logGrey(title: string, payload: any) {\n const greyStyle = 'color: #9E9E9E; font-weight: bold';\n this.log(title, greyStyle, payload);\n }\n\n logGreen(title: string, payload: any) {\n const greenStyle = 'color: #4CAF50; font-weight: bold';\n this.log(title, greenStyle, payload);\n }\n\n logRedish(title: string, payload: any) {\n const redishStyle = 'color: #FD8182; font-weight: bold';\n this.log(title, redishStyle, payload);\n }\n\n log(title: string, color: string, payload: any) {\n if (this.isIE()) {\n this.logger.log(title, payload);\n } else {\n this.logger.log('%c ' + title, color, payload);\n }\n }\n\n isIE(): boolean {\n const ua =\n typeof window !== 'undefined' && window.navigator.userAgent\n ? window.navigator.userAgent\n : '';\n let msIE = false;\n const oldIE = ua.indexOf('MSIE ');\n const newIE = ua.indexOf('Trident/');\n if (oldIE > -1 || newIE > -1) {\n msIE = true;\n }\n return msIE;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NgxsLoggerPluginOptions {\n /** Auto expand logged actions */\n collapsed?: boolean;\n\n /** Provide alternate console.log implementation */\n logger?: any;\n\n /** Disable the logger. Useful for prod mode. */\n disabled?: boolean;\n\n /** Predicate for actions to be the logged. Takes action and state snapshot as parameters */\n filter?: (action: any, state: any) => boolean;\n}\n\nexport const NGXS_LOGGER_PLUGIN_OPTIONS = new InjectionToken('NGXS_LOGGER_PLUGIN_OPTIONS');\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { NgxsNextPluginFn, NgxsPlugin, Store } from '@ngxs/store';\nimport { catchError, tap } from 'rxjs/operators';\nimport { ActionLogger } from './action-logger';\nimport { LogWriter } from './log-writer';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsLoggerPlugin implements NgxsPlugin {\n private _store: Store;\n private _logWriter: LogWriter;\n\n constructor(\n @Inject(NGXS_LOGGER_PLUGIN_OPTIONS) private _options: NgxsLoggerPluginOptions,\n private _injector: Injector\n ) {}\n\n handle(state: any, event: any, next: NgxsNextPluginFn) {\n if (this._options.disabled || !this._options.filter!(event, state)) {\n return next(state, event);\n }\n\n this._logWriter = this._logWriter || new LogWriter(this._options);\n // Retrieve lazily to avoid cyclic dependency exception\n this._store = this._store || this._injector.get<Store>(Store);\n\n const actionLogger = new ActionLogger(event, this._store, this._logWriter);\n\n actionLogger.dispatched(state);\n\n return next(state, event).pipe(\n tap(nextState => {\n actionLogger.completed(nextState);\n }),\n catchError(error => {\n actionLogger.errored(error);\n throw error;\n })\n );\n }\n}\n","import {\n EnvironmentProviders,\n InjectionToken,\n ModuleWithProviders,\n NgModule,\n makeEnvironmentProviders\n} from '@angular/core';\nimport { NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';\nimport { NgxsLoggerPlugin } from './logger.plugin';\nimport { NgxsLoggerPluginOptions, NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';\n\nexport const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');\n\nexport function loggerOptionsFactory(options: NgxsLoggerPluginOptions) {\n const defaultLoggerOptions: NgxsLoggerPluginOptions = {\n logger: console,\n collapsed: false,\n disabled: false,\n filter: () => true\n };\n\n return {\n ...defaultLoggerOptions,\n ...options\n };\n}\n\n@NgModule()\nexport class NgxsLoggerPluginModule {\n static forRoot(\n options?: NgxsLoggerPluginOptions\n ): ModuleWithProviders<NgxsLoggerPluginModule> {\n return {\n ngModule: NgxsLoggerPluginModule,\n providers: [\n {\n provide: NGXS_PLUGINS,\n useClass: NgxsLoggerPlugin,\n multi: true\n },\n {\n provide: USER_OPTIONS,\n useValue: options\n },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]\n };\n }\n}\n\nexport function withNgxsLoggerPlugin(options?: NgxsLoggerPluginOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n withNgxsPlugin(NgxsLoggerPlugin),\n { provide: USER_OPTIONS, useValue: options },\n {\n provide: NGXS_LOGGER_PLUGIN_OPTIONS,\n useFactory: loggerOptionsFactory,\n deps: [USER_OPTIONS]\n }\n ]);\n}\n","/**\n * The public api for consumers of @ngxs/logger-plugin\n */\nexport * from './src/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
File without changes