rn-ml
Version:
React Native cli tools
45 lines (44 loc) • 2.18 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0;
/* eslint-disable @typescript-eslint/no-var-requires */
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const sharp_1 = __importDefault(require("sharp"));
const logger_1 = require("../tools/logger");
const constants_1 = require("./constants");
const Contents_json_1 = __importDefault(require("./template/ios/Contents.json"));
const data_1 = require("./template/ios/data");
const run = async (config) => {
// get custom AppIcon Folder Name IOS
const appIconFileName = `${config.iosIconName}.appiconset`;
const xcodeproj = (0, constants_1.findXcodeProject)(fs_extra_1.default.readdirSync(config.iosSource));
if (!xcodeproj) {
(0, logger_1.error)("Xcode project folder not found. Are you sure this is a IOS project?");
return;
}
const iosSource = xcodeproj.name.replace(/\.(xcodeproj|xcworkspace)$/, "");
const imagesXcAssetsPath = path_1.default.join(config.iosSource, iosSource, "Images.xcassets");
const appIconPath = path_1.default.resolve(imagesXcAssetsPath, `${appIconFileName}`);
// remove prev app icon
fs_extra_1.default.removeSync(appIconPath);
fs_extra_1.default.ensureDirSync(appIconPath);
for (const size of data_1.iosIconsSize) {
const image = await (0, sharp_1.default)(config.source);
const pathImage = path_1.default.resolve(appIconPath, `${size}.png`);
await image
.resize(size, size)
.toFile(pathImage)
.then((_) => {
(0, logger_1.log)("✨ " + pathImage);
});
}
// overwrite Contents.json
const contentsJsonPath = path_1.default.resolve(imagesXcAssetsPath, `${appIconFileName}`, "Contents.json");
// fs.ensureDirSync(contentsJsonPath);
await fs_extra_1.default.writeJSONSync(contentsJsonPath, Object.assign(Object.assign({}, Contents_json_1.default), { images: data_1.iosIcons }));
};
exports.run = run;
;