django-vue3-admin-web/node_modules/date-holidays-parser/lib/utils.cjs
2025-10-20 21:21:14 +08:00

77 lines
1.5 KiB
JavaScript

'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var deepmerge = require('deepmerge');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var deepmerge__default = /*#__PURE__*/_interopDefaultLegacy(deepmerge);
/**
* lodash compatible methods
*/
/**
* get value at `keys` from `object`
* @example
* get({a: {b: {c: 2}}}, ['a', 'b', 'c']) //> 2
*/
const get = (obj, keys = [], def) => {
let o = obj;
if (typeof keys === 'string') keys = keys.split('.');
for (const key of keys) {
if (o && o[key]) { o = o[key]; } else { return def }
}
return o
};
/**
* set `value` at `keys` from `object`
* @example
* set({a: {b: {c: 2}}}, ['a', 'b', 'c'], 3)
*/
const set = (obj, keys = [], value) => {
let key;
let ref;
let o = obj;
for (key of keys) {
ref = o;
if (toString.call(o[key]) !== '[object Object]') o[key] = {};
o = o[key];
}
ref[key] = value;
return obj
};
/**
* omit `object` properties `props`
*/
const omit = (object, props = []) => Object.keys(object)
.filter(p => !~props.indexOf(p))
.reduce((o, p) => {
p in object && (o[p] = object[p]);
return o
}, {});
const merge = (...args) => deepmerge__default["default"].all(args);
const toNumber = (num, def) => {
const _num = Number(num);
return isNaN(_num) ? def : _num
};
var _ = {
get,
set,
omit,
merge
};
exports["default"] = _;
exports.get = get;
exports.merge = merge;
exports.omit = omit;
exports.set = set;
exports.toNumber = toNumber;