|
@@ -1,11 +1,22 @@
|
|
|
import Storage from '@converse/skeletor/src/storage.js';
|
|
|
-import _converse from '@converse/headless/shared/_converse';
|
|
|
+import { _converse, api } from '@converse/headless/core';
|
|
|
import log from '@converse/headless/log';
|
|
|
import u from '@converse/headless/utils/core';
|
|
|
|
|
|
+export function getDefaultStore () {
|
|
|
+ if (_converse.config.get('trusted')) {
|
|
|
+ const is_non_persistent = api.settings.get('persistent_store') === 'sessionStorage';
|
|
|
+ return is_non_persistent ? 'session': 'persistent';
|
|
|
+ } else {
|
|
|
+ return 'session';
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
export function createStore (id, storage) {
|
|
|
- const s = _converse.storage[storage || _converse.getDefaultStore()];
|
|
|
+ const s = _converse.storage[storage || getDefaultStore()];
|
|
|
+ if (typeof s === 'undefined') {
|
|
|
+ throw new TypeError(`createStore: Could not find store for %{id}`);
|
|
|
+ }
|
|
|
return new Storage(id, s);
|
|
|
}
|
|
|
|