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
JavaScript
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, };