UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

31 lines (30 loc) 1.35 kB
import { NgZone } from 'angular2/src/core/zone/ng_zone'; import { Provider } from 'angular2/src/core/di'; import { Parse5DomAdapter } from 'angular2/src/platform/server/parse5_adapter'; import { PostMessageBus, PostMessageBusSink, PostMessageBusSource } from 'angular2/src/web_workers/shared/post_message_bus'; import { WORKER_APP_APPLICATION_COMMON } from './worker_app_common'; import { APP_INITIALIZER } from 'angular2/core'; import { MessageBus } from 'angular2/src/web_workers/shared/message_bus'; import { COMPILER_PROVIDERS } from 'angular2/src/compiler/compiler'; // TODO(jteplitz602) remove this and compile with lib.webworker.d.ts (#3492) let _postMessage = { postMessage: (message, transferrables) => { postMessage(message, transferrables); } }; export const WORKER_APP_APPLICATION = [ WORKER_APP_APPLICATION_COMMON, COMPILER_PROVIDERS, new Provider(MessageBus, { useFactory: createMessageBus, deps: [NgZone] }), new Provider(APP_INITIALIZER, { useValue: setupWebWorker, multi: true }) ]; function createMessageBus(zone) { let sink = new PostMessageBusSink(_postMessage); let source = new PostMessageBusSource(); let bus = new PostMessageBus(sink, source); bus.attachToZone(zone); return bus; } function setupWebWorker() { Parse5DomAdapter.makeCurrent(); }