Skip to content

Commit 14085e5

Browse files
author
Scott Prue
committed
* feat(docs): add api docs pages for providers and new hooks api
* feat(docs): automatically find files for doc generation instead of having a list
1 parent 02a099b commit 14085e5

18 files changed

+455
-569
lines changed

SUMMARY.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@
2626
* [React Chrome Redux](/docs/integrations/react-chrome-redux.md)
2727
* [API Reference](/docs/api/README.md)
2828
* [constants](/docs/api/constants.md)
29-
* [firebaseConnect](/docs/api/connect.md)
29+
* [firebaseConnect](/docs/api/firebaseConnect.md)
3030
* [withFirebase](/docs/api/withFirebase.md)
3131
* [firestoreConnect](/docs/api/firestoreConnect.md)
3232
* [withFirestore](/docs/api/withFirestore.md)
33+
* [useFirebase](/docs/api/useFirebase.md)
34+
* [useFirebaseConnect](/docs/api/useFirebaseConnect.md)
35+
* [useFirestore](/docs/api/useFirestore.md)
3336
* [firebaseReducer](/docs/api/reducer.md)
3437
* [isInitializingReducer](/docs/api/reducers.md#isinitializingreducer)
3538
* [requestingReducer](/docs/api/reducers.md#requestingreducer)
@@ -44,6 +47,10 @@
4447
* [orderedReducer](/docs/api/reducers.md#orderedreducer)
4548
* [props.firebase](/docs/api/props-firebase.md)
4649
* [firebaseInstance](/docs/api/firebaseInstance.md)
50+
* [ReactReduxFirebaseContext](/docs/api/ReactReduxFirebaseContext.md)
51+
* [ReactReduxFirebaseProvider](/docs/api/ReactReduxFirebaseProvider.md)
52+
* [ReduxFirestoreContext](/docs/api/ReduxFirestoreContext.md)
53+
* [ReduxFirestoreProvider](/docs/api/ReduxFirestoreProvider.md)
4754
* [helpers](/docs/api/helpers.md)
4855
* Migration Guides
4956
* [v3 Migration Guide](/docs/v3-migration-guide.md)

bin/api-docs-generate.js

Lines changed: 30 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,18 @@
11
/* eslint-disable no-console */
22
const exec = require('child-process-promise').exec
3+
const fs = require('fs')
34

4-
const files = [
5-
{
6-
src: 'firebaseConnect.js',
7-
dest: 'connect.md'
8-
},
9-
{
10-
src: 'firestoreConnect.js',
11-
dest: 'firestoreConnect.md'
12-
},
13-
{
14-
src: 'withFirebase.js',
15-
dest: 'withFirebase.md'
16-
},
17-
{
18-
src: 'withFirestore.js',
19-
dest: 'withFirestore.md'
20-
},
21-
{
22-
src: 'createFirebaseInstance.js',
23-
dest: 'firebaseInstance.md'
24-
},
25-
{
26-
src: 'helpers.js',
27-
dest: 'helpers.md'
28-
},
29-
{
30-
src: 'reducers.js',
31-
dest: 'reducers.md'
32-
},
33-
{
34-
src: 'reducer.js',
35-
dest: 'reducer.md'
36-
},
37-
{
38-
src: 'constants.js',
39-
dest: 'constants.md'
40-
}
41-
]
5+
const SRC_FOLDER = 'src'
6+
const pathsToSkip = ['index.js', 'utils', '.DS_Store', 'actions']
7+
const fileRenames = {
8+
'createFirebaseInstance.js': 'firebaseInstance'
9+
}
4210

4311
function generateDocForFile(file) {
4412
return exec(
45-
`$(npm bin)/documentation build src/${file.src} -f md -o docs/api/${
46-
file.dest
47-
} --shallow`
13+
`$(npm bin)/documentation build ${SRC_FOLDER}/${
14+
file.src
15+
} -f md -o docs/api/${file.dest} --shallow`
4816
)
4917
.then(res => {
5018
console.log('Successfully generated', file.dest || file)
@@ -56,10 +24,31 @@ function generateDocForFile(file) {
5624
})
5725
}
5826

27+
function getFileNames() {
28+
return new Promise((resolve, reject) => {
29+
fs.readdir(SRC_FOLDER, (err, files) => {
30+
console.log('files:', files)
31+
if (err) {
32+
return reject(err)
33+
}
34+
const cleanedFileNames = files.filter(
35+
fileName => !pathsToSkip.includes(fileName)
36+
)
37+
const mappedFileNames = cleanedFileNames.map(fileName => {
38+
const newName = fileRenames[fileName] || fileName
39+
return { src: newName, dest: `${newName.replace('.js', '')}.md` }
40+
})
41+
console.log('mapped file names', mappedFileNames)
42+
resolve(mappedFileNames)
43+
})
44+
})
45+
}
46+
5947
;(async function() {
6048
console.log(
6149
'Generating API documentation (docs/api) from JSDoc comments within src...\n'
6250
)
51+
const files = await getFileNames()
6352
try {
6453
await Promise.all(files.map(generateDocForFile))
6554
console.log('\nAPI documentation generated successfully!')

docs/README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@
2727
* [React Chrome Redux](/docs/integrations/react-chrome-redux.md)
2828
* [API Reference](/docs/api/README.md)
2929
* [constants](/docs/api/constants.md)
30-
* [firebaseConnect](/docs/api/connect.md)
30+
* [firebaseConnect](/docs/api/firebaseConnect.md)
3131
* [withFirebase](/docs/api/withFirebase.md)
3232
* [firestoreConnect](/docs/api/firestoreConnect.md)
3333
* [withFirestore](/docs/api/withFirestore.md)
34+
* [useFirebase](/docs/api/useFirebase.md)
35+
* [useFirebaseConnect](/docs/api/useFirebaseConnect.md)
36+
* [useFirestore](/docs/api/useFirestore.md)
37+
* [useFirestoreConnect](/docs/api/useFirestoreConnect.md)
3438
* [firebaseReducer](/docs/api/reducer.md)
3539
* [isInitializingReducer](/docs/api/reducers.md#isinitializingreducer)
3640
* [requestingReducer](/docs/api/reducers.md#requestingreducer)
@@ -45,6 +49,10 @@
4549
* [orderedReducer](/docs/api/reducers.md#orderedreducer)
4650
* [props.firebase](/docs/api/props-firebase.md)
4751
* [firebaseInstance](/docs/api/firebaseInstance.md)
52+
* [ReactReduxFirebaseContext](/docs/api/ReactReduxFirebaseContext.md)
53+
* [ReactReduxFirebaseProvider](/docs/api/ReactReduxFirebaseProvider.md)
54+
* [ReduxFirestoreContext](/docs/api/ReduxFirestoreContext.md)
55+
* [ReduxFirestoreProvider](/docs/api/ReduxFirestoreProvider.md)
4856
* [helpers](/docs/api/helpers.md)
4957
* [FAQ](/docs/FAQ.md)
5058
* [Roadmap](/docs/roadmap.md)

docs/api/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
Just like [redux](http://redux.js.org/docs/api/index.html), the react-redux-firebase API surface is intentionally as small as possible.
44

55
## Top-Level Exports
6-
* [firebaseConnect](/docs/api/connect.md#firebaseconnect)
7-
* [createFirebaseConnect](/docs/api/connect.md#createfirebaseconnect)
6+
* [firebaseConnect](/docs/api/firebaseConnect.md#firebaseconnect)
7+
* [createFirebaseConnect](/docs/api/firebaseConnect.md#createfirebaseconnect)
88
* [withFirebase](/docs/api/withFirebase.md)
99
* [firestoreConnect](/docs/api/firestoreConnect.md#firebaseconnect)
1010
* [createFirestoreConnect](/docs/api/firestoreConnect.md#createfirestoreconnect)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
2+
3+
### Table of Contents
4+
5+
- [ReactReduxFirebaseContext](#reactreduxfirebasecontext)
6+
7+
## ReactReduxFirebaseContext
8+
9+
Context for extended firebase instance created
10+
by react-redux-firebase
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
2+
3+
### Table of Contents
4+
5+
- [ReactReduxFirebaseProvider](#reactreduxfirebaseprovider)
6+
7+
## ReactReduxFirebaseProvider
8+
9+
Provider for context containing extended firebase instance created
10+
by react-redux-firebase
11+
12+
**Parameters**
13+
14+
- `props` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`)
15+
- `props.config` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** react-redux-firebase config
16+
- `props.dispatch` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Redux's dispatch function
17+
- `props.firebase` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Firebase library
18+
- `props.initializeAuth` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to initialize auth
19+
- `props.createFirestoreInstance` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Function for creating
20+
extended firestore instance

docs/api/ReduxFirestoreContext.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
2+
3+
### Table of Contents
4+
5+
- [ReduxFirestoreContext](#reduxfirestorecontext)
6+
7+
## ReduxFirestoreContext
8+
9+
Context for extended firebase instance created
10+
by react-redux-firebase

docs/api/ReduxFirestoreProvider.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
2+
3+
### Table of Contents
4+
5+
- [ReduxFirestoreProvider](#reduxfirestoreprovider)
6+
7+
## ReduxFirestoreProvider
8+
9+
Provider for context containing extended firestore instance created
10+
by react-redux-firebase
11+
12+
**Parameters**
13+
14+
- `props` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`)
15+
- `props.config` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** react-redux-firebase config
16+
- `props.dispatch` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Redux's dispatch function
17+
- `props.firebase` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Firebase library
18+
- `props.initializeAuth` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Whether or not to initialize auth
19+
- `props.createFirestoreInstance` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Function for creating
20+
extended firestore instance
File renamed without changes.

0 commit comments

Comments
 (0)