@tramvai/module-log 2.70.1 → 2.72.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import { createEvent, createReducer } from '@tramvai/state';
2
+
3
+ const setLogs = createEvent('setLogs');
4
+ const LogStore = createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
5
+
6
+ export { LogStore, setLogs };
@@ -0,0 +1,6 @@
1
+ import { createEvent, createReducer } from '@tramvai/state';
2
+
3
+ const setLogs = createEvent('setLogs');
4
+ const LogStore = createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
5
+
6
+ export { LogStore, setLogs };
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var state = require('@tramvai/state');
6
+
7
+ const setLogs = state.createEvent('setLogs');
8
+ const LogStore = state.createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
9
+
10
+ exports.LogStore = LogStore;
11
+ exports.setLogs = setLogs;
package/lib/browser.js CHANGED
@@ -1,180 +1,11 @@
1
1
  import { __decorate } from 'tslib';
2
- import { logger as logger$1, BrowserReporter, createLoggerFactory } from '@tinkoff/logger';
3
- import { provide, Scope, commandLineListTokens, Module } from '@tramvai/core';
4
- import { LOGGER_INIT_HOOK, COMBINE_REDUCERS, CONTEXT_TOKEN, LOGGER_TOKEN, STORE_TOKEN } from '@tramvai/tokens-common';
2
+ import { createLoggerFactory, BrowserReporter } from '@tinkoff/logger';
3
+ import { Module } from '@tramvai/core';
4
+ import { LOGGER_TOKEN, LOGGER_INIT_HOOK } from '@tramvai/tokens-common';
5
5
  export { LOGGER_TOKEN } from '@tramvai/tokens-common';
6
- import { createPapiMethod } from '@tramvai/papi';
7
- import { SERVER_MODULE_PAPI_PRIVATE_ROUTE } from '@tramvai/tokens-server';
8
- import { ENV_MANAGER_TOKEN } from '@tramvai/module-environment';
9
- import each from '@tinkoff/utils/array/each';
10
- import split from '@tinkoff/utils/string/split';
11
- import { createEvent, createReducer } from '@tramvai/state';
12
-
13
- const LOGGER_NAME = '';
14
- const LOGGER_KEY = 'tramvai';
15
-
16
- const setLogs = createEvent('setLogs');
17
- const LogStore = createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
18
-
19
- class DevLogsReporter {
20
- constructor() {
21
- this.logs = [];
22
- }
23
- log(logObj) {
24
- this.logs.push(logObj);
25
- }
26
- start() {
27
- this.reset();
28
- }
29
- reset() {
30
- this.logs = [];
31
- }
32
- flush() {
33
- const flushed = this.logs;
34
- this.reset();
35
- return flushed;
36
- }
37
- }
38
- class DevLogsExtension {
39
- constructor(logs) {
40
- this.logs = [];
41
- this.logs = logs;
42
- }
43
- extend(logObj) {
44
- const [index] = logObj.args;
45
- // @ts-ignore
46
- return this.logs[index];
47
- }
48
- }
49
- [
50
- provide({
51
- provide: LOGGER_INIT_HOOK,
52
- multi: true,
53
- useFactory({ reporter }) {
54
- return (loggerInstance) => {
55
- loggerInstance.addReporter(reporter);
56
- };
57
- },
58
- deps: {
59
- reporter: 'ssrDevReporter',
60
- },
61
- }),
62
- provide({
63
- provide: 'ssrDevReporter',
64
- scope: Scope.SINGLETON,
65
- useClass: DevLogsReporter,
66
- }),
67
- provide({
68
- provide: COMBINE_REDUCERS,
69
- multi: true,
70
- useValue: LogStore,
71
- }),
72
- provide({
73
- provide: commandLineListTokens.customerStart,
74
- multi: true,
75
- useFactory: ({ reporter }) => {
76
- return function startSsrLogs() {
77
- reporter.start();
78
- };
79
- },
80
- deps: {
81
- reporter: 'ssrDevReporter',
82
- },
83
- }),
84
- provide({
85
- provide: commandLineListTokens.generatePage,
86
- multi: true,
87
- useFactory: ({ context, reporter }) => {
88
- const logs = reporter.flush();
89
- return function endSsrLogs() {
90
- return context.dispatch(setLogs(logs));
91
- };
92
- },
93
- deps: {
94
- context: CONTEXT_TOKEN,
95
- reporter: 'ssrDevReporter',
96
- },
97
- }),
98
- provide({
99
- provide: SERVER_MODULE_PAPI_PRIVATE_ROUTE,
100
- multi: true,
101
- useFactory: ({ environmentManager }) => {
102
- return createPapiMethod({
103
- method: 'get',
104
- path: '/logger',
105
- async handler({ parsedUrl: { query } }) {
106
- const { mode, level, enable } = query;
107
- const applyDefaultConfig = mode === 'default';
108
- const clearCurrentConfig = mode || level || enable;
109
- let debugLevel;
110
- let debugEnable;
111
- if (applyDefaultConfig) {
112
- debugLevel = environmentManager.get('DEBUG_LEVEL');
113
- debugEnable = environmentManager.get('DEBUG_ENABLE');
114
- }
115
- if (level) {
116
- debugLevel = level;
117
- }
118
- if (enable) {
119
- debugEnable = enable;
120
- }
121
- if (clearCurrentConfig) {
122
- logger$1.clear();
123
- }
124
- if (debugLevel) {
125
- logger$1.setLevel(debugLevel);
126
- }
127
- if (debugEnable) {
128
- each((val) => {
129
- const [lvl, name] = val.split(':');
130
- logger$1.enable(lvl, name);
131
- }, split(',', debugEnable));
132
- }
133
- },
134
- });
135
- },
136
- deps: {
137
- environmentManager: ENV_MANAGER_TOKEN,
138
- },
139
- }),
140
- ];
141
- const flushLogs = (ssrLogger, logs) => {
142
- if (logs && logs.length) {
143
- // eslint-disable-next-line no-console
144
- console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
145
- logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
146
- // eslint-disable-next-line no-console
147
- console.groupEnd();
148
- }
149
- };
150
- const clientProviders = [
151
- provide({
152
- provide: COMBINE_REDUCERS,
153
- multi: true,
154
- useValue: LogStore,
155
- }),
156
- provide({
157
- provide: commandLineListTokens.customerStart,
158
- multi: true,
159
- useFactory: ({ logger, store }) => {
160
- return function rehydrateSsrDevLogs() {
161
- const logs = store.getState(LogStore);
162
- const ssrLogger = logger({
163
- name: 'ssr-logger',
164
- // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
165
- beforeReporters: [],
166
- reporters: [new BrowserReporter()],
167
- extensions: [new DevLogsExtension(logs)],
168
- });
169
- flushLogs(ssrLogger, logs);
170
- };
171
- },
172
- deps: {
173
- logger: LOGGER_TOKEN,
174
- store: STORE_TOKEN,
175
- },
176
- }),
177
- ];
6
+ import { LOGGER_NAME, LOGGER_KEY } from './constants.browser.js';
7
+ import { clientProviders } from './devLogs.browser.js';
8
+ export { LogStore, setLogs } from './LogStore.browser.js';
178
9
 
179
10
  const logger = createLoggerFactory({
180
11
  name: LOGGER_NAME,
@@ -205,4 +36,4 @@ LogModule = __decorate([
205
36
  })
206
37
  ], LogModule);
207
38
 
208
- export { LogModule, LogStore, logger, setLogs };
39
+ export { LogModule, logger };
@@ -0,0 +1,4 @@
1
+ const LOGGER_NAME = '';
2
+ const LOGGER_KEY = 'tramvai';
3
+
4
+ export { LOGGER_KEY, LOGGER_NAME };
@@ -0,0 +1,4 @@
1
+ const LOGGER_NAME = '';
2
+ const LOGGER_KEY = 'tramvai';
3
+
4
+ export { LOGGER_KEY, LOGGER_NAME };
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const LOGGER_NAME = '';
6
+ const LOGGER_KEY = 'tramvai';
7
+
8
+ exports.LOGGER_KEY = LOGGER_KEY;
9
+ exports.LOGGER_NAME = LOGGER_NAME;
@@ -0,0 +1,171 @@
1
+ import { createPapiMethod } from '@tramvai/papi';
2
+ import { provide, Scope, commandLineListTokens } from '@tramvai/core';
3
+ import { LOGGER_INIT_HOOK, COMBINE_REDUCERS, CONTEXT_TOKEN, LOGGER_TOKEN, STORE_TOKEN } from '@tramvai/tokens-common';
4
+ import { logger, BrowserReporter } from '@tinkoff/logger';
5
+ import { SERVER_MODULE_PAPI_PRIVATE_ROUTE } from '@tramvai/tokens-server';
6
+ import { ENV_MANAGER_TOKEN } from '@tramvai/module-environment';
7
+ import each from '@tinkoff/utils/array/each';
8
+ import split from '@tinkoff/utils/string/split';
9
+ import { LogStore, setLogs } from './LogStore.browser.js';
10
+
11
+ class DevLogsReporter {
12
+ constructor() {
13
+ this.logs = [];
14
+ }
15
+ log(logObj) {
16
+ this.logs.push(logObj);
17
+ }
18
+ start() {
19
+ this.reset();
20
+ }
21
+ reset() {
22
+ this.logs = [];
23
+ }
24
+ flush() {
25
+ const flushed = this.logs;
26
+ this.reset();
27
+ return flushed;
28
+ }
29
+ }
30
+ class DevLogsExtension {
31
+ constructor(logs) {
32
+ this.logs = [];
33
+ this.logs = logs;
34
+ }
35
+ extend(logObj) {
36
+ const [index] = logObj.args;
37
+ // @ts-ignore
38
+ return this.logs[index];
39
+ }
40
+ }
41
+ [
42
+ provide({
43
+ provide: LOGGER_INIT_HOOK,
44
+ multi: true,
45
+ useFactory({ reporter }) {
46
+ return (loggerInstance) => {
47
+ loggerInstance.addReporter(reporter);
48
+ };
49
+ },
50
+ deps: {
51
+ reporter: 'ssrDevReporter',
52
+ },
53
+ }),
54
+ provide({
55
+ provide: 'ssrDevReporter',
56
+ scope: Scope.SINGLETON,
57
+ useClass: DevLogsReporter,
58
+ }),
59
+ provide({
60
+ provide: COMBINE_REDUCERS,
61
+ multi: true,
62
+ useValue: LogStore,
63
+ }),
64
+ provide({
65
+ provide: commandLineListTokens.customerStart,
66
+ multi: true,
67
+ useFactory: ({ reporter }) => {
68
+ return function startSsrLogs() {
69
+ reporter.start();
70
+ };
71
+ },
72
+ deps: {
73
+ reporter: 'ssrDevReporter',
74
+ },
75
+ }),
76
+ provide({
77
+ provide: commandLineListTokens.generatePage,
78
+ multi: true,
79
+ useFactory: ({ context, reporter }) => {
80
+ const logs = reporter.flush();
81
+ return function endSsrLogs() {
82
+ return context.dispatch(setLogs(logs));
83
+ };
84
+ },
85
+ deps: {
86
+ context: CONTEXT_TOKEN,
87
+ reporter: 'ssrDevReporter',
88
+ },
89
+ }),
90
+ provide({
91
+ provide: SERVER_MODULE_PAPI_PRIVATE_ROUTE,
92
+ multi: true,
93
+ useFactory: ({ environmentManager }) => {
94
+ return createPapiMethod({
95
+ method: 'get',
96
+ path: '/logger',
97
+ async handler({ parsedUrl: { query } }) {
98
+ const { mode, level, enable } = query;
99
+ const applyDefaultConfig = mode === 'default';
100
+ const clearCurrentConfig = mode || level || enable;
101
+ let debugLevel;
102
+ let debugEnable;
103
+ if (applyDefaultConfig) {
104
+ debugLevel = environmentManager.get('DEBUG_LEVEL');
105
+ debugEnable = environmentManager.get('DEBUG_ENABLE');
106
+ }
107
+ if (level) {
108
+ debugLevel = level;
109
+ }
110
+ if (enable) {
111
+ debugEnable = enable;
112
+ }
113
+ if (clearCurrentConfig) {
114
+ logger.clear();
115
+ }
116
+ if (debugLevel) {
117
+ logger.setLevel(debugLevel);
118
+ }
119
+ if (debugEnable) {
120
+ each((val) => {
121
+ const [lvl, name] = val.split(':');
122
+ logger.enable(lvl, name);
123
+ }, split(',', debugEnable));
124
+ }
125
+ },
126
+ });
127
+ },
128
+ deps: {
129
+ environmentManager: ENV_MANAGER_TOKEN,
130
+ },
131
+ }),
132
+ ];
133
+ const flushLogs = (ssrLogger, logs) => {
134
+ if (logs && logs.length) {
135
+ // eslint-disable-next-line no-console
136
+ console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
137
+ logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
138
+ // eslint-disable-next-line no-console
139
+ console.groupEnd();
140
+ }
141
+ };
142
+ const clientProviders = [
143
+ provide({
144
+ provide: COMBINE_REDUCERS,
145
+ multi: true,
146
+ useValue: LogStore,
147
+ }),
148
+ provide({
149
+ provide: commandLineListTokens.customerStart,
150
+ multi: true,
151
+ useFactory: ({ logger, store }) => {
152
+ return function rehydrateSsrDevLogs() {
153
+ const logs = store.getState(LogStore);
154
+ const ssrLogger = logger({
155
+ name: 'ssr-logger',
156
+ // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
157
+ beforeReporters: [],
158
+ reporters: [new BrowserReporter()],
159
+ extensions: [new DevLogsExtension(logs)],
160
+ });
161
+ flushLogs(ssrLogger, logs);
162
+ };
163
+ },
164
+ deps: {
165
+ logger: LOGGER_TOKEN,
166
+ store: STORE_TOKEN,
167
+ },
168
+ }),
169
+ ];
170
+
171
+ export { DevLogsExtension, DevLogsReporter, clientProviders };
@@ -0,0 +1,171 @@
1
+ import { createPapiMethod } from '@tramvai/papi';
2
+ import { provide, Scope, commandLineListTokens } from '@tramvai/core';
3
+ import { LOGGER_INIT_HOOK, COMBINE_REDUCERS, CONTEXT_TOKEN, LOGGER_TOKEN, STORE_TOKEN } from '@tramvai/tokens-common';
4
+ import { logger, BrowserReporter } from '@tinkoff/logger';
5
+ import { SERVER_MODULE_PAPI_PRIVATE_ROUTE } from '@tramvai/tokens-server';
6
+ import { ENV_MANAGER_TOKEN } from '@tramvai/module-environment';
7
+ import each from '@tinkoff/utils/array/each';
8
+ import split from '@tinkoff/utils/string/split';
9
+ import { LogStore, setLogs } from './LogStore.es.js';
10
+
11
+ class DevLogsReporter {
12
+ constructor() {
13
+ this.logs = [];
14
+ }
15
+ log(logObj) {
16
+ this.logs.push(logObj);
17
+ }
18
+ start() {
19
+ this.reset();
20
+ }
21
+ reset() {
22
+ this.logs = [];
23
+ }
24
+ flush() {
25
+ const flushed = this.logs;
26
+ this.reset();
27
+ return flushed;
28
+ }
29
+ }
30
+ class DevLogsExtension {
31
+ constructor(logs) {
32
+ this.logs = [];
33
+ this.logs = logs;
34
+ }
35
+ extend(logObj) {
36
+ const [index] = logObj.args;
37
+ // @ts-ignore
38
+ return this.logs[index];
39
+ }
40
+ }
41
+ const serverProviders = [
42
+ provide({
43
+ provide: LOGGER_INIT_HOOK,
44
+ multi: true,
45
+ useFactory({ reporter }) {
46
+ return (loggerInstance) => {
47
+ loggerInstance.addReporter(reporter);
48
+ };
49
+ },
50
+ deps: {
51
+ reporter: 'ssrDevReporter',
52
+ },
53
+ }),
54
+ provide({
55
+ provide: 'ssrDevReporter',
56
+ scope: Scope.SINGLETON,
57
+ useClass: DevLogsReporter,
58
+ }),
59
+ provide({
60
+ provide: COMBINE_REDUCERS,
61
+ multi: true,
62
+ useValue: LogStore,
63
+ }),
64
+ provide({
65
+ provide: commandLineListTokens.customerStart,
66
+ multi: true,
67
+ useFactory: ({ reporter }) => {
68
+ return function startSsrLogs() {
69
+ reporter.start();
70
+ };
71
+ },
72
+ deps: {
73
+ reporter: 'ssrDevReporter',
74
+ },
75
+ }),
76
+ provide({
77
+ provide: commandLineListTokens.generatePage,
78
+ multi: true,
79
+ useFactory: ({ context, reporter }) => {
80
+ const logs = reporter.flush();
81
+ return function endSsrLogs() {
82
+ return context.dispatch(setLogs(logs));
83
+ };
84
+ },
85
+ deps: {
86
+ context: CONTEXT_TOKEN,
87
+ reporter: 'ssrDevReporter',
88
+ },
89
+ }),
90
+ provide({
91
+ provide: SERVER_MODULE_PAPI_PRIVATE_ROUTE,
92
+ multi: true,
93
+ useFactory: ({ environmentManager }) => {
94
+ return createPapiMethod({
95
+ method: 'get',
96
+ path: '/logger',
97
+ async handler({ parsedUrl: { query } }) {
98
+ const { mode, level, enable } = query;
99
+ const applyDefaultConfig = mode === 'default';
100
+ const clearCurrentConfig = mode || level || enable;
101
+ let debugLevel;
102
+ let debugEnable;
103
+ if (applyDefaultConfig) {
104
+ debugLevel = environmentManager.get('DEBUG_LEVEL');
105
+ debugEnable = environmentManager.get('DEBUG_ENABLE');
106
+ }
107
+ if (level) {
108
+ debugLevel = level;
109
+ }
110
+ if (enable) {
111
+ debugEnable = enable;
112
+ }
113
+ if (clearCurrentConfig) {
114
+ logger.clear();
115
+ }
116
+ if (debugLevel) {
117
+ logger.setLevel(debugLevel);
118
+ }
119
+ if (debugEnable) {
120
+ each((val) => {
121
+ const [lvl, name] = val.split(':');
122
+ logger.enable(lvl, name);
123
+ }, split(',', debugEnable));
124
+ }
125
+ },
126
+ });
127
+ },
128
+ deps: {
129
+ environmentManager: ENV_MANAGER_TOKEN,
130
+ },
131
+ }),
132
+ ];
133
+ const flushLogs = (ssrLogger, logs) => {
134
+ if (logs && logs.length) {
135
+ // eslint-disable-next-line no-console
136
+ console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
137
+ logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
138
+ // eslint-disable-next-line no-console
139
+ console.groupEnd();
140
+ }
141
+ };
142
+ [
143
+ provide({
144
+ provide: COMBINE_REDUCERS,
145
+ multi: true,
146
+ useValue: LogStore,
147
+ }),
148
+ provide({
149
+ provide: commandLineListTokens.customerStart,
150
+ multi: true,
151
+ useFactory: ({ logger, store }) => {
152
+ return function rehydrateSsrDevLogs() {
153
+ const logs = store.getState(LogStore);
154
+ const ssrLogger = logger({
155
+ name: 'ssr-logger',
156
+ // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
157
+ beforeReporters: [],
158
+ reporters: [new BrowserReporter()],
159
+ extensions: [new DevLogsExtension(logs)],
160
+ });
161
+ flushLogs(ssrLogger, logs);
162
+ };
163
+ },
164
+ deps: {
165
+ logger: LOGGER_TOKEN,
166
+ store: STORE_TOKEN,
167
+ },
168
+ }),
169
+ ];
170
+
171
+ export { DevLogsExtension, DevLogsReporter, serverProviders };
package/lib/devLogs.js ADDED
@@ -0,0 +1,182 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var papi = require('@tramvai/papi');
6
+ var core = require('@tramvai/core');
7
+ var tokensCommon = require('@tramvai/tokens-common');
8
+ var logger = require('@tinkoff/logger');
9
+ var tokensServer = require('@tramvai/tokens-server');
10
+ var moduleEnvironment = require('@tramvai/module-environment');
11
+ var each = require('@tinkoff/utils/array/each');
12
+ var split = require('@tinkoff/utils/string/split');
13
+ var LogStore = require('./LogStore.js');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var each__default = /*#__PURE__*/_interopDefaultLegacy(each);
18
+ var split__default = /*#__PURE__*/_interopDefaultLegacy(split);
19
+
20
+ class DevLogsReporter {
21
+ constructor() {
22
+ this.logs = [];
23
+ }
24
+ log(logObj) {
25
+ this.logs.push(logObj);
26
+ }
27
+ start() {
28
+ this.reset();
29
+ }
30
+ reset() {
31
+ this.logs = [];
32
+ }
33
+ flush() {
34
+ const flushed = this.logs;
35
+ this.reset();
36
+ return flushed;
37
+ }
38
+ }
39
+ class DevLogsExtension {
40
+ constructor(logs) {
41
+ this.logs = [];
42
+ this.logs = logs;
43
+ }
44
+ extend(logObj) {
45
+ const [index] = logObj.args;
46
+ // @ts-ignore
47
+ return this.logs[index];
48
+ }
49
+ }
50
+ const serverProviders = [
51
+ core.provide({
52
+ provide: tokensCommon.LOGGER_INIT_HOOK,
53
+ multi: true,
54
+ useFactory({ reporter }) {
55
+ return (loggerInstance) => {
56
+ loggerInstance.addReporter(reporter);
57
+ };
58
+ },
59
+ deps: {
60
+ reporter: 'ssrDevReporter',
61
+ },
62
+ }),
63
+ core.provide({
64
+ provide: 'ssrDevReporter',
65
+ scope: core.Scope.SINGLETON,
66
+ useClass: DevLogsReporter,
67
+ }),
68
+ core.provide({
69
+ provide: tokensCommon.COMBINE_REDUCERS,
70
+ multi: true,
71
+ useValue: LogStore.LogStore,
72
+ }),
73
+ core.provide({
74
+ provide: core.commandLineListTokens.customerStart,
75
+ multi: true,
76
+ useFactory: ({ reporter }) => {
77
+ return function startSsrLogs() {
78
+ reporter.start();
79
+ };
80
+ },
81
+ deps: {
82
+ reporter: 'ssrDevReporter',
83
+ },
84
+ }),
85
+ core.provide({
86
+ provide: core.commandLineListTokens.generatePage,
87
+ multi: true,
88
+ useFactory: ({ context, reporter }) => {
89
+ const logs = reporter.flush();
90
+ return function endSsrLogs() {
91
+ return context.dispatch(LogStore.setLogs(logs));
92
+ };
93
+ },
94
+ deps: {
95
+ context: tokensCommon.CONTEXT_TOKEN,
96
+ reporter: 'ssrDevReporter',
97
+ },
98
+ }),
99
+ core.provide({
100
+ provide: tokensServer.SERVER_MODULE_PAPI_PRIVATE_ROUTE,
101
+ multi: true,
102
+ useFactory: ({ environmentManager }) => {
103
+ return papi.createPapiMethod({
104
+ method: 'get',
105
+ path: '/logger',
106
+ async handler({ parsedUrl: { query } }) {
107
+ const { mode, level, enable } = query;
108
+ const applyDefaultConfig = mode === 'default';
109
+ const clearCurrentConfig = mode || level || enable;
110
+ let debugLevel;
111
+ let debugEnable;
112
+ if (applyDefaultConfig) {
113
+ debugLevel = environmentManager.get('DEBUG_LEVEL');
114
+ debugEnable = environmentManager.get('DEBUG_ENABLE');
115
+ }
116
+ if (level) {
117
+ debugLevel = level;
118
+ }
119
+ if (enable) {
120
+ debugEnable = enable;
121
+ }
122
+ if (clearCurrentConfig) {
123
+ logger.logger.clear();
124
+ }
125
+ if (debugLevel) {
126
+ logger.logger.setLevel(debugLevel);
127
+ }
128
+ if (debugEnable) {
129
+ each__default["default"]((val) => {
130
+ const [lvl, name] = val.split(':');
131
+ logger.logger.enable(lvl, name);
132
+ }, split__default["default"](',', debugEnable));
133
+ }
134
+ },
135
+ });
136
+ },
137
+ deps: {
138
+ environmentManager: moduleEnvironment.ENV_MANAGER_TOKEN,
139
+ },
140
+ }),
141
+ ];
142
+ const flushLogs = (ssrLogger, logs) => {
143
+ if (logs && logs.length) {
144
+ // eslint-disable-next-line no-console
145
+ console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
146
+ logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
147
+ // eslint-disable-next-line no-console
148
+ console.groupEnd();
149
+ }
150
+ };
151
+ [
152
+ core.provide({
153
+ provide: tokensCommon.COMBINE_REDUCERS,
154
+ multi: true,
155
+ useValue: LogStore.LogStore,
156
+ }),
157
+ core.provide({
158
+ provide: core.commandLineListTokens.customerStart,
159
+ multi: true,
160
+ useFactory: ({ logger: logger$1, store }) => {
161
+ return function rehydrateSsrDevLogs() {
162
+ const logs = store.getState(LogStore.LogStore);
163
+ const ssrLogger = logger$1({
164
+ name: 'ssr-logger',
165
+ // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
166
+ beforeReporters: [],
167
+ reporters: [new logger.BrowserReporter()],
168
+ extensions: [new DevLogsExtension(logs)],
169
+ });
170
+ flushLogs(ssrLogger, logs);
171
+ };
172
+ },
173
+ deps: {
174
+ logger: tokensCommon.LOGGER_TOKEN,
175
+ store: tokensCommon.STORE_TOKEN,
176
+ },
177
+ }),
178
+ ];
179
+
180
+ exports.DevLogsExtension = DevLogsExtension;
181
+ exports.DevLogsReporter = DevLogsReporter;
182
+ exports.serverProviders = serverProviders;
package/lib/server.es.js CHANGED
@@ -3,180 +3,14 @@ import each from '@tinkoff/utils/array/each';
3
3
  import split from '@tinkoff/utils/string/split';
4
4
  import { hostname } from 'os';
5
5
  import env from 'std-env';
6
- import { provide, Scope, commandLineListTokens, Module } from '@tramvai/core';
7
- import { LOGGER_INIT_HOOK, COMBINE_REDUCERS, CONTEXT_TOKEN, LOGGER_TOKEN, STORE_TOKEN } from '@tramvai/tokens-common';
6
+ import { Module, Scope } from '@tramvai/core';
7
+ import { LOGGER_TOKEN, LOGGER_INIT_HOOK } from '@tramvai/tokens-common';
8
8
  export { LOGGER_TOKEN } from '@tramvai/tokens-common';
9
- import { ENV_MANAGER_TOKEN, ENV_USED_TOKEN } from '@tramvai/module-environment';
10
- import { logger as logger$1, BrowserReporter, NodeBasicReporter, NodeDevReporter, JSONReporter, createLoggerFactory, LEVELS } from '@tinkoff/logger';
11
- import { createPapiMethod } from '@tramvai/papi';
12
- import { SERVER_MODULE_PAPI_PRIVATE_ROUTE } from '@tramvai/tokens-server';
13
- import { createEvent, createReducer } from '@tramvai/state';
14
-
15
- const setLogs = createEvent('setLogs');
16
- const LogStore = createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
17
-
18
- class DevLogsReporter {
19
- constructor() {
20
- this.logs = [];
21
- }
22
- log(logObj) {
23
- this.logs.push(logObj);
24
- }
25
- start() {
26
- this.reset();
27
- }
28
- reset() {
29
- this.logs = [];
30
- }
31
- flush() {
32
- const flushed = this.logs;
33
- this.reset();
34
- return flushed;
35
- }
36
- }
37
- class DevLogsExtension {
38
- constructor(logs) {
39
- this.logs = [];
40
- this.logs = logs;
41
- }
42
- extend(logObj) {
43
- const [index] = logObj.args;
44
- // @ts-ignore
45
- return this.logs[index];
46
- }
47
- }
48
- const serverProviders = [
49
- provide({
50
- provide: LOGGER_INIT_HOOK,
51
- multi: true,
52
- useFactory({ reporter }) {
53
- return (loggerInstance) => {
54
- loggerInstance.addReporter(reporter);
55
- };
56
- },
57
- deps: {
58
- reporter: 'ssrDevReporter',
59
- },
60
- }),
61
- provide({
62
- provide: 'ssrDevReporter',
63
- scope: Scope.SINGLETON,
64
- useClass: DevLogsReporter,
65
- }),
66
- provide({
67
- provide: COMBINE_REDUCERS,
68
- multi: true,
69
- useValue: LogStore,
70
- }),
71
- provide({
72
- provide: commandLineListTokens.customerStart,
73
- multi: true,
74
- useFactory: ({ reporter }) => {
75
- return function startSsrLogs() {
76
- reporter.start();
77
- };
78
- },
79
- deps: {
80
- reporter: 'ssrDevReporter',
81
- },
82
- }),
83
- provide({
84
- provide: commandLineListTokens.generatePage,
85
- multi: true,
86
- useFactory: ({ context, reporter }) => {
87
- const logs = reporter.flush();
88
- return function endSsrLogs() {
89
- return context.dispatch(setLogs(logs));
90
- };
91
- },
92
- deps: {
93
- context: CONTEXT_TOKEN,
94
- reporter: 'ssrDevReporter',
95
- },
96
- }),
97
- provide({
98
- provide: SERVER_MODULE_PAPI_PRIVATE_ROUTE,
99
- multi: true,
100
- useFactory: ({ environmentManager }) => {
101
- return createPapiMethod({
102
- method: 'get',
103
- path: '/logger',
104
- async handler({ parsedUrl: { query } }) {
105
- const { mode, level, enable } = query;
106
- const applyDefaultConfig = mode === 'default';
107
- const clearCurrentConfig = mode || level || enable;
108
- let debugLevel;
109
- let debugEnable;
110
- if (applyDefaultConfig) {
111
- debugLevel = environmentManager.get('DEBUG_LEVEL');
112
- debugEnable = environmentManager.get('DEBUG_ENABLE');
113
- }
114
- if (level) {
115
- debugLevel = level;
116
- }
117
- if (enable) {
118
- debugEnable = enable;
119
- }
120
- if (clearCurrentConfig) {
121
- logger$1.clear();
122
- }
123
- if (debugLevel) {
124
- logger$1.setLevel(debugLevel);
125
- }
126
- if (debugEnable) {
127
- each((val) => {
128
- const [lvl, name] = val.split(':');
129
- logger$1.enable(lvl, name);
130
- }, split(',', debugEnable));
131
- }
132
- },
133
- });
134
- },
135
- deps: {
136
- environmentManager: ENV_MANAGER_TOKEN,
137
- },
138
- }),
139
- ];
140
- const flushLogs = (ssrLogger, logs) => {
141
- if (logs && logs.length) {
142
- // eslint-disable-next-line no-console
143
- console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
144
- logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
145
- // eslint-disable-next-line no-console
146
- console.groupEnd();
147
- }
148
- };
149
- [
150
- provide({
151
- provide: COMBINE_REDUCERS,
152
- multi: true,
153
- useValue: LogStore,
154
- }),
155
- provide({
156
- provide: commandLineListTokens.customerStart,
157
- multi: true,
158
- useFactory: ({ logger, store }) => {
159
- return function rehydrateSsrDevLogs() {
160
- const logs = store.getState(LogStore);
161
- const ssrLogger = logger({
162
- name: 'ssr-logger',
163
- // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
164
- beforeReporters: [],
165
- reporters: [new BrowserReporter()],
166
- extensions: [new DevLogsExtension(logs)],
167
- });
168
- flushLogs(ssrLogger, logs);
169
- };
170
- },
171
- deps: {
172
- logger: LOGGER_TOKEN,
173
- store: STORE_TOKEN,
174
- },
175
- }),
176
- ];
177
-
178
- const LOGGER_NAME = '';
179
- const LOGGER_KEY = 'tramvai';
9
+ import { ENV_USED_TOKEN } from '@tramvai/module-environment';
10
+ import { NodeBasicReporter, NodeDevReporter, JSONReporter, createLoggerFactory, LEVELS } from '@tinkoff/logger';
11
+ import { serverProviders } from './devLogs.es.js';
12
+ import { LOGGER_NAME, LOGGER_KEY } from './constants.es.js';
13
+ export { LogStore, setLogs } from './LogStore.es.js';
180
14
 
181
15
  const DefaultReporter = env.ci || env.test ? NodeBasicReporter : NodeDevReporter;
182
16
  const reporter = process.env.DEBUG_PLAIN || process.env.NODE_ENV !== 'production'
@@ -252,4 +86,4 @@ LogModule = __decorate([
252
86
  })
253
87
  ], LogModule);
254
88
 
255
- export { LogModule, LogStore, factory, logger, setLogs };
89
+ export { LogModule, factory, logger };
package/lib/server.js CHANGED
@@ -11,9 +11,9 @@ var core = require('@tramvai/core');
11
11
  var tokensCommon = require('@tramvai/tokens-common');
12
12
  var moduleEnvironment = require('@tramvai/module-environment');
13
13
  var logger$1 = require('@tinkoff/logger');
14
- var papi = require('@tramvai/papi');
15
- var tokensServer = require('@tramvai/tokens-server');
16
- var state = require('@tramvai/state');
14
+ var devLogs = require('./devLogs.js');
15
+ var constants = require('./constants.js');
16
+ var LogStore = require('./LogStore.js');
17
17
 
18
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
19
 
@@ -21,179 +21,13 @@ var each__default = /*#__PURE__*/_interopDefaultLegacy(each);
21
21
  var split__default = /*#__PURE__*/_interopDefaultLegacy(split);
22
22
  var env__default = /*#__PURE__*/_interopDefaultLegacy(env);
23
23
 
24
- const setLogs = state.createEvent('setLogs');
25
- const LogStore = state.createReducer('devLogs', []).on(setLogs, (_, logs) => logs);
26
-
27
- class DevLogsReporter {
28
- constructor() {
29
- this.logs = [];
30
- }
31
- log(logObj) {
32
- this.logs.push(logObj);
33
- }
34
- start() {
35
- this.reset();
36
- }
37
- reset() {
38
- this.logs = [];
39
- }
40
- flush() {
41
- const flushed = this.logs;
42
- this.reset();
43
- return flushed;
44
- }
45
- }
46
- class DevLogsExtension {
47
- constructor(logs) {
48
- this.logs = [];
49
- this.logs = logs;
50
- }
51
- extend(logObj) {
52
- const [index] = logObj.args;
53
- // @ts-ignore
54
- return this.logs[index];
55
- }
56
- }
57
- const serverProviders = [
58
- core.provide({
59
- provide: tokensCommon.LOGGER_INIT_HOOK,
60
- multi: true,
61
- useFactory({ reporter }) {
62
- return (loggerInstance) => {
63
- loggerInstance.addReporter(reporter);
64
- };
65
- },
66
- deps: {
67
- reporter: 'ssrDevReporter',
68
- },
69
- }),
70
- core.provide({
71
- provide: 'ssrDevReporter',
72
- scope: core.Scope.SINGLETON,
73
- useClass: DevLogsReporter,
74
- }),
75
- core.provide({
76
- provide: tokensCommon.COMBINE_REDUCERS,
77
- multi: true,
78
- useValue: LogStore,
79
- }),
80
- core.provide({
81
- provide: core.commandLineListTokens.customerStart,
82
- multi: true,
83
- useFactory: ({ reporter }) => {
84
- return function startSsrLogs() {
85
- reporter.start();
86
- };
87
- },
88
- deps: {
89
- reporter: 'ssrDevReporter',
90
- },
91
- }),
92
- core.provide({
93
- provide: core.commandLineListTokens.generatePage,
94
- multi: true,
95
- useFactory: ({ context, reporter }) => {
96
- const logs = reporter.flush();
97
- return function endSsrLogs() {
98
- return context.dispatch(setLogs(logs));
99
- };
100
- },
101
- deps: {
102
- context: tokensCommon.CONTEXT_TOKEN,
103
- reporter: 'ssrDevReporter',
104
- },
105
- }),
106
- core.provide({
107
- provide: tokensServer.SERVER_MODULE_PAPI_PRIVATE_ROUTE,
108
- multi: true,
109
- useFactory: ({ environmentManager }) => {
110
- return papi.createPapiMethod({
111
- method: 'get',
112
- path: '/logger',
113
- async handler({ parsedUrl: { query } }) {
114
- const { mode, level, enable } = query;
115
- const applyDefaultConfig = mode === 'default';
116
- const clearCurrentConfig = mode || level || enable;
117
- let debugLevel;
118
- let debugEnable;
119
- if (applyDefaultConfig) {
120
- debugLevel = environmentManager.get('DEBUG_LEVEL');
121
- debugEnable = environmentManager.get('DEBUG_ENABLE');
122
- }
123
- if (level) {
124
- debugLevel = level;
125
- }
126
- if (enable) {
127
- debugEnable = enable;
128
- }
129
- if (clearCurrentConfig) {
130
- logger$1.logger.clear();
131
- }
132
- if (debugLevel) {
133
- logger$1.logger.setLevel(debugLevel);
134
- }
135
- if (debugEnable) {
136
- each__default["default"]((val) => {
137
- const [lvl, name] = val.split(':');
138
- logger$1.logger.enable(lvl, name);
139
- }, split__default["default"](',', debugEnable));
140
- }
141
- },
142
- });
143
- },
144
- deps: {
145
- environmentManager: moduleEnvironment.ENV_MANAGER_TOKEN,
146
- },
147
- }),
148
- ];
149
- const flushLogs = (ssrLogger, logs) => {
150
- if (logs && logs.length) {
151
- // eslint-disable-next-line no-console
152
- console.groupCollapsed('%c🚀 Tramvai SSR Logs', 'font-size: 110%');
153
- logs.forEach((logObj, index) => ssrLogger[logObj.type](index));
154
- // eslint-disable-next-line no-console
155
- console.groupEnd();
156
- }
157
- };
158
- [
159
- core.provide({
160
- provide: tokensCommon.COMBINE_REDUCERS,
161
- multi: true,
162
- useValue: LogStore,
163
- }),
164
- core.provide({
165
- provide: core.commandLineListTokens.customerStart,
166
- multi: true,
167
- useFactory: ({ logger, store }) => {
168
- return function rehydrateSsrDevLogs() {
169
- const logs = store.getState(LogStore);
170
- const ssrLogger = logger({
171
- name: 'ssr-logger',
172
- // сетим пустой массив в beforeReporters, чтобы не подтягивать настройки рутового логгера с RemoteReporter
173
- beforeReporters: [],
174
- reporters: [new logger$1.BrowserReporter()],
175
- extensions: [new DevLogsExtension(logs)],
176
- });
177
- flushLogs(ssrLogger, logs);
178
- };
179
- },
180
- deps: {
181
- logger: tokensCommon.LOGGER_TOKEN,
182
- store: tokensCommon.STORE_TOKEN,
183
- },
184
- }),
185
- ];
186
-
187
- const LOGGER_NAME = '';
188
- const LOGGER_KEY = 'tramvai';
189
-
190
24
  const DefaultReporter = env__default["default"].ci || env__default["default"].test ? logger$1.NodeBasicReporter : logger$1.NodeDevReporter;
191
25
  const reporter = process.env.DEBUG_PLAIN || process.env.NODE_ENV !== 'production'
192
26
  ? new DefaultReporter()
193
27
  : new logger$1.JSONReporter();
194
28
  const logger = logger$1.createLoggerFactory({
195
- name: LOGGER_NAME,
196
- key: LOGGER_KEY,
29
+ name: constants.LOGGER_NAME,
30
+ key: constants.LOGGER_KEY,
197
31
  reporters: [reporter],
198
32
  defaults: {
199
33
  pid: process.pid,
@@ -229,7 +63,7 @@ exports.LogModule = class LogModule {
229
63
  exports.LogModule = tslib.__decorate([
230
64
  core.Module({
231
65
  providers: [
232
- ...(process.env.NODE_ENV === 'development' ? serverProviders : []),
66
+ ...(process.env.NODE_ENV === 'development' ? devLogs.serverProviders : []),
233
67
  {
234
68
  provide: tokensCommon.LOGGER_TOKEN,
235
69
  scope: core.Scope.SINGLETON,
@@ -265,7 +99,7 @@ Object.defineProperty(exports, 'LOGGER_TOKEN', {
265
99
  enumerable: true,
266
100
  get: function () { return tokensCommon.LOGGER_TOKEN; }
267
101
  });
268
- exports.LogStore = LogStore;
102
+ exports.LogStore = LogStore.LogStore;
103
+ exports.setLogs = LogStore.setLogs;
269
104
  exports.factory = factory;
270
105
  exports.logger = logger;
271
- exports.setLogs = setLogs;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/module-log",
3
- "version": "2.70.1",
3
+ "version": "2.72.3",
4
4
  "description": "",
5
5
  "browser": "lib/browser.js",
6
6
  "main": "lib/server.js",
@@ -14,21 +14,20 @@
14
14
  "url": "git@github.com:Tinkoff/tramvai.git"
15
15
  },
16
16
  "scripts": {
17
- "build": "tramvai-build --for-publish",
18
- "watch": "tsc -w",
19
- "build-for-publish": "true"
17
+ "build": "tramvai-build --forPublish --preserveModules",
18
+ "watch": "tsc -w"
20
19
  },
21
20
  "dependencies": {
22
- "@tinkoff/logger": "0.10.57"
21
+ "@tinkoff/logger": "0.10.58"
23
22
  },
24
23
  "peerDependencies": {
25
24
  "@tinkoff/utils": "^2.1.2",
26
- "@tramvai/core": "2.70.1",
27
- "@tramvai/module-environment": "2.70.1",
28
- "@tramvai/papi": "2.70.1",
29
- "@tramvai/state": "2.70.1",
30
- "@tramvai/tokens-common": "2.70.1",
31
- "@tramvai/tokens-server": "2.70.1",
25
+ "@tramvai/core": "2.72.3",
26
+ "@tramvai/module-environment": "2.72.3",
27
+ "@tramvai/papi": "2.72.3",
28
+ "@tramvai/state": "2.72.3",
29
+ "@tramvai/tokens-common": "2.72.3",
30
+ "@tramvai/tokens-server": "2.72.3",
32
31
  "std-env": "^2.2.1",
33
32
  "tslib": "^2.4.0"
34
33
  },