Better flow config to remove unrelated errors

This commit is contained in:
Chris Bianca
2017-12-04 12:07:41 +00:00
parent ba79167c7f
commit 19cec2cd8b
18 changed files with 234 additions and 198 deletions

View File

@@ -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;

View File

@@ -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);
}
},
};

View File

@@ -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,

View File

@@ -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;
}
}

View File

@@ -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();
}
}

View File

@@ -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;