genvars.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package dartgen
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. const (
  7. varTemplate = `import 'dart:convert';
  8. import 'package:shared_preferences/shared_preferences.dart';
  9. import '../data/tokens.dart';
  10. /// 保存tokens到本地
  11. ///
  12. /// 传入null则删除本地tokens
  13. /// 返回:true:设置成功 false:设置失败
  14. Future<bool> setTokens(Tokens tokens) async {
  15. var sp = await SharedPreferences.getInstance();
  16. if (tokens == null) {
  17. sp.remove('tokens');
  18. return true;
  19. }
  20. return await sp.setString('tokens', jsonEncode(tokens.toJson()));
  21. }
  22. /// 获取本地存储的tokens
  23. ///
  24. /// 如果没有,则返回null
  25. Future<Tokens> getTokens() async {
  26. try {
  27. var sp = await SharedPreferences.getInstance();
  28. var str = sp.getString('tokens');
  29. if (str == null || str.isEmpty) {
  30. return null;
  31. }
  32. return Tokens.fromJson(jsonDecode(str));
  33. } catch (e) {
  34. print(e);
  35. return null;
  36. }
  37. }
  38. `
  39. varTemplateV2 = `import 'dart:convert';
  40. import 'package:shared_preferences/shared_preferences.dart';
  41. import '../data/tokens.dart';
  42. const String _tokenKey = 'tokens';
  43. /// Saves tokens
  44. Future<bool> setTokens(Tokens tokens) async {
  45. var sp = await SharedPreferences.getInstance();
  46. return await sp.setString(_tokenKey, jsonEncode(tokens.toJson()));
  47. }
  48. /// remove tokens
  49. Future<bool> removeTokens() async {
  50. var sp = await SharedPreferences.getInstance();
  51. return sp.remove(_tokenKey);
  52. }
  53. /// Reads tokens
  54. Future<Tokens?> getTokens() async {
  55. try {
  56. var sp = await SharedPreferences.getInstance();
  57. var str = sp.getString('tokens');
  58. if (str == null || str.isEmpty) {
  59. return null;
  60. }
  61. return Tokens.fromJson(jsonDecode(str));
  62. } catch (e) {
  63. print(e);
  64. return null;
  65. }
  66. }`
  67. )
  68. func genVars(dir string, isLegacy bool, scheme string, hostname string) error {
  69. err := os.MkdirAll(dir, 0o755)
  70. if err != nil {
  71. return err
  72. }
  73. if !fileExists(dir + "vars.dart") {
  74. err = os.WriteFile(dir+"vars.dart", []byte(fmt.Sprintf(`const serverHost='%s://%s';`, scheme, hostname)), 0o644)
  75. if err != nil {
  76. return err
  77. }
  78. }
  79. if !fileExists(dir + "kv.dart") {
  80. tpl := varTemplateV2
  81. if isLegacy {
  82. tpl = varTemplate
  83. }
  84. err = os.WriteFile(dir+"kv.dart", []byte(tpl), 0o644)
  85. if err != nil {
  86. return err
  87. }
  88. }
  89. return nil
  90. }