Skip to content

Commit fcfc5ec

Browse files
committed
New DI pattern
1 parent adda7a0 commit fcfc5ec

File tree

122 files changed

+1960
-5663
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+1960
-5663
lines changed

sample-compat/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"ng": "ng",
66
"start": "ng serve",
77
"start:emulated": "concurrently -n ng,firebase -c red,yellow \"ng serve -c emulated\" \"firebase emulators:start\"",
8-
"build": "ng build",
8+
"build": "ng build --stats-json",
9+
"analyze": "webpack-bundle-analyzer dist/sample/stats.json",
910
"test": "ng test",
1011
"lint": "ng lint",
1112
"deploy": "ng deploy",
@@ -69,6 +70,7 @@
6970
"karma-jasmine-html-reporter": "^1.5.0",
7071
"ts-node": "~9.0.0",
7172
"tslint": "~6.1.3",
72-
"typescript": "~4.0.5"
73+
"typescript": "~4.0.5",
74+
"webpack-bundle-analyzer": "^4.4.1"
7375
}
7476
}

sample-compat/yarn.lock

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@
241241
tslib "^2.0.0"
242242

243243
"@angular/fire@../dist/packages-dist":
244-
version "6.1.1"
244+
version "7.0.0"
245245
dependencies:
246246
tslib "^2.0.0"
247247

@@ -1656,6 +1656,11 @@
16561656
dependencies:
16571657
mkdirp "^1.0.4"
16581658

1659+
"@polka/url@^1.0.0-next.9":
1660+
version "1.0.0-next.12"
1661+
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28"
1662+
integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==
1663+
16591664
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
16601665
version "1.1.2"
16611666
resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
@@ -2131,6 +2136,11 @@ acorn-walk@^7.1.1:
21312136
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
21322137
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
21332138

2139+
acorn-walk@^8.0.0:
2140+
version "8.0.2"
2141+
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3"
2142+
integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A==
2143+
21342144
acorn@^6.4.1:
21352145
version "6.4.2"
21362146
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
@@ -2141,6 +2151,11 @@ acorn@^7.1.1:
21412151
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
21422152
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
21432153

2154+
acorn@^8.0.4:
2155+
version "8.1.1"
2156+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff"
2157+
integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==
2158+
21442159
21452160
version "3.0.0"
21462161
resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e"
@@ -3617,6 +3632,11 @@ commander@^4.0.1:
36173632
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
36183633
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
36193634

3635+
commander@^6.2.0:
3636+
version "6.2.1"
3637+
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
3638+
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
3639+
36203640
commondir@^1.0.1:
36213641
version "1.0.1"
36223642
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -4643,6 +4663,11 @@ duplexer3@^0.1.4:
46434663
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
46444664
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
46454665

4666+
duplexer@^0.1.2:
4667+
version "0.1.2"
4668+
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
4669+
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
4670+
46464671
duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0:
46474672
version "3.7.1"
46484673
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
@@ -6121,6 +6146,13 @@ guess-parser@^0.4.12:
61216146
dependencies:
61226147
"@wessberg/ts-evaluator" "0.0.27"
61236148

6149+
gzip-size@^6.0.0:
6150+
version "6.0.0"
6151+
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
6152+
integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
6153+
dependencies:
6154+
duplexer "^0.1.2"
6155+
61246156
handle-thing@^2.0.0:
61256157
version "2.0.1"
61266158
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
@@ -8203,6 +8235,11 @@ mime@^2.2.0, mime@^2.4.4, mime@^2.4.5:
82038235
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
82048236
integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
82058237

8238+
mime@^2.3.1:
8239+
version "2.5.2"
8240+
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
8241+
integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
8242+
82068243
mimic-fn@^1.0.0:
82078244
version "1.2.0"
82088245
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -8865,6 +8902,11 @@ openapi3-ts@^1.2.0:
88658902
resolved "https://registry.yarnpkg.com/openapi3-ts/-/openapi3-ts-1.4.0.tgz#679d5a24be0efc36f5de4fc2c4b8513663e16f65"
88668903
integrity sha512-8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==
88678904

8905+
opener@^1.5.2:
8906+
version "1.5.2"
8907+
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
8908+
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
8909+
88688910
88698911
version "1.1.1"
88708912
resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387"
@@ -10759,6 +10801,15 @@ simple-swizzle@^0.2.2:
1075910801
dependencies:
1076010802
is-arrayish "^0.3.1"
1076110803

10804+
sirv@^1.0.7:
10805+
version "1.0.11"
10806+
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4"
10807+
integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==
10808+
dependencies:
10809+
"@polka/url" "^1.0.0-next.9"
10810+
mime "^2.3.1"
10811+
totalist "^1.0.0"
10812+
1076210813
slash@^3.0.0:
1076310814
version "3.0.0"
1076410815
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -11759,6 +11810,11 @@ [email protected]:
1175911810
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
1176011811
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
1176111812

11813+
totalist@^1.0.0:
11814+
version "1.1.0"
11815+
resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
11816+
integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
11817+
1176211818
tough-cookie@^2.3.3, tough-cookie@~2.5.0:
1176311819
version "2.5.0"
1176411820
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
@@ -12299,6 +12355,21 @@ webidl-conversions@^6.1.0:
1229912355
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
1230012356
integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
1230112357

12358+
webpack-bundle-analyzer@^4.4.1:
12359+
version "4.4.1"
12360+
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz#c71fb2eaffc10a4754d7303b224adb2342069da1"
12361+
integrity sha512-j5m7WgytCkiVBoOGavzNokBOqxe6Mma13X1asfVYtKWM3wxBiRRu1u1iG0Iol5+qp9WgyhkMmBAcvjEfJ2bdDw==
12362+
dependencies:
12363+
acorn "^8.0.4"
12364+
acorn-walk "^8.0.0"
12365+
chalk "^4.1.0"
12366+
commander "^6.2.0"
12367+
gzip-size "^6.0.0"
12368+
lodash "^4.17.20"
12369+
opener "^1.5.2"
12370+
sirv "^1.0.7"
12371+
ws "^7.3.1"
12372+
1230212373
[email protected], webpack-dev-middleware@^3.7.2:
1230312374
version "3.7.2"
1230412375
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3"
@@ -12636,6 +12707,11 @@ ws@^7.1.2, ws@^7.2.3:
1263612707
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7"
1263712708
integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
1263812709

12710+
ws@^7.3.1:
12711+
version "7.4.5"
12712+
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1"
12713+
integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==
12714+
1263912715
ws@~3.3.1:
1264012716
version "3.3.3"
1264112717
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"

sample/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"scripts": {
55
"ng": "ng",
66
"start": "ng serve --hmr",
7-
"build": "ng build",
7+
"build": "ng build --stats-json",
8+
"analyze": "webpack-bundle-analyzer dist/sample/stats.json",
89
"watch": "ng build --watch --configuration development",
910
"test": "ng test",
1011
"lint": "ng lint"
@@ -46,6 +47,7 @@
4647
"karma-jasmine-html-reporter": "^1.5.0",
4748
"open": "^7.0.3",
4849
"ts-node": "~9.1.1",
49-
"typescript": "~4.2.3"
50+
"typescript": "~4.2.3",
51+
"webpack-bundle-analyzer": "^4.4.1"
5052
}
5153
}

sample/src/app/app.component.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Component, Inject, Optional } from '@angular/core';
2-
import { FirebaseApp, FIREBASE_APPS } from '@angular/fire';
3-
import { AngularFireAuth, AUTH_INSTANCES } from '@angular/fire/auth';
2+
import { FirebaseApp, Auth, AUTH_INSTANCES, FIREBASE_APPS } from '@angular/fire';
43

54
@Component({
65
selector: 'app-root',
@@ -32,11 +31,11 @@ import { AngularFireAuth, AUTH_INSTANCES } from '@angular/fire/auth';
3231
export class AppComponent {
3332
title = 'sample';
3433
constructor(
35-
public app: FirebaseApp,
36-
public auth: AngularFireAuth,
37-
@Inject(FIREBASE_APPS) public apps: FirebaseApp[],
38-
@Optional() @Inject(AUTH_INSTANCES) public authInstances: AngularFireAuth[],
34+
public app: FirebaseApp, // default Firebase App
35+
public auth: Auth, // default Firbase Auth
36+
@Inject(FIREBASE_APPS) public apps: FirebaseApp[], // all initialized App instances
37+
@Optional() @Inject(AUTH_INSTANCES) public authInstances: Auth[], // all initialized Auth instances
3938
) {
40-
console.log(app, auth, apps, authInstances);
39+
console.log(app, auth, apps, authInstances, 'hi!...');
4140
}
4241
}

sample/src/app/app.module.ts

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { NgModule } from '@angular/core';
22
import { BrowserModule } from '@angular/platform-browser';
3-
import { AngularFireModule } from '@angular/fire';
4-
import { AngularFireAuthModule } from '@angular/fire/auth';
3+
import { provideFirebaseApp, provideAuth } from '@angular/fire';
4+
import { initializeApp, getApp } from 'firebase/app';
5+
import { initializeAuth } from '@firebase/auth';
56

67
import { AppRoutingModule } from './app-routing.module';
78
import { AppComponent } from './app.component';
@@ -14,12 +15,17 @@ import { environment } from '../environments/environment';
1415
imports: [
1516
BrowserModule,
1617
AppRoutingModule,
17-
AngularFireModule.initializeApp(environment.firebase),
18-
AngularFireModule.initializeApp(environment.firebase, 'second'),
19-
AngularFireAuthModule.initializeAuth(),
20-
AngularFireAuthModule.initializeAuth({
21-
appName: 'second',
22-
useDeviceLanguage: true,
18+
provideFirebaseApp(() => initializeApp(environment.firebase)),
19+
provideFirebaseApp(() => {
20+
const app = initializeApp(environment.firebase, 'second');
21+
app.automaticDataCollectionEnabled = false;
22+
return app;
23+
}),
24+
provideAuth(() => initializeAuth(getApp())),
25+
provideAuth(() => {
26+
const auth = initializeAuth(getApp('second'));
27+
auth.useDeviceLanguage();
28+
return auth;
2329
}),
2430
],
2531
providers: [ ],
Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
export const environment = {
2-
production: true
2+
useEmulators: false,
3+
production: true,
4+
firebase: {
5+
apiKey: 'AIzaSyA7CNE9aHbcSEbt9y03QReJ-Xr0nwKg7Yg',
6+
authDomain: 'aftest-94085.firebaseapp.com',
7+
databaseURL: 'https://aftest-94085.firebaseio.com',
8+
projectId: 'aftest-94085',
9+
storageBucket: 'aftest-94085.appspot.com',
10+
messagingSenderId: '480362569154',
11+
appId: '1:480362569154:web:2fe6f75104cdfb82f50a5b',
12+
measurementId: 'G-CBRYER9PJR'
13+
},
14+
vapidKey: 'BIDPctnXHQDIjcOXxDS6qQcz-QTws7bL8v7UPgFnS1Ky5BZL3jS3-XXfxwRHmAUMOk7pXme7ttOBvVoIfX57PEo'
315
};

0 commit comments

Comments
 (0)