fromMap static method
Parses a map to PlatformConfig
Implementation
static PlatformConfig? fromMap(yaml.YamlMap data, TargetPlatform platform) {
// If there is no build command, the instance won't be created
if (!data.containsKey("build_command") || data["build_command"].toString().isEmpty) {
return null;
}
// The base PlatformConfig instance
PlatformConfig pc = PlatformConfig(
platform: platform,
buildCommand: data["build_command"],
);
// -=-=-=-=-=
// Web
// -=-=-=-=-=
if (platform == TargetPlatform.web) {
pc.webConfig = WebConfig(
addVersionQueryParam: (data['add_version_query_param'] ?? true),
webVersioningType: WebVersioningType.getByName(data['query_param_versioning_type']),
);
}
// -=-=-=-=-=
// iOS
// -=-=-=-=-=
if (platform == TargetPlatform.ios) {
if (data.containsKey("publish")) {
var iosPublishValidation = ApplePublishConfig.isValid(data["publish"], TargetPlatform.ios);
if (!iosPublishValidation.$1) {
Console.logError("Invalid publish config for iOS -> ${iosPublishValidation.$2 ?? "-"}");
exit(1);
}
pc.iosConfig = IOSConfig(
publishConfig: ApplePublishConfig.fromMap(data["publish"]),
);
}
}
// -=-=-=-=-=
// macOS
// -=-=-=-=-=
if (platform == TargetPlatform.macos) {
if (data.containsKey("publish")) {
var macosPublishValidation = ApplePublishConfig.isValid(data["publish"], TargetPlatform.macos);
if (!macosPublishValidation.$1) {
Console.logError("Invalid publish config for macOS -> ${macosPublishValidation.$2 ?? "-"}");
exit(1);
}
pc.macOSConfig = MacOSConfig(
publishConfig: ApplePublishConfig.fromMap(data["publish"]),
);
}
}
// -=-=-=-=-=
// Android
// -=-=-=-=-=
if (platform == TargetPlatform.android) {
if (data.containsKey("publish")) {
var androidPublishValidation = AndroidPublishConfig.isValid(data["publish"], TargetPlatform.android);
if (!androidPublishValidation.$1) {
Console.logError("Invalid publish config for Android -> ${androidPublishValidation.$2 ?? "-"}");
exit(1);
}
pc.androidConfig = AndroidConfig(
publishConfig: AndroidPublishConfig.fromMap(data["publish"]),
);
}
}
// -=-=-=-=-=
// Linux
// -=-=-=-=-=
if (platform == TargetPlatform.linux) {
pc.linuxConfig = LinuxConfig();
}
// -=-=-=-=-=
// Windows
// -=-=-=-=-=
if (platform == TargetPlatform.windows) {
pc.windowsConfig = WindowsConfig();
}
return pc;
}