feat(WebWorker): Expose MessageBroker API

Closes #3942
This commit is contained in:
Jason Teplitz
2015-09-01 10:55:11 -07:00
parent 6532171997
commit 358908e605
31 changed files with 267 additions and 275 deletions
@@ -12,6 +12,7 @@ import {ListWrapper, StringMapWrapper, MapWrapper} from "angular2/src/core/facad
import {Serializer} from "angular2/src/web_workers/shared/serializer";
import {Injectable} from "angular2/di";
import {Type, StringWrapper} from "angular2/src/core/facade/lang";
export {Type} from "angular2/src/core/facade/lang";
@Injectable()
export class ClientMessageBrokerFactory {
@@ -29,7 +30,8 @@ export class ClientMessageBroker {
constructor(messageBus: MessageBus, protected _serializer: Serializer, public channel) {
this._sink = messageBus.to(channel);
var source = messageBus.from(channel);
ObservableWrapper.subscribe(source, (message) => this._handleMessage(message));
ObservableWrapper.subscribe(source,
(message: StringMap<string, any>) => this._handleMessage(message));
}
private _generateMessageId(name: string): string {
@@ -43,7 +45,7 @@ export class ClientMessageBroker {
return id;
}
runOnUiThread(args: UiArguments, returnType: Type): Promise<any> {
runOnService(args: UiArguments, returnType: Type): Promise<any> {
var fnArgs = [];
if (isPresent(args.args)) {
ListWrapper.forEach(args.args, (argument) => {
@@ -128,7 +130,7 @@ class MessageData {
}
export class FnArg {
constructor(public value, public type) {}
constructor(public value, public type: Type) {}
}
export class UiArguments {