Skip to content

Commit 32ecc2a

Browse files
davideastjeffbcross
authored andcommitted
chore(modules): Organize database
1 parent 80add4a commit 32ecc2a

17 files changed

+219
-156
lines changed

src/angularfire2.ts

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,42 @@
1-
import {APP_INITIALIZER, Inject, Injectable, OpaqueToken, provide, Provider} from '@angular/core';
2-
import {AngularFireAuth, firebaseAuthConfig, FirebaseAuth} from './providers/auth';
31
import { initializeApp } from 'firebase';
4-
import {FirebaseListObservable} from './utils/firebase_list_observable';
5-
import {FirebaseObjectObservable} from './utils/firebase_object_observable';
6-
import {FirebaseListFactory, FirebaseListFactoryOpts} from './utils/firebase_list_factory';
7-
import {
8-
FirebaseObjectFactoryOpts,
9-
FirebaseObjectFactory
10-
} from './utils/firebase_object_factory';
112
import * as utils from './utils/utils';
12-
import { FirebaseConfig, FirebaseApp, WindowLocation } from './tokens';
133
import { FirebaseAppConfig } from './interfaces';
4+
import { FirebaseSdkAuthBackend } from './providers/firebase_sdk_auth_backend';
5+
import {
6+
FirebaseListFactoryOpts,
7+
FirebaseObjectFactoryOpts,
8+
} from './interfaces';
9+
import {
10+
FirebaseConfig,
11+
FirebaseApp,
12+
WindowLocation
13+
} from './tokens';
14+
import {
15+
APP_INITIALIZER,
16+
Inject,
17+
Injectable,
18+
OpaqueToken,
19+
provide,
20+
Provider
21+
} from '@angular/core';
22+
import {
23+
AngularFireAuth,
24+
firebaseAuthConfig,
25+
FirebaseAuth
26+
} from './providers/auth';
27+
import {
28+
FirebaseListObservable,
29+
FirebaseObjectObservable,
30+
FirebaseListFactory,
31+
FirebaseObjectFactory,
32+
FirebaseDatabase
33+
} from './database/index';
1434
import {
1535
AuthBackend,
1636
AuthMethods,
1737
AuthProviders,
1838
FirebaseAuthState
1939
} from './providers/auth_backend';
20-
import {FirebaseSdkAuthBackend} from './providers/firebase_sdk_auth_backend';
21-
import {FirebaseDatabase} from './database/database';
2240

2341
@Injectable()
2442
export class AngularFire {

src/database/database.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
import {Inject, Injectable} from '@angular/core';
2-
import {FirebaseConfig} from '../tokens';
3-
import {FirebaseAppConfig} from '../angularfire2';
4-
import {FirebaseListObservable} from '../utils/firebase_list_observable';
5-
import {FirebaseObjectObservable} from '../utils/firebase_object_observable';
6-
import {FirebaseListFactory, FirebaseListFactoryOpts} from '../utils/firebase_list_factory';
7-
import {FirebaseObjectFactoryOpts, FirebaseObjectFactory} from '../utils/firebase_object_factory';
8-
import * as utils from '../utils/utils'
1+
import { Inject, Injectable } from '@angular/core';
2+
import { FirebaseConfig } from '../tokens';
3+
import { FirebaseAppConfig } from '../angularfire2';
4+
import { FirebaseListFactory } from './index';
5+
import { FirebaseListFactoryOpts, FirebaseObjectFactoryOpts } from '../interfaces';
6+
import * as utils from '../utils/utils';
7+
import {
8+
FirebaseListObservable,
9+
FirebaseObjectObservable,
10+
FirebaseObjectFactory
11+
} from './index';
912

1013
@Injectable()
1114
export class FirebaseDatabase {

src/utils/firebase_list_factory.spec.ts renamed to src/database/firebase_list_factory.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
declare var require: any;
22
import {
33
FirebaseListFactory,
4+
FirebaseListObservable,
5+
FirebaseObjectFactory,
46
onChildAdded,
57
onChildChanged,
68
onChildRemoved,
79
onChildUpdated,
8-
} from './firebase_list_factory';
9-
import {FirebaseListObservable} from './firebase_list_observable';
10-
import {FirebaseObjectFactory} from './firebase_object_factory';
10+
} from './index';
1111
import {
1212
FIREBASE_PROVIDERS,
1313
defaultFirebase,
@@ -25,8 +25,8 @@ import {
2525
beforeEachProviders,
2626
inject
2727
} from '@angular/core/testing';
28-
import * as utils from './utils';
29-
import {Query} from './query_observable';
28+
import * as utils from '../utils/utils';
29+
import {Query} from '../interfaces';
3030
import {Subscription, Observable, Subject} from 'rxjs';
3131
import 'rxjs/add/operator/do';
3232
import 'rxjs/add/operator/skip';

src/utils/firebase_list_factory.ts renamed to src/database/firebase_list_factory.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
1-
import {FirebaseListObservable, AFUnwrappedDataSnapshot} from './firebase_list_observable';
2-
import {Observer} from 'rxjs/Observer';
1+
import { AFUnwrappedDataSnapshot } from '../interfaces';
2+
import { FirebaseListObservable } from './firebase_list_observable';
3+
import { Observer } from 'rxjs/Observer';
34
import { database } from 'firebase';
4-
import * as utils from './utils';
5-
import {Query, observeQuery} from './query_observable';
5+
import { observeQuery } from './query_observable';
6+
import { Query, FirebaseListFactoryOpts } from '../interfaces';
7+
import * as utils from '../utils/utils';
68
import 'rxjs/add/operator/mergeMap';
79
import 'rxjs/add/operator/map';
810

9-
export function FirebaseListFactory (absoluteUrlOrDbRef:string | firebase.database.Reference | firebase.database.Query, {preserveSnapshot, query = {}}:FirebaseListFactoryOpts = {}): FirebaseListObservable<any> {
11+
export function FirebaseListFactory (
12+
absoluteUrlOrDbRef:string |
13+
firebase.database.Reference |
14+
firebase.database.Query,
15+
{preserveSnapshot, query = {}}:FirebaseListFactoryOpts = {}): FirebaseListObservable<any> {
16+
1017
let ref: firebase.database.Reference | firebase.database.Query;
1118

1219
utils.checkForUrlOrFirebaseRef(absoluteUrlOrDbRef, {
@@ -142,11 +149,6 @@ function firebaseListObservable(ref: firebase.database.Reference | firebase.data
142149
return listObs;
143150
}
144151

145-
export interface FirebaseListFactoryOpts {
146-
preserveSnapshot?: boolean;
147-
query?: Query;
148-
}
149-
150152
export function onChildAdded(arr:any[], child:any, prevKey:string): any[] {
151153
if (!arr.length) {
152154
return [child];

src/utils/firebase_list_observable.spec.ts renamed to src/database/firebase_list_observable.spec.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
1-
import {describe,ddescribe,it,iit,beforeEach,beforeEachProviders,inject} from '@angular/core/testing';
2-
import {FirebaseListObservable} from './firebase_list_observable';
1+
import { FirebaseListObservable } from './index';
2+
import { Observer } from 'rxjs/Observer';
3+
import { Observable } from 'rxjs/Observable';
4+
import 'rxjs/add/operator/map';
5+
import { database } from 'firebase';
6+
import { unwrapMapFn } from '../utils/utils';
37
import {
48
FIREBASE_PROVIDERS,
59
defaultFirebase,
610
FirebaseApp,
711
FirebaseAppConfig,
812
AngularFire
913
} from '../angularfire2';
10-
import {Observer} from 'rxjs/Observer';
11-
import {Observable} from 'rxjs/Observable';
12-
import 'rxjs/add/operator/map';
13-
import { database } from 'firebase';
14-
import {unwrapMapFn} from './utils';
14+
import {
15+
describe,
16+
ddescribe,
17+
it,
18+
iit,
19+
beforeEach,
20+
beforeEachProviders,
21+
inject
22+
} from '@angular/core/testing';
1523

1624
export const firebaseConfig: FirebaseAppConfig = {
1725
apiKey: "AIzaSyBVSy3YpkVGiKXbbxeK0qBnu3-MNZ9UIjA",

src/utils/firebase_list_observable.ts renamed to src/database/firebase_list_observable.ts

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
1-
import {Observable} from 'rxjs/Observable';
2-
import {Operator} from 'rxjs/Operator';
3-
import {Subscriber} from 'rxjs/Subscriber';
4-
import {Subscription} from 'rxjs/Subscription';
5-
import * as utils from './utils';
6-
7-
export interface FirebaseOperationCases {
8-
stringCase: () => firebase.Promise<void>;
9-
firebaseCase?: () => firebase.Promise<void>;
10-
snapshotCase?: () => firebase.Promise<void>;
11-
unwrappedSnapshotCase?: () => firebase.Promise<void>;
12-
}
13-
14-
export interface AFUnwrappedDataSnapshot {
15-
$key: string;
16-
$value?: string | number | boolean;
17-
}
1+
import { Observable } from 'rxjs/Observable';
2+
import { Operator } from 'rxjs/Operator';
3+
import { Subscriber } from 'rxjs/Subscriber';
4+
import { Subscription } from 'rxjs/Subscription';
5+
import * as utils from '../utils/utils';
6+
import {
7+
AFUnwrappedDataSnapshot,
8+
FirebaseOperationCases
9+
} from '../interfaces';
1810

1911
export type FirebaseOperation = string | firebase.database.Reference | firebase.database.DataSnapshot | AFUnwrappedDataSnapshot;
2012

src/utils/firebase_object_factory.spec.ts renamed to src/database/firebase_object_factory.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import {FirebaseObjectFactory} from '../utils/firebase_object_factory';
2-
import {FirebaseObjectObservable} from '../utils/firebase_object_observable';
1+
import { Subscription } from 'rxjs';
2+
import { FirebaseObjectFactory, FirebaseObjectObservable } from './index';
33
import {
44
beforeEach,
55
it,
@@ -17,7 +17,6 @@ import {
1717
FirebaseAppConfig,
1818
AngularFire
1919
} from '../angularfire2';
20-
import {Subscription} from 'rxjs';
2120

2221
export const firebaseConfig: FirebaseAppConfig = {
2322
apiKey: "AIzaSyBVSy3YpkVGiKXbbxeK0qBnu3-MNZ9UIjA",
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
import {FirebaseObjectObservable} from './firebase_object_observable';
2-
import {Observer} from 'rxjs/Observer';
3-
import 'rxjs/add/operator/mergeMap';
1+
import { FirebaseObjectObservable } from './index';
2+
import { Observer } from 'rxjs/Observer';
43
import { database } from 'firebase';
5-
import * as utils from './utils';
6-
import {Query, observeQuery} from './query_observable';
4+
import * as utils from '../utils/utils';
5+
import { Query } from '../interfaces';
6+
import { observeQuery } from './query_observable';
7+
import { FirebaseObjectFactoryOpts } from '../interfaces';
8+
import 'rxjs/add/operator/mergeMap';
79

8-
export function FirebaseObjectFactory(absoluteUrlOrDbRef: string | firebase.database.Reference, {preserveSnapshot, query}: FirebaseObjectFactoryOpts = {}): FirebaseObjectObservable<any> {
10+
export function FirebaseObjectFactory (
11+
absoluteUrlOrDbRef: string | firebase.database.Reference,
12+
{ preserveSnapshot, query }: FirebaseObjectFactoryOpts = {}): FirebaseObjectObservable<any> {
13+
914
let ref: firebase.database.Reference;
1015

1116
utils.checkForUrlOrFirebaseRef(absoluteUrlOrDbRef, {
@@ -22,9 +27,4 @@ export function FirebaseObjectFactory(absoluteUrlOrDbRef: string | firebase.data
2227

2328
return () => ref.off();
2429
}, ref);
25-
}
26-
27-
export interface FirebaseObjectFactoryOpts {
28-
preserveSnapshot?: boolean;
29-
query?: Query
30-
}
30+
}

src/utils/firebase_object_observable.spec.ts renamed to src/database/firebase_object_observable.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import {
1515
FirebaseAppConfig,
1616
AngularFire
1717
} from '../angularfire2';
18-
import {FirebaseObjectObservable} from './firebase_object_observable';
19-
import {Observer} from 'rxjs/Observer';
18+
import { FirebaseObjectObservable } from './index';
19+
import { Observer } from 'rxjs/Observer';
2020
import 'rxjs/add/operator/map';
2121
import { database } from 'firebase';
2222

src/utils/firebase_object_observable.ts renamed to src/database/firebase_object_observable.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {Observable} from 'rxjs/Observable';
2-
import {Operator} from 'rxjs/Operator';
3-
import {Subscriber} from 'rxjs/Subscriber';
4-
import {Subscription} from 'rxjs/Subscription';
1+
import { Observable } from 'rxjs/Observable';
2+
import { Operator } from 'rxjs/Operator';
3+
import { Subscriber } from 'rxjs/Subscriber';
4+
import { Subscription } from 'rxjs/Subscription';
55

66
export class FirebaseObjectObservable<T> extends Observable<T> {
77
constructor(subscribe?: <R>(subscriber: Subscriber<R>) => Subscription | Function | void, private _ref?:firebase.database.Reference) {

src/database/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export * from './database';
2+
export * from './firebase_list_factory';
3+
export * from './firebase_list_observable';
4+
export * from './firebase_object_factory';
5+
export * from './firebase_object_observable';
6+
export * from './query_observable';

src/utils/query_observable.spec.ts renamed to src/database/query_observable.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import {describe, expect, it, iit} from '@angular/core/testing';
2-
import {Observable} from 'rxjs/Observable';
3-
import {Observer} from 'rxjs/Observer';
4-
import {Subject} from 'rxjs/Subject';
5-
6-
import {getOrderObservables, observeQuery, Query} from './query_observable';
1+
import { describe, expect, it, iit } from '@angular/core/testing';
2+
import { Observable } from 'rxjs/Observable';
3+
import { Observer } from 'rxjs/Observer';
4+
import { Subject } from 'rxjs/Subject';
5+
import { Query } from '../interfaces';
6+
import { getOrderObservables, observeQuery } from './index';
77

88
function scalarQueryTest(query: Query, done: any) {
99
const queryObservable = observeQuery(query);

src/utils/query_observable.ts renamed to src/database/query_observable.ts

Lines changed: 15 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,21 @@
1-
import {Observable} from 'rxjs/Observable';
2-
import {ScalarObservable} from 'rxjs/observable/ScalarObservable';
3-
import {Operator} from 'rxjs/Operator';
4-
import {Observer} from 'rxjs/Observer';
5-
import {merge} from 'rxjs/operator/merge';
6-
import {map} from 'rxjs/operator/map';
1+
import { Observable } from 'rxjs/Observable';
2+
import { ScalarObservable } from 'rxjs/observable/ScalarObservable';
3+
import { Operator } from 'rxjs/Operator';
4+
import { Observer } from 'rxjs/Observer';
5+
import { merge } from 'rxjs/operator/merge';
6+
import { map } from 'rxjs/operator/map';
7+
import {
8+
Query,
9+
ScalarQuery,
10+
OrderByOptions,
11+
OrderBySelection,
12+
LimitToOptions,
13+
LimitToSelection,
14+
Primitive
15+
} from '../interfaces';
716
import 'rxjs/add/operator/merge';
817
import 'rxjs/add/operator/combineLatest';
918

10-
export interface Query {
11-
[key: string]: any;
12-
orderByKey?: boolean | Observable<boolean>;
13-
orderByPriority?: boolean | Observable<boolean>;
14-
orderByChild?: string | Observable<string>;
15-
orderByValue?: boolean | Observable<boolean>;
16-
equalTo?: any | Observable<any>;
17-
startAt?: any | Observable<any>;
18-
endAt?: any | Observable<any>;
19-
limitToFirst?: number | Observable<number>;
20-
limitToLast?: number | Observable<number>;
21-
}
22-
23-
export interface ScalarQuery {
24-
[key: string]: any;
25-
orderByKey?: boolean;
26-
orderByPriority?: boolean;
27-
orderByChild?: string;
28-
orderByValue?: boolean;
29-
equalTo?: any;
30-
startAt?: any;
31-
endAt?: any;
32-
limitToFirst?: number;
33-
limitToLast?: number;
34-
}
35-
36-
export enum OrderByOptions {
37-
Child,
38-
Key,
39-
Value,
40-
Priority
41-
}
42-
43-
export enum LimitToOptions {
44-
First,
45-
Last
46-
}
47-
48-
export enum QueryOptions {
49-
EqualTo,
50-
StartAt,
51-
EndAt
52-
}
53-
54-
export interface OrderBySelection {
55-
key: OrderByOptions;
56-
value: boolean | string;
57-
}
58-
59-
export interface LimitToSelection {
60-
key: LimitToOptions;
61-
value: number;
62-
}
63-
64-
export type Primitive = number | string | boolean;
65-
66-
6719
export function observeQuery(query: Query): Observable<ScalarQuery> {
6820
if (!isPresent(query)) {
6921
return new ScalarObservable(null);

0 commit comments

Comments
 (0)