Skip to content

Commit 068ad3f

Browse files
authored
v3.0.0-alpha.13 (#726)
* feat(types): add types for hooks including `useFirestore`, `useFirebase`, `useFirestoreConnect`, `useFirebaseConnect` - #653 * fix(types): make scopes optional in `credentials` - #671 * fix(docs): remove v2 auth ready docs from v3 docs - #676 * fix(providers): prevent unwanted re-initialization when parent component updates - #725 - @illuminist * fix(profile): pass `updateProfile` options to action - #701 - @cruzdanilo * fix(firebaseConnect): remove `dispatch` from reserved props list - #675, #700 * feat(types): improve types for `withFirestore` and `withFirebase` * feat(types): added `ExtendedFirebaseInstance` and `ExtendedFirestoreInstance` types * feat(examples): update typescript example to use hooks * fix(firestoreConnect): add error for passing of reserved props `firebase` and `firestore` when using `firestoreConnect` * feat(types): add typing for firebase queries used in `firebaseConnect` and `useFirebaseConnect` * fix(types): fix spelling of initialize in types * feat(docs): add api docs pages for context providers and new hooks api * feat(docs): automatically find files for doc generation instead of having a constant that needs updating * feat(core): add uglify and lodash plugins to webpack build to shrink bundle build size
2 parents e4100c9 + 5b9a244 commit 068ad3f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2826
-2608
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

docs/api/connect.md renamed to docs/api/firebaseConnect.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
## createFirebaseConnect
99

10-
Function that creates a Higher Order Component that
10+
Function that creates a Higher Order Component which
1111
automatically listens/unListens to provided firebase paths using
1212
React's Lifecycle hooks.
1313
**WARNING!!** This is an advanced feature, and should only be used when
@@ -69,7 +69,7 @@ const enhance = compose(
6969
]),
7070
connect((state) => ({
7171
todos: state.firebase.ordered.todos
72-
})
72+
}))
7373
)
7474

7575
// use enhnace to pass todos list as props.todos
@@ -92,17 +92,19 @@ import { firebaseConnect, getVal } from 'react-redux-firebase'
9292
const enhance = compose(
9393
firebaseConnect((props) => ([
9494
`posts/${props.postId}` // sync /posts/postId from firebase into redux
95-
]),
95+
])),
9696
connect((state, props) => ({
9797
post: getVal(state.firebase.data, `posts/${props.postId}`),
98-
})
98+
}))
9999
)
100100

101-
const Post = ({ post }) => (
102-
<div>
103-
{JSON.stringify(post, null, 2)}
104-
</div>
105-
)
101+
function Post({ post }) {
102+
return (
103+
<div>
104+
{JSON.stringify(post, null, 2)}
105+
</div>
106+
)
107+
}
106108

107109
export default enhance(Post)
108110
```

0 commit comments

Comments
 (0)