mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-04-22 19:57:51 +08:00
[links] Refactor links to use builder classes
This commit is contained in:
60
lib/modules/links/AndroidParameters.js
Normal file
60
lib/modules/links/AndroidParameters.js
Normal file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* @flow
|
||||
* AndroidParameters representation wrapper
|
||||
*/
|
||||
import type DynamicLink from './DynamicLink';
|
||||
import type { NativeAndroidParameters } from './types';
|
||||
|
||||
export default class AndroidParameters {
|
||||
_fallbackUrl: string | void;
|
||||
_link: DynamicLink;
|
||||
_minimumVersion: number | void;
|
||||
_packageName: string | void;
|
||||
|
||||
constructor(link: DynamicLink) {
|
||||
this._link = link;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param fallbackUrl
|
||||
* @returns {DynamicLink}
|
||||
*/
|
||||
setFallbackUrl(fallbackUrl: string): DynamicLink {
|
||||
this._fallbackUrl = fallbackUrl;
|
||||
return this._link;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param minimumVersion
|
||||
* @returns {DynamicLink}
|
||||
*/
|
||||
setMinimumVersion(minimumVersion: number): DynamicLink {
|
||||
this._minimumVersion = minimumVersion;
|
||||
return this._link;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param packageName
|
||||
* @returns {DynamicLink}
|
||||
*/
|
||||
setPackageName(packageName: string): DynamicLink {
|
||||
this._packageName = packageName;
|
||||
return this._link;
|
||||
}
|
||||
|
||||
build(): NativeAndroidParameters {
|
||||
if ((this._fallbackUrl || this._minimumVersion) && !this._packageName) {
|
||||
throw new Error(
|
||||
'AndroidParameters: Missing required `packageName` property'
|
||||
);
|
||||
}
|
||||
return {
|
||||
fallbackUrl: this._fallbackUrl,
|
||||
minimumVersion: this._minimumVersion,
|
||||
packageName: this._packageName,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user