UNPKG

codess

Version:

vscode代码片段管理器,通过 本地包(本地某个文件夹) 或官网的 远程包(代码片段集合) 生成本地项目的 vscode 代码片段配置。

122 lines (121 loc) 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectUtils = void 0; const is_1 = require("../is"); class ObjectUtils { static getPro(obj, key) { if (typeof obj != 'object') { return; } let is; for (let i in obj) { is = false; switch (true) { case typeof key == 'function': is = key(i); break; case key instanceof RegExp: is = key.test(i); break; default: is = i == key; break; } if (is) { return obj[i]; } } } static clone(_data) { return JSON.parse(JSON.stringify(_data)); } static clone2(data) { if ((0, is_1.isArray)(data)) { return data.map((_) => { return ObjectUtils.clone2(_); }); } if ((0, is_1.isMap)(data)) { return new Map(ObjectUtils.clone2([...data])); } if ((0, is_1.isDate)(data)) { return new Date(data); } if ((0, is_1.isObject)(data)) { let _data = {}; for (let i in data) { _data[i] = ObjectUtils.clone2(data[i]); } return _data; } return data; } static propGet(obj, props) { props = Array.isArray(props) ? props : [props]; let o = {}; for (let key of props) { if ((0, is_1.isArray)(key)) { o[key[0]] = ObjectUtils.getPro(obj, key[1]); } else { o[key] = obj[key]; } } return o; } static same(a, b) { if (a === b) { return true; } if (typeof a != typeof b) { return a === b; } if (typeof a != 'object' || !a || !b) { return a === b; } for (let i in a) { if (!(i in b) || !ObjectUtils.same(a[i], b[i])) { return false; } } for (let i in b) { if (!(i in a) || !ObjectUtils.same(a[i], b[i])) { return false; } } return true; } static merge(a, ...bs) { for (let b of bs) { for (let i in b) { if ((0, is_1.isArray)(a[i]) && (0, is_1.isArray)(b[i])) { a[i] = [...a[i], ...b[i]]; continue; } if ((0, is_1.isObject)(a[i]) && (0, is_1.isObject)(b[i])) { ObjectUtils.merge(a[i], b[i]); continue; } a[i] = b[i]; } } return a; } static replace(a, ...bs) { for (let b of bs) { for (let i in b) { if ((0, is_1.isArray)(a[i]) && (0, is_1.isArray)(b[i])) { a[i] = [...b[i]]; continue; } if ((0, is_1.isObject)(a[i]) && (0, is_1.isObject)(b[i])) { ObjectUtils.replace(a[i], b[i]); continue; } a[i] = b[i]; } } return a; } } exports.ObjectUtils = ObjectUtils;