@nardole/firebase-react 0.1.3 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -113
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/hooks/useAnalytics.cjs +12 -0
- package/dist/hooks/useAnalytics.d.ts +2 -0
- package/dist/hooks/useAnalytics.js +10 -0
- package/dist/hooks/useAuth.cjs +12 -0
- package/dist/hooks/useAuth.d.ts +2 -0
- package/dist/hooks/useAuth.js +10 -0
- package/dist/hooks/useDatabase.cjs +12 -0
- package/dist/hooks/useDatabase.d.ts +2 -0
- package/dist/hooks/useDatabase.js +10 -0
- package/dist/hooks/useFirebaseApp.cjs +12 -0
- package/dist/hooks/useFirebaseApp.d.ts +2 -0
- package/dist/hooks/useFirebaseApp.js +10 -0
- package/dist/hooks/useFirestore.cjs +12 -0
- package/dist/hooks/useFirestore.d.ts +2 -0
- package/dist/hooks/useFirestore.js +10 -0
- package/dist/hooks/usePerformance.cjs +12 -0
- package/dist/hooks/usePerformance.d.ts +2 -0
- package/dist/hooks/usePerformance.js +10 -0
- package/dist/hooks/useRemoteConfig.cjs +12 -0
- package/dist/hooks/useRemoteConfig.d.ts +2 -0
- package/dist/hooks/useRemoteConfig.js +10 -0
- package/dist/hooks/useStorage.cjs +12 -0
- package/dist/hooks/useStorage.d.ts +2 -0
- package/dist/hooks/useStorage.js +10 -0
- package/dist/main.cjs +20 -0
- package/dist/main.d.ts +9 -64
- package/dist/main.js +10 -119
- package/dist/providers/FirebaseAppProvider.cjs +35 -0
- package/dist/providers/FirebaseAppProvider.d.ts +33 -0
- package/dist/providers/FirebaseAppProvider.js +31 -0
- package/package.json +23 -8
package/README.md
CHANGED
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
# @nardole/firebase-react
|
|
2
|
-
|
|
3
|
-
Elegant React bindings for @nardole/firebase-core. Provide the Firebase App via Context and access it anywhere with hooks. Works great in Micro‑Frontends thanks to the shared singleton under the hood.
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/@nardole/firebase-react)
|
|
6
|
-

|
|
7
|
-
[](#license)
|
|
8
|
-
[](https://react.dev/)
|
|
9
|
-
|
|
10
|
-
- Why
|
|
11
|
-
- Features
|
|
12
|
-
- Installation
|
|
13
|
-
- Quick Start
|
|
14
|
-
- Usage
|
|
15
|
-
- Provider
|
|
16
|
-
- Hook
|
|
17
|
-
- Micro‑Frontend (MFE)
|
|
18
|
-
- API
|
|
19
|
-
- Compatibility
|
|
20
|
-
- Troubleshooting
|
|
21
|
-
- License
|
|
22
|
-
|
|
23
|
-
## Why
|
|
24
|
-
Managing Firebase initialization across multiple React apps or MFEs is error‑prone. This package provides a tiny Provider and Hook built on a shared singleton, ensuring exactly one Firebase instance.
|
|
25
|
-
|
|
26
|
-
## Features
|
|
27
|
-
- FirebaseAppProvider to initialize and provide the app via React Context
|
|
28
|
-
- useFirebaseApp hook to access the current FirebaseApp instance
|
|
29
|
-
- Designed for MFEs — initialize once (even outside React) and reuse everywhere
|
|
30
|
-
|
|
31
|
-
## Installation
|
|
32
|
-
- pnpm add @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
33
|
-
- npm install @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
34
|
-
- yarn add @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
35
|
-
|
|
36
|
-
## Quick Start
|
|
37
|
-
1. Wrap your application with the Provider using your Firebase options.
|
|
38
|
-
2. Use the Hook in child components to access the shared instance.
|
|
39
|
-
|
|
40
|
-
## Usage — Provider
|
|
41
|
-
```tsx
|
|
42
|
-
import { FirebaseAppProvider } from '@nardole/firebase-react';
|
|
43
|
-
|
|
44
|
-
export function AppRoot() {
|
|
45
|
-
return (
|
|
46
|
-
<FirebaseAppProvider
|
|
47
|
-
options={{
|
|
48
|
-
apiKey: 'YOUR_API_KEY',
|
|
49
|
-
authDomain: 'YOUR_AUTH_DOMAIN',
|
|
50
|
-
projectId: 'YOUR_PROJECT_ID',
|
|
51
|
-
appId: 'YOUR_APP_ID',
|
|
52
|
-
}}
|
|
53
|
-
>
|
|
54
|
-
<YourApp />
|
|
55
|
-
</FirebaseAppProvider>
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Usage — Hook
|
|
61
|
-
```tsx
|
|
62
|
-
import { useFirebaseApp } from '@nardole/firebase-react';
|
|
63
|
-
|
|
64
|
-
export function AnyComponent() {
|
|
65
|
-
const app = useFirebaseApp();
|
|
66
|
-
// Use app with other firebase packages (auth, firestore, etc.)
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Micro‑Frontend (MFE)
|
|
72
|
-
Initialize the core service in the shell or any federated module, and React MFEs will reuse it.
|
|
73
|
-
```ts
|
|
74
|
-
// shell or any non-React mfe
|
|
75
|
-
import { firebaseService } from '@nardole/firebase-core';
|
|
76
|
-
firebaseService.init({ /* options */ });
|
|
77
|
-
```
|
|
78
|
-
```tsx
|
|
79
|
-
// inside a React MFE
|
|
80
|
-
import { FirebaseAppProvider, useFirebaseApp } from '@nardole/firebase-react';
|
|
81
|
-
|
|
82
|
-
// Option A — wrap with the provider (reuses existing instance)
|
|
83
|
-
<FirebaseAppProvider options={{ /* same options */ }}>
|
|
84
|
-
<YourApp />
|
|
85
|
-
</FirebaseAppProvider>
|
|
86
|
-
|
|
87
|
-
// Option B — if the provider isn’t available, you can still use the hook
|
|
88
|
-
const app = useFirebaseApp();
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## API
|
|
92
|
-
|
|
93
|
-
| Item | Props/Signature | Description | Notes/Errors |
|
|
94
|
-
| --- | --- | --- | --- |
|
|
95
|
-
| FirebaseAppProvider | <FirebaseAppProvider options: FirebaseOptions, name?: string, enableAnalytics?: boolean, enablePerformance?: boolean, enableRemoteConfig?: boolean, enableStorage?: boolean, enableAuth?: boolean, enableDatabase?: boolean, enableFirestore?: boolean> | React Provider that initializes and provides Firebase App via Context. It can also pre-instantiate and expose optional Firebase services via Context. | Internally calls firebaseService.init(options, name, true) when options/name change. Optional services are only available in Context if their respective enable flags are true. |
|
|
96
|
-
| useFirebaseApp | useFirebaseApp(): FirebaseApp | Hook to get the current FirebaseApp from Context. | Throws if used outside a FirebaseAppProvider: "Firebase app isn't found, did you forget to wrap your app in <FirebaseAppProvider>" |
|
|
97
|
-
| useAnalytics | useAnalytics(): Analytics | Hook to access Analytics from Context. | Throws if Provider not present or enableAnalytics not set. |
|
|
98
|
-
| usePerformance | usePerformance(): FirebasePerformance | Hook to access Performance from Context. | Throws if Provider not present or enablePerformance not set. |
|
|
99
|
-
| useRemoteConfig | useRemoteConfig(): RemoteConfig | Hook to access Remote Config from Context. | Throws if Provider not present or enableRemoteConfig not set. |
|
|
100
|
-
| useStorage | useStorage(): FirebaseStorage | Hook to access Storage from Context. | Throws if Provider not present or enableStorage not set. |
|
|
101
|
-
| useAuth | useAuth(): Auth | Hook to access Auth from Context. | Throws if Provider not present or enableAuth not set. |
|
|
102
|
-
| useDatabase | useDatabase(): Database | Hook to access Realtime Database from Context. | Throws if Provider not present or enableDatabase not set. |
|
|
103
|
-
| useFirestore | useFirestore(): Firestore | Hook to access Firestore from Context. | Throws if Provider not present or enableFirestore not set. |
|
|
104
|
-
|
|
105
|
-
## Compatibility
|
|
106
|
-
- Peer: react >=17, react-dom >=17, firebase ^12, @nardole/firebase-core ^1
|
|
107
|
-
|
|
108
|
-
## Troubleshooting
|
|
109
|
-
- Seeing "Firebase app already initialized" warnings/errors?
|
|
110
|
-
- Ensure your MFEs share the same options and app name, or rely on the @nardole/firebase-core singleton. The Provider uses `override` to safely update when props change.
|
|
111
|
-
|
|
112
|
-
## License
|
|
113
|
-
MIT
|
|
1
|
+
# @nardole/firebase-react
|
|
2
|
+
|
|
3
|
+
Elegant React bindings for @nardole/firebase-core. Provide the Firebase App via Context and access it anywhere with hooks. Works great in Micro‑Frontends thanks to the shared singleton under the hood.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@nardole/firebase-react)
|
|
6
|
+

|
|
7
|
+
[](#license)
|
|
8
|
+
[](https://react.dev/)
|
|
9
|
+
|
|
10
|
+
- Why
|
|
11
|
+
- Features
|
|
12
|
+
- Installation
|
|
13
|
+
- Quick Start
|
|
14
|
+
- Usage
|
|
15
|
+
- Provider
|
|
16
|
+
- Hook
|
|
17
|
+
- Micro‑Frontend (MFE)
|
|
18
|
+
- API
|
|
19
|
+
- Compatibility
|
|
20
|
+
- Troubleshooting
|
|
21
|
+
- License
|
|
22
|
+
|
|
23
|
+
## Why
|
|
24
|
+
Managing Firebase initialization across multiple React apps or MFEs is error‑prone. This package provides a tiny Provider and Hook built on a shared singleton, ensuring exactly one Firebase instance.
|
|
25
|
+
|
|
26
|
+
## Features
|
|
27
|
+
- FirebaseAppProvider to initialize and provide the app via React Context
|
|
28
|
+
- useFirebaseApp hook to access the current FirebaseApp instance
|
|
29
|
+
- Designed for MFEs — initialize once (even outside React) and reuse everywhere
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
- pnpm add @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
33
|
+
- npm install @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
34
|
+
- yarn add @nardole/firebase-react @nardole/firebase-core firebase react react-dom
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
1. Wrap your application with the Provider using your Firebase options.
|
|
38
|
+
2. Use the Hook in child components to access the shared instance.
|
|
39
|
+
|
|
40
|
+
## Usage — Provider
|
|
41
|
+
```tsx
|
|
42
|
+
import { FirebaseAppProvider } from '@nardole/firebase-react';
|
|
43
|
+
|
|
44
|
+
export function AppRoot() {
|
|
45
|
+
return (
|
|
46
|
+
<FirebaseAppProvider
|
|
47
|
+
options={{
|
|
48
|
+
apiKey: 'YOUR_API_KEY',
|
|
49
|
+
authDomain: 'YOUR_AUTH_DOMAIN',
|
|
50
|
+
projectId: 'YOUR_PROJECT_ID',
|
|
51
|
+
appId: 'YOUR_APP_ID',
|
|
52
|
+
}}
|
|
53
|
+
>
|
|
54
|
+
<YourApp />
|
|
55
|
+
</FirebaseAppProvider>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Usage — Hook
|
|
61
|
+
```tsx
|
|
62
|
+
import { useFirebaseApp } from '@nardole/firebase-react';
|
|
63
|
+
|
|
64
|
+
export function AnyComponent() {
|
|
65
|
+
const app = useFirebaseApp();
|
|
66
|
+
// Use app with other firebase packages (auth, firestore, etc.)
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Micro‑Frontend (MFE)
|
|
72
|
+
Initialize the core service in the shell or any federated module, and React MFEs will reuse it.
|
|
73
|
+
```ts
|
|
74
|
+
// shell or any non-React mfe
|
|
75
|
+
import { firebaseService } from '@nardole/firebase-core';
|
|
76
|
+
firebaseService.init({ /* options */ });
|
|
77
|
+
```
|
|
78
|
+
```tsx
|
|
79
|
+
// inside a React MFE
|
|
80
|
+
import { FirebaseAppProvider, useFirebaseApp } from '@nardole/firebase-react';
|
|
81
|
+
|
|
82
|
+
// Option A — wrap with the provider (reuses existing instance)
|
|
83
|
+
<FirebaseAppProvider options={{ /* same options */ }}>
|
|
84
|
+
<YourApp />
|
|
85
|
+
</FirebaseAppProvider>
|
|
86
|
+
|
|
87
|
+
// Option B — if the provider isn’t available, you can still use the hook
|
|
88
|
+
const app = useFirebaseApp();
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## API
|
|
92
|
+
|
|
93
|
+
| Item | Props/Signature | Description | Notes/Errors |
|
|
94
|
+
| --- | --- | --- | --- |
|
|
95
|
+
| FirebaseAppProvider | <FirebaseAppProvider options: FirebaseOptions, name?: string, enableAnalytics?: boolean, enablePerformance?: boolean, enableRemoteConfig?: boolean, enableStorage?: boolean, enableAuth?: boolean, enableDatabase?: boolean, enableFirestore?: boolean> | React Provider that initializes and provides Firebase App via Context. It can also pre-instantiate and expose optional Firebase services via Context. | Internally calls firebaseService.init(options, name, true) when options/name change. Optional services are only available in Context if their respective enable flags are true. |
|
|
96
|
+
| useFirebaseApp | useFirebaseApp(): FirebaseApp | Hook to get the current FirebaseApp from Context. | Throws if used outside a FirebaseAppProvider: "Firebase app isn't found, did you forget to wrap your app in <FirebaseAppProvider>" |
|
|
97
|
+
| useAnalytics | useAnalytics(): Analytics | Hook to access Analytics from Context. | Throws if Provider not present or enableAnalytics not set. |
|
|
98
|
+
| usePerformance | usePerformance(): FirebasePerformance | Hook to access Performance from Context. | Throws if Provider not present or enablePerformance not set. |
|
|
99
|
+
| useRemoteConfig | useRemoteConfig(): RemoteConfig | Hook to access Remote Config from Context. | Throws if Provider not present or enableRemoteConfig not set. |
|
|
100
|
+
| useStorage | useStorage(): FirebaseStorage | Hook to access Storage from Context. | Throws if Provider not present or enableStorage not set. |
|
|
101
|
+
| useAuth | useAuth(): Auth | Hook to access Auth from Context. | Throws if Provider not present or enableAuth not set. |
|
|
102
|
+
| useDatabase | useDatabase(): Database | Hook to access Realtime Database from Context. | Throws if Provider not present or enableDatabase not set. |
|
|
103
|
+
| useFirestore | useFirestore(): Firestore | Hook to access Firestore from Context. | Throws if Provider not present or enableFirestore not set. |
|
|
104
|
+
|
|
105
|
+
## Compatibility
|
|
106
|
+
- Peer: react >=17, react-dom >=17, firebase ^12, @nardole/firebase-core ^1
|
|
107
|
+
|
|
108
|
+
## Troubleshooting
|
|
109
|
+
- Seeing "Firebase app already initialized" warnings/errors?
|
|
110
|
+
- Ensure your MFEs share the same options and app name, or rely on the @nardole/firebase-core singleton. The Provider uses `override` to safely update when props change.
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
MIT
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useAnalytics.ts
|
|
6
|
+
function useAnalytics() {
|
|
7
|
+
const app = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!app || !app.analytics) throw new Error("Analytics is not enabled for this Firebase app");
|
|
9
|
+
return app.analytics;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useAnalytics = useAnalytics;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useAnalytics.ts
|
|
4
|
+
function useAnalytics() {
|
|
5
|
+
const app = useContext(FirebaseAppContext);
|
|
6
|
+
if (!app || !app.analytics) throw new Error("Analytics is not enabled for this Firebase app");
|
|
7
|
+
return app.analytics;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useAnalytics };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useAuth.ts
|
|
6
|
+
function useAuth() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.auth === void 0) throw new Error("Firebase auth isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.auth;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useAuth = useAuth;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useAuth.ts
|
|
4
|
+
function useAuth() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.auth === void 0) throw new Error("Firebase auth isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.auth;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useAuth };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useDatabase.ts
|
|
6
|
+
function useDatabase() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.database === void 0) throw new Error("Firebase database isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.database;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useDatabase = useDatabase;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useDatabase.ts
|
|
4
|
+
function useDatabase() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.database === void 0) throw new Error("Firebase database isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.database;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useDatabase };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useFirebaseApp.ts
|
|
6
|
+
function useFirebaseApp() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.app === void 0) throw new Error("Firebase app isn't found, did you forget to wrap your app in <FirebaseAppProvider>");
|
|
9
|
+
return value.app;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useFirebaseApp = useFirebaseApp;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useFirebaseApp.ts
|
|
4
|
+
function useFirebaseApp() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.app === void 0) throw new Error("Firebase app isn't found, did you forget to wrap your app in <FirebaseAppProvider>");
|
|
7
|
+
return value.app;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useFirebaseApp };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useFirestore.ts
|
|
6
|
+
function useFirestore() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.firestore === void 0) throw new Error("Firebase firestore isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.firestore;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useFirestore = useFirestore;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useFirestore.ts
|
|
4
|
+
function useFirestore() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.firestore === void 0) throw new Error("Firebase firestore isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.firestore;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useFirestore };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/usePerformance.ts
|
|
6
|
+
function usePerformance() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.performance === void 0) throw new Error("Firebase performance isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.performance;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.usePerformance = usePerformance;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/usePerformance.ts
|
|
4
|
+
function usePerformance() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.performance === void 0) throw new Error("Firebase performance isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.performance;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { usePerformance };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useRemoteConfig.ts
|
|
6
|
+
function useRemoteConfig() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.remoteConfig === void 0) throw new Error("Firebase remote config isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.remoteConfig;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useRemoteConfig = useRemoteConfig;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useRemoteConfig.ts
|
|
4
|
+
function useRemoteConfig() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.remoteConfig === void 0) throw new Error("Firebase remote config isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.remoteConfig;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useRemoteConfig };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_providers_FirebaseAppProvider = require("../providers/FirebaseAppProvider.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region src/hooks/useStorage.ts
|
|
6
|
+
function useStorage() {
|
|
7
|
+
const value = (0, react.useContext)(require_providers_FirebaseAppProvider.FirebaseAppContext);
|
|
8
|
+
if (!value || value.storage === void 0) throw new Error("Firebase storage isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
9
|
+
return value.storage;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
exports.useStorage = useStorage;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FirebaseAppContext } from "../providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
//#region src/hooks/useStorage.ts
|
|
4
|
+
function useStorage() {
|
|
5
|
+
const value = useContext(FirebaseAppContext);
|
|
6
|
+
if (!value || value.storage === void 0) throw new Error("Firebase storage isn't found, did you forget to enable it in <FirebaseAppProvider>");
|
|
7
|
+
return value.storage;
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { useStorage };
|
package/dist/main.cjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_providers_FirebaseAppProvider = require("./providers/FirebaseAppProvider.cjs");
|
|
3
|
+
const require_hooks_useAnalytics = require("./hooks/useAnalytics.cjs");
|
|
4
|
+
const require_hooks_useAuth = require("./hooks/useAuth.cjs");
|
|
5
|
+
const require_hooks_useDatabase = require("./hooks/useDatabase.cjs");
|
|
6
|
+
const require_hooks_useFirebaseApp = require("./hooks/useFirebaseApp.cjs");
|
|
7
|
+
const require_hooks_useFirestore = require("./hooks/useFirestore.cjs");
|
|
8
|
+
const require_hooks_usePerformance = require("./hooks/usePerformance.cjs");
|
|
9
|
+
const require_hooks_useRemoteConfig = require("./hooks/useRemoteConfig.cjs");
|
|
10
|
+
const require_hooks_useStorage = require("./hooks/useStorage.cjs");
|
|
11
|
+
exports.FirebaseAppContext = require_providers_FirebaseAppProvider.FirebaseAppContext;
|
|
12
|
+
exports.FirebaseAppProvider = require_providers_FirebaseAppProvider.FirebaseAppProvider;
|
|
13
|
+
exports.useAnalytics = require_hooks_useAnalytics.useAnalytics;
|
|
14
|
+
exports.useAuth = require_hooks_useAuth.useAuth;
|
|
15
|
+
exports.useDatabase = require_hooks_useDatabase.useDatabase;
|
|
16
|
+
exports.useFirebaseApp = require_hooks_useFirebaseApp.useFirebaseApp;
|
|
17
|
+
exports.useFirestore = require_hooks_useFirestore.useFirestore;
|
|
18
|
+
exports.usePerformance = require_hooks_usePerformance.usePerformance;
|
|
19
|
+
exports.useRemoteConfig = require_hooks_useRemoteConfig.useRemoteConfig;
|
|
20
|
+
exports.useStorage = require_hooks_useStorage.useStorage;
|
package/dist/main.d.ts
CHANGED
|
@@ -1,64 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import { FirebaseOptions } from 'firebase/app';
|
|
11
|
-
import { FirebasePerformance } from '@firebase/performance';
|
|
12
|
-
import { FirebasePerformance as FirebasePerformance_2 } from 'firebase/performance';
|
|
13
|
-
import { FirebaseStorage } from '@firebase/storage';
|
|
14
|
-
import { FirebaseStorage as FirebaseStorage_2 } from 'firebase/storage';
|
|
15
|
-
import { Firestore } from '@firebase/firestore';
|
|
16
|
-
import { Firestore as Firestore_2 } from 'firebase/firestore';
|
|
17
|
-
import { JSX } from 'react/jsx-runtime';
|
|
18
|
-
import { RemoteConfig } from '@firebase/remote-config';
|
|
19
|
-
import { RemoteConfig as RemoteConfig_2 } from 'firebase/remote-config';
|
|
20
|
-
|
|
21
|
-
export declare const FirebaseAppContext: default_2.Context<FirebaseAppContextValue | undefined>;
|
|
22
|
-
|
|
23
|
-
declare type FirebaseAppContextValue = {
|
|
24
|
-
app: FirebaseApp_2;
|
|
25
|
-
analytics?: Analytics_2;
|
|
26
|
-
performance?: FirebasePerformance_2;
|
|
27
|
-
remoteConfig?: RemoteConfig_2;
|
|
28
|
-
storage?: FirebaseStorage_2;
|
|
29
|
-
auth?: Auth_2;
|
|
30
|
-
database?: Database_2;
|
|
31
|
-
firestore?: Firestore_2;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export declare function FirebaseAppProvider({ options, name, enableAnalytics, enablePerformance, enableRemoteConfig, enableStorage, enableAuth, enableDatabase, enableFirestore, children, }: FirebaseAppProviderProps): JSX.Element;
|
|
35
|
-
|
|
36
|
-
declare type FirebaseAppProviderProps = default_2.PropsWithChildren<{
|
|
37
|
-
options: FirebaseOptions;
|
|
38
|
-
name?: string;
|
|
39
|
-
enableAnalytics?: boolean;
|
|
40
|
-
enablePerformance?: boolean;
|
|
41
|
-
enableRemoteConfig?: boolean;
|
|
42
|
-
enableStorage?: boolean;
|
|
43
|
-
enableAuth?: boolean;
|
|
44
|
-
enableDatabase?: boolean;
|
|
45
|
-
enableFirestore?: boolean;
|
|
46
|
-
}>;
|
|
47
|
-
|
|
48
|
-
export declare function useAnalytics(): Analytics;
|
|
49
|
-
|
|
50
|
-
export declare function useAuth(): Auth;
|
|
51
|
-
|
|
52
|
-
export declare function useDatabase(): Database;
|
|
53
|
-
|
|
54
|
-
export declare function useFirebaseApp(): FirebaseApp;
|
|
55
|
-
|
|
56
|
-
export declare function useFirestore(): Firestore;
|
|
57
|
-
|
|
58
|
-
export declare function usePerformance(): FirebasePerformance;
|
|
59
|
-
|
|
60
|
-
export declare function useRemoteConfig(): RemoteConfig;
|
|
61
|
-
|
|
62
|
-
export declare function useStorage(): FirebaseStorage;
|
|
63
|
-
|
|
64
|
-
export { }
|
|
1
|
+
export * from './hooks/useAnalytics.ts';
|
|
2
|
+
export * from './hooks/useAuth.ts';
|
|
3
|
+
export * from './hooks/useDatabase.ts';
|
|
4
|
+
export * from './hooks/useFirebaseApp.ts';
|
|
5
|
+
export * from './hooks/useFirestore.ts';
|
|
6
|
+
export * from './hooks/usePerformance.ts';
|
|
7
|
+
export * from './hooks/useRemoteConfig.ts';
|
|
8
|
+
export * from './hooks/useStorage.ts';
|
|
9
|
+
export * from './providers/FirebaseAppProvider.tsx';
|
package/dist/main.js
CHANGED
|
@@ -1,119 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
enableAuth,
|
|
12
|
-
enableDatabase,
|
|
13
|
-
enableFirestore,
|
|
14
|
-
children
|
|
15
|
-
}) {
|
|
16
|
-
const firebase = useContext(FirebaseAppContext);
|
|
17
|
-
const optionsRef = useRef(void 0);
|
|
18
|
-
const nameRef = useRef(void 0);
|
|
19
|
-
const value = useMemo(() => {
|
|
20
|
-
if (!firebase && (optionsRef.current !== options || nameRef.current !== name)) {
|
|
21
|
-
firebaseService.init(options, name, true);
|
|
22
|
-
}
|
|
23
|
-
optionsRef.current = options;
|
|
24
|
-
nameRef.current = name;
|
|
25
|
-
return {
|
|
26
|
-
app: firebaseService.app,
|
|
27
|
-
analytics: enableAnalytics ? firebaseService.analytics : void 0,
|
|
28
|
-
performance: enablePerformance ? firebaseService.performance : void 0,
|
|
29
|
-
remoteConfig: enableRemoteConfig ? firebaseService.remoteConfig : void 0,
|
|
30
|
-
storage: enableStorage ? firebaseService.storage : void 0,
|
|
31
|
-
auth: enableAuth ? firebaseService.auth : void 0,
|
|
32
|
-
database: enableDatabase ? firebaseService.database : void 0,
|
|
33
|
-
firestore: enableFirestore ? firebaseService.firestore : void 0
|
|
34
|
-
};
|
|
35
|
-
}, [options, name]);
|
|
36
|
-
return /* @__PURE__ */ React.createElement(FirebaseAppContext.Provider, { value }, children);
|
|
37
|
-
}
|
|
38
|
-
function useAnalytics() {
|
|
39
|
-
const app = useContext(FirebaseAppContext);
|
|
40
|
-
if (!app || !app.analytics) {
|
|
41
|
-
throw new Error("Analytics is not enabled for this Firebase app");
|
|
42
|
-
}
|
|
43
|
-
return app.analytics;
|
|
44
|
-
}
|
|
45
|
-
function useAuth() {
|
|
46
|
-
const value = useContext(FirebaseAppContext);
|
|
47
|
-
if (!value || value.auth === void 0) {
|
|
48
|
-
throw new Error(
|
|
49
|
-
"Firebase auth isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
return value.auth;
|
|
53
|
-
}
|
|
54
|
-
function useDatabase() {
|
|
55
|
-
const value = useContext(FirebaseAppContext);
|
|
56
|
-
if (!value || value.database === void 0) {
|
|
57
|
-
throw new Error(
|
|
58
|
-
"Firebase database isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
return value.database;
|
|
62
|
-
}
|
|
63
|
-
function useFirebaseApp() {
|
|
64
|
-
const value = useContext(FirebaseAppContext);
|
|
65
|
-
if (!value || value.app === void 0) {
|
|
66
|
-
throw new Error(
|
|
67
|
-
"Firebase app isn't found, did you forget to wrap your app in <FirebaseAppProvider>"
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
return value.app;
|
|
71
|
-
}
|
|
72
|
-
function useFirestore() {
|
|
73
|
-
const value = useContext(FirebaseAppContext);
|
|
74
|
-
if (!value || value.firestore === void 0) {
|
|
75
|
-
throw new Error(
|
|
76
|
-
"Firebase firestore isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
return value.firestore;
|
|
80
|
-
}
|
|
81
|
-
function usePerformance() {
|
|
82
|
-
const value = useContext(FirebaseAppContext);
|
|
83
|
-
if (!value || value.performance === void 0) {
|
|
84
|
-
throw new Error(
|
|
85
|
-
"Firebase performance isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
return value.performance;
|
|
89
|
-
}
|
|
90
|
-
function useRemoteConfig() {
|
|
91
|
-
const value = useContext(FirebaseAppContext);
|
|
92
|
-
if (!value || value.remoteConfig === void 0) {
|
|
93
|
-
throw new Error(
|
|
94
|
-
"Firebase remote config isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
return value.remoteConfig;
|
|
98
|
-
}
|
|
99
|
-
function useStorage() {
|
|
100
|
-
const value = useContext(FirebaseAppContext);
|
|
101
|
-
if (!value || value.storage === void 0) {
|
|
102
|
-
throw new Error(
|
|
103
|
-
"Firebase storage isn't found, did you forget to enable it in <FirebaseAppProvider>"
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
return value.storage;
|
|
107
|
-
}
|
|
108
|
-
export {
|
|
109
|
-
FirebaseAppContext,
|
|
110
|
-
FirebaseAppProvider,
|
|
111
|
-
useAnalytics,
|
|
112
|
-
useAuth,
|
|
113
|
-
useDatabase,
|
|
114
|
-
useFirebaseApp,
|
|
115
|
-
useFirestore,
|
|
116
|
-
usePerformance,
|
|
117
|
-
useRemoteConfig,
|
|
118
|
-
useStorage
|
|
119
|
-
};
|
|
1
|
+
import { FirebaseAppContext, FirebaseAppProvider } from "./providers/FirebaseAppProvider.js";
|
|
2
|
+
import { useAnalytics } from "./hooks/useAnalytics.js";
|
|
3
|
+
import { useAuth } from "./hooks/useAuth.js";
|
|
4
|
+
import { useDatabase } from "./hooks/useDatabase.js";
|
|
5
|
+
import { useFirebaseApp } from "./hooks/useFirebaseApp.js";
|
|
6
|
+
import { useFirestore } from "./hooks/useFirestore.js";
|
|
7
|
+
import { usePerformance } from "./hooks/usePerformance.js";
|
|
8
|
+
import { useRemoteConfig } from "./hooks/useRemoteConfig.js";
|
|
9
|
+
import { useStorage } from "./hooks/useStorage.js";
|
|
10
|
+
export { FirebaseAppContext, FirebaseAppProvider, useAnalytics, useAuth, useDatabase, useFirebaseApp, useFirestore, usePerformance, useRemoteConfig, useStorage };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
react = require_runtime.__toESM(react);
|
|
5
|
+
let _nardole_firebase_core = require("@nardole/firebase-core");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
//#region src/providers/FirebaseAppProvider.tsx
|
|
8
|
+
var FirebaseAppContext = react.default.createContext(void 0);
|
|
9
|
+
function FirebaseAppProvider({ options, name, enableAnalytics, enablePerformance, enableRemoteConfig, enableStorage, enableAuth, enableDatabase, enableFirestore, children }) {
|
|
10
|
+
const firebase = (0, react.useContext)(FirebaseAppContext);
|
|
11
|
+
const optionsRef = (0, react.useRef)(void 0);
|
|
12
|
+
const nameRef = (0, react.useRef)(void 0);
|
|
13
|
+
const value = (0, react.useMemo)(() => {
|
|
14
|
+
if (!firebase && (optionsRef.current !== options || nameRef.current !== name)) _nardole_firebase_core.firebaseService.init(options, name, true);
|
|
15
|
+
optionsRef.current = options;
|
|
16
|
+
nameRef.current = name;
|
|
17
|
+
return {
|
|
18
|
+
app: _nardole_firebase_core.firebaseService.app,
|
|
19
|
+
analytics: enableAnalytics ? _nardole_firebase_core.firebaseService.analytics : void 0,
|
|
20
|
+
performance: enablePerformance ? _nardole_firebase_core.firebaseService.performance : void 0,
|
|
21
|
+
remoteConfig: enableRemoteConfig ? _nardole_firebase_core.firebaseService.remoteConfig : void 0,
|
|
22
|
+
storage: enableStorage ? _nardole_firebase_core.firebaseService.storage : void 0,
|
|
23
|
+
auth: enableAuth ? _nardole_firebase_core.firebaseService.auth : void 0,
|
|
24
|
+
database: enableDatabase ? _nardole_firebase_core.firebaseService.database : void 0,
|
|
25
|
+
firestore: enableFirestore ? _nardole_firebase_core.firebaseService.firestore : void 0
|
|
26
|
+
};
|
|
27
|
+
}, [options, name]);
|
|
28
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FirebaseAppContext.Provider, {
|
|
29
|
+
value,
|
|
30
|
+
children
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.FirebaseAppContext = FirebaseAppContext;
|
|
35
|
+
exports.FirebaseAppProvider = FirebaseAppProvider;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { FirebaseApp, FirebaseOptions } from 'firebase/app';
|
|
3
|
+
import { Analytics } from 'firebase/analytics';
|
|
4
|
+
import { FirebasePerformance } from 'firebase/performance';
|
|
5
|
+
import { RemoteConfig } from 'firebase/remote-config';
|
|
6
|
+
import { FirebaseStorage } from 'firebase/storage';
|
|
7
|
+
import { Auth } from 'firebase/auth';
|
|
8
|
+
import { Database } from 'firebase/database';
|
|
9
|
+
import { Firestore } from 'firebase/firestore';
|
|
10
|
+
type FirebaseAppContextValue = {
|
|
11
|
+
app: FirebaseApp;
|
|
12
|
+
analytics?: Analytics;
|
|
13
|
+
performance?: FirebasePerformance;
|
|
14
|
+
remoteConfig?: RemoteConfig;
|
|
15
|
+
storage?: FirebaseStorage;
|
|
16
|
+
auth?: Auth;
|
|
17
|
+
database?: Database;
|
|
18
|
+
firestore?: Firestore;
|
|
19
|
+
};
|
|
20
|
+
export declare const FirebaseAppContext: React.Context<FirebaseAppContextValue | undefined>;
|
|
21
|
+
type FirebaseAppProviderProps = React.PropsWithChildren<{
|
|
22
|
+
options: FirebaseOptions;
|
|
23
|
+
name?: string;
|
|
24
|
+
enableAnalytics?: boolean;
|
|
25
|
+
enablePerformance?: boolean;
|
|
26
|
+
enableRemoteConfig?: boolean;
|
|
27
|
+
enableStorage?: boolean;
|
|
28
|
+
enableAuth?: boolean;
|
|
29
|
+
enableDatabase?: boolean;
|
|
30
|
+
enableFirestore?: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
export declare function FirebaseAppProvider({ options, name, enableAnalytics, enablePerformance, enableRemoteConfig, enableStorage, enableAuth, enableDatabase, enableFirestore, children, }: FirebaseAppProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { useContext, useMemo, useRef } from "react";
|
|
2
|
+
import { firebaseService } from "@nardole/firebase-core";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/providers/FirebaseAppProvider.tsx
|
|
5
|
+
var FirebaseAppContext = React.createContext(void 0);
|
|
6
|
+
function FirebaseAppProvider({ options, name, enableAnalytics, enablePerformance, enableRemoteConfig, enableStorage, enableAuth, enableDatabase, enableFirestore, children }) {
|
|
7
|
+
const firebase = useContext(FirebaseAppContext);
|
|
8
|
+
const optionsRef = useRef(void 0);
|
|
9
|
+
const nameRef = useRef(void 0);
|
|
10
|
+
const value = useMemo(() => {
|
|
11
|
+
if (!firebase && (optionsRef.current !== options || nameRef.current !== name)) firebaseService.init(options, name, true);
|
|
12
|
+
optionsRef.current = options;
|
|
13
|
+
nameRef.current = name;
|
|
14
|
+
return {
|
|
15
|
+
app: firebaseService.app,
|
|
16
|
+
analytics: enableAnalytics ? firebaseService.analytics : void 0,
|
|
17
|
+
performance: enablePerformance ? firebaseService.performance : void 0,
|
|
18
|
+
remoteConfig: enableRemoteConfig ? firebaseService.remoteConfig : void 0,
|
|
19
|
+
storage: enableStorage ? firebaseService.storage : void 0,
|
|
20
|
+
auth: enableAuth ? firebaseService.auth : void 0,
|
|
21
|
+
database: enableDatabase ? firebaseService.database : void 0,
|
|
22
|
+
firestore: enableFirestore ? firebaseService.firestore : void 0
|
|
23
|
+
};
|
|
24
|
+
}, [options, name]);
|
|
25
|
+
return /* @__PURE__ */ jsx(FirebaseAppContext.Provider, {
|
|
26
|
+
value,
|
|
27
|
+
children
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { FirebaseAppContext, FirebaseAppProvider };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nardole/firebase-react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"firebase",
|
|
6
6
|
"react",
|
|
@@ -34,14 +34,28 @@
|
|
|
34
34
|
"types": "dist/main.d.ts",
|
|
35
35
|
"module": "dist/main.js",
|
|
36
36
|
"exports": {
|
|
37
|
+
"./package.json": "./package.json",
|
|
37
38
|
".": {
|
|
38
|
-
"
|
|
39
|
-
|
|
39
|
+
"require": {
|
|
40
|
+
"types": "./dist/main.d.ts",
|
|
41
|
+
"import": "./dist/main.cjs"
|
|
42
|
+
},
|
|
43
|
+
"import": {
|
|
44
|
+
"types": "./dist/main.d.ts",
|
|
45
|
+
"import": "./dist/main.js"
|
|
46
|
+
}
|
|
40
47
|
},
|
|
41
48
|
"./*": {
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
"require": {
|
|
50
|
+
"types": "./dist/*.d.ts",
|
|
51
|
+
"import": "./dist/*.cjs"
|
|
52
|
+
},
|
|
53
|
+
"import": {
|
|
54
|
+
"types": "./dist/*.d.ts",
|
|
55
|
+
"import": "./dist/*.js"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"./esm": null
|
|
45
59
|
},
|
|
46
60
|
"files": [
|
|
47
61
|
"dist"
|
|
@@ -61,13 +75,14 @@
|
|
|
61
75
|
"react-dom": "*"
|
|
62
76
|
},
|
|
63
77
|
"devDependencies": {
|
|
64
|
-
"@nardole/firebase-core": "^0.0.
|
|
78
|
+
"@nardole/firebase-core": "^0.0.16",
|
|
65
79
|
"@types/react": "^19.2.14",
|
|
66
80
|
"@types/react-dom": "^19.2.3",
|
|
67
81
|
"@vitejs/plugin-react": "^5.1.4",
|
|
68
82
|
"firebase": "^12.9.0",
|
|
83
|
+
"glob": "^13.0.6",
|
|
69
84
|
"typescript": "^5.9.3",
|
|
70
|
-
"vite": "^
|
|
85
|
+
"vite": "^8.0.0",
|
|
71
86
|
"vite-plugin-dts": "^4.5.4"
|
|
72
87
|
},
|
|
73
88
|
"packageManager": "yarn@4.10.3"
|