Skip to content

Commit 543ff9a

Browse files
author
Anton Savoskin
committed
feat: format console messages with colors and timestamp
1 parent 94b069e commit 543ff9a

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

src/commands/clean.ts

+5-9
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
import * as path from 'path';
22

33
import { Base } from '../base';
4-
import { readFile, request } from '../utils';
4+
import { readFile, request, showError, showInfo } from '../utils';
55
import { LokaliseKey } from './sync';
66

7-
const format = (time: Date) => time.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, '$1');
8-
const showError = (message: string) => console.error(`\x1b[31m${message}\x1b[0m`);
9-
const showInfo = (message: string) => console.info(`\x1b[34m[${format(new Date())}]\x1b[0m`, `${message}`);
10-
117
export default class Clean extends Base {
128
static description = 'Clean lokalise for unused translation keys';
139

@@ -31,7 +27,7 @@ export default class Clean extends Base {
3127
});
3228
return response.keys;
3329
} catch (e) {
34-
console.error(e);
30+
showError(e);
3531
}
3632
}
3733

@@ -49,7 +45,7 @@ export default class Clean extends Base {
4945
});
5046
return response.keys_removed;
5147
} catch (e) {
52-
console.error(e);
48+
showError(e);
5349
}
5450
}
5551

@@ -67,7 +63,7 @@ export default class Clean extends Base {
6763
});
6864
return response.snapshot.snapshot_id;
6965
} catch (e) {
70-
console.error(e);
66+
showError(e);
7167
}
7268
}
7369

@@ -101,7 +97,7 @@ export default class Clean extends Base {
10197
if (removedKeys) {
10298
showInfo('Unused keys removed from lokalise');
10399
} else {
104-
console.info(removedKeys);
100+
showInfo(removedKeys);
105101
}
106102
} else {
107103
showError('Something wrong with snapshot');

src/commands/extract.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { transform } from '@babel/core';
33
import * as path from 'path';
44

55
import { Base } from '../base';
6-
import { glob, posixPath, readFile, writeFile } from '../utils';
6+
import { glob, posixPath, readFile, showError, showInfo, writeFile } from '../utils';
77

88
type Message = {
99
defaultMessage: string;
@@ -93,7 +93,7 @@ export default class Extract extends Base {
9393

9494
await Extract.writeMessages(fileName, result);
9595

96-
console.info(`Messages updated: ${fileName}`);
96+
showInfo(`Messages updated: ${fileName}`);
9797
}
9898

9999
mergeMessages() {
@@ -141,7 +141,7 @@ export default class Extract extends Base {
141141
}
142142
}
143143
} catch (err) {
144-
console.error(`extractMessages: In ${filename}:\n`, err.codeFrame || err);
144+
showError(`extractMessages: In ${filename}:\n${err.codeFrame || err}`);
145145
}
146146
};
147147

src/commands/sync.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as path from 'path';
22

3-
import { readFile, request, writeFile } from '../utils';
3+
import { readFile, request, showError, writeFile } from '../utils';
44
import { Base } from '../base';
55

66
type Message = {
@@ -89,7 +89,7 @@ export default class Extract extends Base {
8989
});
9090
this.lokaliseKeys = response.keys;
9191
} catch (e) {
92-
console.error('Error while fetching strings from lokalise', e);
92+
showError(`Error while fetching strings from lokalise\n${e}`);
9393
}
9494
}
9595

@@ -116,7 +116,7 @@ export default class Extract extends Base {
116116
console.info(`Response from lokalise: ${response.statusCode}, ${response.statusMessage}`);
117117
console.info(`Errors: ${JSON.stringify(response.body.errors)}`);
118118
} catch (e) {
119-
console.error('Error while uploading strings to lokalise', e);
119+
showError(`Error while uploading strings to lokalise\n${e}`);
120120
}
121121
}
122122

src/utils.ts

+4
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,7 @@ export const request = <T>({ url, body, qs, headers = {}, ...rest }: Options) =>
5353
request.end();
5454
});
5555
};
56+
57+
const format = (time: Date) => time.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, '$1');
58+
export const showError = (message: string) => console.error(`\x1b[31m${message}\x1b[0m`);
59+
export const showInfo = (message: string) => console.info(`\x1b[34m[${format(new Date())}]\x1b[0m`, `${message}`);

0 commit comments

Comments
 (0)