mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-04-24 04:24:52 +08:00
Better flow config to remove unrelated errors
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
/* @flow */
|
||||
|
||||
/**
|
||||
* @flow
|
||||
* Disconnect representation wrapper
|
||||
*/
|
||||
import { typeOf } from './../../utils';
|
||||
import Reference from './reference';
|
||||
import type Database from './';
|
||||
import type Reference from './reference';
|
||||
|
||||
|
||||
/**
|
||||
@@ -9,6 +12,7 @@ import Reference from './reference';
|
||||
* @class Disconnect
|
||||
*/
|
||||
export default class Disconnect {
|
||||
_database: Database;
|
||||
ref: Reference;
|
||||
path: string;
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import Reference from './reference';
|
||||
import TransactionHandler from './transaction';
|
||||
import ModuleBase from './../../utils/ModuleBase';
|
||||
|
||||
import type FirebaseApp from '../core/firebase-app';
|
||||
|
||||
/**
|
||||
* @class Database
|
||||
*/
|
||||
@@ -15,7 +17,11 @@ export default class Database extends ModuleBase {
|
||||
static _NAMESPACE = 'database';
|
||||
static _NATIVE_MODULE = 'RNFirebaseDatabase';
|
||||
|
||||
constructor(firebaseApp: Object, options: Object = {}) {
|
||||
_offsetRef: Reference;
|
||||
_serverTimeOffset: number;
|
||||
_transactionHandler: TransactionHandler;
|
||||
|
||||
constructor(firebaseApp: FirebaseApp, options: Object = {}) {
|
||||
super(firebaseApp, options, true);
|
||||
this._transactionHandler = new TransactionHandler(this);
|
||||
|
||||
@@ -40,21 +46,21 @@ export default class Database extends ModuleBase {
|
||||
*
|
||||
* @return {number}
|
||||
*/
|
||||
getServerTime() {
|
||||
getServerTime(): number {
|
||||
return new Date(Date.now() + this._serverTimeOffset);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
goOnline() {
|
||||
goOnline(): void {
|
||||
this._native.goOnline();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
goOffline() {
|
||||
goOffline(): void {
|
||||
this._native.goOffline();
|
||||
}
|
||||
|
||||
@@ -63,7 +69,7 @@ export default class Database extends ModuleBase {
|
||||
* @param path
|
||||
* @returns {Reference}
|
||||
*/
|
||||
ref(path: string) {
|
||||
ref(path: string): Reference {
|
||||
return new Reference(this, path);
|
||||
}
|
||||
}
|
||||
@@ -72,9 +78,9 @@ export const statics = {
|
||||
ServerValue: NativeModules.RNFirebaseDatabase ? {
|
||||
TIMESTAMP: NativeModules.RNFirebaseDatabase.serverValueTimestamp || { '.sv': 'timestamp' },
|
||||
} : {},
|
||||
enableLogging(bool) {
|
||||
enableLogging(enabled: boolean) {
|
||||
if (NativeModules[Database._NATIVE_MODULE]) {
|
||||
NativeModules[Database._NATIVE_MODULE].enableLogging(bool);
|
||||
NativeModules[Database._NATIVE_MODULE].enableLogging(enabled);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/**
|
||||
* @flow
|
||||
* Query representation wrapper
|
||||
*/
|
||||
|
||||
import Reference from './reference.js';
|
||||
import { objectToUniqueId } from '../../utils';
|
||||
|
||||
import type { DatabaseModifier } from '../../types';
|
||||
import type Reference from './reference.js';
|
||||
|
||||
// todo doc methods
|
||||
|
||||
@@ -13,6 +13,7 @@ import type { DatabaseModifier } from '../../types';
|
||||
* @class Query
|
||||
*/
|
||||
export default class Query {
|
||||
_reference: Reference;
|
||||
modifiers: Array<DatabaseModifier>;
|
||||
|
||||
constructor(ref: Reference, path: string, existingModifiers?: Array<DatabaseModifier>) {
|
||||
@@ -28,7 +29,7 @@ export default class Query {
|
||||
*/
|
||||
orderBy(name: string, key?: string) {
|
||||
this.modifiers.push({
|
||||
id: `orderBy-${name}:${key}`,
|
||||
id: `orderBy-${name}:${key || ''}`,
|
||||
type: 'orderBy',
|
||||
name,
|
||||
key,
|
||||
@@ -63,7 +64,7 @@ export default class Query {
|
||||
*/
|
||||
filter(name: string, value: any, key?: string) {
|
||||
this.modifiers.push({
|
||||
id: `filter-${name}:${objectToUniqueId(value)}:${key}`,
|
||||
id: `filter-${name}:${objectToUniqueId(value)}:${key || ''}`,
|
||||
type: 'filter',
|
||||
name,
|
||||
value,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* @flow
|
||||
* Database Reference representation wrapper
|
||||
*/
|
||||
|
||||
import Query from './query.js';
|
||||
import Snapshot from './snapshot';
|
||||
import Disconnect from './disconnect';
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
import INTERNALS from '../../utils/internals';
|
||||
|
||||
import type { DatabaseModifier, FirebaseError } from '../../types';
|
||||
import type SyncTree from '../../utils/SyncTree';
|
||||
|
||||
// track all event registrations by path
|
||||
let listeners = 0;
|
||||
@@ -72,10 +73,10 @@ type DatabaseListener = {
|
||||
* @extends ReferenceBase
|
||||
*/
|
||||
export default class Reference extends ReferenceBase {
|
||||
|
||||
_refListeners: { [listenerId: number]: DatabaseListener };
|
||||
_database: Object;
|
||||
_promise: ?Promise<*>;
|
||||
_query: Query;
|
||||
_refListeners: { [listenerId: number]: DatabaseListener };
|
||||
|
||||
constructor(database: Object, path: string, existingModifiers?: Array<DatabaseModifier>) {
|
||||
super(path, database);
|
||||
@@ -96,7 +97,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param bool
|
||||
* @returns {*}
|
||||
*/
|
||||
keepSynced(bool: boolean) {
|
||||
keepSynced(bool: boolean): Promise<void> {
|
||||
return this._database._native.keepSynced(this._getRefKey(), this.path, this._query.getModifiers(), bool);
|
||||
}
|
||||
|
||||
@@ -108,7 +109,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @returns {Promise}
|
||||
*/
|
||||
set(value: any, onComplete?: Function): Promise {
|
||||
set(value: any, onComplete?: Function): Promise<void> {
|
||||
return promiseOrCallback(
|
||||
this._database._native.set(this.path, this._serializeAnyType(value)),
|
||||
onComplete,
|
||||
@@ -123,7 +124,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @returns {Promise}
|
||||
*/
|
||||
setPriority(priority: string | number | null, onComplete?: Function): Promise {
|
||||
setPriority(priority: string | number | null, onComplete?: Function): Promise<void> {
|
||||
const _priority = this._serializeAnyType(priority);
|
||||
|
||||
return promiseOrCallback(
|
||||
@@ -141,7 +142,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @returns {Promise}
|
||||
*/
|
||||
setWithPriority(value: any, priority: string | number | null, onComplete?: Function): Promise {
|
||||
setWithPriority(value: any, priority: string | number | null, onComplete?: Function): Promise<void> {
|
||||
const _value = this._serializeAnyType(value);
|
||||
const _priority = this._serializeAnyType(priority);
|
||||
|
||||
@@ -159,7 +160,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @returns {Promise}
|
||||
*/
|
||||
update(val: Object, onComplete?: Function): Promise {
|
||||
update(val: Object, onComplete?: Function): Promise<void> {
|
||||
const value = this._serializeObject(val);
|
||||
|
||||
return promiseOrCallback(
|
||||
@@ -175,7 +176,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @return {Promise}
|
||||
*/
|
||||
remove(onComplete?: Function): Promise {
|
||||
remove(onComplete?: Function): Promise<void> {
|
||||
return promiseOrCallback(
|
||||
this._database._native.remove(this.path),
|
||||
onComplete,
|
||||
@@ -196,16 +197,14 @@ export default class Reference extends ReferenceBase {
|
||||
applyLocally: boolean = false,
|
||||
) {
|
||||
if (!isFunction(transactionUpdate)) {
|
||||
return Promise.reject(
|
||||
new Error('Missing transactionUpdate function argument.'),
|
||||
);
|
||||
return Promise.reject(new Error('Missing transactionUpdate function argument.'));
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const onCompleteWrapper = (error, committed, snapshotData) => {
|
||||
if (isFunction(onComplete)) {
|
||||
if (error) {
|
||||
onComplete(error, committed, null);
|
||||
if (error) {
|
||||
onComplete(error, committed, null);
|
||||
} else {
|
||||
onComplete(null, committed, new Snapshot(this, snapshotData));
|
||||
}
|
||||
@@ -259,7 +258,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param onComplete
|
||||
* @returns {*}
|
||||
*/
|
||||
push(value: any, onComplete?: Function): Reference | Promise {
|
||||
push(value: any, onComplete?: Function): Reference | Promise<void> {
|
||||
if (value === null || value === undefined) {
|
||||
return new Reference(this._database, `${this.path}/${generatePushID(this._database._serverTimeOffset)}`);
|
||||
}
|
||||
@@ -492,7 +491,7 @@ export default class Reference extends ReferenceBase {
|
||||
* Access then method of promise if set
|
||||
* @return {*}
|
||||
*/
|
||||
then(fnResolve, fnReject) {
|
||||
then(fnResolve: (any) => any, fnReject: (any) => any) {
|
||||
if (isFunction(fnResolve) && this._promise && this._promise.then) {
|
||||
return this._promise.then.bind(this._promise)((result) => {
|
||||
this._promise = null;
|
||||
@@ -515,7 +514,7 @@ export default class Reference extends ReferenceBase {
|
||||
* Access catch method of promise if set
|
||||
* @return {*}
|
||||
*/
|
||||
catch(fnReject) {
|
||||
catch(fnReject: (any) => any) {
|
||||
if (isFunction(fnReject) && this._promise && this._promise.catch) {
|
||||
return this._promise.catch.bind(this._promise)((possibleErr) => {
|
||||
this._promise = null;
|
||||
@@ -535,7 +534,7 @@ export default class Reference extends ReferenceBase {
|
||||
*
|
||||
* @return {string}
|
||||
*/
|
||||
_getRegistrationKey(eventType) {
|
||||
_getRegistrationKey(eventType: string): string {
|
||||
return `$${this._database._appName}$/${this.path}$${this._query.queryIdentifier()}$${listeners}$${eventType}`;
|
||||
}
|
||||
|
||||
@@ -546,7 +545,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @return {string}
|
||||
* @private
|
||||
*/
|
||||
_getRefKey() {
|
||||
_getRefKey(): string {
|
||||
return `$${this._database._appName}$/${this.path}$${this._query.queryIdentifier()}`;
|
||||
}
|
||||
|
||||
@@ -562,7 +561,7 @@ export default class Reference extends ReferenceBase {
|
||||
* @param promise
|
||||
* @private
|
||||
*/
|
||||
_setThenable(promise) {
|
||||
_setThenable(promise: Promise<*>) {
|
||||
this._promise = promise;
|
||||
}
|
||||
|
||||
@@ -770,7 +769,7 @@ export default class Reference extends ReferenceBase {
|
||||
return this._syncTree.removeListenersForRegistrations(registrations);
|
||||
}
|
||||
|
||||
get _syncTree() {
|
||||
get _syncTree(): SyncTree {
|
||||
return INTERNALS.SyncTree;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
/**
|
||||
* @flow
|
||||
* Snapshot representation wrapper
|
||||
*/
|
||||
import Reference from './reference.js';
|
||||
import { isObject, deepGet, deepExists } from './../../utils';
|
||||
import type Reference from './reference.js';
|
||||
|
||||
/**
|
||||
* @class DataSnapshot
|
||||
* @link https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot
|
||||
*/
|
||||
export default class Snapshot {
|
||||
ref: Object;
|
||||
ref: Reference;
|
||||
key: string;
|
||||
|
||||
_value: any;
|
||||
@@ -138,7 +139,7 @@ export default class Snapshot {
|
||||
* @link https://firebase.google.com/docs/reference/js/firebase.database.DataSnapshot#toJSON
|
||||
* @returns {any}
|
||||
*/
|
||||
toJSON(): any {
|
||||
toJSON(): Object {
|
||||
return this.val();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
* @flow
|
||||
* Database Transaction representation wrapper
|
||||
*/
|
||||
import type Database from './';
|
||||
|
||||
let transactionId = 0;
|
||||
|
||||
@@ -9,7 +10,11 @@ let transactionId = 0;
|
||||
* @class TransactionHandler
|
||||
*/
|
||||
export default class TransactionHandler {
|
||||
constructor(database: Object) {
|
||||
_database: Database;
|
||||
_transactionListener: Function;
|
||||
_transactions: { [string]: Object }
|
||||
|
||||
constructor(database: Database) {
|
||||
this._transactions = {};
|
||||
this._database = database;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user