Skip to content

Commit 4712c5b

Browse files
cartantkatowulf
authored andcommitted
refactor(utils): replace isPresent with isNil
isPresent is a misleading name (see #704) as it considers options specified as null to not be present.
1 parent 74d1a4e commit 4712c5b

File tree

6 files changed

+27
-32
lines changed

6 files changed

+27
-32
lines changed

src/auth/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@ export class AngularFireAuth extends ReplaySubject<FirebaseAuthState> {
7979
}
8080
config = this._mergeConfigs(config);
8181

82-
if (!utils.isPresent(config.method)) {
82+
if (utils.isNil(config.method)) {
8383
return this._reject('You must provide a login method');
8484
}
8585
let providerMethods = [AuthMethods.Popup, AuthMethods.Redirect, AuthMethods.OAuthToken];
8686
if (providerMethods.indexOf(config.method) != -1) {
87-
if (!utils.isPresent(config.provider)) {
87+
if (utils.isNil(config.provider)) {
8888
return this._reject('You must include a provider to use this auth method.');
8989
}
9090
}

src/auth/firebase_sdk_auth_backend.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Injectable, Inject } from '@angular/core';
33
import { Observable } from 'rxjs/Observable';
44
import { Observer } from 'rxjs/Observer';
55
import { FirebaseApp } from '../tokens';
6-
import { isPresent, ZoneScheduler } from '../utils';
6+
import { ZoneScheduler } from '../utils';
77
import {
88
authDataToAuthState,
99
AuthBackend,

src/database/firebase_list_factory.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,44 +49,44 @@ export function FirebaseListFactory (
4949
}
5050

5151
// check equalTo
52-
if (utils.isPresent(query.equalTo)) {
52+
if (!utils.isNil(query.equalTo)) {
5353
queried = queried.equalTo(query.equalTo);
5454

55-
if (utils.isPresent(query.startAt) || query.endAt) {
55+
if (!utils.isNil(query.startAt) || query.endAt) {
5656
throw new Error('Query Error: Cannot use startAt or endAt with equalTo.');
5757
}
5858

5959
// apply limitTos
60-
if (utils.isPresent(query.limitToFirst)) {
60+
if (!utils.isNil(query.limitToFirst)) {
6161
queried = queried.limitToFirst(query.limitToFirst);
6262
}
6363

64-
if (utils.isPresent(query.limitToLast)) {
64+
if (!utils.isNil(query.limitToLast)) {
6565
queried = queried.limitToLast(query.limitToLast);
6666
}
6767

6868
return queried;
6969
}
7070

7171
// check startAt
72-
if (utils.isPresent(query.startAt)) {
72+
if (!utils.isNil(query.startAt)) {
7373
queried = queried.startAt(query.startAt);
7474
}
7575

76-
if (utils.isPresent(query.endAt)) {
76+
if (!utils.isNil(query.endAt)) {
7777
queried = queried.endAt(query.endAt);
7878
}
7979

80-
if (utils.isPresent(query.limitToFirst) && query.limitToLast) {
80+
if (!utils.isNil(query.limitToFirst) && query.limitToLast) {
8181
throw new Error('Query Error: Cannot use limitToFirst with limitToLast.');
8282
}
8383

8484
// apply limitTos
85-
if (utils.isPresent(query.limitToFirst)) {
85+
if (!utils.isNil(query.limitToFirst)) {
8686
queried = queried.limitToFirst(query.limitToFirst);
8787
}
8888

89-
if (utils.isPresent(query.limitToLast)) {
89+
if (!utils.isNil(query.limitToLast)) {
9090
queried = queried.limitToLast(query.limitToLast);
9191
}
9292

src/database/query_observable.ts

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ import {
1414
LimitToSelection,
1515
Primitive
1616
} from '../interfaces';
17-
17+
import { isNil } from '../utils';
1818

1919
export function observeQuery(query: Query): Observable<ScalarQuery> {
20-
if (!isPresent(query)) {
20+
if (isNil(query)) {
2121
return observableOf(null);
2222
}
2323

@@ -34,7 +34,7 @@ export function observeQuery(query: Query): Observable<ScalarQuery> {
3434
: [OrderBySelection, Primitive, Primitive, Primitive, LimitToSelection]) => {
3535

3636
let serializedOrder: any = {};
37-
if (isPresent(orderBy) && isPresent(orderBy.value)) {
37+
if (!isNil(orderBy) && !isNil(orderBy.value)) {
3838
switch (orderBy.key) {
3939
case OrderByOptions.Key:
4040
serializedOrder = { orderByKey: <boolean>orderBy.value };
@@ -51,7 +51,7 @@ export function observeQuery(query: Query): Observable<ScalarQuery> {
5151
}
5252
}
5353

54-
if (isPresent(limitTo) && isPresent(limitTo.value)) {
54+
if (!isNil(limitTo) && !isNil(limitTo.value)) {
5555
switch (limitTo.key) {
5656
case LimitToOptions.First:
5757
serializedOrder.limitToFirst = limitTo.value;
@@ -63,15 +63,15 @@ export function observeQuery(query: Query): Observable<ScalarQuery> {
6363
}
6464
}
6565

66-
if (isPresent(startAt)) {
66+
if (!isNil(startAt)) {
6767
serializedOrder.startAt = startAt;
6868
}
6969

70-
if (isPresent(endAt)) {
70+
if (!isNil(endAt)) {
7171
serializedOrder.endAt = endAt;
7272
}
7373

74-
if (isPresent(equalTo)) {
74+
if (!isNil(equalTo)) {
7575
serializedOrder.equalTo = equalTo;
7676
}
7777

@@ -86,7 +86,7 @@ export function getOrderObservables(query: Query): Observable<OrderBySelection>
8686
return ({ key, option })
8787
})
8888
.filter(({key, option}: { key: string, option: OrderByOptions }) => {
89-
return isPresent(query[key]);
89+
return !isNil(query[key]);
9090
})
9191
.map(({key, option}) => mapToOrderBySelection(<any>query[key], option));
9292

@@ -104,7 +104,7 @@ export function getOrderObservables(query: Query): Observable<OrderBySelection>
104104
export function getLimitToObservables(query: Query): Observable<LimitToSelection> | Observable<LimitToSelection | Observable<LimitToSelection>> {
105105
var observables = ['limitToFirst', 'limitToLast']
106106
.map((key: string, option: LimitToOptions) => ({ key, option }))
107-
.filter(({key, option}: { key: string, option: LimitToOptions }) => isPresent(query[key]))
107+
.filter(({key, option}: { key: string, option: LimitToOptions }) => !isNil(query[key]))
108108
.map(({key, option}) => mapToLimitToSelection(<any>query[key], option));
109109

110110
if (observables.length === 1) {
@@ -191,8 +191,3 @@ function hasObservableProperties(query: Query): boolean {
191191
if (query.orderByKey instanceof Observable) return true;
192192
return false;
193193
}
194-
195-
function isPresent(val: any): boolean {
196-
return val !== undefined && val !== null;
197-
}
198-

src/utils.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { Scheduler } from 'rxjs/Scheduler';
44
import { queue } from 'rxjs/scheduler/queue';
55
import { AFUnwrappedDataSnapshot} from './interfaces';
66

7-
export function isPresent(obj: any): boolean {
8-
return obj !== undefined && obj !== null;
7+
export function isNil(obj: any): boolean {
8+
return obj === undefined || obj === null;
99
}
1010

1111
export function isString(value: any): boolean {
@@ -29,7 +29,7 @@ export function isFirebaseQuery(value: any): boolean {
2929
}
3030

3131
export function isEmptyObject(obj: Object): boolean {
32-
if (!isPresent(obj)) { return false; }
32+
if (isNil(obj)) { return false; }
3333
return Object.keys(obj).length === 0 && JSON.stringify(obj) === JSON.stringify({});
3434
}
3535

@@ -47,7 +47,7 @@ export interface CheckUrlRef {
4747
* unwrapMapFn(snapshot) => { name: 'David', $key: 'david', $exists: Function }
4848
*/
4949
export function unwrapMapFn (snapshot:firebase.database.DataSnapshot): AFUnwrappedDataSnapshot {
50-
var unwrapped = isPresent(snapshot.val()) ? snapshot.val() : { $value: null };
50+
var unwrapped = !isNil(snapshot.val()) ? snapshot.val() : { $value: null };
5151
if ((/string|number|boolean/).test(typeof unwrapped)) {
5252
unwrapped = {
5353
$value: unwrapped

src/worker/auth/worker/auth.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
OAuth2Credentials,
2323
OAuthCredentials
2424
} from '../../auth_backend';
25-
import {isPresent} from '../../../utils';
25+
import {isNil} from '../../../utils';
2626
import * as firebase from 'firebase';
2727

2828
@Injectable()
@@ -48,7 +48,7 @@ export class WebWorkerFirebaseAuth extends AuthBackend {
4848
onAuth (onComplete: (authData: FirebaseAuthData) => void): void {
4949
this._fbApp.onAuth((authData) => {
5050
if (!this._gotAuth) return false;
51-
if (isPresent(authData) && isPresent(this._authMetadata[authData.token])) {
51+
if (!isNil(authData) && !isNil(this._authMetadata[authData.token])) {
5252
authData = this._authMetadata[authData.token];
5353
}
5454
onComplete(authData);

0 commit comments

Comments
 (0)