Skip to content

Commit e88074e

Browse files
committed
Add flow types
1 parent 6bc7cdc commit e88074e

File tree

7 files changed

+99
-4
lines changed

7 files changed

+99
-4
lines changed

auth/index.js.flow

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// @flow
2+
import type { Auth, User } from 'firebase';
3+
export type AuthStateHook = {
4+
user?: User;
5+
initialising: boolean;
6+
};
7+
declare export function useAuthState(auth: Auth): AuthStateHook;

database/index.js.flow

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// @flow
2+
import type { DataSnapshot, Query } from 'firebase/database';
3+
4+
export type ListHook = {
5+
error?: Object;
6+
list: DataSnapshot[];
7+
loading: boolean;
8+
};
9+
export type ObjectHook = {
10+
error?: object;
11+
loading: boolean;
12+
value?: DataSnapshot;
13+
};
14+
15+
declare export function useList(query: Query): ListHook;
16+
declare export function useObject(query: Query): ObjectHook;

firestore/index.js.flow

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// @flow
2+
import type {
3+
DocumentReference,
4+
DocumentSnapshot,
5+
Query,
6+
QuerySnapshot,
7+
SnapshotListenOptions,
8+
} from 'firebase/firestore';
9+
10+
export type CollectionHook = {
11+
error?: object;
12+
loading: boolean;
13+
value?: firestore.QuerySnapshot;
14+
};
15+
export type DocumentHook = {
16+
error?: object;
17+
loading: boolean;
18+
value?: firestore.DocumentSnapshot;
19+
};
20+
21+
declare export function useCollection(query: Query, options?: SnapshotListenOptions): CollectionHook;
22+
declare export function useDocument(ref: firestore.DocumentReference, options?: SnapshotListenOptions): DocumentHook;

package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-firebase-hooks",
3-
"version": "0.3.0-alpha.1",
3+
"version": "0.3.0-alpha.10",
44
"description": "React Hooks for Firebase",
55
"author": "CS Frequency Limited (https://csfrequency.com)",
66
"license": "Apache-2.0",
@@ -14,17 +14,21 @@
1414
"files": [
1515
"auth/dist/*.js",
1616
"auth/dist/auth",
17+
"auth/dist/*.js.flow",
1718
"auth/package.json",
1819
"database/dist/*.js",
1920
"database/dist/database",
21+
"database/dist/*.js.flow",
2022
"database/package.json",
2123
"dist/*.js",
2224
"dist/*.js.map",
2325
"firestore/dist/*.js",
2426
"firestore/dist/firestore",
27+
"firestore/dist/*.js.flow",
2528
"firestore/package.json",
2629
"storage/dist/*.js",
2730
"storage/dist/storage",
31+
"storage/dist/*.js.flow",
2832
"storage/package.json"
2933
],
3034
"repository": {
@@ -33,9 +37,9 @@
3337
},
3438
"scripts": {
3539
"build": "npm run clean && rollup -c",
36-
"clean": "rimraf dist auth/dist auth/*.d.ts database/dist database/*.d.ts firestore/dist firestore/*.d.ts storage/dist storage/*.d.ts util/*.d.ts",
40+
"clean": "rimraf ./dist ./auth/dist ./auth/*.d.ts ./database/dist ./database/*.d.ts ./firestore/dist ./firestore/*.d.ts ./storage/dist ./storage/*.d.ts ./util/*.d.ts",
3741
"dev": "npm run clean && rollup -c -w",
38-
"prepare": "npm run build"
42+
"prepublish": "npm run build"
3943
},
4044
"main": "dist/index.cjs.js",
4145
"module": "dist/index.esm.js",
@@ -47,6 +51,7 @@
4751
"rimraf": "^2.6.2",
4852
"rollup": "0.57.1",
4953
"rollup-plugin-commonjs": "9.1.0",
54+
"rollup-plugin-copy": "^0.2.3",
5055
"rollup-plugin-node-resolve": "3.3.0",
5156
"rollup-plugin-typescript2": "0.12.0",
5257
"rollup-plugin-uglify": "3.0.0",

rollup.config.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { resolve } from 'path';
22
import commonjs from 'rollup-plugin-commonjs';
3+
import copy from 'rollup-plugin-copy';
34
import resolveModule from 'rollup-plugin-node-resolve';
45
import typescript from 'rollup-plugin-typescript2';
56
import uglify from 'rollup-plugin-uglify';
@@ -54,7 +55,17 @@ export default components
5455
react: 'react',
5556
},
5657
},
57-
plugins: [...plugins, uglify()],
58+
plugins: [
59+
...plugins,
60+
uglify(),
61+
// Copy flow files
62+
copy({
63+
[`${component}/index.js.flow`]: `${component}/dist/index.cjs.js.flow`,
64+
}),
65+
copy({
66+
[`${component}/index.js.flow`]: `${component}/dist/index.esm.js.flow`,
67+
}),
68+
],
5869
external,
5970
},
6071
];

storage/index.js.flow

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// @flow
2+
import type { Reference } from 'firebase/storage';
3+
4+
export type DownloadURLHook = {
5+
error?: object;
6+
loading: boolean;
7+
url?: string;
8+
};
9+
declare export function useDownloadURL(ref: Reference): DownloadURLHook;

yarn.lock

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@ code-point-at@^1.0.0:
229229
version "1.1.0"
230230
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
231231

232+
colors@^1.1.2:
233+
version "1.3.2"
234+
resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b"
235+
232236
colour@~0.7.1:
233237
version "0.7.1"
234238
resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778"
@@ -356,6 +360,14 @@ for-own@^0.1.4:
356360
dependencies:
357361
for-in "^1.0.1"
358362

363+
fs-extra@^3.0.0:
364+
version "3.0.1"
365+
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
366+
dependencies:
367+
graceful-fs "^4.1.2"
368+
jsonfile "^3.0.0"
369+
universalify "^0.1.0"
370+
359371
fs-extra@^5.0.0:
360372
version "5.0.0"
361373
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd"
@@ -554,6 +566,12 @@ isomorphic-fetch@2.2.1:
554566
version "4.0.0"
555567
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
556568

569+
jsonfile@^3.0.0:
570+
version "3.0.1"
571+
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
572+
optionalDependencies:
573+
graceful-fs "^4.1.6"
574+
557575
jsonfile@^4.0.0:
558576
version "4.0.0"
559577
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -919,6 +937,13 @@ rollup-plugin-commonjs@9.1.0:
919937
resolve "^1.5.0"
920938
rollup-pluginutils "^2.0.1"
921939

940+
rollup-plugin-copy@^0.2.3:
941+
version "0.2.3"
942+
resolved "https://registry.yarnpkg.com/rollup-plugin-copy/-/rollup-plugin-copy-0.2.3.tgz#dac1ab81d1f220baeb98e5c4c0108252e1edbb98"
943+
dependencies:
944+
colors "^1.1.2"
945+
fs-extra "^3.0.0"
946+
922947
rollup-plugin-node-resolve@3.3.0:
923948
version "3.3.0"
924949
resolved "http://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz#c26d110a36812cbefa7ce117cadcd3439aa1c713"

0 commit comments

Comments
 (0)