env_serde.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:json_annotation/json_annotation.dart';
  2. // Run `dart run build_runner build` to generate the json serialization If the
  3. // file `env_serde.g.dart` is existed, delete it first.
  4. //
  5. // the file `env_serde.g.dart` will be generated in the same directory.
  6. part 'env_serde.g.dart';
  7. @JsonSerializable()
  8. class AppFlowyEnv {
  9. final SupabaseConfiguration supabase_config;
  10. final AppFlowyCloudConfiguration appflowy_cloud_config;
  11. AppFlowyEnv({
  12. required this.supabase_config,
  13. required this.appflowy_cloud_config,
  14. });
  15. factory AppFlowyEnv.fromJson(Map<String, dynamic> json) =>
  16. _$AppFlowyEnvFromJson(json);
  17. Map<String, dynamic> toJson() => _$AppFlowyEnvToJson(this);
  18. }
  19. @JsonSerializable()
  20. class SupabaseConfiguration {
  21. /// Indicates whether the sync feature is enabled.
  22. final bool enable_sync;
  23. final String url;
  24. final String anon_key;
  25. SupabaseConfiguration({
  26. this.enable_sync = true,
  27. required this.url,
  28. required this.anon_key,
  29. });
  30. factory SupabaseConfiguration.fromJson(Map<String, dynamic> json) =>
  31. _$SupabaseConfigurationFromJson(json);
  32. Map<String, dynamic> toJson() => _$SupabaseConfigurationToJson(this);
  33. }
  34. @JsonSerializable()
  35. class AppFlowyCloudConfiguration {
  36. final String base_url;
  37. final String ws_base_url;
  38. final String gotrue_url;
  39. AppFlowyCloudConfiguration({
  40. required this.base_url,
  41. required this.ws_base_url,
  42. required this.gotrue_url,
  43. });
  44. factory AppFlowyCloudConfiguration.fromJson(Map<String, dynamic> json) =>
  45. _$AppFlowyCloudConfigurationFromJson(json);
  46. Map<String, dynamic> toJson() => _$AppFlowyCloudConfigurationToJson(this);
  47. }