{"version":3,"sources":["../src/object/pick.ts"],"names":["pick","source","keys","defaultValues","newObject","isPlainObject","key","value","field"],"mappings":";;;;AAgBO,SAASA,CAAKC,CAAAA,CAAAA,CAAuBC,CAAgBC,CAAAA,GAAAA,CAA+B,CACvF,IAAIC,CAAAA,CAA2BC,CAAcF,CAAAA,GAAa,CAAI,CAAA,MAAA,CAAO,MAAO,CAAA,GAAGA,GAAa,CAAA,CAAI,EAAC,CACjG,OAAG,OAAOD,CAAS,EAAA,UAAA,CACf,OAAO,OAAQD,CAAAA,CAAM,CAAE,CAAA,OAAA,CAAQ,CAAC,CAACK,CAAAA,CAAIC,CAAK,CAAA,GAAK,CACxCL,CAAK,CAAA,IAAA,CAAKD,CAAOK,CAAAA,CAAAA,CAAIC,CAAK,CAAA,GACzBH,CAAUE,CAAAA,CAAG,EAAIC,CAEzB,EAAA,CAAC,CAEqB,CAAA,CAAA,KAAA,CAAM,OAAQL,CAAAA,CAAI,CAAIA,CAAAA,CAAAA,CAAO,CAACA,CAAI,CAAA,EACjD,OAAQM,CAAAA,CAAAA,EAAQ,CACfA,CAAAA,IAASP,CAAWA,EAAAA,CAAAA,CAAOO,CAAK,CAAI,GAAA,MAAA,GACpCJ,CAAUI,CAAAA,CAAK,EAAKP,CAAOO,CAAAA,CAAK,CAExC,EAAA,CAAC,EAEEJ,CACX","file":"chunk-EQYIKS3N.mjs","sourcesContent":["/**\n * 从对象中提取指定的字段\n * \n * pick({a:1,b:2,c:3},\"a\")  // == {a:1}\n * pick({a:1,b:2,c:3},[\"a\",\"b\"])  // == {a:1,b:2} \n * pick({a:1,b:2,c:3},(k,v)=>{\n *      return k =='a'\n * } )  // == {a:1}\n * \n * \n * \n */\n\nimport { isPlainObject } from \"../typecheck/isPlainObject\"\n\nexport type ItemPicker = string | string[] | ((key:any,value:any) => boolean)\nexport function pick(source:Record<any,any>,keys:ItemPicker,defaultValues?:Record<any,any>){\n    let newObject:Record<any,any> =isPlainObject(defaultValues) ? Object.assign({},defaultValues) : {}\n    if(typeof(keys) == 'function'){\n        Object.entries(source).forEach(([key,value]) =>{\n            if(keys.call(source,key,value)){\n                newObject[key] = value\n            } \n        })\n    }else{\n        let fields:string[] = Array.isArray(keys) ? keys : [keys]\n        fields.forEach(field =>{\n            if((field in source) && source[field]!==undefined){\n                newObject[field] =  source[field]  \n            }\n        })\n    }\n    return newObject \n}\n"]}