Skip to content

Commit dd7c27a

Browse files
committed
Add version number to the build
1 parent b82b58a commit dd7c27a

File tree

4 files changed

+55
-6
lines changed

4 files changed

+55
-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 ABSOULTE_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(ABSOULTE_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: 15 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,13 @@ type Props = {
1816
appName?: string;
1917
};
2018

19+
const version = '::__reactfireversion__::';
20+
2121
const shallowEq = (a: Object, b: Object) =>
2222
a == b ||
2323
[...Object.keys(a), ...Object.keys(b)].every(key => a[key] == b[key]);
2424

25-
export function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
25+
function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
2626
const { firebaseConfig, appName } = props;
2727
const firebaseApp: firebase.app.App =
2828
props.firebaseApp ||
@@ -38,14 +38,17 @@ export function FirebaseAppProvider(props: Props & { [key: string]: unknown }) {
3838
'default'} firebase app instance, give this new instance a different appName.`;
3939
}
4040
} else {
41+
const reactVersion = React.version || 'unknown';
42+
firebase.registerVersion('react', reactVersion);
43+
firebase.registerVersion('reactfire', version);
4144
return firebase.initializeApp(firebaseConfig, appName);
4245
}
4346
}, [firebaseConfig, appName]);
4447

4548
return <FirebaseAppContext.Provider value={firebaseApp} {...props} />;
4649
}
4750

48-
export function useFirebaseApp() {
51+
function useFirebaseApp() {
4952
const firebaseApp = React.useContext(FirebaseAppContext);
5053
if (!firebaseApp) {
5154
throw new Error(
@@ -55,3 +58,11 @@ export function useFirebaseApp() {
5558

5659
return firebaseApp;
5760
}
61+
62+
63+
export * from './sdk';
64+
export {
65+
FirebaseAppProvider,
66+
useFirebaseApp,
67+
version,
68+
};

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)