from static method

DefinitionProvider from(
  1. Map rootMap
)

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.");
}