{"version":3,"sources":["../src/object/searchObject.ts"],"names":["searchObject","obj","matcher","picker","options","result","opts","pickerFunc","value","forEachObject","keyOrIndex","parent","ABORT"],"mappings":";;;;AA8BO,SAASA,EAAoBC,CAAmBC,CAAAA,CAAAA,CAAyBC,CAAyBC,CAAAA,CAAAA,CAAqC,CAC1I,IAAIC,CAAAA,CAAa,EAAC,CACdC,EAAQ,MAAO,CAAA,MAAA,CAAO,CAAC,QAAA,CAAS,IAAI,CAAEF,CAAAA,CAAAA,EAAW,EAAE,EACjDG,CAAcJ,CAAAA,CAAAA,GAAW,CAAC,CAAC,MAAAK,CAAK,CAAA,GAAIA,CAC1C,CAAA,CAAA,OAAAC,EAAcR,CAAI,CAAA,CAAC,CAAC,KAAAO,CAAAA,CAAAA,CAAM,WAAAE,CAAW,CAAA,MAAA,CAAAC,CAAM,CAAA,GAAI,CAC3C,GAAGT,CAAAA,CAAQ,CAAC,KAAA,CAAAM,EAAM,UAAAE,CAAAA,CAAAA,CAAW,MAAAC,CAAAA,CAAM,CAAC,CAChC,CAAA,OAAAN,EAAO,IAAKE,CAAAA,CAAAA,CAAW,CAAC,KAAAC,CAAAA,CAAAA,CAAM,UAAAE,CAAAA,CAAAA,CAAW,OAAAC,CAAM,CAAC,CAAC,CAAA,CAC1CL,EAAK,QAAWM,CAAAA,GAAAA,CAAQ,MAEvC,CAAA,CAAEN,CAAI,CACCA,CAAAA,CAAAA,CAAK,SAAWD,CAAO,CAAA,CAAC,EAAIA,CACvC","file":"chunk-CRG44RDN.mjs","sourcesContent":["import { ABORT, forEachObject, ForEachObjectOptions } from \"./forEachObject\"\nimport type { IForEachCallback } from \"./forEachUpdateObject\"\n\n  \n/**\n * 发现满足条件的对象成员\n * \n * 遍历对象，对每一个成员调用matcher({value,keyOrIndex,parent})，\n * \n * 如果matcher返回true，则返回picker({value,keyOrIndex,parent})\n * \n * searchObject({\n *      a:1，\n *      b:{x:1,y:2}\n * },({value,keyOrIndex,parent})=>{\n *      return value==2\n * },({value,keyOrIndex,parent})=>{\n *      return keyOrIndex            // 当值=1时返回y\n *      return value                 // 当值=1时返回{x:1,y:2}\n * })\n * \n \n* \n* @param obj \n* @param callback \n* @param matchOne  仅匹配一个\n*/\nexport type SearchObjectOptions = ForEachObjectOptions & {\n    matchOne?:boolean\n}\nexport function searchObject<T=any>(obj:any[] | object,matcher:IForEachCallback,picker?:IForEachCallback,options?:SearchObjectOptions):T | T[]{\n    let result:T[] = []\n    let opts =  Object.assign({matchOne:true},options || {}) as Required<SearchObjectOptions>\n    const pickerFunc = (picker || (({value})=>value)) as IForEachCallback\n    forEachObject(obj,({value,keyOrIndex,parent})=>{\n        if(matcher({value,keyOrIndex,parent})){\n            result.push(pickerFunc({value,keyOrIndex,parent}))\n            return opts.matchOne ? ABORT : undefined\n        }\n    },opts)\n    return opts.matchOne ? result[0] : result\n}\n"]}