Skip to content

Commit 9e16b0e

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

File tree

5 files changed

+63
-29
lines changed

5 files changed

+63
-29
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-10
Original file line numberDiff line numberDiff line change
@@ -115,25 +115,25 @@ function spawnObservable(command, args) {
115115
});
116116
}
117117

118-
function generateBundle(entry, { dest, globals, moduleName }) {
119-
return rollup({ entry }).then(bundle => {
118+
function generateBundle(input, { file, globals, name }) {
119+
return rollup({ input }).then(bundle => {
120120
return bundle.write({
121121
format: 'umd',
122122
external: Object.keys(globals),
123123
plugins: [resolve()],
124-
dest,
124+
file,
125125
globals,
126-
moduleName,
126+
name,
127127
});
128128
});
129129
}
130130

131131
function createFirebaseBundles(featurePaths, globals) {
132132
return Object.keys(featurePaths).map(feature => {
133133
return generateBundle(featurePaths[feature], {
134-
dest: `${process.cwd()}/dist/bundles/${feature}.js`,
134+
file: `${process.cwd()}/dist/bundles/${feature}.js`,
135135
globals,
136-
moduleName: `firebase.${feature}`
136+
name: `firebase.${feature}`
137137
});
138138
});
139139
}
@@ -148,19 +148,19 @@ function createUmd(name, globals) {
148148
const moduleName = MODULE_NAMES[name];
149149
const entry = ENTRIES[name];
150150
return generateBundle(entry, {
151-
dest: `${process.cwd()}/dist/packages-dist/bundles/${name}.umd.js`,
151+
file: `${process.cwd()}/dist/packages-dist/bundles/${name}.umd.js`,
152152
globals,
153-
moduleName
153+
name: moduleName
154154
});
155155
}
156156

157157
function createTestUmd(globals) {
158158
const entry = `${process.cwd()}/dist/root.spec.js`;
159159
const moduleName = 'angularfire2.test';
160160
return generateBundle(entry, {
161-
dest: `${process.cwd()}/dist/packages-dist/bundles/test.umd.js`,
161+
file: `${process.cwd()}/dist/packages-dist/bundles/test.umd.js`,
162162
globals,
163-
moduleName
163+
name: moduleName
164164
});
165165
}
166166

yarn.lock

+34-12
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@
159159
version "0.2.8"
160160
resolved "https://registry.yarnpkg.com/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.2.8.tgz#38a936b60b898a1ad0f3719543ff1a1031f60f8b"
161161

162+
163+
version "0.0.39"
164+
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
165+
162166
"@types/[email protected].*":
163167
version "0.0.33"
164168
resolved "https://registry.yarnpkg.com/@types/form-data/-/form-data-0.0.33.tgz#c9ac85b2a5fd18435b8c85d9ecb50e6d6c893ff8"
@@ -936,7 +940,7 @@ chalk@^2.0.1, chalk@^2.1.0:
936940
escape-string-regexp "^1.0.5"
937941
supports-color "^5.3.0"
938942

939-
chokidar@^1.4.1, chokidar@^1.4.2:
943+
chokidar@^1.4.1, chokidar@^1.4.2, chokidar@^1.7.0:
940944
version "1.7.0"
941945
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
942946
dependencies:
@@ -1683,6 +1687,10 @@ estraverse@^4.2.0:
16831687
version "4.2.0"
16841688
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
16851689

1690+
estree-walker@^0.5.2:
1691+
version "0.5.2"
1692+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39"
1693+
16861694
esutils@^2.0.2:
16871695
version "2.0.2"
16881696
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -3500,7 +3508,7 @@ merge-stream@^1.0.0:
35003508
dependencies:
35013509
readable-stream "^2.0.1"
35023510

3503-
micromatch@^2.1.5, micromatch@^2.3.7:
3511+
micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7:
35043512
version "2.3.11"
35053513
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
35063514
dependencies:
@@ -4616,6 +4624,10 @@ requestretry@^1.2.2:
46164624
request "^2.74.0"
46174625
when "^3.7.7"
46184626

4627+
4628+
version "0.8.7"
4629+
resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
4630+
46194631
requires-port@^1.0.0:
46204632
version "1.0.0"
46214633
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -4653,32 +4665,42 @@ rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1:
46534665
dependencies:
46544666
glob "^7.0.5"
46554667

4656-
rollup-plugin-node-resolve@^3.0.0:
4668+
rollup-plugin-node-resolve@^3.3.0:
46574669
version "3.3.0"
46584670
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713"
46594671
dependencies:
46604672
builtin-modules "^2.0.0"
46614673
is-module "^1.0.0"
46624674
resolve "^1.1.6"
46634675

4664-
rollup-watch@^2.5.0:
4665-
version "2.5.0"
4666-
resolved "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-2.5.0.tgz#852d660ddecc51696890aa8c22e95ed4558cc5f7"
4676+
rollup-pluginutils@^2.0.1:
4677+
version "2.3.1"
4678+
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.3.1.tgz#760d185ccc237dedc12d7ae48c6bcd127b4892d0"
46674679
dependencies:
4668-
semver "^5.1.0"
4680+
estree-walker "^0.5.2"
4681+
micromatch "^2.3.11"
46694682

4670-
rollup@^0.35.11:
4671-
version "0.35.15"
4672-
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.35.15.tgz#f1df97205ea7c7ce79afbf113c7b1a61ec8300fd"
4683+
rollup-watch@^4.3.1:
4684+
version "4.3.1"
4685+
resolved "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-4.3.1.tgz#5aa1eaeab787addf368905d102b39d6fc5ce4a8b"
46734686
dependencies:
4674-
source-map-support "^0.4.0"
4687+
chokidar "^1.7.0"
4688+
require-relative "0.8.7"
4689+
rollup-pluginutils "^2.0.1"
46754690

46764691
rollup@^0.36.3:
46774692
version "0.36.4"
46784693
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.36.4.tgz#a224494c5386c1d73d38f7bb86f69f5eb011a3d2"
46794694
dependencies:
46804695
source-map-support "^0.4.0"
46814696

4697+
rollup@^0.64.1:
4698+
version "0.64.1"
4699+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.64.1.tgz#9188ee368e5fcd43ffbc00ec414e72eeb5de87ba"
4700+
dependencies:
4701+
"@types/estree" "0.0.39"
4702+
"@types/node" "*"
4703+
46824704
rsvp@^3.0.13:
46834705
version "3.6.2"
46844706
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
@@ -4731,7 +4753,7 @@ [email protected]:
47314753
ws "^0.8.0"
47324754
xml2js "0.4.4"
47334755

4734-
"semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
4756+
"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0:
47354757
version "5.5.0"
47364758
resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
47374759

0 commit comments

Comments
 (0)