File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/@capacitor/assets/dist/project.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Project = void 0;
const utils_fs_1 = require("@ionic/utils-fs");
const project_1 = require("@trapezedev/project");
const path_1 = require("path");
const input_asset_1 = require("./input-asset");
const log_1 = require("./util/log");
class Project extends project_1.MobileProject {
constructor(projectRoot = process.cwd(), config, assetPath = 'assets') {
super(projectRoot, config);
this.assetPath = assetPath;
this.assets = null;
this.directory = null;
this.directory = projectRoot;
this.assetDir = (0, path_1.join)(projectRoot, assetPath);
this.detectAssetDir();
}
async detectAssetDir() {
if (this.assetPath === 'assets' && !(await (0, utils_fs_1.pathExists)(this.assetDir))) {
this.assetDir = (0, path_1.join)(this.projectRoot, 'resources');
}
}
async androidExists() {
var _a, _b;
return ((_a = this.config.android) === null || _a === void 0 ? void 0 : _a.path) !== undefined && (await (0, utils_fs_1.pathExists)((_b = this.config.android) === null || _b === void 0 ? void 0 : _b.path));
}
async iosExists() {
var _a, _b;
return ((_a = this.config.ios) === null || _a === void 0 ? void 0 : _a.path) !== undefined && (await (0, utils_fs_1.pathExists)((_b = this.config.ios) === null || _b === void 0 ? void 0 : _b.path));
}
async assetDirExists() {
return (0, utils_fs_1.pathExists)(this.assetDir);
}
assetDirectory() {
return this.assetDir;
}
async loadInputAssets() {
this.assets = {
logo: await this.loadLogoInputAsset(),
logoDark: await this.loadInputAsset('logo-dark', "logo-dark" /* LogoDark */, "any" /* Any */),
icon: await this.loadInputAsset('icon-only', "icon" /* Icon */, "any" /* Any */),
iconForeground: await this.loadInputAsset('icon-foreground', "icon-foreground" /* IconForeground */, "any" /* Any */),
iconBackground: await this.loadInputAsset('icon-background', "icon-background" /* IconBackground */, "any" /* Any */),
splash: await this.loadInputAsset('splash', "splash" /* Splash */, "any" /* Any */),
splashDark: await this.loadInputAsset('splash-dark', "splash-dark" /* SplashDark */, "any" /* Any */),
iosIcon: await this.loadInputAsset('ios/icon', "icon" /* Icon */, "ios" /* Ios */),
iosSplash: await this.loadInputAsset('ios/splash', "splash" /* Splash */, "ios" /* Ios */),
iosSplashDark: await this.loadInputAsset('ios/splash-dark', "splash-dark" /* SplashDark */, "ios" /* Ios */),
androidIcon: await this.loadInputAsset('android/icon', "icon" /* Icon */, "android" /* Android */),
androidIconForeground: await this.loadInputAsset('android/icon-foreground', "icon" /* Icon */, "android" /* Android */),
androidIconBackground: await this.loadInputAsset('android/icon-background', "icon" /* Icon */, "android" /* Android */),
androidSplash: await this.loadInputAsset('android/splash', "splash" /* Splash */, "android" /* Android */),
androidSplashDark: await this.loadInputAsset('android/splash-dark', "splash-dark" /* SplashDark */, "android" /* Android */),
androidNotificationIcon: await this.loadInputAsset('android/notification', "notification-icon" /* NotificationIcon */, "android" /* Android */),
};
return this.assets;
}
async loadLogoInputAsset() {
let logo = await this.loadInputAsset('logo', "logo" /* Logo */, "any" /* Any */);
if (!logo) {
logo = await this.loadInputAsset('icon', "logo" /* Logo */, "any" /* Any */);
}
return logo;
}
async loadInputAsset(path, kind, platform) {
let imagePath = null;
const extensions = ['.png', '.webp', '.jpg', '.jpeg', '.svg'];
let filename = null;
for (const ext of extensions) {
filename = `${path}${ext}`;
if (await (0, utils_fs_1.pathExists)((0, path_1.join)(this.assetDir, filename))) {
imagePath = (0, path_1.join)(this.assetDir, filename);
break;
}
}
if (!imagePath) {
return null;
}
const asset = new input_asset_1.InputAsset(imagePath, kind, platform);
try {
await asset.load();
return asset;
}
catch (e) {
(0, log_1.error)(`Unable to load source image ${filename}: ${e.message}`);
return null;
}
}
}
exports.Project = Project;