1 line
8.6 KiB
JSON
1 line
8.6 KiB
JSON
{"ast":null,"code":"import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return source => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n\n return source => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n } else {\n this.buffer.push(value);\n }\n }\n\n _tryNext(value) {\n let result;\n const index = this.index++;\n\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.active++;\n\n this._innerSub(result);\n }\n\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n\n _complete() {\n this.hasCompleted = true;\n\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n\n this.unsubscribe();\n }\n\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n\n}\nexport const flatMap = mergeMap;","map":{"version":3,"names":["map","from","SimpleOuterSubscriber","SimpleInnerSubscriber","innerSubscribe","mergeMap","project","resultSelector","concurrent","Number","POSITIVE_INFINITY","source","pipe","a","i","b","ii","lift","MergeMapOperator","constructor","call","observer","subscribe","MergeMapSubscriber","destination","hasCompleted","buffer","active","index","_next","value","_tryNext","push","result","err","error","_innerSub","ish","innerSubscriber","add","innerSubscription","_complete","length","complete","unsubscribe","notifyNext","innerValue","next","notifyComplete","shift","flatMap"],"sources":["D:/MobileDev/WRB/WrenchBoard2023a/node_modules/rxjs/_esm2015/internal/operators/mergeMap.js"],"sourcesContent":["import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n }\n _innerSub(ish) {\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n notifyComplete() {\n const buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\nexport const flatMap = mergeMap;\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |