nhb-toolbox
Version:
A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.
41 lines (40 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = void 0;
const non_primitives_1 = require("../guards/non-primitives");
const primitives_1 = require("../guards/primitives");
const Chronos_1 = require("./Chronos");
const $chronos = (valueOrYear, month, date, hours, minutes, seconds, ms) => {
if ((0, primitives_1.isNumber)(valueOrYear) && (0, primitives_1.isNumber)(month)) {
return new Chronos_1.Chronos(valueOrYear, month, date ?? 1, hours ?? 0, minutes ?? 0, seconds ?? 0, ms ?? 0);
}
else {
return new Chronos_1.Chronos(valueOrYear);
}
};
function _isChronosStaticKey(prop) {
return (prop in Chronos_1.Chronos &&
prop !== 'prototype' &&
prop !== 'name' &&
prop !== 'length' &&
(0, non_primitives_1.isFunction)(Chronos_1.Chronos[prop]));
}
exports.chronos = new Proxy($chronos, {
get(target, prop, receiver) {
if (prop in target) {
return Reflect.get(target, prop, receiver);
}
if (_isChronosStaticKey(prop)) {
return Chronos_1.Chronos[prop];
}
return Reflect.get(target, prop, receiver);
},
has(target, prop) {
return prop in target || _isChronosStaticKey(prop);
},
});
exports.chronosjs = exports.chronos;
exports.chronosts = exports.chronos;
exports.chronus = exports.chronos;
exports.chronusjs = exports.chronos;
exports.chronusts = exports.chronos;