mirror of
https://github.com/NohamR/Pocket-Bird.git
synced 2026-05-25 04:07:23 +00:00
Allow for set contexts
This commit is contained in:
22
dist/extension/birb.js
vendored
22
dist/extension/birb.js
vendored
@@ -847,6 +847,7 @@
|
||||
|
||||
const SAVE_KEY = "birbSaveData";
|
||||
const ROOT_PATH = "";
|
||||
const SET_CONTEXT = "__CONTEXT__";
|
||||
|
||||
/**
|
||||
* @typedef {import('./application.js').BirbSaveData} BirbSaveData
|
||||
@@ -1033,7 +1034,7 @@
|
||||
*/
|
||||
isContextActive() {
|
||||
// @ts-expect-error
|
||||
return typeof chrome !== "undefined";
|
||||
return typeof chrome !== "undefined" && typeof chrome.storage !== "undefined" && typeof chrome.storage.sync !== "undefined";
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1077,6 +1078,7 @@
|
||||
}
|
||||
|
||||
class ObsidianContext extends Context {
|
||||
|
||||
/**
|
||||
* @override
|
||||
* @returns {boolean}
|
||||
@@ -1164,15 +1166,29 @@
|
||||
}
|
||||
}
|
||||
|
||||
const CONTEXTS = [
|
||||
const contextProcessingOrder = [
|
||||
new UserScriptContext(),
|
||||
new ObsidianContext(),
|
||||
new BrowserExtensionContext(),
|
||||
new LocalContext()
|
||||
];
|
||||
|
||||
const CONTEXTS_BY_KEY = {
|
||||
"local": LocalContext,
|
||||
"userscript": UserScriptContext,
|
||||
"browser-extension": BrowserExtensionContext,
|
||||
"obsidian": ObsidianContext
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines and returns the current context
|
||||
* @returns {Context}
|
||||
*/
|
||||
function getContext() {
|
||||
for (const context of CONTEXTS) {
|
||||
if (CONTEXTS_BY_KEY[SET_CONTEXT]) {
|
||||
return new CONTEXTS_BY_KEY[SET_CONTEXT]();
|
||||
}
|
||||
for (const context of contextProcessingOrder) {
|
||||
if (context.isContextActive()) {
|
||||
return context;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user