init static method

Future<FskinRemoteConfig> init({
  1. required String apiKey,
  2. @visibleForTesting SkinService? skinService,
})

Implementation

static Future<FskinRemoteConfig> init({
  required String apiKey,
  @visibleForTesting SkinService? skinService,
}) async {
  _instance ??= FskinRemoteConfig._();

  if (apiKey.trim().isEmpty ||
      !RegExp(FskinConstants.keyRegex).hasMatch(apiKey)) {
    throw ArgumentError.value(
      apiKey,
      'apiKey',
      'apiKey must be a valid non-empty string',
    );
  }

  _instance!.apiKey = apiKey;
  _instance!.cacheService.saveApiKey(apiKey);
  if (skinService != null) {
    _instance!.skinService = skinService;
  } else {
    _instance!.skinService = SkinService();
  }
  await _instance!.fetchConfig();
  return _instance!;
}