Skip to content

Commit bbc9914

Browse files
committed
feat: Logger library
1 parent 1bce710 commit bbc9914

File tree

4 files changed

+102
-10
lines changed

4 files changed

+102
-10
lines changed

src/config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const config = (() => {
2+
const defaultConfig = {
3+
success: {
4+
emoji: '✅'
5+
},
6+
info: {
7+
emoji: 'ℹ️'
8+
},
9+
warn: {
10+
emoji: '⚠️'
11+
},
12+
error: {
13+
emoji: '🚫'
14+
}
15+
};
16+
17+
const setEmoji = ({ type, emoji }) => {
18+
defaultConfig[type].emoji = emoji;
19+
};
20+
21+
const getEmoji = type => defaultConfig[type].emoji;
22+
23+
return {
24+
setEmoji,
25+
getEmoji
26+
};
27+
})();
28+
29+
export default config;

src/index.js

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1-
export function sum(x, y) {
2-
return x + y;
3-
}
1+
import config from './config';
2+
3+
const Logger = (() => {
4+
function createMessage(type, message) {
5+
const emoji = config.getEmoji(type);
6+
return `${emoji} ${message}`;
7+
}
8+
9+
function success(message, ...args) {
10+
const logMessage = createMessage('success', message);
11+
console.log.call(console, logMessage, ...args);
12+
13+
return logMessage;
14+
}
15+
16+
function info(message, ...args) {
17+
const logMessage = createMessage('info', message);
18+
console.log.call(console, logMessage, ...args);
19+
20+
return logMessage;
21+
}
22+
23+
function warn(message, ...args) {
24+
const logMessage = createMessage('warn', message);
25+
console.warn.call(console, logMessage, ...args);
26+
27+
return logMessage;
28+
}
29+
30+
function error(message, ...args) {
31+
const logMessage = createMessage('error', message);
32+
console.error.call(console, logMessage, ...args);
33+
34+
return logMessage;
35+
}
36+
37+
return {
38+
success,
39+
info,
40+
warn,
41+
error,
42+
setEmoji: config.setEmoji
43+
};
44+
})();
45+
46+
export default Logger;

tests/logger.test.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import Logger from '../src';
2+
3+
describe('Logger', () => {
4+
test('should create Logger.success', () => {
5+
expect(Logger.success('Success message example')).toEqual(
6+
'✅ Success message example'
7+
);
8+
});
9+
10+
test('should create Logger.info', () => {
11+
expect(Logger.info('Informational message example')).toEqual(
12+
'ℹ️ Informational message example'
13+
);
14+
});
15+
16+
test('should create Logger.warn', () => {
17+
expect(Logger.warn('Warning message example')).toEqual(
18+
'⚠️ Warning message example'
19+
);
20+
});
21+
22+
test('should create Logger.error', () => {
23+
expect(Logger.error('Error message example')).toEqual(
24+
'🚫 Error message example'
25+
);
26+
});
27+
});

tests/sum.test.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)