Skip to content

Commit 85c9009

Browse files
committed
fix(core): empty and errors were blocking Universal rendering
1 parent d945614 commit 85c9009

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@
7272
"protractor": "3.0.0",
7373
"reflect-metadata": "0.1.2",
7474
"rimraf": "^2.5.4",
75-
"rollup": "^0.35.11",
76-
"rollup-plugin-node-resolve": "^3.0.0",
77-
"rollup-watch": "^2.5.0",
75+
"rollup": "^0.64.1",
76+
"rollup-plugin-node-resolve": "^3.3.0",
77+
"rollup-watch": "^4.3.1",
7878
"shelljs": "^0.8.0",
7979
"systemjs": "^0.19.16",
8080
"systemjs-builder": "^0.15.7",

src/core/angularfire2.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { InjectionToken, NgZone } from '@angular/core';
22
import { isPlatformServer } from '@angular/common';
33
import { Observable, Subscription, queueScheduler as queue } from 'rxjs';
4-
import { first } from 'rxjs/operators';
54

65
// Put in database.ts when we drop database-depreciated
76
export const RealtimeDatabaseURL = new InjectionToken<string>('angularfire2.realtimeDatabaseURL');
@@ -17,8 +16,20 @@ export class FirebaseZoneScheduler {
1716
return new Observable<T>(subscriber => {
1817
const noop = () => {};
1918
const task = Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop);
20-
obs$.pipe(first()).subscribe(() => this.zone.runOutsideAngular(() => task.invoke()));
21-
return obs$.subscribe(subscriber);
19+
obs$.subscribe(
20+
next => {
21+
task.invoke();
22+
subscriber.next(next);
23+
},
24+
error => {
25+
if (task.state === 'scheduled') { task.invoke() }
26+
subscriber.error(error);
27+
},
28+
() => {
29+
if (task.state === 'scheduled') { task.invoke() }
30+
subscriber.complete();
31+
}
32+
);
2233
});
2334
} else {
2435
return obs$;

src/messaging/messaging.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export class AngularFireMessaging {
2525

2626
if (isPlatformBrowser(platformId)) {
2727

28-
const requireMessaging = from(require('firebase/messaging'));
28+
// @ts-ignore
29+
const requireMessaging = from(import('firebase/messaging'));
2930

3031
this.messaging = requireMessaging.pipe(
3132
map(() => _firebaseAppFactory(options, nameOrConfig)),

tools/build.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,14 @@ function spawnObservable(command, args) {
115115
});
116116
}
117117

118-
function generateBundle(entry, { dest, globals, moduleName }) {
119-
return rollup({ entry }).then(bundle => {
118+
function generateBundle(input, { name, file, globals, moduleName }) {
119+
return rollup({ input }).then(bundle => {
120120
return bundle.write({
121121
format: 'umd',
122+
name,
122123
external: Object.keys(globals),
123124
plugins: [resolve()],
124-
dest,
125+
file,
125126
globals,
126127
moduleName,
127128
});
@@ -131,7 +132,8 @@ function generateBundle(entry, { dest, globals, moduleName }) {
131132
function createFirebaseBundles(featurePaths, globals) {
132133
return Object.keys(featurePaths).map(feature => {
133134
return generateBundle(featurePaths[feature], {
134-
dest: `${process.cwd()}/dist/bundles/${feature}.js`,
135+
name: feature,
136+
file: `${process.cwd()}/dist/bundles/${feature}.js`,
135137
globals,
136138
moduleName: `firebase.${feature}`
137139
});
@@ -148,7 +150,8 @@ function createUmd(name, globals) {
148150
const moduleName = MODULE_NAMES[name];
149151
const entry = ENTRIES[name];
150152
return generateBundle(entry, {
151-
dest: `${process.cwd()}/dist/packages-dist/bundles/${name}.umd.js`,
153+
name,
154+
file: `${process.cwd()}/dist/packages-dist/bundles/${name}.umd.js`,
152155
globals,
153156
moduleName
154157
});
@@ -158,7 +161,8 @@ function createTestUmd(globals) {
158161
const entry = `${process.cwd()}/dist/root.spec.js`;
159162
const moduleName = 'angularfire2.test';
160163
return generateBundle(entry, {
161-
dest: `${process.cwd()}/dist/packages-dist/bundles/test.umd.js`,
164+
name: 'test',
165+
file: `${process.cwd()}/dist/packages-dist/bundles/test.umd.js`,
162166
globals,
163167
moduleName
164168
});

0 commit comments

Comments
 (0)