1 | import 'angular2-universal-polyfills';
|
2 | import 'angular2-universal-patch';
|
3 | import 'zone.js';
|
4 | import { createServerRenderer, RenderResult } from 'aspnet-prerendering';
|
5 | import { enableProdMode } from '@angular/core';
|
6 | import { platformNodeDynamic } from 'angular2-universal';
|
7 | import { AppModule } from './app/app.module';
|
8 |
|
9 | enableProdMode();
|
10 | const platform = platformNodeDynamic();
|
11 |
|
12 | export default createServerRenderer(params => {
|
13 | return new Promise<RenderResult>((resolve, reject) => {
|
14 | const requestZone = Zone.current.fork({
|
15 | name: 'angular-universal request',
|
16 | properties: {
|
17 | baseUrl: '/',
|
18 | requestUrl: params.url,
|
19 | originUrl: params.origin,
|
20 | preboot: false,
|
21 | document: '<app></app>'
|
22 | },
|
23 | onHandleError: (parentZone, currentZone, targetZone, error) => {
|
24 |
|
25 | reject(error);
|
26 | return true;
|
27 | }
|
28 | });
|
29 |
|
30 | return requestZone.run<Promise<string>>(() => platform.serializeModule(AppModule)).then(html => {
|
31 | resolve({ html: html });
|
32 | }, reject);
|
33 | });
|
34 | });
|
35 |
|
\ | No newline at end of file |