{"version":3,"file":"arrobj.mjs","sources":["../../src/arrobj.ts"],"sourcesContent":["/**\n * @ Author: Hanrea\n * @ version: 2023-03-06 13:14:21\n * @ copyright: Vecmat (c) - <hi(at)vecmat.com>\n */\nimport lodash from \"lodash\";\nimport { IObjExt } from \"./type.js\";\n\n\n/**\n * Determines whether value is an element of array arr,\n * only determine the same value with the element, do not determine the type\n *\n * @param {*} value\n * @param {any[]} arr\n * @returns {*} {boolean}\n */\nexport function inArray(value: any, arr: any[]): boolean {\n    const len = arr.length;\n    for (let i = 0; i < len; i++) {\n        // tslint:disable-next-line: triple-equals\n        if (arr[i] == value) return true;\n    }\n    return false;\n}\n\n/**\n * Removes the specified index element from the array\n *\n * @param {any[]} arr\n * @param {number} index\n * @returns {*}  {any[]}\n */\nexport function arrRemove(arr: any[], index: number): any[] {\n    return lodash.remove(arr, (n, i) => {\n        return i !== index;\n    });\n}\n\n/**\n * The object obj prototype instance conversion to organize the data structure stored in the object,\n * access to this object in the v8 engine will be faster\n * @param {IObjExt} obj\n */\nexport function toFastProperties(obj: IObjExt) {\n    // eslint-disable-next-line no-empty-function\n    const f: any = function f() {};\n    f.prototype = obj;\n    // tslint:disable-next-line: no-unused-expression\n    new f();\n}\n\n/**\n * Copy the source, deep deep to true depth copy\n *\n * @param {IObjExt} source\n * @param {boolean} [deep=false]\n * @returns {*} {IObjExt}\n */\nexport function clone(source: IObjExt, deep = false): IObjExt {\n    if (deep) return lodash.cloneDeep(source);\n    else return lodash.clone(source);\n}\n\n/**\n * So that the target object inherits the source,\n * deep depth is true depth inheritance\n *\n * @param {IObjExt} source\n * @param {IObjExt} target\n * @param {boolean} [deep=false]\n * @returns {*}  {IObjExt}\n */\nexport function extendObj(source: IObjExt, target: IObjExt, deep = false): IObjExt {\n    if (deep) return lodash.merge(lodash.cloneDeep(source), target);\n    else return lodash.assignIn(source, target);\n}\n\n/**\n * Short for hasOwnProperty\n *\n * @export\n * @param {IObjExt} obj\n * @param {string} property\n * @returns {*}  {boolean}\n */\nexport function hasOwn(obj: IObjExt, property: string) {\n    return Object.prototype.hasOwnProperty.call(obj, property);\n}\n\n/**\n * Short for Object.defineProperty,\n * the property is getter when setter is false\n *\n * @param {IObjExt} obj\n * @param {string} property\n * @param {*} value\n * @param {boolean} [setter=false]\n * @returns {*}\n */\nexport function defineProp(obj: IObjExt, property: string, value: any, setter = false) {\n    if (setter) {\n        Object.defineProperty(obj, property, {\n            value,\n            writable: true,\n            configurable: false,\n            enumerable: true\n        });\n    } else {\n        Object.defineProperty(obj, property, {\n            // tslint:disable-next-line-literal-shorthand\n            get() {\n                return value;\n            },\n            configurable: false,\n            enumerable: true\n        });\n    }\n}\n"],"names":[],"mappings":";;AAAA;;;;AAIG;AAKH;;;;;;;AAOG;AACa,SAAA,OAAO,CAAC,KAAU,EAAE,GAAU,EAAA;AAC1C,IAAA,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACvB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;;AAE1B,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;KACpC;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;AAMG;AACa,SAAA,SAAS,CAAC,GAAU,EAAE,KAAa,EAAA;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;QAC/B,OAAO,CAAC,KAAK,KAAK,CAAC;AACvB,KAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,GAAY,EAAA;AAM7C,CAAC;AAED;;;;;;AAMG;SACa,KAAK,CAAC,MAAe,EAAE,IAAI,GAAG,KAAK,EAAA;AAC/C,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;AACrC,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;AAQG;AACG,SAAU,SAAS,CAAC,MAAe,EAAE,MAAe,EAAE,IAAI,GAAG,KAAK,EAAA;AACpE,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;;QAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;AAOG;AACa,SAAA,MAAM,CAAC,GAAY,EAAE,QAAgB,EAAA;AACjD,IAAA,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;AASG;AACG,SAAU,UAAU,CAAC,GAAY,EAAE,QAAgB,EAAE,KAAU,EAAE,MAAM,GAAG,KAAK,EAAA;IACjF,IAAI,MAAM,EAAE;AACR,QAAA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;YACjC,KAAK;AACL,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,UAAU,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;KACN;SAAM;AACH,QAAA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE;;YAEjC,GAAG,GAAA;AACC,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,UAAU,EAAE,IAAI;AACnB,SAAA,CAAC,CAAC;KACN;AACL;;;;"}