@angular/fire
Version:
The official Angular library for Firebase.
36 lines • 4.4 kB
JavaScript
export function isString(value) {
return typeof value === 'string';
}
export function isFirebaseDataSnapshot(value) {
return typeof value.exportVal === 'function';
}
export function isNil(obj) {
return obj === undefined || obj === null;
}
export function isFirebaseRef(value) {
return typeof value.set === 'function';
}
/**
* Returns a database reference given a Firebase App and an
* absolute or relative path.
* @param database - Firebase Database
* @param pathRef - Database path, relative or absolute
*/
export function getRef(database, pathRef) {
// if a db ref was passed in, just return it
return isFirebaseRef(pathRef) ? pathRef
: database.ref(pathRef);
}
export function checkOperationCases(item, cases) {
if (isString(item)) {
return cases.stringCase();
}
else if (isFirebaseRef(item)) {
return cases.firebaseCase();
}
else if (isFirebaseDataSnapshot(item)) {
return cases.snapshotCase();
}
throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQVU7SUFDL0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVE7SUFDNUIsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLE9BQXNCO0lBQ2pGLDRDQUE0QztJQUM1QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBNEI7UUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBaUIsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBdUIsRUFBRSxLQUE2QjtJQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNsQixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUMzQjtTQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQzdCO1NBQU0sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUM3QjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIEZpcmViYXNlT3BlcmF0aW9uLCBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzLCBQYXRoUmVmZXJlbmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcmViYXNlRGF0YVNuYXBzaG90KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZS5leHBvcnRWYWwgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlYmFzZVJlZih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUuc2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkYXRhYmFzZSByZWZlcmVuY2UgZ2l2ZW4gYSBGaXJlYmFzZSBBcHAgYW5kIGFuXG4gKiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLlxuICogQHBhcmFtIGRhdGFiYXNlIC0gRmlyZWJhc2UgRGF0YWJhc2VcbiAqIEBwYXJhbSBwYXRoUmVmIC0gRGF0YWJhc2UgcGF0aCwgcmVsYXRpdmUgb3IgYWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZihkYXRhYmFzZTogZmlyZWJhc2UuZGF0YWJhc2UuRGF0YWJhc2UsIHBhdGhSZWY6IFBhdGhSZWZlcmVuY2UpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gIC8vIGlmIGEgZGIgcmVmIHdhcyBwYXNzZWQgaW4sIGp1c3QgcmV0dXJuIGl0XG4gIHJldHVybiBpc0ZpcmViYXNlUmVmKHBhdGhSZWYpID8gcGF0aFJlZiBhcyBEYXRhYmFzZVJlZmVyZW5jZVxuICAgIDogZGF0YWJhc2UucmVmKHBhdGhSZWYgYXMgc3RyaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrT3BlcmF0aW9uQ2FzZXMoaXRlbTogRmlyZWJhc2VPcGVyYXRpb24sIGNhc2VzOiBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChpc1N0cmluZyhpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5zdHJpbmdDYXNlKCk7XG4gIH0gZWxzZSBpZiAoaXNGaXJlYmFzZVJlZihpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5maXJlYmFzZUNhc2UoKTtcbiAgfSBlbHNlIGlmIChpc0ZpcmViYXNlRGF0YVNuYXBzaG90KGl0ZW0pKSB7XG4gICAgcmV0dXJuIGNhc2VzLnNuYXBzaG90Q2FzZSgpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRXhwZWN0cyBhIHN0cmluZywgc25hcHNob3QsIG9yIHJlZmVyZW5jZS4gR290OiAke3R5cGVvZiBpdGVtfWApO1xufVxuIl19