diff --git a/packages/crashlytics/.npmignore b/packages/crashlytics/.npmignore index d9fa30e5..29e5aa19 100644 --- a/packages/crashlytics/.npmignore +++ b/packages/crashlytics/.npmignore @@ -63,3 +63,4 @@ android/.settings *.coverage.json .circleci .eslintignore +type-test.ts diff --git a/packages/crashlytics/lib/index.d.ts b/packages/crashlytics/lib/index.d.ts index 04f77dc7..27a6404e 100644 --- a/packages/crashlytics/lib/index.d.ts +++ b/packages/crashlytics/lib/index.d.ts @@ -15,11 +15,7 @@ * */ -import { - ReactNativeFirebaseModule, - ReactNativeFirebaseNamespace, - ReactNativeFirebaseModuleAndStatics, -} from '@react-native-firebase/app-types'; +import { ReactNativeFirebase } from '@react-native-firebase/app'; /** * Firebase Crashlytics package for React Native. @@ -58,6 +54,8 @@ import { * @firebase crashlytics */ export namespace Crashlytics { + import FirebaseModule = ReactNativeFirebase.FirebaseModule; + export interface Statics {} /** @@ -73,7 +71,7 @@ export namespace Crashlytics { * const defaultAppCrashlytics = firebase.crashlytics(); * ``` */ - export class Module extends ReactNativeFirebaseModule { + export class Module extends FirebaseModule { /** * Whether Crashlytics reporting is enabled. * @@ -229,50 +227,27 @@ export namespace Crashlytics { } declare module '@react-native-firebase/crashlytics' { - import { ReactNativeFirebaseNamespace } from '@react-native-firebase/app-types'; + import ReactNativeFirebaseModule = ReactNativeFirebase.Module; + import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics; - const FirebaseNamespaceExport: {} & ReactNativeFirebaseNamespace; + const firebaseNamedExport: {} & ReactNativeFirebaseModule; + export const firebase = firebaseNamedExport; - /** - * @example - * ```js - * import { firebase } from '@react-native-firebase/crashlytics'; - * firebase.crashlytics().X(...); - * ``` - */ - export const firebase = FirebaseNamespaceExport; - - const CrashlyticsDefaultExport: ReactNativeFirebaseModuleAndStatics< - Crashlytics.Module, - Crashlytics.Statics - >; - /** - * @example - * ```js - * import crashlytics from '@react-native-firebase/crashlytics'; - * crashlytics().X(...); - * ``` - */ - export default CrashlyticsDefaultExport; + const module: FirebaseModuleWithStatics; + export default module; } /** * Attach namespace to `firebase.` and `FirebaseApp.`. */ -declare module '@react-native-firebase/app-types' { - interface ReactNativeFirebaseNamespace { - /** - * Firebase Crashlytics helps you track, prioritize, and fix stability issues that erode app quality, in realtime. - * Spend less time triaging and troubleshooting crashes and more time building app features that delight users. - */ - crashlytics: ReactNativeFirebaseModuleAndStatics; - } - - interface FirebaseApp { - /** - * Firebase Crashlytics helps you track, prioritize, and fix stability issues that erode app quality, in realtime. - * Spend less time triaging and troubleshooting crashes and more time building app features that delight users. - */ - crashlytics(): Crashlytics.Module; +declare module '@react-native-firebase/app' { + namespace ReactNativeFirebase { + import FirebaseModuleWithStatics = ReactNativeFirebase.FirebaseModuleWithStatics; + interface Module { + crashlytics: FirebaseModuleWithStatics; + } + interface FirebaseApp { + crashlytics(): Crashlytics.Module; + } } } diff --git a/packages/crashlytics/type-test.ts b/packages/crashlytics/type-test.ts new file mode 100644 index 00000000..4cdb5e3b --- /dev/null +++ b/packages/crashlytics/type-test.ts @@ -0,0 +1,28 @@ +import firebase from '@react-native-firebase/app'; +import defaultExport, { firebase as firebaseFromModule } from '@react-native-firebase/crashlytics'; + +// checks module exists at root +console.log(firebase.crashlytics().app.name); +console.log(firebase.crashlytics().isCrashlyticsCollectionEnabled); + +// checks module exists at app level +console.log(firebase.app().crashlytics().app.name); +console.log(firebase.app().crashlytics().isCrashlyticsCollectionEnabled); + +// checks statics exist +console.log(firebase.crashlytics.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.crashlytics(firebase.app()).app.name); + +// checks default export supports app arg +// console.log(defaultExport(firebase.app()).app.name);