Last change
on this file was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
1.2 KB
|
Line | |
---|
1 | function maxFileSizeUnitTransform(maxLogSize) {
|
---|
2 | if (typeof maxLogSize === 'number' && Number.isInteger(maxLogSize)) {
|
---|
3 | return maxLogSize;
|
---|
4 | }
|
---|
5 |
|
---|
6 | const units = {
|
---|
7 | K: 1024,
|
---|
8 | M: 1024 * 1024,
|
---|
9 | G: 1024 * 1024 * 1024,
|
---|
10 | };
|
---|
11 | const validUnit = Object.keys(units);
|
---|
12 | const unit = maxLogSize.substr(maxLogSize.length - 1).toLocaleUpperCase();
|
---|
13 | const value = maxLogSize.substring(0, maxLogSize.length - 1).trim();
|
---|
14 |
|
---|
15 | if (validUnit.indexOf(unit) < 0 || !Number.isInteger(Number(value))) {
|
---|
16 | throw Error(`maxLogSize: "${maxLogSize}" is invalid`);
|
---|
17 | } else {
|
---|
18 | return value * units[unit];
|
---|
19 | }
|
---|
20 | }
|
---|
21 |
|
---|
22 | function adapter(configAdapter, config) {
|
---|
23 | const newConfig = Object.assign({}, config);
|
---|
24 | Object.keys(configAdapter).forEach((key) => {
|
---|
25 | if (newConfig[key]) {
|
---|
26 | newConfig[key] = configAdapter[key](config[key]);
|
---|
27 | }
|
---|
28 | });
|
---|
29 | return newConfig;
|
---|
30 | }
|
---|
31 |
|
---|
32 | function fileAppenderAdapter(config) {
|
---|
33 | const configAdapter = {
|
---|
34 | maxLogSize: maxFileSizeUnitTransform
|
---|
35 | };
|
---|
36 | return adapter(configAdapter, config);
|
---|
37 | }
|
---|
38 |
|
---|
39 | const adapters = {
|
---|
40 | file: fileAppenderAdapter,
|
---|
41 | fileSync: fileAppenderAdapter
|
---|
42 | };
|
---|
43 |
|
---|
44 | module.exports.modifyConfig = config => (adapters[config.type] ? adapters[config.type](config) : config);
|
---|
Note:
See
TracBrowser
for help on using the repository browser.