@ngxs/logger-plugin 3.8.2 → 18.0.0-dev.master-56d8014
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/action-logger.mjs +39 -0
- package/esm2022/src/log-writer.mjs +59 -0
- package/esm2022/src/logger.module.mjs +60 -0
- package/esm2022/src/logger.plugin.mjs +38 -0
- package/esm2022/src/public_api.mjs +4 -0
- package/{fesm2015/ngxs-logger-plugin.js → fesm2022/ngxs-logger-plugin.mjs} +30 -15
- package/fesm2022/ngxs-logger-plugin.mjs.map +1 -0
- package/package.json +19 -13
- package/src/logger.module.d.ts +2 -1
- package/src/logger.plugin.d.ts +1 -1
- package/src/public_api.d.ts +1 -1
- package/bundles/ngxs-logger-plugin.umd.js +0 -231
- package/bundles/ngxs-logger-plugin.umd.js.map +0 -1
- package/esm2015/src/action-logger.js +0 -39
- package/esm2015/src/log-writer.js +0 -59
- package/esm2015/src/logger.module.js +0 -45
- package/esm2015/src/logger.plugin.js +0 -38
- package/esm2015/src/public_api.js +0 -4
- package/fesm2015/ngxs-logger-plugin.js.map +0 -1
- package/ngxs-logger-plugin.d.ts +0 -5
- /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
- /package/{esm2015/ngxs-logger-plugin.js → esm2022/ngxs-logger-plugin.mjs} +0 -0
- /package/{esm2015/src/internals.js → esm2022/src/internals.mjs} +0 -0
- /package/{esm2015/src/symbols.js → esm2022/src/symbols.mjs} +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getActionTypeFromInstance } from '@ngxs/store/plugins';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2FjdGlvbi1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd6QyxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLE1BQVcsRUFDWCxLQUFZLEVBQ1osU0FBb0I7UUFGcEIsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUNYLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQzNCLENBQUM7SUFFSixVQUFVLENBQUMsS0FBVTtRQUNuQixNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3QyxNQUFNLE9BQU8sR0FBRyxVQUFVLFVBQVUsTUFBTSxhQUFhLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQywwREFBMEQ7UUFDMUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVU7UUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFVO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcblxuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IExvZ1dyaXRlciB9IGZyb20gJy4vbG9nLXdyaXRlcic7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25Mb2dnZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbjogYW55LFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgbG9nV3JpdGVyOiBMb2dXcml0ZXJcbiAgKSB7fVxuXG4gIGRpc3BhdGNoZWQoc3RhdGU6IGFueSkge1xuICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKHRoaXMuYWN0aW9uKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRUaW1lID0gZm9ybWF0VGltZShuZXcgRGF0ZSgpKTtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgYWN0aW9uICR7YWN0aW9uTmFtZX0gQCAke2Zvcm1hdHRlZFRpbWV9YDtcbiAgICB0aGlzLmxvZ1dyaXRlci5zdGFydEdyb3VwKG1lc3NhZ2UpO1xuXG4gICAgLy8gcHJpbnQgcGF5bG9hZCBvbmx5IGlmIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBpcyBzdXBwbGllZFxuICAgIGlmICh0aGlzLl9oYXNQYXlsb2FkKHRoaXMuYWN0aW9uKSkge1xuICAgICAgdGhpcy5sb2dXcml0ZXIubG9nR3JleSgncGF5bG9hZCcsIHsgLi4udGhpcy5hY3Rpb24gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dXcml0ZXIubG9nR3JleSgncHJldiBzdGF0ZScsIHN0YXRlKTtcbiAgfVxuXG4gIGNvbXBsZXRlZChuZXh0U3RhdGU6IGFueSkge1xuICAgIHRoaXMubG9nV3JpdGVyLmxvZ0dyZWVuKCduZXh0IHN0YXRlJywgbmV4dFN0YXRlKTtcbiAgICB0aGlzLmxvZ1dyaXRlci5lbmRHcm91cCgpO1xuICB9XG5cbiAgZXJyb3JlZChlcnJvcjogYW55KSB7XG4gICAgdGhpcy5sb2dXcml0ZXIubG9nUmVkaXNoKCduZXh0IHN0YXRlIGFmdGVyIGVycm9yJywgdGhpcy5zdG9yZS5zbmFwc2hvdCgpKTtcbiAgICB0aGlzLmxvZ1dyaXRlci5sb2dSZWRpc2goJ2Vycm9yJywgZXJyb3IpO1xuICAgIHRoaXMubG9nV3JpdGVyLmVuZEdyb3VwKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYXNQYXlsb2FkKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBub25FbXB0eVByb3BlcnRpZXMgPSB0aGlzLl9nZXROb25FbXB0eVByb3BlcnRpZXMoZXZlbnQpO1xuICAgIHJldHVybiBub25FbXB0eVByb3BlcnRpZXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vbkVtcHR5UHJvcGVydGllcyhldmVudDogYW55KSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV2ZW50KTtcbiAgICBjb25zdCB2YWx1ZXMgPSBrZXlzLm1hcChrZXkgPT4gZXZlbnRba2V5XSk7XG4gICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export class LogWriter {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.options = options;
|
|
4
|
+
this.options = this.options || {};
|
|
5
|
+
this.logger = options.logger || console;
|
|
6
|
+
}
|
|
7
|
+
startGroup(message) {
|
|
8
|
+
const startGroupFn = this.options.collapsed
|
|
9
|
+
? this.logger.groupCollapsed
|
|
10
|
+
: this.logger.group;
|
|
11
|
+
try {
|
|
12
|
+
startGroupFn.call(this.logger, message);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
console.log(message);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
endGroup() {
|
|
19
|
+
try {
|
|
20
|
+
this.logger.groupEnd();
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
this.logger.log('—— log end ——');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
logGrey(title, payload) {
|
|
27
|
+
const greyStyle = 'color: #9E9E9E; font-weight: bold';
|
|
28
|
+
this.log(title, greyStyle, payload);
|
|
29
|
+
}
|
|
30
|
+
logGreen(title, payload) {
|
|
31
|
+
const greenStyle = 'color: #4CAF50; font-weight: bold';
|
|
32
|
+
this.log(title, greenStyle, payload);
|
|
33
|
+
}
|
|
34
|
+
logRedish(title, payload) {
|
|
35
|
+
const redishStyle = 'color: #FD8182; font-weight: bold';
|
|
36
|
+
this.log(title, redishStyle, payload);
|
|
37
|
+
}
|
|
38
|
+
log(title, color, payload) {
|
|
39
|
+
if (this.isIE()) {
|
|
40
|
+
this.logger.log(title, payload);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.logger.log('%c ' + title, color, payload);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
isIE() {
|
|
47
|
+
const ua = typeof window !== 'undefined' && window.navigator.userAgent
|
|
48
|
+
? window.navigator.userAgent
|
|
49
|
+
: '';
|
|
50
|
+
let msIE = false;
|
|
51
|
+
const oldIE = ua.indexOf('MSIE ');
|
|
52
|
+
const newIE = ua.indexOf('Trident/');
|
|
53
|
+
if (oldIE > -1 || newIE > -1) {
|
|
54
|
+
msIE = true;
|
|
55
|
+
}
|
|
56
|
+
return msIE;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXdyaXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZy13cml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBb0IsT0FBZ0M7UUFBaEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFTLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtRQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYSxFQUFFLE9BQVk7UUFDakMsTUFBTSxTQUFTLEdBQUcsbUNBQW1DLENBQUM7UUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLE9BQVk7UUFDbEMsTUFBTSxVQUFVLEdBQUcsbUNBQW1DLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLE9BQVk7UUFDbkMsTUFBTSxXQUFXLEdBQUcsbUNBQW1DLENBQUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxPQUFZO1FBQzVDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsTUFBTSxFQUFFLEdBQ04sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUztZQUN6RCxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQzVCLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDVCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksR0FBRyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vc3ltYm9scyc7XG5leHBvcnQgY2xhc3MgTG9nV3JpdGVyIHtcbiAgcHJpdmF0ZSBsb2dnZXI6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IDxhbnk+e307XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlciB8fCBjb25zb2xlO1xuICB9XG5cbiAgc3RhcnRHcm91cChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGFydEdyb3VwRm4gPSB0aGlzLm9wdGlvbnMuY29sbGFwc2VkXG4gICAgICA/IHRoaXMubG9nZ2VyLmdyb3VwQ29sbGFwc2VkXG4gICAgICA6IHRoaXMubG9nZ2VyLmdyb3VwO1xuICAgIHRyeSB7XG4gICAgICBzdGFydEdyb3VwRm4uY2FsbCh0aGlzLmxvZ2dlciwgbWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgZW5kR3JvdXAoKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9nZ2VyLmdyb3VwRW5kKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCfigJTigJQgbG9nIGVuZCDigJTigJQnKTtcbiAgICB9XG4gIH1cblxuICBsb2dHcmV5KHRpdGxlOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGdyZXlTdHlsZSA9ICdjb2xvcjogIzlFOUU5RTsgZm9udC13ZWlnaHQ6IGJvbGQnO1xuICAgIHRoaXMubG9nKHRpdGxlLCBncmV5U3R5bGUsIHBheWxvYWQpO1xuICB9XG5cbiAgbG9nR3JlZW4odGl0bGU6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgZ3JlZW5TdHlsZSA9ICdjb2xvcjogIzRDQUY1MDsgZm9udC13ZWlnaHQ6IGJvbGQnO1xuICAgIHRoaXMubG9nKHRpdGxlLCBncmVlblN0eWxlLCBwYXlsb2FkKTtcbiAgfVxuXG4gIGxvZ1JlZGlzaCh0aXRsZTogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCByZWRpc2hTdHlsZSA9ICdjb2xvcjogI0ZEODE4MjsgZm9udC13ZWlnaHQ6IGJvbGQnO1xuICAgIHRoaXMubG9nKHRpdGxlLCByZWRpc2hTdHlsZSwgcGF5bG9hZCk7XG4gIH1cblxuICBsb2codGl0bGU6IHN0cmluZywgY29sb3I6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNJRSgpKSB7XG4gICAgICB0aGlzLmxvZ2dlci5sb2codGl0bGUsIHBheWxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5sb2coJyVjICcgKyB0aXRsZSwgY29sb3IsIHBheWxvYWQpO1xuICAgIH1cbiAgfVxuXG4gIGlzSUUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdWEgPVxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnRcbiAgICAgICAgPyB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudFxuICAgICAgICA6ICcnO1xuICAgIGxldCBtc0lFID0gZmFsc2U7XG4gICAgY29uc3Qgb2xkSUUgPSB1YS5pbmRleE9mKCdNU0lFICcpO1xuICAgIGNvbnN0IG5ld0lFID0gdWEuaW5kZXhPZignVHJpZGVudC8nKTtcbiAgICBpZiAob2xkSUUgPiAtMSB8fCBuZXdJRSA+IC0xKSB7XG4gICAgICBtc0lFID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG1zSUU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { InjectionToken, NgModule, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { withNgxsPlugin } from '@ngxs/store';
|
|
3
|
+
import { NGXS_PLUGINS } from '@ngxs/store/plugins';
|
|
4
|
+
import { NgxsLoggerPlugin } from './logger.plugin';
|
|
5
|
+
import { NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');
|
|
8
|
+
export function loggerOptionsFactory(options) {
|
|
9
|
+
const defaultLoggerOptions = {
|
|
10
|
+
logger: console,
|
|
11
|
+
collapsed: false,
|
|
12
|
+
disabled: false,
|
|
13
|
+
filter: () => true
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
...defaultLoggerOptions,
|
|
17
|
+
...options
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export class NgxsLoggerPluginModule {
|
|
21
|
+
static forRoot(options) {
|
|
22
|
+
return {
|
|
23
|
+
ngModule: NgxsLoggerPluginModule,
|
|
24
|
+
providers: [
|
|
25
|
+
{
|
|
26
|
+
provide: NGXS_PLUGINS,
|
|
27
|
+
useClass: NgxsLoggerPlugin,
|
|
28
|
+
multi: true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
provide: USER_OPTIONS,
|
|
32
|
+
useValue: options
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
provide: NGXS_LOGGER_PLUGIN_OPTIONS,
|
|
36
|
+
useFactory: loggerOptionsFactory,
|
|
37
|
+
deps: [USER_OPTIONS]
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
43
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule }); }
|
|
44
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
|
|
47
|
+
type: NgModule
|
|
48
|
+
}] });
|
|
49
|
+
export function withNgxsLoggerPlugin(options) {
|
|
50
|
+
return makeEnvironmentProviders([
|
|
51
|
+
withNgxsPlugin(NgxsLoggerPlugin),
|
|
52
|
+
{ provide: USER_OPTIONS, useValue: options },
|
|
53
|
+
{
|
|
54
|
+
provide: NGXS_LOGGER_PLUGIN_OPTIONS,
|
|
55
|
+
useFactory: loggerOptionsFactory,
|
|
56
|
+
deps: [USER_OPTIONS]
|
|
57
|
+
}
|
|
58
|
+
]);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFFZCxRQUFRLEVBQ1Isd0JBQXdCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBMkIsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRWhGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFnQztJQUNuRSxNQUFNLG9CQUFvQixHQUE0QjtRQUNwRCxNQUFNLEVBQUUsT0FBTztRQUNmLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7S0FDbkIsQ0FBQztJQUVGLE9BQU87UUFDTCxHQUFHLG9CQUFvQjtRQUN2QixHQUFHLE9BQU87S0FDWCxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFpQztRQUVqQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLEtBQUssRUFBRSxJQUFJO2lCQUNaO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsVUFBVSxFQUFFLG9CQUFvQjtvQkFDaEMsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBdkJVLHNCQUFzQjtrSUFBdEIsc0JBQXNCO2tJQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFFBQVE7O0FBMkJULE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUFpQztJQUNwRSxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtRQUM1QztZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDckI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEluamVjdGlvblRva2VuLFxuICBNb2R1bGVXaXRoUHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgd2l0aE5neHNQbHVnaW4gfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBOR1hTX1BMVUdJTlMgfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcblxuaW1wb3J0IHsgTmd4c0xvZ2dlclBsdWdpbiB9IGZyb20gJy4vbG9nZ2VyLnBsdWdpbic7XG5pbXBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucywgTkdYU19MT0dHRVJfUExVR0lOX09QVElPTlMgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG5leHBvcnQgY29uc3QgVVNFUl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdMT0dHRVJfVVNFUl9PUFRJT05TJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dnZXJPcHRpb25zRmFjdG9yeShvcHRpb25zOiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucykge1xuICBjb25zdCBkZWZhdWx0TG9nZ2VyT3B0aW9uczogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMgPSB7XG4gICAgbG9nZ2VyOiBjb25zb2xlLFxuICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIGZpbHRlcjogKCkgPT4gdHJ1ZVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgLi4uZGVmYXVsdExvZ2dlck9wdGlvbnMsXG4gICAgLi4ub3B0aW9uc1xuICB9O1xufVxuXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5neHNMb2dnZXJQbHVnaW5Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBvcHRpb25zPzogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnNcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hTX1BMVUdJTlMsXG4gICAgICAgICAgdXNlQ2xhc3M6IE5neHNMb2dnZXJQbHVnaW4sXG4gICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFVTRVJfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogTkdYU19MT0dHRVJfUExVR0lOX09QVElPTlMsXG4gICAgICAgICAgdXNlRmFjdG9yeTogbG9nZ2VyT3B0aW9uc0ZhY3RvcnksXG4gICAgICAgICAgZGVwczogW1VTRVJfT1BUSU9OU11cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOZ3hzTG9nZ2VyUGx1Z2luKG9wdGlvbnM/OiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgd2l0aE5neHNQbHVnaW4oTmd4c0xvZ2dlclBsdWdpbiksXG4gICAgeyBwcm92aWRlOiBVU0VSX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdYU19MT0dHRVJfUExVR0lOX09QVElPTlMsXG4gICAgICB1c2VGYWN0b3J5OiBsb2dnZXJPcHRpb25zRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtVU0VSX09QVElPTlNdXG4gICAgfVxuICBdKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Inject, Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { Store } from '@ngxs/store';
|
|
3
|
+
import { catchError, tap } from 'rxjs/operators';
|
|
4
|
+
import { ActionLogger } from './action-logger';
|
|
5
|
+
import { LogWriter } from './log-writer';
|
|
6
|
+
import { NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NgxsLoggerPlugin {
|
|
9
|
+
constructor(_options, _injector) {
|
|
10
|
+
this._options = _options;
|
|
11
|
+
this._injector = _injector;
|
|
12
|
+
}
|
|
13
|
+
handle(state, event, next) {
|
|
14
|
+
if (this._options.disabled || !this._options.filter(event, state)) {
|
|
15
|
+
return next(state, event);
|
|
16
|
+
}
|
|
17
|
+
this._logWriter = this._logWriter || new LogWriter(this._options);
|
|
18
|
+
// Retrieve lazily to avoid cyclic dependency exception
|
|
19
|
+
this._store = this._store || this._injector.get(Store);
|
|
20
|
+
const actionLogger = new ActionLogger(event, this._store, this._logWriter);
|
|
21
|
+
actionLogger.dispatched(state);
|
|
22
|
+
return next(state, event).pipe(tap(nextState => {
|
|
23
|
+
actionLogger.completed(nextState);
|
|
24
|
+
}), catchError(error => {
|
|
25
|
+
actionLogger.errored(error);
|
|
26
|
+
throw error;
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
|
|
33
|
+
type: Injectable
|
|
34
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
35
|
+
type: Inject,
|
|
36
|
+
args: [NGXS_LOGGER_PLUGIN_OPTIONS]
|
|
37
|
+
}] }, { type: i0.Injector }] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQTJCLDBCQUEwQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUdoRixNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQzhDLFFBQWlDLEVBQ3JFLFNBQW1CO1FBRGlCLGFBQVEsR0FBUixRQUFRLENBQXlCO1FBQ3JFLGNBQVMsR0FBVCxTQUFTLENBQVU7SUFDMUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFFLElBQXNCO1FBQ25ELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU8sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBUSxLQUFLLENBQUMsQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0UsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZCxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7aUlBL0JVLGdCQUFnQixrQkFLakIsMEJBQTBCO3FJQUx6QixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBOZ3hzTmV4dFBsdWdpbkZuLCBOZ3hzUGx1Z2luIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFjdGlvbkxvZ2dlciB9IGZyb20gJy4vYWN0aW9uLWxvZ2dlcic7XG5pbXBvcnQgeyBMb2dXcml0ZXIgfSBmcm9tICcuL2xvZy13cml0ZXInO1xuaW1wb3J0IHsgTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMsIE5HWFNfTE9HR0VSX1BMVUdJTl9PUFRJT05TIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5neHNMb2dnZXJQbHVnaW4gaW1wbGVtZW50cyBOZ3hzUGx1Z2luIHtcbiAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlO1xuICBwcml2YXRlIF9sb2dXcml0ZXI6IExvZ1dyaXRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE5HWFNfTE9HR0VSX1BMVUdJTl9PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zOiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucyxcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIGhhbmRsZShzdGF0ZTogYW55LCBldmVudDogYW55LCBuZXh0OiBOZ3hzTmV4dFBsdWdpbkZuKSB7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMuZGlzYWJsZWQgfHwgIXRoaXMuX29wdGlvbnMuZmlsdGVyIShldmVudCwgc3RhdGUpKSB7XG4gICAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ1dyaXRlciA9IHRoaXMuX2xvZ1dyaXRlciB8fCBuZXcgTG9nV3JpdGVyKHRoaXMuX29wdGlvbnMpO1xuICAgIC8vIFJldHJpZXZlIGxhemlseSB0byBhdm9pZCBjeWNsaWMgZGVwZW5kZW5jeSBleGNlcHRpb25cbiAgICB0aGlzLl9zdG9yZSA9IHRoaXMuX3N0b3JlIHx8IHRoaXMuX2luamVjdG9yLmdldDxTdG9yZT4oU3RvcmUpO1xuXG4gICAgY29uc3QgYWN0aW9uTG9nZ2VyID0gbmV3IEFjdGlvbkxvZ2dlcihldmVudCwgdGhpcy5fc3RvcmUsIHRoaXMuX2xvZ1dyaXRlcik7XG5cbiAgICBhY3Rpb25Mb2dnZXIuZGlzcGF0Y2hlZChzdGF0ZSk7XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgZXZlbnQpLnBpcGUoXG4gICAgICB0YXAobmV4dFN0YXRlID0+IHtcbiAgICAgICAgYWN0aW9uTG9nZ2VyLmNvbXBsZXRlZChuZXh0U3RhdGUpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgYWN0aW9uTG9nZ2VyLmVycm9yZWQoZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
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,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { InjectionToken, Injectable, Inject, NgModule, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { Store, withNgxsPlugin } from '@ngxs/store';
|
|
4
|
+
import { getActionTypeFromInstance, NGXS_PLUGINS } from '@ngxs/store/plugins';
|
|
4
5
|
import { tap, catchError } from 'rxjs/operators';
|
|
5
6
|
|
|
6
7
|
const repeat = (str, times) => new Array(times + 1).join(str);
|
|
@@ -28,7 +29,7 @@ class ActionLogger {
|
|
|
28
29
|
this.logWriter.startGroup(message);
|
|
29
30
|
// print payload only if at least one property is supplied
|
|
30
31
|
if (this._hasPayload(this.action)) {
|
|
31
|
-
this.logWriter.logGrey('payload',
|
|
32
|
+
this.logWriter.logGrey('payload', { ...this.action });
|
|
32
33
|
}
|
|
33
34
|
this.logWriter.logGrey('prev state', state);
|
|
34
35
|
}
|
|
@@ -134,15 +135,15 @@ class NgxsLoggerPlugin {
|
|
|
134
135
|
throw error;
|
|
135
136
|
}));
|
|
136
137
|
}
|
|
138
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin, deps: [{ token: NGXS_LOGGER_PLUGIN_OPTIONS }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
139
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin }); }
|
|
137
140
|
}
|
|
138
|
-
|
|
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
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPlugin, decorators: [{
|
|
141
142
|
type: Injectable
|
|
142
|
-
}], ctorParameters:
|
|
143
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
143
144
|
type: Inject,
|
|
144
145
|
args: [NGXS_LOGGER_PLUGIN_OPTIONS]
|
|
145
|
-
}] }, { type: i0.Injector }]
|
|
146
|
+
}] }, { type: i0.Injector }] });
|
|
146
147
|
|
|
147
148
|
const USER_OPTIONS = new InjectionToken('LOGGER_USER_OPTIONS');
|
|
148
149
|
function loggerOptionsFactory(options) {
|
|
@@ -152,7 +153,10 @@ function loggerOptionsFactory(options) {
|
|
|
152
153
|
disabled: false,
|
|
153
154
|
filter: () => true
|
|
154
155
|
};
|
|
155
|
-
return
|
|
156
|
+
return {
|
|
157
|
+
...defaultLoggerOptions,
|
|
158
|
+
...options
|
|
159
|
+
};
|
|
156
160
|
}
|
|
157
161
|
class NgxsLoggerPluginModule {
|
|
158
162
|
static forRoot(options) {
|
|
@@ -176,13 +180,24 @@ class NgxsLoggerPluginModule {
|
|
|
176
180
|
]
|
|
177
181
|
};
|
|
178
182
|
}
|
|
183
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
184
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule }); }
|
|
185
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule }); }
|
|
179
186
|
}
|
|
180
|
-
|
|
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
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: NgxsLoggerPluginModule, decorators: [{
|
|
184
188
|
type: NgModule
|
|
185
189
|
}] });
|
|
190
|
+
function withNgxsLoggerPlugin(options) {
|
|
191
|
+
return makeEnvironmentProviders([
|
|
192
|
+
withNgxsPlugin(NgxsLoggerPlugin),
|
|
193
|
+
{ provide: USER_OPTIONS, useValue: options },
|
|
194
|
+
{
|
|
195
|
+
provide: NGXS_LOGGER_PLUGIN_OPTIONS,
|
|
196
|
+
useFactory: loggerOptionsFactory,
|
|
197
|
+
deps: [USER_OPTIONS]
|
|
198
|
+
}
|
|
199
|
+
]);
|
|
200
|
+
}
|
|
186
201
|
|
|
187
202
|
/**
|
|
188
203
|
* The public api for consumers of @ngxs/logger-plugin
|
|
@@ -192,5 +207,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
192
207
|
* Generated bundle index. Do not edit.
|
|
193
208
|
*/
|
|
194
209
|
|
|
195
|
-
export { NGXS_LOGGER_PLUGIN_OPTIONS, NgxsLoggerPlugin, NgxsLoggerPluginModule };
|
|
196
|
-
//# sourceMappingURL=ngxs-logger-plugin.
|
|
210
|
+
export { NGXS_LOGGER_PLUGIN_OPTIONS, NgxsLoggerPlugin, NgxsLoggerPluginModule, withNgxsLoggerPlugin };
|
|
211
|
+
//# sourceMappingURL=ngxs-logger-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
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 { Store } from '@ngxs/store';\nimport { getActionTypeFromInstance } from '@ngxs/store/plugins';\n\nimport { formatTime } from './internals';\nimport { LogWriter } from './log-writer';\n\nexport class ActionLogger {\n constructor(\n private action: any,\n private store: Store,\n private logWriter: LogWriter\n ) {}\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 { Store } from '@ngxs/store';\nimport { NgxsNextPluginFn, NgxsPlugin } from '@ngxs/store/plugins';\nimport { catchError, tap } from 'rxjs/operators';\n\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 { withNgxsPlugin } from '@ngxs/store';\nimport { NGXS_PLUGINS } from '@ngxs/store/plugins';\n\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":";;;;;;AAAO,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAa,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9E,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,SAAiB,KAChD,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;AAEjD,SAAU,UAAU,CAAC,IAAU,EAAA;IACnC,QACE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvB,CAAG,CAAA,CAAA;AACH,QAAA,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzB,CAAG,CAAA,CAAA;AACH,QAAA,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzB,CAAG,CAAA,CAAA;QACH,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,EAC9B;AACJ;;MCTa,YAAY,CAAA;AACvB,IAAA,WAAA,CACU,MAAW,EACX,KAAY,EACZ,SAAoB,EAAA;QAFpB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAK;QACX,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KAC1B;AAEJ,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAE7C,QAAA,MAAM,OAAO,GAAG,CAAA,OAAA,EAAU,UAAU,CAAM,GAAA,EAAA,aAAa,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;;QAGnC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACvD;QAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;KAC7C;AAED,IAAA,SAAS,CAAC,SAAc,EAAA;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC3B;AAEO,IAAA,WAAW,CAAC,KAAU,EAAA;QAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAC9D,QAAA,OAAO,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;KACtC;AAEO,IAAA,sBAAsB,CAAC,KAAU,EAAA;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC;KACpD;AACF;;MChDY,SAAS,CAAA;AAGpB,IAAA,WAAA,CAAoB,OAAgC,EAAA;QAAhC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAS,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;KACzC;AAED,IAAA,UAAU,CAAC,OAAe,EAAA;AACxB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;AACzC,cAAE,IAAI,CAAC,MAAM,CAAC,cAAc;AAC5B,cAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI;YACF,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACzC;QAAC,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SACtB;KACF;IAED,QAAQ,GAAA;AACN,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACxB;QAAC,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;SAClC;KACF;IAED,OAAO,CAAC,KAAa,EAAE,OAAY,EAAA;QACjC,MAAM,SAAS,GAAG,mCAAmC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACrC;IAED,QAAQ,CAAC,KAAa,EAAE,OAAY,EAAA;QAClC,MAAM,UAAU,GAAG,mCAAmC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KACtC;IAED,SAAS,CAAC,KAAa,EAAE,OAAY,EAAA;QACnC,MAAM,WAAW,GAAG,mCAAmC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;KACvC;AAED,IAAA,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,OAAY,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SACjC;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAChD;KACF;IAED,IAAI,GAAA;QACF,MAAM,EAAE,GACN,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS;AACzD,cAAE,MAAM,CAAC,SAAS,CAAC,SAAS;cAC1B,EAAE,CAAC;QACT,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YAC5B,IAAI,GAAG,IAAI,CAAC;SACb;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AACF;;MChDY,0BAA0B,GAAG,IAAI,cAAc,CAAC,4BAA4B;;MCN5E,gBAAgB,CAAA;IAI3B,WAC8C,CAAA,QAAiC,EACrE,SAAmB,EAAA;QADiB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAyB;QACrE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;KACzB;AAEJ,IAAA,MAAM,CAAC,KAAU,EAAE,KAAU,EAAE,IAAsB,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AAClE,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC3B;AAED,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAElE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAQ,KAAK,CAAC,CAAC;AAE9D,QAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAE3E,QAAA,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAE/B,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAC5B,GAAG,CAAC,SAAS,IAAG;AACd,YAAA,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACpC,SAAC,CAAC,EACF,UAAU,CAAC,KAAK,IAAG;AACjB,YAAA,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,MAAM,KAAK,CAAC;SACb,CAAC,CACH,CAAC;KACH;AA/BU,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAKjB,0BAA0B,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;qIALzB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;0BAMN,MAAM;2BAAC,0BAA0B,CAAA;;;ACF/B,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC,qBAAqB,CAAC,CAAC;AAEhE,SAAU,oBAAoB,CAAC,OAAgC,EAAA;AACnE,IAAA,MAAM,oBAAoB,GAA4B;AACpD,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,MAAM,IAAI;KACnB,CAAC;IAEF,OAAO;AACL,QAAA,GAAG,oBAAoB;AACvB,QAAA,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;MAGY,sBAAsB,CAAA;IACjC,OAAO,OAAO,CACZ,OAAiC,EAAA;QAEjC,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;AACrB,oBAAA,QAAQ,EAAE,OAAO;AAClB,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,UAAU,EAAE,oBAAoB;oBAChC,IAAI,EAAE,CAAC,YAAY,CAAC;AACrB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;iIAvBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;kIAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;kIAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,QAAQ;;AA2BH,SAAU,oBAAoB,CAAC,OAAiC,EAAA;AACpE,IAAA,OAAO,wBAAwB,CAAC;QAC9B,cAAc,CAAC,gBAAgB,CAAC;AAChC,QAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE;AAC5C,QAAA;AACE,YAAA,OAAO,EAAE,0BAA0B;AACnC,YAAA,UAAU,EAAE,oBAAoB;YAChC,IAAI,EAAE,CAAC,YAAY,CAAC;AACrB,SAAA;AACF,KAAA,CAAC,CAAC;AACL;;AClEA;;AAEG;;ACFH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "../../node_modules/ng-packagr/package.schema.json",
|
|
3
2
|
"name": "@ngxs/logger-plugin",
|
|
4
3
|
"description": "logger plugin for @ngxs/store",
|
|
5
|
-
"version": "
|
|
6
|
-
"sideEffects":
|
|
4
|
+
"version": "18.0.0-dev.master-56d8014",
|
|
5
|
+
"sideEffects": false,
|
|
7
6
|
"peerDependencies": {
|
|
8
|
-
"@
|
|
9
|
-
"@
|
|
7
|
+
"@angular/core": ">=16.0.0 <19.0.0",
|
|
8
|
+
"@ngxs/store": "^18.0.0 || ^18.0.0-dev",
|
|
10
9
|
"rxjs": ">=6.5.5"
|
|
11
10
|
},
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
"module": "fesm2022/ngxs-logger-plugin.mjs",
|
|
12
|
+
"typings": "index.d.ts",
|
|
13
|
+
"exports": {
|
|
14
|
+
"./package.json": {
|
|
15
|
+
"default": "./package.json"
|
|
16
|
+
},
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./index.d.ts",
|
|
19
|
+
"esm2022": "./esm2022/ngxs-logger-plugin.mjs",
|
|
20
|
+
"esm": "./esm2022/ngxs-logger-plugin.mjs",
|
|
21
|
+
"default": "./fesm2022/ngxs-logger-plugin.mjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
18
24
|
"dependencies": {
|
|
19
|
-
"tslib": "^2.
|
|
25
|
+
"tslib": "^2.3.0"
|
|
20
26
|
},
|
|
21
27
|
"repository": {
|
|
22
28
|
"type": "git",
|
|
@@ -62,4 +68,4 @@
|
|
|
62
68
|
"type": "opencollective",
|
|
63
69
|
"url": "https://opencollective.com/ngxs"
|
|
64
70
|
}
|
|
65
|
-
}
|
|
71
|
+
}
|
package/src/logger.module.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken, ModuleWithProviders } from '@angular/core';
|
|
1
|
+
import { EnvironmentProviders, 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,3 +14,4 @@ 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;
|
package/src/logger.plugin.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injector } from '@angular/core';
|
|
2
|
-
import { NgxsNextPluginFn, NgxsPlugin } from '@ngxs/store';
|
|
2
|
+
import { NgxsNextPluginFn, NgxsPlugin } from '@ngxs/store/plugins';
|
|
3
3
|
import { NgxsLoggerPluginOptions } from './symbols';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class NgxsLoggerPlugin implements NgxsPlugin {
|
package/src/public_api.d.ts
CHANGED
|
@@ -1,231 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -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', 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==
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
export class LogWriter {
|
|
2
|
-
constructor(options) {
|
|
3
|
-
this.options = options;
|
|
4
|
-
this.options = this.options || {};
|
|
5
|
-
this.logger = options.logger || console;
|
|
6
|
-
}
|
|
7
|
-
startGroup(message) {
|
|
8
|
-
const startGroupFn = this.options.collapsed
|
|
9
|
-
? this.logger.groupCollapsed
|
|
10
|
-
: this.logger.group;
|
|
11
|
-
try {
|
|
12
|
-
startGroupFn.call(this.logger, message);
|
|
13
|
-
}
|
|
14
|
-
catch (e) {
|
|
15
|
-
console.log(message);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
endGroup() {
|
|
19
|
-
try {
|
|
20
|
-
this.logger.groupEnd();
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
this.logger.log('—— log end ——');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
logGrey(title, payload) {
|
|
27
|
-
const greyStyle = 'color: #9E9E9E; font-weight: bold';
|
|
28
|
-
this.log(title, greyStyle, payload);
|
|
29
|
-
}
|
|
30
|
-
logGreen(title, payload) {
|
|
31
|
-
const greenStyle = 'color: #4CAF50; font-weight: bold';
|
|
32
|
-
this.log(title, greenStyle, payload);
|
|
33
|
-
}
|
|
34
|
-
logRedish(title, payload) {
|
|
35
|
-
const redishStyle = 'color: #FD8182; font-weight: bold';
|
|
36
|
-
this.log(title, redishStyle, payload);
|
|
37
|
-
}
|
|
38
|
-
log(title, color, payload) {
|
|
39
|
-
if (this.isIE()) {
|
|
40
|
-
this.logger.log(title, payload);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.logger.log('%c ' + title, color, payload);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
isIE() {
|
|
47
|
-
const ua = typeof window !== 'undefined' && window.navigator.userAgent
|
|
48
|
-
? window.navigator.userAgent
|
|
49
|
-
: '';
|
|
50
|
-
let msIE = false;
|
|
51
|
-
const oldIE = ua.indexOf('MSIE ');
|
|
52
|
-
const newIE = ua.indexOf('Trident/');
|
|
53
|
-
if (oldIE > -1 || newIE > -1) {
|
|
54
|
-
msIE = true;
|
|
55
|
-
}
|
|
56
|
-
return msIE;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXdyaXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZy13cml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBb0IsT0FBZ0M7UUFBaEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFTLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZTtRQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7WUFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYztZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdEIsSUFBSTtZQUNGLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSTtZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDeEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFhLEVBQUUsT0FBWTtRQUNqQyxNQUFNLFNBQVMsR0FBRyxtQ0FBbUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBWTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxtQ0FBbUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsT0FBWTtRQUNuQyxNQUFNLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLE9BQVk7UUFDNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLEVBQUUsR0FDTixPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTO1lBQ3pELENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNULElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksR0FBRyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMgfSBmcm9tICcuL3N5bWJvbHMnO1xuZXhwb3J0IGNsYXNzIExvZ1dyaXRlciB7XG4gIHByaXZhdGUgbG9nZ2VyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBOZ3hzTG9nZ2VyUGx1Z2luT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMub3B0aW9ucyB8fCA8YW55Pnt9O1xuICAgIHRoaXMubG9nZ2VyID0gb3B0aW9ucy5sb2dnZXIgfHwgY29uc29sZTtcbiAgfVxuXG4gIHN0YXJ0R3JvdXAobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3RhcnRHcm91cEZuID0gdGhpcy5vcHRpb25zLmNvbGxhcHNlZFxuICAgICAgPyB0aGlzLmxvZ2dlci5ncm91cENvbGxhcHNlZFxuICAgICAgOiB0aGlzLmxvZ2dlci5ncm91cDtcbiAgICB0cnkge1xuICAgICAgc3RhcnRHcm91cEZuLmNhbGwodGhpcy5sb2dnZXIsIG1lc3NhZ2UpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGVuZEdyb3VwKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmxvZ2dlci5ncm91cEVuZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmxvZygn4oCU4oCUIGxvZyBlbmQg4oCU4oCUJyk7XG4gICAgfVxuICB9XG5cbiAgbG9nR3JleSh0aXRsZTogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBncmV5U3R5bGUgPSAnY29sb3I6ICM5RTlFOUU7IGZvbnQtd2VpZ2h0OiBib2xkJztcbiAgICB0aGlzLmxvZyh0aXRsZSwgZ3JleVN0eWxlLCBwYXlsb2FkKTtcbiAgfVxuXG4gIGxvZ0dyZWVuKHRpdGxlOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGdyZWVuU3R5bGUgPSAnY29sb3I6ICM0Q0FGNTA7IGZvbnQtd2VpZ2h0OiBib2xkJztcbiAgICB0aGlzLmxvZyh0aXRsZSwgZ3JlZW5TdHlsZSwgcGF5bG9hZCk7XG4gIH1cblxuICBsb2dSZWRpc2godGl0bGU6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XG4gICAgY29uc3QgcmVkaXNoU3R5bGUgPSAnY29sb3I6ICNGRDgxODI7IGZvbnQtd2VpZ2h0OiBib2xkJztcbiAgICB0aGlzLmxvZyh0aXRsZSwgcmVkaXNoU3R5bGUsIHBheWxvYWQpO1xuICB9XG5cbiAgbG9nKHRpdGxlOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIGlmICh0aGlzLmlzSUUoKSkge1xuICAgICAgdGhpcy5sb2dnZXIubG9nKHRpdGxlLCBwYXlsb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIubG9nKCclYyAnICsgdGl0bGUsIGNvbG9yLCBwYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICBpc0lFKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVhID1cbiAgICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50XG4gICAgICAgID8gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnRcbiAgICAgICAgOiAnJztcbiAgICBsZXQgbXNJRSA9IGZhbHNlO1xuICAgIGNvbnN0IG9sZElFID0gdWEuaW5kZXhPZignTVNJRSAnKTtcbiAgICBjb25zdCBuZXdJRSA9IHVhLmluZGV4T2YoJ1RyaWRlbnQvJyk7XG4gICAgaWYgKG9sZElFID4gLTEgfHwgbmV3SUUgPiAtMSkge1xuICAgICAgbXNJRSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBtc0lFO1xuICB9XG59XG4iXX0=
|
|
@@ -1,45 +0,0 @@
|
|
|
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
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, Injector } from '@angular/core';
|
|
2
|
-
import { Store } from '@ngxs/store';
|
|
3
|
-
import { catchError, tap } from 'rxjs/operators';
|
|
4
|
-
import { ActionLogger } from './action-logger';
|
|
5
|
-
import { LogWriter } from './log-writer';
|
|
6
|
-
import { NGXS_LOGGER_PLUGIN_OPTIONS } from './symbols';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class NgxsLoggerPlugin {
|
|
9
|
-
constructor(_options, _injector) {
|
|
10
|
-
this._options = _options;
|
|
11
|
-
this._injector = _injector;
|
|
12
|
-
}
|
|
13
|
-
handle(state, event, next) {
|
|
14
|
-
if (this._options.disabled || !this._options.filter(event, state)) {
|
|
15
|
-
return next(state, event);
|
|
16
|
-
}
|
|
17
|
-
this._logWriter = this._logWriter || new LogWriter(this._options);
|
|
18
|
-
// Retrieve lazily to avoid cyclic dependency exception
|
|
19
|
-
this._store = this._store || this._injector.get(Store);
|
|
20
|
-
const actionLogger = new ActionLogger(event, this._store, this._logWriter);
|
|
21
|
-
actionLogger.dispatched(state);
|
|
22
|
-
return next(state, event).pipe(tap(nextState => {
|
|
23
|
-
actionLogger.completed(nextState);
|
|
24
|
-
}), catchError(error => {
|
|
25
|
-
actionLogger.errored(error);
|
|
26
|
-
throw error;
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
}
|
|
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
|
-
type: Injectable
|
|
34
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
35
|
-
type: Inject,
|
|
36
|
-
args: [NGXS_LOGGER_PLUGIN_OPTIONS]
|
|
37
|
-
}] }, { type: i0.Injector }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL2xvZ2dlci5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUEyQiwwQkFBMEIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHaEYsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixZQUM4QyxRQUFpQyxFQUNyRSxTQUFtQjtRQURpQixhQUFRLEdBQVIsUUFBUSxDQUF5QjtRQUNyRSxjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQzFCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQUFzQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzQjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBUSxLQUFLLENBQUMsQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0UsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUM1QixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZCxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O2lJQS9CVSxnQkFBZ0Isa0JBS2pCLDBCQUEwQjtxSUFMekIsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQU1OLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c05leHRQbHVnaW5GbiwgTmd4c1BsdWdpbiwgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBY3Rpb25Mb2dnZXIgfSBmcm9tICcuL2FjdGlvbi1sb2dnZXInO1xuaW1wb3J0IHsgTG9nV3JpdGVyIH0gZnJvbSAnLi9sb2ctd3JpdGVyJztcbmltcG9ydCB7IE5neHNMb2dnZXJQbHVnaW5PcHRpb25zLCBOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUyB9IGZyb20gJy4vc3ltYm9scyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTG9nZ2VyUGx1Z2luIGltcGxlbWVudHMgTmd4c1BsdWdpbiB7XG4gIHByaXZhdGUgX3N0b3JlOiBTdG9yZTtcbiAgcHJpdmF0ZSBfbG9nV3JpdGVyOiBMb2dXcml0ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChOR1hTX0xPR0dFUl9QTFVHSU5fT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogTmd4c0xvZ2dlclBsdWdpbk9wdGlvbnMsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yXG4gICkge31cblxuICBoYW5kbGUoc3RhdGU6IGFueSwgZXZlbnQ6IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmICh0aGlzLl9vcHRpb25zLmRpc2FibGVkIHx8ICF0aGlzLl9vcHRpb25zLmZpbHRlciEoZXZlbnQsIHN0YXRlKSkge1xuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dXcml0ZXIgPSB0aGlzLl9sb2dXcml0ZXIgfHwgbmV3IExvZ1dyaXRlcih0aGlzLl9vcHRpb25zKTtcbiAgICAvLyBSZXRyaWV2ZSBsYXppbHkgdG8gYXZvaWQgY3ljbGljIGRlcGVuZGVuY3kgZXhjZXB0aW9uXG4gICAgdGhpcy5fc3RvcmUgPSB0aGlzLl9zdG9yZSB8fCB0aGlzLl9pbmplY3Rvci5nZXQ8U3RvcmU+KFN0b3JlKTtcblxuICAgIGNvbnN0IGFjdGlvbkxvZ2dlciA9IG5ldyBBY3Rpb25Mb2dnZXIoZXZlbnQsIHRoaXMuX3N0b3JlLCB0aGlzLl9sb2dXcml0ZXIpO1xuXG4gICAgYWN0aW9uTG9nZ2VyLmRpc3BhdGNoZWQoc3RhdGUpO1xuXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGV2ZW50KS5waXBlKFxuICAgICAgdGFwKG5leHRTdGF0ZSA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5jb21wbGV0ZWQobmV4dFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGFjdGlvbkxvZ2dlci5lcnJvcmVkKGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { NgxsLoggerPluginModule } from './logger.module';
|
|
2
|
-
export { NgxsLoggerPlugin } from './logger.plugin';
|
|
3
|
-
export * from './symbols';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xvZ2dlci1wbHVnaW4vc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzTG9nZ2VyUGx1Z2luTW9kdWxlIH0gZnJvbSAnLi9sb2dnZXIubW9kdWxlJztcbmV4cG9ydCB7IE5neHNMb2dnZXJQbHVnaW4gfSBmcm9tICcuL2xvZ2dlci5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1ib2xzJztcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
package/ngxs-logger-plugin.d.ts
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|