mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-04-23 20:10:05 +08:00
[types][auth] rework types
This commit is contained in:
@@ -63,3 +63,4 @@ android/.settings
|
||||
*.coverage.json
|
||||
.circleci
|
||||
.eslintignore
|
||||
type-test.ts
|
||||
|
||||
64
packages/auth/lib/index.d.ts
vendored
64
packages/auth/lib/index.d.ts
vendored
@@ -15,12 +15,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
import {
|
||||
ReactNativeFirebaseModule,
|
||||
ReactNativeFirebaseNamespace,
|
||||
ReactNativeFirebaseModuleAndStatics,
|
||||
NativeFirebaseError,
|
||||
} from '@react-native-firebase/app-types';
|
||||
import { ReactNativeFirebase } from '@react-native-firebase/app';
|
||||
|
||||
/**
|
||||
* Firebase Authentication package for React Native.
|
||||
@@ -60,6 +55,9 @@ import {
|
||||
* @firebase auth
|
||||
*/
|
||||
export namespace Auth {
|
||||
import FirebaseModule = ReactNativeFirebase.FirebaseModule;
|
||||
import NativeFirebaseError = ReactNativeFirebase.NativeFirebaseError;
|
||||
|
||||
/**
|
||||
* Interface that represents the credentials returned by an auth provider. Implementations specify the details
|
||||
* about each auth provider's credential requirements.
|
||||
@@ -872,7 +870,7 @@ export namespace Auth {
|
||||
/**
|
||||
* Additional provider-specific information about the user.
|
||||
*/
|
||||
providerData: Array<UserInfo>;
|
||||
providerData: UserInfo[];
|
||||
|
||||
/**
|
||||
* The authentication provider ID for the current user.
|
||||
@@ -1131,7 +1129,7 @@ export namespace Auth {
|
||||
*
|
||||
* TODO @salakar missing updateCurrentUser
|
||||
*/
|
||||
export class Module extends ReactNativeFirebaseModule {
|
||||
export class Module extends FirebaseModule {
|
||||
/**
|
||||
* Gets the current language code.
|
||||
*
|
||||
@@ -1542,7 +1540,7 @@ export namespace Auth {
|
||||
* @error auth/invalid-email Thrown if the email address is not valid.
|
||||
* @param email The users email address.
|
||||
*/
|
||||
fetchSignInMethodsForEmail(email: string): Promise<Array<string>>;
|
||||
fetchSignInMethodsForEmail(email: string): Promise<string[]>;
|
||||
|
||||
/**
|
||||
* Checks a password reset code sent to the user by email or other out-of-band mechanism.
|
||||
@@ -1565,45 +1563,27 @@ export namespace Auth {
|
||||
}
|
||||
|
||||
declare module '@react-native-firebase/auth' {
|
||||
import { ReactNativeFirebaseNamespace } from '@react-native-firebase/app-types';
|
||||
import ReactNativeFirebaseModule = ReactNativeFirebase.Module;
|
||||
import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
|
||||
|
||||
const FirebaseNamespaceExport: {} & ReactNativeFirebaseNamespace;
|
||||
const firebaseNamedExport: {} & ReactNativeFirebaseModule;
|
||||
export const firebase = firebaseNamedExport;
|
||||
|
||||
/**
|
||||
* @example
|
||||
* ```js
|
||||
* import { firebase } from '@react-native-firebase/auth';
|
||||
* firebase.auth().X(...);
|
||||
* ```
|
||||
*/
|
||||
export const firebase = FirebaseNamespaceExport;
|
||||
|
||||
const AuthDefaultExport: ReactNativeFirebaseModuleAndStatics<Auth.Module, Auth.Statics>;
|
||||
/**
|
||||
* @example
|
||||
* ```js
|
||||
* import auth from '@react-native-firebase/auth';
|
||||
* auth().X(...);
|
||||
* ```
|
||||
*/
|
||||
export default AuthDefaultExport;
|
||||
const module: FirebaseModuleWithStaticsAndApp<Auth.Module, Auth.Statics>;
|
||||
export default module;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach namespace to `firebase.` and `FirebaseApp.`.
|
||||
*/
|
||||
declare module '@react-native-firebase/app-types' {
|
||||
interface ReactNativeFirebaseNamespace {
|
||||
/**
|
||||
* Auth
|
||||
*/
|
||||
auth: ReactNativeFirebaseModuleAndStatics<Auth.Module, Auth.Statics>;
|
||||
}
|
||||
|
||||
interface FirebaseApp {
|
||||
/**
|
||||
* Auth
|
||||
*/
|
||||
auth(): Auth.Module;
|
||||
declare module '@react-native-firebase/app' {
|
||||
namespace ReactNativeFirebase {
|
||||
import FirebaseModuleWithStaticsAndApp = ReactNativeFirebase.FirebaseModuleWithStaticsAndApp;
|
||||
interface Module {
|
||||
auth: FirebaseModuleWithStaticsAndApp<Auth.Module, Auth.Statics>;
|
||||
}
|
||||
interface FirebaseApp {
|
||||
auth(): Auth.Module;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
28
packages/auth/type-test.ts
Normal file
28
packages/auth/type-test.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import firebase from '@react-native-firebase/app';
|
||||
import defaultExport, { firebase as firebaseFromModule } from '@react-native-firebase/auth';
|
||||
|
||||
// checks module exists at root
|
||||
console.log(firebase.auth().app.name);
|
||||
console.log(firebase.auth().currentUser);
|
||||
|
||||
// checks module exists at app level
|
||||
console.log(firebase.app().auth().app.name);
|
||||
console.log(firebase.app().auth().currentUser);
|
||||
|
||||
// checks statics exist
|
||||
console.log(firebase.auth.SDK_VERSION);
|
||||
|
||||
// checks statics exist on defaultExport
|
||||
console.log(defaultExport.SDK_VERSION);
|
||||
|
||||
// checks root exists
|
||||
console.log(firebase.SDK_VERSION);
|
||||
|
||||
// checks firebase named export exists on module
|
||||
console.log(firebaseFromModule.SDK_VERSION);
|
||||
|
||||
// checks multi-app support exists
|
||||
console.log(firebase.auth(firebase.app()).app.name);
|
||||
|
||||
// checks default export supports app arg
|
||||
console.log(defaultExport(firebase.app()).app.name);
|
||||
Reference in New Issue
Block a user