forked from barbatus/angular2-meteor-universal
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbootstrap_server.ts
More file actions
45 lines (37 loc) · 1.21 KB
/
bootstrap_server.ts
File metadata and controls
45 lines (37 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'use strict';
import {Type} from '@angular/core';
import {assertionsEnabled} from '@angular/core/src/facade/lang';
import {Providers} from 'angular2-meteor';
import {ServerOptions, UniOptions} from './bootstrap';
import ServerRenderer from './server_renderer';
const devMode = assertionsEnabled();
export const serverDefault: ServerOptions = {
debug: false,
on: true,
renderLimitMs: 1000,
pageSizeLimitKb: 500,
preboot: {
start: true,
// Show spinner and freeze page
// when any of the events in presets happen.
freeze: 'spinner',
// Rerender replay strategy.
replay: 'rerender',
// Client app will write to hidden div until bootstrap complete.
buffer: true,
uglify: !devMode,
presets: ['keyPress', 'buttonPress', 'focus']
}
};
export function bootstrap(component: Type,
providers?: Providers,
options: UniOptions = {
server: serverDefault
}): Promise<string> {
return new Promise((resolve, reject) => {
const renderer = new ServerRenderer(options.server);
const html = renderer.render(component, providers);
resolve(html);
});
}
export * from './router';