UNPKG

xdl

Version:
105 lines (98 loc) 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createBlankAsync = createBlankAsync; exports.modifyAsync = modifyAsync; function _plist() { const data = _interopRequireDefault(require("@expo/plist")); _plist = function () { return data; }; return data; } function _fsExtra() { const data = _interopRequireDefault(require("fs-extra")); _fsExtra = function () { return data; }; return data; } function _path() { const data = _interopRequireDefault(require("path")); _path = function () { return data; }; return data; } function _internal() { const data = require("../internal"); _internal = function () { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const { spawnAsyncThrowError } = _internal().ExponentTools; function _getNormalizedPlistFilename(plistName) { let plistFilename; if (plistName.indexOf('.') !== -1) { plistFilename = plistName; } else { plistFilename = `${plistName}.plist`; } return plistFilename; } /** * @param plistName base filename of property list. if no extension, assumes .plist */ async function modifyAsync(plistPath, plistName, transform) { const plistFilename = _getNormalizedPlistFilename(plistName); const configPlistName = _path().default.join(plistPath, plistFilename); const configFilename = _path().default.join(plistPath, `${plistName}.json`); // grab original plist as json object let config; if (process.platform === 'darwin') { await spawnAsyncThrowError('plutil', ['-convert', 'json', configPlistName, '-o', configFilename]); const configContents = await _fsExtra().default.readFile(configFilename, 'utf8'); try { config = JSON.parse(configContents); } catch (e) { _internal().LoggerDetach.info(`Error parsing ${configFilename}`, e); _internal().LoggerDetach.info('The erroneous file contents was:', configContents); config = {}; } } else { config = _plist().default.parse(_fsExtra().default.readFileSync(configPlistName, 'utf8')); } // apply transformation config = await transform(config); // back up old plist and swap in modified one _fsExtra().default.copyFileSync(configPlistName, `${configPlistName}.bak`); await _fsExtra().default.writeFile(configFilename, JSON.stringify(config)); if (process.platform === 'darwin') { await spawnAsyncThrowError('plutil', ['-convert', 'xml1', configFilename, '-o', configPlistName]); } else { await _fsExtra().default.writeFile(configPlistName, _plist().default.build(config)); } return config; } async function createBlankAsync(plistPath, plistName) { // write empty json file const emptyConfig = {}; const tmpConfigFile = _path().default.join(plistPath, `${plistName}.json`); await _fsExtra().default.writeFile(tmpConfigFile, JSON.stringify(emptyConfig)); // convert to plist const plistFilename = _getNormalizedPlistFilename(plistName); const configPlistName = _path().default.join(plistPath, plistFilename); if (process.platform === 'darwin') { await spawnAsyncThrowError('plutil', ['-convert', 'xml1', tmpConfigFile, '-o', configPlistName]); } else { await _fsExtra().default.writeFile(configPlistName, JSON.stringify(_plist().default.build(emptyConfig))); } // remove tmp json file _fsExtra().default.removeSync(tmpConfigFile); } //# sourceMappingURL=IosPlist.js.map