From 0e24123b5838682ded721ac0db6daa354f6d455c Mon Sep 17 00:00:00 2001 From: FoxxMD Date: Thu, 28 Mar 2024 12:21:54 -0400 Subject: [PATCH] feat: Relax isLogOptions validation to ignore unknown properties --- package-lock.json | 4 ++-- package.json | 2 +- src/funcs.ts | 2 +- tests/index.test.ts | 5 +++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2119b1b..8e7d43e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@foxxmd/logging", - "version": "0.1.13", + "version": "0.1.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@foxxmd/logging", - "version": "0.1.13", + "version": "0.1.14", "license": "MIT", "dependencies": { "pino": "^8.19.0", diff --git a/package.json b/package.json index 776e8d5..fcb6d1b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@foxxmd/logging", "type": "module", - "version": "0.1.13", + "version": "0.1.14", "repository": "https://github.com/foxxmd/logging", "description": "A typed, opinionated, batteries-included, Pino-based logging solution for backend TS/JS projects", "scripts": { diff --git a/src/funcs.ts b/src/funcs.ts index 4a7d2cc..65189f3 100644 --- a/src/funcs.ts +++ b/src/funcs.ts @@ -13,7 +13,7 @@ import {isAbsolute, resolve} from 'node:path'; export const isLogOptions = (obj: object = {}): obj is LogOptions => { return Object.entries(obj).every(([key, val]) => { - if (val === undefined) { + if (val === undefined || !['file','console','level'].includes(key)) { return true; } const t = typeof val; diff --git a/tests/index.test.ts b/tests/index.test.ts index 4b5d839..1267365 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -180,6 +180,11 @@ describe('Config Parsing', function () { expect(() => parseLogOptions()).to.not.throw; }) + it('does not throw when object contains unknown properties', function () { + // @ts-expect-error + expect(() => parseLogOptions({extraProp: 'test'})).to.not.throw; + }) + it('does not throw when a valid level is given', function () { for (const level of LOG_LEVEL_NAMES) { expect(() => parseLogOptions({level})).to.not.throw;