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
|
Rev | Line | |
---|
[6a3a178] | 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.