Skip to content
This repository was archived by the owner on Sep 4, 2020. It is now read-only.

Commit bb7a439

Browse files
fix(interfaces): bring angularfire2 interfaces into source control
related: #62, #63, #68
1 parent dbf4008 commit bb7a439

File tree

6 files changed

+95
-5
lines changed

6 files changed

+95
-5
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import * as firebase from 'firebase/app';
2+
import { Observable } from 'rxjs/Observable';
3+
4+
export interface FirebaseOperationCases {
5+
stringCase: () => firebase.Promise<void>;
6+
firebaseCase?: () => firebase.Promise<void>;
7+
snapshotCase?: () => firebase.Promise<void>;
8+
unwrappedSnapshotCase?: () => firebase.Promise<void>;
9+
}
10+
11+
export interface AFUnwrappedDataSnapshot {
12+
$key: string;
13+
$value?: string | number | boolean;
14+
$exists: () => boolean;
15+
}
16+
17+
export interface Query {
18+
[key: string]: any;
19+
orderByKey?: boolean | Observable<boolean>;
20+
orderByPriority?: boolean | Observable<boolean>;
21+
orderByChild?: string | Observable<string>;
22+
orderByValue?: boolean | Observable<boolean>;
23+
equalTo?: any | Observable<any>;
24+
startAt?: any | Observable<any>;
25+
endAt?: any | Observable<any>;
26+
limitToFirst?: number | Observable<number>;
27+
limitToLast?: number | Observable<number>;
28+
}
29+
30+
export interface ScalarQuery {
31+
[key: string]: any;
32+
orderByKey?: boolean;
33+
orderByPriority?: boolean;
34+
orderByChild?: string;
35+
orderByValue?: boolean;
36+
equalTo?: any;
37+
startAt?: any;
38+
endAt?: any;
39+
limitToFirst?: number;
40+
limitToLast?: number;
41+
}
42+
43+
export interface OrderBySelection {
44+
key: OrderByOptions;
45+
value: boolean | string;
46+
}
47+
48+
export interface LimitToSelection {
49+
key: LimitToOptions;
50+
value: number;
51+
}
52+
53+
export interface FirebaseListFactoryOpts {
54+
preserveSnapshot?: boolean;
55+
query?: Query;
56+
}
57+
58+
59+
export interface FirebaseObjectFactoryOpts {
60+
preserveSnapshot?: boolean;
61+
}
62+
63+
64+
export enum OrderByOptions {
65+
Child,
66+
Key,
67+
Value,
68+
Priority
69+
}
70+
71+
export enum LimitToOptions {
72+
First,
73+
Last
74+
}
75+
76+
export enum QueryOptions {
77+
EqualTo,
78+
StartAt,
79+
EndAt
80+
}
81+
82+
export type Primitive = number | string | boolean;
83+
84+
export type DatabaseSnapshot = firebase.database.DataSnapshot;
85+
export type DatabaseReference = firebase.database.Reference;
86+
export type DatabaseQuery = firebase.database.Query;
87+
export type QueryReference = DatabaseReference | DatabaseQuery;
88+
export type PathReference = QueryReference | string;

src/database/database.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import {
66
AngularFireDatabase,
77
FirebaseListObservable,
88
FirebaseObjectObservable } from 'angularfire2/database';
9-
import { FirebaseListFactoryOpts, FirebaseObjectFactoryOpts } from 'angularfire2/interfaces';
109

10+
import { FirebaseListFactoryOpts, FirebaseObjectFactoryOpts } from './angularfire2-interfaces';
1111
import { InternalListObservable } from './list/internal-list-observable';
1212
import { AfoListObservable } from './list/afo-list-observable';
1313
import { AfoObjectObservable } from './object/afo-object-observable';

src/database/interfaces.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ReplaySubject, Observable } from 'rxjs';
2-
import { FirebaseListFactoryOpts } from 'angularfire2/interfaces';
2+
3+
import { FirebaseListFactoryOpts } from './angularfire2-interfaces';
34

45
/**
56
* Each cacheItem is related to a Firebase reference.

src/database/list/afo-list-observable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { FirebaseListFactoryOpts } from 'angularfire2/interfaces';
21
import { Subscription } from 'rxjs/Subscription';
32
import { ReplaySubject } from 'rxjs/ReplaySubject';
43

54
import { InternalListObservable } from './internal-list-observable';
65
import { EmulateQuery } from './emulate-query';
6+
import { FirebaseListFactoryOpts } from '../angularfire2-interfaces';
77

88
export class AfoListObservable<T> extends ReplaySubject<T> {
99
emulateQuery: EmulateQuery;

src/database/list/emulate-query.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { FirebaseListFactoryOpts } from 'angularfire2/interfaces';
21
import { Observable } from 'rxjs/Observable';
32

3+
import { FirebaseListFactoryOpts } from '../angularfire2-interfaces';
4+
45
export class EmulateQuery {
56
orderKey: string;
67
observableValue: any[];

src/database/list/internal-list-observable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { FirebaseListFactoryOpts } from 'angularfire2/interfaces';
21
import * as stringify from 'json-stringify-safe';
32
import { ReplaySubject } from 'rxjs';
43

54
import { EmulateList } from './emulate-list';
5+
import { FirebaseListFactoryOpts } from '../angularfire2-interfaces';
66
import { LocalUpdateService } from '../offline-storage/local-update-service';
77
import { OfflineWrite } from '../offline-storage/offline-write';
88

0 commit comments

Comments
 (0)