Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit d07ea1e

Browse files
authored
Merge pull request #55 from AckeeCZ/feat/global-enable
✨ Add global enable to override default disable
2 parents 77dbd7f + 5ee800f commit d07ea1e

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

src/serializers.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,14 @@ const disablePaths = (paths?: string[]) => {
100100

101101
const enablePaths = (paths?: string[]) => {
102102
forEach(serializers, (value, key) => {
103+
if (paths && paths.includes(key)) {
104+
const enabledSerializer: SerializerFn = (obj: Dictionary<any>) => {
105+
const originalResult = value(obj);
106+
return Object.assign({}, originalResult, obj);
107+
};
108+
serializers[key] = enabledSerializer;
109+
return;
110+
}
103111
const affectedFields = sliceByPrefix(`${key}.`, paths);
104112

105113
if (affectedFields.length === 0) return;

src/tests/serializers.test.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,33 @@ test('Enable custom path', () => {
261261
expect(loggerWrites).toBeCalled();
262262
});
263263

264+
test('Enable all from response', () => {
265+
const loggerWrites = jest.fn();
266+
const res = {
267+
out: 'out data',
268+
test: 'test',
269+
};
270+
271+
const logger = loggerFactory({
272+
enableFields: ['res'],
273+
streams: [
274+
{
275+
stream: new Writable({
276+
write: (chunk, encoding, next) => {
277+
const json = JSON.parse(chunk);
278+
expect(json.res).toEqual(res);
279+
loggerWrites();
280+
next();
281+
},
282+
}),
283+
},
284+
],
285+
});
286+
287+
logger.info({ res });
288+
expect(loggerWrites).toBeCalled();
289+
})
290+
264291
test('Some express headers are enabled by default', () => {
265292
const loggerWrites = jest.fn();
266293
const logger = loggerFactory({

0 commit comments

Comments
 (0)