react-native-nitro-storage 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +111 -24
  2. package/android/CMakeLists.txt +30 -24
  3. package/android/src/main/cpp/AndroidStorageAdapterCpp.cpp +10 -0
  4. package/android/src/main/cpp/AndroidStorageAdapterCpp.hpp +13 -0
  5. package/android/src/main/cpp/cpp-adapter.cpp +3 -2
  6. package/android/src/main/java/com/nitrostorage/AndroidStorageAdapter.kt +10 -0
  7. package/cpp/bindings/HybridStorage.cpp +59 -17
  8. package/cpp/bindings/HybridStorage.hpp +4 -0
  9. package/cpp/core/NativeStorageAdapter.hpp +3 -0
  10. package/ios/IOSStorageAdapterCpp.hpp +3 -0
  11. package/ios/IOSStorageAdapterCpp.mm +41 -77
  12. package/lib/commonjs/Storage.nitro.js +0 -7
  13. package/lib/commonjs/Storage.nitro.js.map +1 -1
  14. package/lib/commonjs/Storage.types.js +13 -0
  15. package/lib/commonjs/Storage.types.js.map +1 -0
  16. package/lib/commonjs/index.js +127 -14
  17. package/lib/commonjs/index.js.map +1 -1
  18. package/lib/commonjs/index.web.js +268 -0
  19. package/lib/commonjs/index.web.js.map +1 -0
  20. package/lib/commonjs/migration.js +39 -0
  21. package/lib/commonjs/migration.js.map +1 -0
  22. package/lib/commonjs/package.json +1 -0
  23. package/lib/module/Storage.nitro.js +1 -6
  24. package/lib/module/Storage.nitro.js.map +1 -1
  25. package/lib/module/Storage.types.js +9 -0
  26. package/lib/module/Storage.types.js.map +1 -0
  27. package/lib/module/index.js +122 -13
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/module/index.web.js +257 -0
  30. package/lib/module/index.web.js.map +1 -0
  31. package/lib/module/migration.js +35 -0
  32. package/lib/module/migration.js.map +1 -0
  33. package/lib/typescript/Storage.nitro.d.ts +5 -6
  34. package/lib/typescript/Storage.nitro.d.ts.map +1 -1
  35. package/lib/typescript/Storage.types.d.ts +6 -0
  36. package/lib/typescript/Storage.types.d.ts.map +1 -0
  37. package/lib/typescript/index.d.ts +20 -4
  38. package/lib/typescript/index.d.ts.map +1 -1
  39. package/lib/typescript/index.web.d.ts +50 -0
  40. package/lib/typescript/index.web.d.ts.map +1 -0
  41. package/lib/typescript/migration.d.ts +12 -0
  42. package/lib/typescript/migration.d.ts.map +1 -0
  43. package/nitrogen/generated/android/NitroStorage+autolinking.cmake +1 -1
  44. package/nitrogen/generated/android/NitroStorage+autolinking.gradle +1 -1
  45. package/nitrogen/generated/android/NitroStorageOnLoad.cpp +1 -1
  46. package/nitrogen/generated/android/NitroStorageOnLoad.hpp +1 -1
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitrostorage/NitroStorageOnLoad.kt +1 -1
  48. package/nitrogen/generated/ios/NitroStorage+autolinking.rb +2 -2
  49. package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Bridge.cpp +1 -1
  50. package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Bridge.hpp +1 -1
  51. package/nitrogen/generated/ios/NitroStorage-Swift-Cxx-Umbrella.hpp +1 -1
  52. package/nitrogen/generated/ios/NitroStorageAutolinking.mm +1 -1
  53. package/nitrogen/generated/ios/NitroStorageAutolinking.swift +1 -1
  54. package/nitrogen/generated/shared/c++/HybridStorageSpec.cpp +5 -1
  55. package/nitrogen/generated/shared/c++/HybridStorageSpec.hpp +6 -1
  56. package/package.json +7 -25
  57. package/src/Storage.nitro.ts +6 -7
  58. package/src/Storage.types.ts +5 -0
  59. package/src/index.ts +153 -16
  60. package/src/index.web.ts +341 -0
  61. package/src/migration.ts +53 -0
@@ -6,14 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "StorageScope", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _StorageNitro.StorageScope;
9
+ return _Storage.StorageScope;
10
10
  }
11
11
  });
12
12
  exports.createStorageItem = createStorageItem;
13
+ exports.getBatch = getBatch;
14
+ exports.removeBatch = removeBatch;
15
+ exports.setBatch = setBatch;
16
+ exports.storage = void 0;
17
+ exports.useSetStorage = useSetStorage;
13
18
  exports.useStorage = useStorage;
14
19
  var _react = require("react");
15
20
  var _reactNativeNitroModules = require("react-native-nitro-modules");
16
- var _StorageNitro = require("./Storage.nitro.js");
21
+ var _Storage = require("./Storage.types");
17
22
  let _storageModule = null;
18
23
  function getStorageModule() {
19
24
  if (!_storageModule) {
@@ -21,6 +26,26 @@ function getStorageModule() {
21
26
  }
22
27
  return _storageModule;
23
28
  }
29
+ const memoryStore = new Map();
30
+ const memoryListeners = new Set();
31
+ function notifyMemoryListeners(key, value) {
32
+ memoryListeners.forEach(listener => listener(key, value));
33
+ }
34
+ const storage = exports.storage = {
35
+ clear: scope => {
36
+ if (scope === _Storage.StorageScope.Memory) {
37
+ memoryStore.clear();
38
+ notifyMemoryListeners("", undefined);
39
+ } else {
40
+ getStorageModule().clear(scope);
41
+ }
42
+ },
43
+ clearAll: () => {
44
+ storage.clear(_Storage.StorageScope.Memory);
45
+ storage.clear(_Storage.StorageScope.Disk);
46
+ storage.clear(_Storage.StorageScope.Secure);
47
+ }
48
+ };
24
49
  function defaultSerialize(value) {
25
50
  return JSON.stringify(value);
26
51
  }
@@ -30,21 +55,41 @@ function defaultDeserialize(value) {
30
55
  function createStorageItem(config) {
31
56
  const serialize = config.serialize ?? defaultSerialize;
32
57
  const deserialize = config.deserialize ?? defaultDeserialize;
58
+ const isMemory = config.scope === _Storage.StorageScope.Memory;
33
59
  const listeners = new Set();
34
60
  let unsubscribe = null;
35
61
  const ensureSubscription = () => {
36
62
  if (!unsubscribe) {
37
- unsubscribe = getStorageModule().addOnChange(config.scope, key => {
38
- if (key === config.key) {
39
- listeners.forEach(listener => listener());
40
- }
41
- });
63
+ if (isMemory) {
64
+ const listener = key => {
65
+ if (key === "" || key === config.key) {
66
+ lastRaw = undefined;
67
+ lastValue = undefined;
68
+ listeners.forEach(l => l());
69
+ }
70
+ };
71
+ memoryListeners.add(listener);
72
+ unsubscribe = () => memoryListeners.delete(listener);
73
+ } else {
74
+ unsubscribe = getStorageModule().addOnChange(config.scope, key => {
75
+ if (key === "" || key === config.key) {
76
+ lastRaw = undefined;
77
+ lastValue = undefined;
78
+ listeners.forEach(listener => listener());
79
+ }
80
+ });
81
+ }
42
82
  }
43
83
  };
44
84
  let lastRaw;
45
85
  let lastValue;
46
86
  const get = () => {
47
- const raw = getStorageModule().get(config.key, config.scope);
87
+ let raw;
88
+ if (isMemory) {
89
+ raw = memoryStore.get(config.key);
90
+ } else {
91
+ raw = getStorageModule().get(config.key, config.scope);
92
+ }
48
93
  if (raw === lastRaw && lastValue !== undefined) {
49
94
  return lastValue;
50
95
  }
@@ -52,16 +97,32 @@ function createStorageItem(config) {
52
97
  if (raw === undefined) {
53
98
  lastValue = config.defaultValue;
54
99
  } else {
55
- lastValue = deserialize(raw);
100
+ if (isMemory) {
101
+ lastValue = raw;
102
+ } else {
103
+ lastValue = deserialize(raw);
104
+ }
56
105
  }
57
106
  return lastValue;
58
107
  };
59
- const set = value => {
60
- const serialized = serialize(value);
61
- getStorageModule().set(config.key, serialized, config.scope);
108
+ const set = valueOrFn => {
109
+ const currentValue = get();
110
+ const newValue = typeof valueOrFn === "function" ? valueOrFn(currentValue) : valueOrFn;
111
+ if (isMemory) {
112
+ memoryStore.set(config.key, newValue);
113
+ notifyMemoryListeners(config.key, newValue);
114
+ } else {
115
+ const serialized = serialize(newValue);
116
+ getStorageModule().set(config.key, serialized, config.scope);
117
+ }
62
118
  };
63
119
  const deleteItem = () => {
64
- getStorageModule().remove(config.key, config.scope);
120
+ if (isMemory) {
121
+ memoryStore.delete(config.key);
122
+ notifyMemoryListeners(config.key, undefined);
123
+ } else {
124
+ getStorageModule().remove(config.key, config.scope);
125
+ }
65
126
  };
66
127
  const subscribe = callback => {
67
128
  ensureSubscription();
@@ -78,11 +139,63 @@ function createStorageItem(config) {
78
139
  get,
79
140
  set,
80
141
  delete: deleteItem,
81
- subscribe
142
+ subscribe,
143
+ serialize,
144
+ deserialize,
145
+ _triggerListeners: () => {
146
+ lastRaw = undefined;
147
+ lastValue = undefined;
148
+ listeners.forEach(l => l());
149
+ },
150
+ scope: config.scope,
151
+ key: config.key
82
152
  };
83
153
  }
84
154
  function useStorage(item) {
85
155
  const value = (0, _react.useSyncExternalStore)(item.subscribe, item.get, item.get);
86
156
  return [value, item.set];
87
157
  }
158
+ function useSetStorage(item) {
159
+ return item.set;
160
+ }
161
+ function getBatch(items, scope) {
162
+ if (scope === _Storage.StorageScope.Memory) {
163
+ return items.map(item => item.get());
164
+ }
165
+ const keys = items.map(item => item.key);
166
+ const rawValues = getStorageModule().getBatch(keys, scope);
167
+ return items.map((item, idx) => {
168
+ const raw = rawValues[idx];
169
+ if (raw === undefined) {
170
+ return item.get();
171
+ }
172
+ return item.deserialize(raw);
173
+ });
174
+ }
175
+ function setBatch(items, scope) {
176
+ if (scope === _Storage.StorageScope.Memory) {
177
+ items.forEach(({
178
+ item,
179
+ value
180
+ }) => item.set(value));
181
+ return;
182
+ }
183
+ const keys = items.map(i => i.item.key);
184
+ const values = items.map(i => i.item.serialize(i.value));
185
+ getStorageModule().setBatch(keys, values, scope);
186
+ items.forEach(({
187
+ item
188
+ }) => {
189
+ item._triggerListeners();
190
+ });
191
+ }
192
+ function removeBatch(items, scope) {
193
+ if (scope === _Storage.StorageScope.Memory) {
194
+ items.forEach(item => item.delete());
195
+ return;
196
+ }
197
+ const keys = items.map(item => item.key);
198
+ getStorageModule().removeBatch(keys, scope);
199
+ items.forEach(item => item.delete());
200
+ }
88
201
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNativeNitroModules","_StorageNitro","_storageModule","getStorageModule","NitroModules","createHybridObject","defaultSerialize","value","JSON","stringify","defaultDeserialize","parse","createStorageItem","config","serialize","deserialize","listeners","Set","unsubscribe","ensureSubscription","addOnChange","scope","key","forEach","listener","lastRaw","lastValue","get","raw","undefined","defaultValue","set","serialized","deleteItem","remove","subscribe","callback","add","delete","size","useStorage","item","useSyncExternalStore"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNativeNitroModules","_Storage","_storageModule","getStorageModule","NitroModules","createHybridObject","memoryStore","Map","memoryListeners","Set","notifyMemoryListeners","key","value","forEach","listener","storage","exports","clear","scope","StorageScope","Memory","undefined","clearAll","Disk","Secure","defaultSerialize","JSON","stringify","defaultDeserialize","parse","createStorageItem","config","serialize","deserialize","isMemory","listeners","unsubscribe","ensureSubscription","lastRaw","lastValue","l","add","delete","addOnChange","get","raw","defaultValue","set","valueOrFn","currentValue","newValue","serialized","deleteItem","remove","subscribe","callback","size","_triggerListeners","useStorage","item","useSyncExternalStore","useSetStorage","getBatch","items","map","keys","rawValues","idx","setBatch","i","values","removeBatch"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StorageScope = void 0;
7
+ exports.createStorageItem = createStorageItem;
8
+ exports.getBatch = getBatch;
9
+ exports.removeBatch = removeBatch;
10
+ exports.setBatch = setBatch;
11
+ exports.storage = void 0;
12
+ exports.useSetStorage = useSetStorage;
13
+ exports.useStorage = useStorage;
14
+ var _react = require("react");
15
+ let StorageScope = exports.StorageScope = /*#__PURE__*/function (StorageScope) {
16
+ StorageScope[StorageScope["Memory"] = 0] = "Memory";
17
+ StorageScope[StorageScope["Disk"] = 1] = "Disk";
18
+ StorageScope[StorageScope["Secure"] = 2] = "Secure";
19
+ return StorageScope;
20
+ }({});
21
+ const diskListeners = new Map();
22
+ const secureListeners = new Map();
23
+ function notifyDiskListeners(key) {
24
+ diskListeners.get(key)?.forEach(cb => cb());
25
+ }
26
+ function notifySecureListeners(key) {
27
+ secureListeners.get(key)?.forEach(cb => cb());
28
+ }
29
+ const WebStorage = {
30
+ name: "Storage",
31
+ equals: other => other === WebStorage,
32
+ dispose: () => {},
33
+ set: (key, value, scope) => {
34
+ if (scope === StorageScope.Disk) {
35
+ localStorage?.setItem(key, value);
36
+ notifyDiskListeners(key);
37
+ } else if (scope === StorageScope.Secure) {
38
+ sessionStorage?.setItem(key, value);
39
+ notifySecureListeners(key);
40
+ }
41
+ },
42
+ get: (key, scope) => {
43
+ if (scope === StorageScope.Disk) {
44
+ return localStorage?.getItem(key) ?? undefined;
45
+ } else if (scope === StorageScope.Secure) {
46
+ return sessionStorage?.getItem(key) ?? undefined;
47
+ }
48
+ return undefined;
49
+ },
50
+ remove: (key, scope) => {
51
+ if (scope === StorageScope.Disk) {
52
+ localStorage?.removeItem(key);
53
+ notifyDiskListeners(key);
54
+ } else if (scope === StorageScope.Secure) {
55
+ sessionStorage?.removeItem(key);
56
+ notifySecureListeners(key);
57
+ }
58
+ },
59
+ clear: scope => {
60
+ if (scope === StorageScope.Disk) {
61
+ localStorage?.clear();
62
+ diskListeners.forEach(listeners => {
63
+ listeners.forEach(cb => cb());
64
+ });
65
+ } else if (scope === StorageScope.Secure) {
66
+ sessionStorage?.clear();
67
+ secureListeners.forEach(listeners => {
68
+ listeners.forEach(cb => cb());
69
+ });
70
+ }
71
+ },
72
+ setBatch: (keys, values, scope) => {
73
+ keys.forEach((key, i) => WebStorage.set(key, values[i], scope));
74
+ },
75
+ getBatch: (keys, scope) => {
76
+ return keys.map(key => WebStorage.get(key, scope));
77
+ },
78
+ removeBatch: (keys, scope) => {
79
+ keys.forEach(key => WebStorage.remove(key, scope));
80
+ },
81
+ addOnChange: (_scope, _callback) => {
82
+ return () => {};
83
+ }
84
+ };
85
+ const memoryStore = new Map();
86
+ const memoryListeners = new Set();
87
+ function notifyMemoryListeners(key, value) {
88
+ memoryListeners.forEach(listener => listener(key, value));
89
+ }
90
+ const storage = exports.storage = {
91
+ clear: scope => {
92
+ if (scope === StorageScope.Memory) {
93
+ memoryStore.clear();
94
+ notifyMemoryListeners("", undefined);
95
+ } else {
96
+ WebStorage.clear(scope);
97
+ }
98
+ },
99
+ clearAll: () => {
100
+ storage.clear(StorageScope.Memory);
101
+ storage.clear(StorageScope.Disk);
102
+ storage.clear(StorageScope.Secure);
103
+ }
104
+ };
105
+ function defaultSerialize(value) {
106
+ return JSON.stringify(value);
107
+ }
108
+ function defaultDeserialize(value) {
109
+ return JSON.parse(value);
110
+ }
111
+ function createStorageItem(config) {
112
+ const serialize = config.serialize ?? defaultSerialize;
113
+ const deserialize = config.deserialize ?? defaultDeserialize;
114
+ const isMemory = config.scope === StorageScope.Memory;
115
+ const listeners = new Set();
116
+ let unsubscribe = null;
117
+ let lastRaw;
118
+ let lastValue;
119
+ const ensureSubscription = () => {
120
+ if (!unsubscribe) {
121
+ if (isMemory) {
122
+ const listener = key => {
123
+ if (key === config.key) {
124
+ lastRaw = undefined;
125
+ lastValue = undefined;
126
+ listeners.forEach(l => l());
127
+ }
128
+ };
129
+ memoryListeners.add(listener);
130
+ unsubscribe = () => memoryListeners.delete(listener);
131
+ } else if (config.scope === StorageScope.Disk) {
132
+ const listener = () => {
133
+ lastRaw = undefined;
134
+ lastValue = undefined;
135
+ listeners.forEach(l => l());
136
+ };
137
+ if (!diskListeners.has(config.key)) {
138
+ diskListeners.set(config.key, new Set());
139
+ }
140
+ diskListeners.get(config.key).add(listener);
141
+ unsubscribe = () => diskListeners.get(config.key)?.delete(listener);
142
+ } else if (config.scope === StorageScope.Secure) {
143
+ const listener = () => {
144
+ lastRaw = undefined;
145
+ lastValue = undefined;
146
+ listeners.forEach(l => l());
147
+ };
148
+ if (!secureListeners.has(config.key)) {
149
+ secureListeners.set(config.key, new Set());
150
+ }
151
+ secureListeners.get(config.key).add(listener);
152
+ unsubscribe = () => secureListeners.get(config.key)?.delete(listener);
153
+ }
154
+ }
155
+ };
156
+ const get = () => {
157
+ let raw;
158
+ if (isMemory) {
159
+ raw = memoryStore.get(config.key);
160
+ } else {
161
+ raw = WebStorage.get(config.key, config.scope);
162
+ }
163
+ if (raw === lastRaw && lastValue !== undefined) {
164
+ return lastValue;
165
+ }
166
+ lastRaw = raw;
167
+ if (raw === undefined) {
168
+ lastValue = config.defaultValue;
169
+ } else {
170
+ lastValue = isMemory ? raw : deserialize(raw);
171
+ }
172
+ return lastValue;
173
+ };
174
+ const set = valueOrFn => {
175
+ const currentValue = get();
176
+ const newValue = typeof valueOrFn === "function" ? valueOrFn(currentValue) : valueOrFn;
177
+ lastRaw = undefined;
178
+ if (isMemory) {
179
+ memoryStore.set(config.key, newValue);
180
+ notifyMemoryListeners(config.key, newValue);
181
+ } else {
182
+ WebStorage.set(config.key, serialize(newValue), config.scope);
183
+ }
184
+ };
185
+ const deleteItem = () => {
186
+ lastRaw = undefined;
187
+ if (isMemory) {
188
+ memoryStore.delete(config.key);
189
+ notifyMemoryListeners(config.key, undefined);
190
+ } else {
191
+ WebStorage.remove(config.key, config.scope);
192
+ }
193
+ };
194
+ const subscribe = callback => {
195
+ ensureSubscription();
196
+ listeners.add(callback);
197
+ return () => {
198
+ listeners.delete(callback);
199
+ if (listeners.size === 0 && unsubscribe) {
200
+ unsubscribe();
201
+ unsubscribe = null;
202
+ }
203
+ };
204
+ };
205
+ return {
206
+ get,
207
+ set,
208
+ delete: deleteItem,
209
+ subscribe,
210
+ serialize,
211
+ deserialize,
212
+ _triggerListeners: () => {
213
+ lastRaw = undefined;
214
+ lastValue = undefined;
215
+ listeners.forEach(l => l());
216
+ },
217
+ scope: config.scope,
218
+ key: config.key
219
+ };
220
+ }
221
+ function useStorage(item) {
222
+ const value = (0, _react.useSyncExternalStore)(item.subscribe, item.get, item.get);
223
+ return [value, item.set];
224
+ }
225
+ function useSetStorage(item) {
226
+ return item.set;
227
+ }
228
+ function getBatch(items, scope) {
229
+ if (scope === StorageScope.Memory) {
230
+ return items.map(item => item.get());
231
+ }
232
+ const keys = items.map(item => item.key);
233
+ const rawValues = WebStorage.getBatch(keys, scope);
234
+ return items.map((item, idx) => {
235
+ const raw = rawValues[idx];
236
+ if (raw === undefined) {
237
+ return item.get();
238
+ }
239
+ return item.deserialize(raw);
240
+ });
241
+ }
242
+ function setBatch(items, scope) {
243
+ if (scope === StorageScope.Memory) {
244
+ items.forEach(({
245
+ item,
246
+ value
247
+ }) => item.set(value));
248
+ return;
249
+ }
250
+ const keys = items.map(i => i.item.key);
251
+ const values = items.map(i => i.item.serialize(i.value));
252
+ WebStorage.setBatch(keys, values, scope);
253
+ items.forEach(({
254
+ item
255
+ }) => {
256
+ item._triggerListeners();
257
+ });
258
+ }
259
+ function removeBatch(items, scope) {
260
+ if (scope === StorageScope.Memory) {
261
+ items.forEach(item => item.delete());
262
+ return;
263
+ }
264
+ const keys = items.map(item => item.key);
265
+ WebStorage.removeBatch(keys, scope);
266
+ items.forEach(item => item.delete());
267
+ }
268
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","StorageScope","exports","diskListeners","Map","secureListeners","notifyDiskListeners","key","get","forEach","cb","notifySecureListeners","WebStorage","name","equals","other","dispose","set","value","scope","Disk","localStorage","setItem","Secure","sessionStorage","getItem","undefined","remove","removeItem","clear","listeners","setBatch","keys","values","i","getBatch","map","removeBatch","addOnChange","_scope","_callback","memoryStore","memoryListeners","Set","notifyMemoryListeners","listener","storage","Memory","clearAll","defaultSerialize","JSON","stringify","defaultDeserialize","parse","createStorageItem","config","serialize","deserialize","isMemory","unsubscribe","lastRaw","lastValue","ensureSubscription","l","add","delete","has","raw","defaultValue","valueOrFn","currentValue","newValue","deleteItem","subscribe","callback","size","_triggerListeners","useStorage","item","useSyncExternalStore","useSetStorage","items","rawValues","idx"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.migrateFromMMKV = migrateFromMMKV;
7
+ function migrateFromMMKV(mmkv, item, deleteFromMMKV = false) {
8
+ const key = item.key;
9
+ if (!mmkv.contains(key)) {
10
+ return false;
11
+ }
12
+ const value = mmkv.getString(key);
13
+ if (value !== undefined) {
14
+ try {
15
+ const parsed = JSON.parse(value);
16
+ item.set(parsed);
17
+ } catch {
18
+ item.set(value);
19
+ }
20
+ if (deleteFromMMKV) {
21
+ mmkv.delete(key);
22
+ }
23
+ return true;
24
+ }
25
+ const num = mmkv.getNumber(key);
26
+ if (num !== undefined) {
27
+ item.set(num);
28
+ if (deleteFromMMKV) mmkv.delete(key);
29
+ return true;
30
+ }
31
+ const bool = mmkv.getBoolean(key);
32
+ if (bool !== undefined) {
33
+ item.set(bool);
34
+ if (deleteFromMMKV) mmkv.delete(key);
35
+ return true;
36
+ }
37
+ return false;
38
+ }
39
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["migrateFromMMKV","mmkv","item","deleteFromMMKV","key","contains","value","getString","undefined","parsed","JSON","parse","set","delete","num","getNumber","bool","getBoolean"],"sourceRoot":"../../src","sources":["migration.ts"],"mappings":";;;;;;AAWO,SAASA,eAAeA,CAC7BC,IAAc,EACdC,IAAoB,EACpBC,cAAc,GAAG,KAAK,EACb;EACT,MAAMC,GAAG,GAAGF,IAAI,CAACE,GAAG;EACpB,IAAI,CAACH,IAAI,CAACI,QAAQ,CAACD,GAAG,CAAC,EAAE;IACvB,OAAO,KAAK;EACd;EAEA,MAAME,KAAK,GAAGL,IAAI,CAACM,SAAS,CAACH,GAAG,CAAC;EAEjC,IAAIE,KAAK,KAAKE,SAAS,EAAE;IACvB,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACL,KAAK,CAAC;MAChCJ,IAAI,CAACU,GAAG,CAACH,MAAM,CAAC;IAClB,CAAC,CAAC,MAAM;MACNP,IAAI,CAACU,GAAG,CAACN,KAAU,CAAC;IACtB;IAEA,IAAIH,cAAc,EAAE;MAClBF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IAClB;IACA,OAAO,IAAI;EACb;EAEA,MAAMU,GAAG,GAAGb,IAAI,CAACc,SAAS,CAACX,GAAG,CAAC;EAC/B,IAAIU,GAAG,KAAKN,SAAS,EAAE;IACrBN,IAAI,CAACU,GAAG,CAACE,GAAQ,CAAC;IAClB,IAAIX,cAAc,EAAEF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IACpC,OAAO,IAAI;EACb;EAEA,MAAMY,IAAI,GAAGf,IAAI,CAACgB,UAAU,CAACb,GAAG,CAAC;EACjC,IAAIY,IAAI,KAAKR,SAAS,EAAE;IACtBN,IAAI,CAACU,GAAG,CAACI,IAAS,CAAC;IACnB,IAAIb,cAAc,EAAEF,IAAI,CAACY,MAAM,CAACT,GAAG,CAAC;IACpC,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -1,9 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export let StorageScope = /*#__PURE__*/function (StorageScope) {
4
- StorageScope[StorageScope["Memory"] = 0] = "Memory";
5
- StorageScope[StorageScope["Disk"] = 1] = "Disk";
6
- StorageScope[StorageScope["Secure"] = 2] = "Secure";
7
- return StorageScope;
8
- }({});
3
+ export {};
9
4
  //# sourceMappingURL=Storage.nitro.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StorageScope"],"sourceRoot":"../../src","sources":["Storage.nitro.ts"],"mappings":";;AAEA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["Storage.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ export let StorageScope = /*#__PURE__*/function (StorageScope) {
4
+ StorageScope[StorageScope["Memory"] = 0] = "Memory";
5
+ StorageScope[StorageScope["Disk"] = 1] = "Disk";
6
+ StorageScope[StorageScope["Secure"] = 2] = "Secure";
7
+ return StorageScope;
8
+ }({});
9
+ //# sourceMappingURL=Storage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StorageScope"],"sourceRoot":"../../src","sources":["Storage.types.ts"],"mappings":";;AAAA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAZA,YAAY,CAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}