Currently, core depends on the browser, which means that other platforms (e.g., NativeScript or webworker) cannot use the bootstrapping logic core provides. This PR extract makes bootstrapping logic in core completely platform-independent. The browser-specific code was moved to "angular2/platforms/browser". BREAKING CHANGE A few private helpers (e.g., platformCommon or applicationCommon) were removed or replaced with other helpers. Look at PLATFORM_COMMON_PROVIDERS, APPLICATION_COMMON_PROVIDERS, BROWSER_PROVIDERS, BROWSER_APP_PROVIDERS to see if they export the providers you need. Closes #5219
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
export {BROWSER_PROVIDERS} from 'angular2/src/platform/browser_common';
|
|
|
|
import {Type, isPresent, CONST_EXPR} from 'angular2/src/facade/lang';
|
|
import {Promise} from 'angular2/src/facade/promise';
|
|
import {
|
|
BROWSER_PROVIDERS,
|
|
BROWSER_APP_COMMON_PROVIDERS,
|
|
initBrowser
|
|
} from 'angular2/src/platform/browser_common';
|
|
import {ComponentRef, platform, reflector} from 'angular2/core';
|
|
|
|
/**
|
|
* An array of providers that should be passed into `application()` when bootstrapping a component
|
|
* when all templates
|
|
* have been precompiled offline.
|
|
*/
|
|
export const BROWSER_APP_PROVIDERS: Array<any /*Type | Provider | any[]*/> =
|
|
BROWSER_APP_COMMON_PROVIDERS;
|
|
|
|
/**
|
|
* See {@link bootstrap} for more information.
|
|
*/
|
|
export function bootstrapStatic(appComponentType: Type,
|
|
customProviders?: Array<any /*Type | Provider | any[]*/>,
|
|
initReflector?: Function): Promise<ComponentRef> {
|
|
initBrowser();
|
|
if (isPresent(initReflector)) {
|
|
initReflector();
|
|
}
|
|
|
|
let appProviders =
|
|
isPresent(customProviders) ? [BROWSER_APP_PROVIDERS, customProviders] : BROWSER_APP_PROVIDERS;
|
|
return platform(BROWSER_PROVIDERS).application(appProviders).bootstrap(appComponentType);
|
|
} |