From 422b3cac9301da5a4a0cad4e40dac94a825b2f7a Mon Sep 17 00:00:00 2001 From: Tsah Date: Tue, 4 Aug 2026 17:48:25 +0300 Subject: [PATCH] feat: add node logger factory and python date helpers --- node/logger.js | 16 ++++++++++++++++ python/dates.py | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 node/logger.js create mode 100644 python/dates.py diff --git a/node/logger.js b/node/logger.js new file mode 100644 index 0000000..006879d --- /dev/null +++ b/node/logger.js @@ -0,0 +1,16 @@ +const LEVELS = ["debug", "info", "warn", "error"]; + +export function createLogger(minLevel = "info") { + const threshold = LEVELS.indexOf(minLevel); + if (threshold === -1) { + throw new RangeError(`unknown level: ${minLevel}`); + } + return LEVELS.reduce((logger, level, index) => { + logger[level] = (message) => { + if (index >= threshold) { + console.log(`[${level.toUpperCase()}] ${message}`); + } + }; + return logger; + }, {}); +} diff --git a/python/dates.py b/python/dates.py new file mode 100644 index 0000000..c68cdda --- /dev/null +++ b/python/dates.py @@ -0,0 +1,21 @@ +from datetime import date, timedelta + + +def days_between(start, end): + if end < start: + raise ValueError("end must not precede start") + return (end - start).days + + +def add_business_days(start, count): + current = start + remaining = count + while remaining > 0: + current += timedelta(days=1) + if current.weekday() < 5: + remaining -= 1 + return current + + +def is_weekend(value): + return value.weekday() >= 5