react-native-firebase-compiled
Version:
A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto
127 lines (98 loc) • 3.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.statics = exports.default = exports.NAMESPACE = exports.MODULE_NAME = void 0;
var _reactNative = require("react-native");
var _DynamicLink = _interopRequireDefault(require("./DynamicLink"));
var _events = require("../../utils/events");
var _log = require("../../utils/log");
var _ModuleBase = _interopRequireDefault(require("../../utils/ModuleBase"));
var _native = require("../../utils/native");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
*
* Dynamic Links representation wrapper
*/
const NATIVE_EVENTS = ['links_link_received'];
const MODULE_NAME = 'RNFirebaseLinks';
exports.MODULE_NAME = MODULE_NAME;
const NAMESPACE = 'links';
/**
* @class Links
*/
exports.NAMESPACE = NAMESPACE;
class Links extends _ModuleBase.default {
constructor(app) {
super(app, {
events: NATIVE_EVENTS,
moduleName: MODULE_NAME,
hasMultiAppSupport: false,
hasCustomUrlSupport: false,
namespace: NAMESPACE
});
_events.SharedEventEmitter.addListener( // sub to internal native event - this fans out to
// public event name: onMessage
'links_link_received', link => {
_events.SharedEventEmitter.emit('onLink', link);
}); // Tell the native module that we're ready to receive events
if (_reactNative.Platform.OS === 'ios') {
(0, _native.getNativeModule)(this).jsInitialised();
}
}
/**
* Create long Dynamic Link from parameters
* @param parameters
* @returns {Promise.<String>}
*/
createDynamicLink(link) {
if (!(link instanceof _DynamicLink.default)) {
return Promise.reject(new Error(`Links:createDynamicLink expects a 'DynamicLink' but got type ${typeof link}`));
}
try {
return (0, _native.getNativeModule)(this).createDynamicLink(link.build());
} catch (error) {
return Promise.reject(error);
}
}
/**
* Create short Dynamic Link from parameters
* @param parameters
* @returns {Promise.<String>}
*/
createShortDynamicLink(link, type) {
if (!(link instanceof _DynamicLink.default)) {
return Promise.reject(new Error(`Links:createShortDynamicLink expects a 'DynamicLink' but got type ${typeof link}`));
}
try {
return (0, _native.getNativeModule)(this).createShortDynamicLink(link.build(), type);
} catch (error) {
return Promise.reject(error);
}
}
/**
* Returns the link that triggered application open
* @returns {Promise.<String>}
*/
getInitialLink() {
return (0, _native.getNativeModule)(this).getInitialLink();
}
/**
* Subscribe to dynamic links
* @param listener
* @returns {Function}
*/
onLink(listener) {
(0, _log.getLogger)(this).info('Creating onLink listener');
_events.SharedEventEmitter.addListener('onLink', listener);
return () => {
(0, _log.getLogger)(this).info('Removing onLink listener');
_events.SharedEventEmitter.removeListener('onLink', listener);
};
}
}
exports.default = Links;
const statics = {
DynamicLink: _DynamicLink.default
};
exports.statics = statics;
;