react-native-flip
Version:
232 lines (182 loc) • 6.87 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFacebookScheme = getFacebookScheme;
exports.getFacebookAppId = getFacebookAppId;
exports.getFacebookDisplayName = getFacebookDisplayName;
exports.getFacebookAutoInitEnabled = getFacebookAutoInitEnabled;
exports.getFacebookAutoLogAppEvents = getFacebookAutoLogAppEvents;
exports.getFacebookAdvertiserIDCollection = getFacebookAdvertiserIDCollection;
exports.setFacebookConfig = setFacebookConfig;
exports.setFacebookScheme = setFacebookScheme;
exports.setFacebookAutoInitEnabled = setFacebookAutoInitEnabled;
exports.setFacebookAutoLogAppEventsEnabled = setFacebookAutoLogAppEventsEnabled;
exports.setFacebookAdvertiserIDCollectionEnabled = setFacebookAdvertiserIDCollectionEnabled;
exports.setFacebookAppId = setFacebookAppId;
exports.setFacebookDisplayName = setFacebookDisplayName;
exports.setFacebookApplicationQuerySchemes = setFacebookApplicationQuerySchemes;
exports.withFacebook = void 0;
function _iosPlugins() {
const data = require("../plugins/ios-plugins");
_iosPlugins = function () {
return data;
};
return data;
}
function _Scheme() {
const data = require("./Scheme");
_Scheme = function () {
return data;
};
return data;
}
const fbSchemes = ['fbapi', 'fb-messenger-api', 'fbauth2', 'fbshareextension'];
const withFacebook = (0, _iosPlugins().createInfoPlistPlugin)(setFacebookConfig, 'withFacebook');
/**
* Getters
* TODO: these getters are the same between ios/android, we could reuse them
*/
exports.withFacebook = withFacebook;
function getFacebookScheme(config) {
var _config$facebookSchem;
return (_config$facebookSchem = config.facebookScheme) !== null && _config$facebookSchem !== void 0 ? _config$facebookSchem : null;
}
function getFacebookAppId(config) {
var _config$facebookAppId;
return (_config$facebookAppId = config.facebookAppId) !== null && _config$facebookAppId !== void 0 ? _config$facebookAppId : null;
}
function getFacebookDisplayName(config) {
var _config$facebookDispl;
return (_config$facebookDispl = config.facebookDisplayName) !== null && _config$facebookDispl !== void 0 ? _config$facebookDispl : null;
}
function getFacebookAutoInitEnabled(config) {
var _config$facebookAutoI;
return (_config$facebookAutoI = config.facebookAutoInitEnabled) !== null && _config$facebookAutoI !== void 0 ? _config$facebookAutoI : null;
}
function getFacebookAutoLogAppEvents(config) {
var _config$facebookAutoL;
return (_config$facebookAutoL = config.facebookAutoLogAppEventsEnabled) !== null && _config$facebookAutoL !== void 0 ? _config$facebookAutoL : null;
}
function getFacebookAdvertiserIDCollection(config) {
var _config$facebookAdver;
return (_config$facebookAdver = config.facebookAdvertiserIDCollectionEnabled) !== null && _config$facebookAdver !== void 0 ? _config$facebookAdver : null;
}
/**
* Setters
*/
function setFacebookConfig(config, infoPlist) {
infoPlist = setFacebookAppId(config, infoPlist);
infoPlist = setFacebookApplicationQuerySchemes(config, infoPlist);
infoPlist = setFacebookDisplayName(config, infoPlist);
infoPlist = setFacebookAutoInitEnabled(config, infoPlist);
infoPlist = setFacebookAutoLogAppEventsEnabled(config, infoPlist);
infoPlist = setFacebookAdvertiserIDCollectionEnabled(config, infoPlist);
infoPlist = setFacebookScheme(config, infoPlist);
return infoPlist;
}
function setFacebookScheme(config, infoPlist) {
const facebookScheme = getFacebookScheme(config);
return (0, _Scheme().appendScheme)(facebookScheme, infoPlist);
}
function setFacebookAutoInitEnabled(config, {
FacebookAutoInitEnabled,
...infoPlist
}) {
const facebookAutoInitEnabled = getFacebookAutoInitEnabled(config);
if (facebookAutoInitEnabled === null) {
return infoPlist;
}
return { ...infoPlist,
FacebookAutoInitEnabled: facebookAutoInitEnabled
};
}
function setFacebookAutoLogAppEventsEnabled(config, {
FacebookAutoLogAppEventsEnabled,
...infoPlist
}) {
const facebookAutoLogAppEventsEnabled = getFacebookAutoLogAppEvents(config);
if (facebookAutoLogAppEventsEnabled === null) {
return infoPlist;
}
return { ...infoPlist,
FacebookAutoLogAppEventsEnabled: facebookAutoLogAppEventsEnabled
};
}
function setFacebookAdvertiserIDCollectionEnabled(config, {
FacebookAdvertiserIDCollectionEnabled,
...infoPlist
}) {
const facebookAdvertiserIDCollectionEnabled = getFacebookAdvertiserIDCollection(config);
if (facebookAdvertiserIDCollectionEnabled === null) {
return infoPlist;
}
return { ...infoPlist,
FacebookAdvertiserIDCollectionEnabled: facebookAdvertiserIDCollectionEnabled
};
}
function setFacebookAppId(config, {
FacebookAppID,
...infoPlist
}) {
const facebookAppId = getFacebookAppId(config);
if (facebookAppId) {
return { ...infoPlist,
FacebookAppID: facebookAppId
};
}
return infoPlist;
}
function setFacebookDisplayName(config, {
FacebookDisplayName,
...infoPlist
}) {
const facebookDisplayName = getFacebookDisplayName(config);
if (facebookDisplayName) {
return { ...infoPlist,
FacebookDisplayName: facebookDisplayName
};
}
return infoPlist;
}
function setFacebookApplicationQuerySchemes(config, infoPlist) {
const facebookAppId = getFacebookAppId(config);
const existingSchemes = infoPlist.LSApplicationQueriesSchemes || [];
if (facebookAppId && existingSchemes.includes('fbapi')) {
// already inlcuded, no need to add again
return infoPlist;
} else if (!facebookAppId && !existingSchemes.length) {
// already removed, no need to strip again
const {
LSApplicationQueriesSchemes,
...restInfoPlist
} = infoPlist;
if (LSApplicationQueriesSchemes !== null && LSApplicationQueriesSchemes !== void 0 && LSApplicationQueriesSchemes.length) {
return infoPlist;
} else {
// Return without the empty LSApplicationQueriesSchemes array.
return restInfoPlist;
}
} // Remove all schemes
for (const scheme of fbSchemes) {
const index = existingSchemes.findIndex(s => s === scheme);
if (index > -1) {
existingSchemes.splice(index, 1);
}
}
if (!facebookAppId) {
// Run again to ensure the LSApplicationQueriesSchemes array is stripped if needed.
infoPlist.LSApplicationQueriesSchemes = existingSchemes;
if (!infoPlist.LSApplicationQueriesSchemes.length) {
delete infoPlist.LSApplicationQueriesSchemes;
}
return infoPlist;
} // TODO: it's actually necessary to add more query schemes (specific to the
// app) to support all of the features that the Facebook SDK provides, should
// we sync those here too?
const updatedSchemes = [...existingSchemes, ...fbSchemes];
return { ...infoPlist,
LSApplicationQueriesSchemes: updatedSchemes
};
}
//# sourceMappingURL=Facebook.js.map