{"version":3,"sources":["iterable/operators/pluck.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,SAAS,OAAO,CAAC,KAAe,EAAE,MAAc;IAC9C,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,EAAE;QACxB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;gBAC5B,WAAW,GAAG,CAAC,CAAC;aACjB;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,KAAK,CAAmB,GAAG,IAAc;IACvD,OAAO,SAAS,qBAAqB,CAAC,MAAyB;QAC7D,OAAO,IAAI,WAAW,CAAmB,MAAM,EAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAE/D,CAAC,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","file":"pluck.js","sourcesContent":["import { IterableX } from '../iterablex';\nimport { MapIterable } from './map';\nimport { OperatorFunction } from '../../interfaces';\n\nfunction plucker(props: string[], length: number): (x: any) => any {\n  const mapper = (x: any) => {\n    let currentProp = x;\n    for (let i = 0; i < length; i++) {\n      const p = currentProp[props[i]];\n      if (typeof p !== 'undefined') {\n        currentProp = p;\n      } else {\n        return undefined;\n      }\n    }\n    return currentProp;\n  };\n\n  return mapper;\n}\n\nexport function pluck<TSource, TResult>(...args: string[]): OperatorFunction<TSource, TResult> {\n  return function pluckOperatorFunction(source: Iterable<TSource>): IterableX<TResult> {\n    return new MapIterable<TSource, TResult>(source, (plucker(args, args.length) as any) as (\n      value: TSource\n    ) => TResult);\n  };\n}\n"]}