UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

34 lines (33 loc) 1.18 kB
import { isFunction } from '../guards/non-primitives.js'; import { isNumber } from '../guards/primitives.js'; import { Chronos } from './Chronos.js'; const $chronos = (valueOrYear, month, date, hours, minutes, seconds, ms) => { if (isNumber(valueOrYear) && isNumber(month)) { return new Chronos(valueOrYear, month, date ?? 1, hours ?? 0, minutes ?? 0, seconds ?? 0, ms ?? 0); } else { return new Chronos(valueOrYear); } }; function _isChronosStaticKey(prop) { return (prop in Chronos && prop !== 'prototype' && prop !== 'name' && prop !== 'length' && isFunction(Chronos[prop])); } export const chronos = new Proxy($chronos, { get(target, prop, receiver) { if (prop in target) { return Reflect.get(target, prop, receiver); } if (_isChronosStaticKey(prop)) { return Chronos[prop]; } return Reflect.get(target, prop, receiver); }, has(target, prop) { return prop in target || _isChronosStaticKey(prop); }, }); export { chronos as chronosjs, chronos as chronosts, chronos as chronus, chronos as chronusjs, chronos as chronusts, };