Subtheme of barrio
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
3.0 KiB

{"version":3,"file":"ColdObservable.js","sourceRoot":"","sources":["../../src/testing/ColdObservable.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA2B,eAAe,CAAC,CAAA;AAC3C,6BAA6B,iBAAiB,CAAC,CAAA;AAI/C,qCAAqC,wBAAwB,CAAC,CAAA;AAC9D,4BAA4B,qBAAqB,CAAC,CAAA;AAGlD;;;;GAIG;AACH;IAAuC,kCAAa;IAMlD,wBAAmB,QAAuB,EAC9B,SAAoB;QAC9B,kBAAM,UAAmC,UAA2B;YAClE,IAAM,UAAU,GAAsB,IAAI,CAAC;YAC3C,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,UAAU,CAAC,GAAG,CAAC,IAAI,2BAAY,CAAC;gBAC9B,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC,CAAC;YACJ,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAVc,aAAQ,GAAR,QAAQ,CAAe;QALnC,kBAAa,GAAsB,EAAE,CAAC;QAgB3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAC,EAAqB;oBAApB,oBAAO,EAAE,0BAAU;gBAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,EAC9F,OAAO,CAAC,KAAK,EACb,EAAC,gBAAO,EAAE,sBAAU,EAAC,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AA/BD,CAAuC,uBAAU,GA+BhD;AA/BY,sBAAc,iBA+B1B,CAAA;AACD,yBAAW,CAAC,cAAc,EAAE,CAAC,2CAAoB,CAAC,CAAC,CAAC","sourcesContent":["import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { Scheduler } from '../Scheduler';\nimport { TestMessage } from './TestMessage';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nimport { Subscriber } from '../Subscriber';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class ColdObservable<T> extends Observable<T> implements SubscriptionLoggable {\n public subscriptions: SubscriptionLog[] = [];\n scheduler: Scheduler;\n logSubscribedFrame: () => number;\n logUnsubscribedFrame: (index: number) => void;\n\n constructor(public messages: TestMessage[],\n scheduler: Scheduler) {\n super(function (this: ColdObservable<T>, subscriber: Subscriber<any>) {\n const observable: ColdObservable<T> = this;\n const index = observable.logSubscribedFrame();\n subscriber.add(new Subscription(() => {\n observable.logUnsubscribedFrame(index);\n }));\n observable.scheduleMessages(subscriber);\n return subscriber;\n });\n this.scheduler = scheduler;\n }\n\n scheduleMessages(subscriber: Subscriber<any>) {\n const messagesLength = this.messages.length;\n for (let i = 0; i < messagesLength; i++) {\n const message = this.messages[i];\n subscriber.add(\n this.scheduler.schedule(({message, subscriber}) => { message.notification.observe(subscriber); },\n message.frame,\n {message, subscriber})\n );\n }\n }\n}\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n"]}