amis-rpc-design/node_modules/@react-native-community/cli-doctor/build/tools/healthchecks/xcodeEnv.js
2023-10-07 19:42:30 +08:00

99 lines
2.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _cliPlatformIos() {
const data = require("@react-native-community/cli-platform-ios");
_cliPlatformIos = function () {
return data;
};
return data;
}
function _cliTools() {
const data = require("@react-native-community/cli-tools");
_cliTools = function () {
return data;
};
return data;
}
function _fs() {
const data = _interopRequireDefault(require("fs"));
_fs = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _util() {
const data = require("util");
_util = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const xcodeEnvFile = '.xcode.env';
const pathSeparator = '/';
function removeLastPathComponent(pathString) {
return _path().default.dirname(pathString);
}
function pathHasXcodeEnvFile(pathString) {
const xcodeEnvPath = pathString + pathSeparator + xcodeEnvFile;
return _fs().default.existsSync(xcodeEnvPath);
}
function pathDoesNotHaveXcodeEnvFile(pathString) {
return !pathHasXcodeEnvFile(pathString);
}
var _default = {
label: '.xcode.env',
description: 'File to customize Xcode environment',
getDiagnostics: async (_, config) => {
try {
const projectRoot = (config === null || config === void 0 ? void 0 : config.root) ?? (0, _cliTools().findProjectRoot)();
const missingXcodeEnvFile = (0, _cliPlatformIos().findPodfilePaths)(projectRoot).some(p => {
const basePath = _path().default.dirname(p);
return !pathHasXcodeEnvFile(basePath);
});
return {
needsToBeFixed: missingXcodeEnvFile
};
} catch (e) {
return {
needsToBeFixed: e.message
};
}
},
runAutomaticFix: async ({
loader,
config
}) => {
try {
loader.stop();
const templateXcodeEnv = '_xcode.env';
const projectRoot = (config === null || config === void 0 ? void 0 : config.root) ?? (0, _cliTools().findProjectRoot)();
const templateIosPath = (0, _cliTools().resolveNodeModuleDir)(projectRoot, 'react-native/template/ios');
const src = templateIosPath + pathSeparator + templateXcodeEnv;
const copyFileAsync = (0, _util().promisify)(_fs().default.copyFile);
(0, _cliPlatformIos().findPodfilePaths)(projectRoot).map(removeLastPathComponent)
// avoid overriding existing .xcode.env
.filter(pathDoesNotHaveXcodeEnvFile).forEach(async pathString => {
const destFilePath = pathString + pathSeparator + xcodeEnvFile;
await copyFileAsync(src, destFilePath);
});
loader.succeed('.xcode.env file have been created!');
} catch (e) {
loader.fail(e);
}
}
};
exports.default = _default;
//# sourceMappingURL=xcodeEnv.ts.map