UNPKG

@angular/fire

Version:

The official Angular library for Firebase.

41 lines 6.94 kB
import { snapshotChanges } from './snapshot-changes'; import { stateChanges } from './state-changes'; import { auditTrail } from './audit-trail'; import { createDataOperationMethod } from './data-operation'; import { createRemoveMethod } from './remove'; import { map } from 'rxjs/operators'; import { keepUnstableUntilFirst } from '@angular/fire'; export function createListReference(query, afDatabase) { const outsideAngularScheduler = afDatabase.schedulers.outsideAngular; const refInZone = afDatabase.schedulers.ngZone.run(() => query.ref); return { query, update: createDataOperationMethod(refInZone, 'update'), set: createDataOperationMethod(refInZone, 'set'), push: (data) => refInZone.push(data), remove: createRemoveMethod(refInZone), snapshotChanges(events) { return snapshotChanges(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst); }, stateChanges(events) { return stateChanges(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst); }, auditTrail(events) { return auditTrail(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst); }, valueChanges(events, options) { const snapshotChanges$ = snapshotChanges(query, events, outsideAngularScheduler); return snapshotChanges$.pipe(map(actions => actions.map(a => { if (options && options.idField) { return Object.assign(Object.assign({}, a.payload.val()), { [options.idField]: a.key }); } else { return a.payload.val(); } })), keepUnstableUntilFirst); } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9jcmVhdGUtcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxNQUFNLFVBQVUsbUJBQW1CLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUMvRixNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsT0FBTztRQUNMLEtBQUs7UUFDTCxNQUFNLEVBQUUseUJBQXlCLENBQWEsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUNsRSxHQUFHLEVBQUUseUJBQXlCLENBQUksU0FBUyxFQUFFLEtBQUssQ0FBQztRQUNuRCxJQUFJLEVBQUUsQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7UUFDckMsZUFBZSxDQUFDLE1BQXFCO1lBQ25DLE9BQU8sZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsWUFBWSxDQUFDLE1BQXFCO1lBQ2hDLE9BQU8sWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsVUFBVSxDQUFDLE1BQXFCO1lBQzlCLE9BQU8sVUFBVSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsWUFBWSxDQUFtQixNQUFxQixFQUFFLE9BQXVCO1lBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsdUNBQ0ssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQU8sR0FDcEI7d0JBQ0QsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUc7cUJBQ3pCLEVBQ0Q7aUJBQ0g7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBTyxDQUFDO2lCQUM3QjtZQUNILENBQUMsQ0FBQyxDQUFDLEVBQ0gsc0JBQXNCLENBQ3ZCLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmd1bGFyRmlyZUxpc3QsIENoaWxkRXZlbnQsIERhdGFiYXNlUXVlcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHNuYXBzaG90Q2hhbmdlcyB9IGZyb20gJy4vc25hcHNob3QtY2hhbmdlcyc7XG5pbXBvcnQgeyBzdGF0ZUNoYW5nZXMgfSBmcm9tICcuL3N0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgYXVkaXRUcmFpbCB9IGZyb20gJy4vYXVkaXQtdHJhaWwnO1xuaW1wb3J0IHsgY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZCB9IGZyb20gJy4vZGF0YS1vcGVyYXRpb24nO1xuaW1wb3J0IHsgY3JlYXRlUmVtb3ZlTWV0aG9kIH0gZnJvbSAnLi9yZW1vdmUnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVEYXRhYmFzZSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3RSZWZlcmVuY2U8VD0gYW55PihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWZEYXRhYmFzZTogQW5ndWxhckZpcmVEYXRhYmFzZSk6IEFuZ3VsYXJGaXJlTGlzdDxUPiB7XG4gIGNvbnN0IG91dHNpZGVBbmd1bGFyU2NoZWR1bGVyID0gYWZEYXRhYmFzZS5zY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyO1xuICBjb25zdCByZWZJblpvbmUgPSBhZkRhdGFiYXNlLnNjaGVkdWxlcnMubmdab25lLnJ1bigoKSA9PiBxdWVyeS5yZWYpO1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHVwZGF0ZTogY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZDxQYXJ0aWFsPFQ+PihyZWZJblpvbmUsICd1cGRhdGUnKSxcbiAgICBzZXQ6IGNyZWF0ZURhdGFPcGVyYXRpb25NZXRob2Q8VD4ocmVmSW5ab25lLCAnc2V0JyksXG4gICAgcHVzaDogKGRhdGE6IFQpID0+IHJlZkluWm9uZS5wdXNoKGRhdGEpLFxuICAgIHJlbW92ZTogY3JlYXRlUmVtb3ZlTWV0aG9kKHJlZkluWm9uZSksXG4gICAgc25hcHNob3RDaGFuZ2VzKGV2ZW50cz86IENoaWxkRXZlbnRbXSkge1xuICAgICAgcmV0dXJuIHNuYXBzaG90Q2hhbmdlczxUPihxdWVyeSwgZXZlbnRzLCBvdXRzaWRlQW5ndWxhclNjaGVkdWxlcikucGlwZShrZWVwVW5zdGFibGVVbnRpbEZpcnN0KTtcbiAgICB9LFxuICAgIHN0YXRlQ2hhbmdlcyhldmVudHM/OiBDaGlsZEV2ZW50W10pIHtcbiAgICAgIHJldHVybiBzdGF0ZUNoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgb3V0c2lkZUFuZ3VsYXJTY2hlZHVsZXIpLnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gICAgfSxcbiAgICBhdWRpdFRyYWlsKGV2ZW50cz86IENoaWxkRXZlbnRbXSkge1xuICAgICAgcmV0dXJuIGF1ZGl0VHJhaWw8VD4ocXVlcnksIGV2ZW50cywgb3V0c2lkZUFuZ3VsYXJTY2hlZHVsZXIpLnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gICAgfSxcbiAgICB2YWx1ZUNoYW5nZXM8SyBleHRlbmRzIHN0cmluZz4oZXZlbnRzPzogQ2hpbGRFdmVudFtdLCBvcHRpb25zPzoge2lkRmllbGQ/OiBLfSkge1xuICAgICAgY29uc3Qgc25hcHNob3RDaGFuZ2VzJCA9IHNuYXBzaG90Q2hhbmdlczxUPihxdWVyeSwgZXZlbnRzLCBvdXRzaWRlQW5ndWxhclNjaGVkdWxlcik7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBtYXAoYWN0aW9ucyA9PiBhY3Rpb25zLm1hcChhID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmlkRmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmEucGF5bG9hZC52YWwoKSBhcyBULFxuICAgICAgICAgICAgICAuLi57XG4gICAgICAgICAgICAgICAgW29wdGlvbnMuaWRGaWVsZF06IGEua2V5XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhLnBheWxvYWQudmFsKCkgYXMgVDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pKSxcbiAgICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=