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