from static method
Implementation
static DefinitionProvider from(Map rootMap) {
if (rootMap['definitions'] != null) {
var definitionsMap = rootMap['definitions'];
String? type = Utils.optionalString(definitionsMap['from']);
if (type == _Provider.ensemble.name) {
String? appId = definitionsMap[type]?['appId'];
if (appId == null) {
throw ConfigError("appId is required. Your App Key can be found on "
"Ensemble Studio under each application");
}
return EnsembleDefinitionProvider(appId,
initialForcedLocale:
_localeFromString(definitionsMap[type]?['forcedLocale']));
} else if (type == _Provider.local.name ||
type == _Provider.remote.name) {
return FileDefinitionProvider.from(type!, definitionsMap);
} else if (type == _Provider.cdn.name) {
String? appId = definitionsMap[type]?['appId'];
if (appId == null) {
throw ConfigError("appId is required for cdn provider.");
}
return CdnDefinitionProvider(appId,
initialForcedLocale:
_localeFromString(definitionsMap[type]?['forcedLocale']));
}
}
throw ConfigError(
"A definition provider is required. Please review Ensemble documentation.");
}