Skip to content

Commit 21b6702

Browse files
authored
Merge pull request #254 from FirebaseExtended/de-register-version
Add version number as an export
2 parents 40842f3 + c69d03a commit 21b6702

File tree

4 files changed

+57
-6
lines changed

4 files changed

+57
-6
lines changed

reactfire/after.build.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
const { version } = require('./package.json');
4+
5+
// This script should only ever be ran after
6+
// a successful rollup build.
7+
8+
const ABSOLUTE_PATH = path.join(process.cwd(), `/pub/reactfire`);
9+
10+
const files = [{
11+
name: 'firebaseApp/index.js',
12+
token: '::__reactfireversion__::',
13+
replaceValue: version
14+
}];
15+
16+
const fileContents = files.map(file => {
17+
const fullPath = path.join(ABSOLUTE_PATH, file.name);
18+
const content = fs.readFileSync(fullPath, 'utf8');
19+
return {
20+
fullPath,
21+
content,
22+
...file,
23+
};
24+
})
25+
26+
fileContents.forEach(file => {
27+
const replaced = file.content.replace(file.token, file.replaceValue);
28+
fs.writeFileSync(file.fullPath, replaced, 'utf8');
29+
});

reactfire/firebaseApp/firebaseApp.test.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import { renderHook } from '@testing-library/react-hooks';
33
import * as firebase from 'firebase/app';
44
import '@testing-library/jest-dom/extend-expect';
55
import * as React from 'react';
6-
import { useFirebaseApp } from '.';
6+
import { useFirebaseApp, version } from '.';
77
import { FirebaseAppProvider } from './index';
8+
const pkg = require('../package.json');
89

910
afterEach(cleanup);
1011

@@ -103,3 +104,11 @@ describe('useFirebaseApp', () => {
103104
expect(result.error).toBeDefined();
104105
});
105106
});
107+
108+
describe('reactfire version', () => {
109+
110+
it(`should match ${pkg.version}`, () => {
111+
expect(pkg.version).toEqual(version);
112+
});
113+
114+
})

reactfire/firebaseApp/index.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import * as firebase from 'firebase/app';
22
import * as React from 'react';
33

4-
export * from './sdk';
5-
64
type FirebaseAppContextValue = firebase.app.App;
75

86
// INVESTIGATE I don't like magic strings, can we have export this in js-sdk?
@@ -18,11 +16,15 @@ type Props = {
1816
appName?: string;
1917
};
2018

19+
// The version number is substituted in as part of the build process
20+
// See after.build.js for the substitution script
21+
const version = '::__reactfireversion__::';
22+
2123
const shallowEq = (a: Object, b: Object) =>
2224
a == b ||
2325
[...Object.keys(a), ...Object.keys(b)].every(key => a[key] == b[key]);
2426

25-
export function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
27+
function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
2628
const { firebaseConfig, appName } = props;
2729
const firebaseApp: firebase.app.App =
2830
props.firebaseApp ||
@@ -38,14 +40,17 @@ export function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
3840
'default'} firebase app instance, give this new instance a different appName.`;
3941
}
4042
} else {
43+
const reactVersion = React.version || 'unknown';
44+
firebase.registerVersion('react', reactVersion);
45+
firebase.registerVersion('reactfire', version);
4146
return firebase.initializeApp(firebaseConfig, appName);
4247
}
4348
}, [firebaseConfig, appName]);
4449

4550
return <FirebaseAppContext.Provider value={firebaseApp} {...props} />;
4651
}
4752

48-
export function useFirebaseApp() {
53+
function useFirebaseApp() {
4954
const firebaseApp = React.useContext(FirebaseAppContext);
5055
if (!firebaseApp) {
5156
throw new Error(
@@ -55,3 +60,11 @@ export function useFirebaseApp() {
5560

5661
return firebaseApp;
5762
}
63+
64+
65+
export * from './sdk';
66+
export {
67+
FirebaseAppProvider,
68+
useFirebaseApp,
69+
version,
70+
};

reactfire/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"test": "yarn build && firebase emulators:exec --only firestore,database \"jest --rootDir pub --no-cache --verbose --detectOpenHandles --forceExit\"",
1313
"copy-package-json": "cp package.pub.json pub/reactfire/package.json",
1414
"watch": "yarn build && tsc --watch",
15-
"build": "rm -rf pub && tsc && yarn copy-package-json && cp ../README.md pub/reactfire/README.md && cp ../LICENSE pub/reactfire/LICENSE && rollup -c && cp ./.npmignore pub/reactfire/ && npm pack ./pub/reactfire"
15+
"build": "rm -rf pub && tsc && yarn copy-package-json && cp ../README.md pub/reactfire/README.md && cp ../LICENSE pub/reactfire/LICENSE && rollup -c && node after.build.js && cp ./.npmignore pub/reactfire/ && npm pack ./pub/reactfire"
1616
},
1717
"repository": {
1818
"type": "git",

0 commit comments

Comments
 (0)