1"use strict"; 2 3Object.defineProperty(exports, "__esModule", { 4 value: true 5}); 6exports.applyPermissions = applyPermissions; 7exports.createPermissionsPlugin = createPermissionsPlugin; 8function _debug() { 9 const data = _interopRequireDefault(require("debug")); 10 _debug = function () { 11 return data; 12 }; 13 return data; 14} 15function _iosPlugins() { 16 const data = require("../plugins/ios-plugins"); 17 _iosPlugins = function () { 18 return data; 19 }; 20 return data; 21} 22function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 23const debug = (0, _debug().default)('expo:config-plugins:ios:permissions'); 24function applyPermissions(defaults, permissions, infoPlist) { 25 const entries = Object.entries(defaults); 26 if (entries.length === 0) { 27 debug(`No defaults provided: ${JSON.stringify(permissions)}`); 28 } 29 for (const [permission, description] of entries) { 30 if (permissions[permission] === false) { 31 debug(`Deleting "${permission}"`); 32 delete infoPlist[permission]; 33 } else { 34 infoPlist[permission] = permissions[permission] || infoPlist[permission] || description; 35 debug(`Setting "${permission}" to "${infoPlist[permission]}"`); 36 } 37 } 38 return infoPlist; 39} 40 41/** 42 * Helper method for creating mods to apply default permissions. 43 * 44 * @param action 45 */ 46function createPermissionsPlugin(defaults, name) { 47 const withIosPermissions = (config, permissions) => (0, _iosPlugins().withInfoPlist)(config, async config => { 48 config.modResults = applyPermissions(defaults, permissions, config.modResults); 49 return config; 50 }); 51 if (name) { 52 Object.defineProperty(withIosPermissions, 'name', { 53 value: name 54 }); 55 } 56 return withIosPermissions; 57} 58//# sourceMappingURL=Permissions.js.map