|
1 | 1 | import 'angular2-universal/polyfills';
|
2 | 2 | import * as ngCore from '@angular/core';
|
3 |
| -import * as ngRouter from '@angular/router-deprecated'; |
4 | 3 | import * as ngUniversal from 'angular2-universal';
|
5 | 4 | import { BASE_URL, ORIGIN_URL, REQUEST_URL } from 'angular2-universal/common';
|
6 | 5 | import { App } from './components/app/app';
|
7 | 6 |
|
8 |
| -export default function (params: any): Promise<{ html: string, globals?: any }> { |
9 |
| - const serverBindings = [ |
10 |
| - ngCore.provide(BASE_URL, { useValue: '/' }), |
11 |
| - ngCore.provide(ORIGIN_URL, { useValue: params.origin }), |
12 |
| - ngCore.provide(REQUEST_URL, { useValue: params.url }), |
13 |
| - ...ngUniversal.NODE_PLATFORM_PIPES, |
14 |
| - ...ngUniversal.NODE_ROUTER_PROVIDERS, |
15 |
| - ...ngUniversal.NODE_HTTP_PROVIDERS, |
16 |
| - ]; |
| 7 | +const bootloader = ngUniversal.bootloader({ |
| 8 | + async: true, |
| 9 | + preboot: false, |
| 10 | + platformProviders: [ |
| 11 | + ngCore.provide(BASE_URL, { useValue: '/' }) |
| 12 | + ] |
| 13 | +}); |
17 | 14 |
|
18 |
| - let bootloader = ngUniversal.bootloader({ |
| 15 | +export default function (params: any): Promise<{ html: string, globals?: any }> { |
| 16 | + const config: ngUniversal.AppConfig = { |
19 | 17 | directives: [App],
|
20 |
| - componentProviders: serverBindings, |
21 |
| - async: true, |
22 |
| - preboot: false, |
| 18 | + providers: [ |
| 19 | + ngCore.provide(REQUEST_URL, { useValue: params.url }), |
| 20 | + ngCore.provide(ORIGIN_URL, { useValue: params.origin }), |
| 21 | + ...ngUniversal.NODE_PLATFORM_PIPES, |
| 22 | + ...ngUniversal.NODE_ROUTER_PROVIDERS, |
| 23 | + ...ngUniversal.NODE_HTTP_PROVIDERS, |
| 24 | + ], |
23 | 25 | // TODO: Render just the <app> component instead of wrapping it inside an extra HTML document
|
24 | 26 | // Waiting on https://github.com/angular/universal/issues/347
|
25 | 27 | template: '<!DOCTYPE html>\n<html><head></head><body><app></app></body></html>'
|
26 |
| - }); |
| 28 | + }; |
27 | 29 |
|
28 |
| - return bootloader.serializeApplication().then(html => { |
29 |
| - bootloader.dispose(); |
| 30 | + return bootloader.serializeApplication(config).then(html => { |
30 | 31 | return { html };
|
31 | 32 | });
|
32 | 33 | }
|
0 commit comments