convert auth helpers to modules
This commit is contained in:
parent
bc0b43151d
commit
9ca5365daf
4 changed files with 66 additions and 67 deletions
|
|
@ -481,8 +481,8 @@
|
|||
<script type="module" src="/js/voicePreferences.js"></script>
|
||||
<script defer src="/js/app.js?v=7.1.3"></script>
|
||||
<script type="module" src="/js/ui-state.js"></script>
|
||||
<script defer src="/js/secureStorage.js"></script>
|
||||
<script defer src="/js/authFetch.js"></script>
|
||||
<script type="module" src="/js/secureStorage.js"></script>
|
||||
<script type="module" src="/js/authFetch.js"></script>
|
||||
<script defer src="/js/auth.js"></script>
|
||||
<script defer src="/js/liveEncounter.js"></script>
|
||||
<script defer src="/js/voiceDictation.js"></script>
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@
|
|||
// the login screen.
|
||||
// ============================================================
|
||||
|
||||
(function() {
|
||||
if (window.__fetchAuthIntercepted) return;
|
||||
if (!window.__fetchAuthIntercepted) {
|
||||
window.__fetchAuthIntercepted = true;
|
||||
|
||||
var _fetch = window.fetch.bind(window);
|
||||
|
|
@ -96,4 +95,4 @@
|
|||
return resp;
|
||||
});
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,70 +4,68 @@
|
|||
// Capacitor mobile: iOS Keychain / Android EncryptedSharedPreferences
|
||||
// via capacitor-secure-storage-plugin
|
||||
// ============================================================
|
||||
(function() {
|
||||
var memCache = {};
|
||||
var memCache = {};
|
||||
|
||||
function isNative() {
|
||||
try {
|
||||
return !!(window.Capacitor && typeof window.Capacitor.isNativePlatform === 'function' && window.Capacitor.isNativePlatform());
|
||||
} catch(e) { return false; }
|
||||
}
|
||||
function isNative() {
|
||||
try {
|
||||
return !!(window.Capacitor && typeof window.Capacitor.isNativePlatform === 'function' && window.Capacitor.isNativePlatform());
|
||||
} catch(e) { return false; }
|
||||
}
|
||||
|
||||
function plugin() {
|
||||
try {
|
||||
var p = window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.SecureStoragePlugin;
|
||||
return p || null;
|
||||
} catch(e) { return null; }
|
||||
}
|
||||
function plugin() {
|
||||
try {
|
||||
var p = window.Capacitor && window.Capacitor.Plugins && window.Capacitor.Plugins.SecureStoragePlugin;
|
||||
return p || null;
|
||||
} catch(e) { return null; }
|
||||
}
|
||||
|
||||
window.SecureStorage = {
|
||||
isNative: isNative,
|
||||
window.SecureStorage = {
|
||||
isNative: isNative,
|
||||
|
||||
get: function(key) {
|
||||
if (isNative() && plugin()) {
|
||||
return plugin().get({ key: key })
|
||||
.then(function(r) { memCache[key] = r.value; return r.value; })
|
||||
.catch(function() { return null; });
|
||||
}
|
||||
try { return Promise.resolve(localStorage.getItem(key)); } catch(e) { return Promise.resolve(null); }
|
||||
},
|
||||
|
||||
set: function(key, value) {
|
||||
memCache[key] = value;
|
||||
if (isNative() && plugin()) {
|
||||
return plugin().set({ key: key, value: value }).catch(function() {});
|
||||
}
|
||||
try { localStorage.setItem(key, value); } catch(e) {}
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
remove: function(key) {
|
||||
delete memCache[key];
|
||||
if (isNative() && plugin()) {
|
||||
var p = plugin().remove({ key: key }).catch(function() {});
|
||||
// Also clear legacy localStorage copy if any
|
||||
try { localStorage.removeItem(key); } catch(e) {}
|
||||
return p;
|
||||
}
|
||||
try { localStorage.removeItem(key); } catch(e) {}
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
// Synchronous read for hot paths (fetch headers). On native returns cached
|
||||
// value populated by prior get/set. On web reads localStorage directly.
|
||||
getSync: function(key) {
|
||||
if (isNative()) return memCache[key] || null;
|
||||
try { return localStorage.getItem(key); } catch(e) { return null; }
|
||||
},
|
||||
|
||||
// Hydrate the memory cache from native storage at boot. Resolves when ready.
|
||||
hydrate: function(keys) {
|
||||
if (!isNative() || !plugin()) return Promise.resolve();
|
||||
return Promise.all(keys.map(function(k) {
|
||||
return plugin().get({ key: k })
|
||||
.then(function(r) { memCache[k] = r.value; })
|
||||
.catch(function() { memCache[k] = null; });
|
||||
}));
|
||||
get: function(key) {
|
||||
if (isNative() && plugin()) {
|
||||
return plugin().get({ key: key })
|
||||
.then(function(r) { memCache[key] = r.value; return r.value; })
|
||||
.catch(function() { return null; });
|
||||
}
|
||||
};
|
||||
})();
|
||||
try { return Promise.resolve(localStorage.getItem(key)); } catch(e) { return Promise.resolve(null); }
|
||||
},
|
||||
|
||||
set: function(key, value) {
|
||||
memCache[key] = value;
|
||||
if (isNative() && plugin()) {
|
||||
return plugin().set({ key: key, value: value }).catch(function() {});
|
||||
}
|
||||
try { localStorage.setItem(key, value); } catch(e) {}
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
remove: function(key) {
|
||||
delete memCache[key];
|
||||
if (isNative() && plugin()) {
|
||||
var p = plugin().remove({ key: key }).catch(function() {});
|
||||
// Also clear legacy localStorage copy if any
|
||||
try { localStorage.removeItem(key); } catch(e) {}
|
||||
return p;
|
||||
}
|
||||
try { localStorage.removeItem(key); } catch(e) {}
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
// Synchronous read for hot paths (fetch headers). On native returns cached
|
||||
// value populated by prior get/set. On web reads localStorage directly.
|
||||
getSync: function(key) {
|
||||
if (isNative()) return memCache[key] || null;
|
||||
try { return localStorage.getItem(key); } catch(e) { return null; }
|
||||
},
|
||||
|
||||
// Hydrate the memory cache from native storage at boot. Resolves when ready.
|
||||
hydrate: function(keys) {
|
||||
if (!isNative() || !plugin()) return Promise.resolve();
|
||||
return Promise.all(keys.map(function(k) {
|
||||
return plugin().get({ key: k })
|
||||
.then(function(r) { memCache[k] = r.value; })
|
||||
.catch(function() { memCache[k] = null; });
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ const moduleEntrypoints = [
|
|||
'public/js/clinicalAssistant.js',
|
||||
'public/js/admin.js',
|
||||
'public/js/admin-docs.js',
|
||||
'public/js/authFetch.js',
|
||||
'public/js/diagrams.js',
|
||||
'public/js/drugs-loader.js',
|
||||
'public/js/ed-encounters.js',
|
||||
|
|
@ -20,6 +21,7 @@ const moduleEntrypoints = [
|
|||
'public/js/notes.js',
|
||||
'public/js/sickVisit.js',
|
||||
'public/js/soap.js',
|
||||
'public/js/secureStorage.js',
|
||||
'public/js/transcriptionSettings.js',
|
||||
'public/js/ui-state.js',
|
||||
'public/js/wellVisit.js',
|
||||
|
|
|
|||
Loading…
Reference in a new issue