mirror of
https://github.com/glassflame/glassflame.github.io.git
synced 2024-11-25 17:44:26 +00:00
Various improvements related to the fetch
module
This commit is contained in:
parent
64feb5e036
commit
ce268ff557
1 changed files with 10 additions and 10 deletions
|
@ -1,19 +1,19 @@
|
||||||
/**
|
/**
|
||||||
* No valid kind was determined during the execution of {@link kindFromName}.
|
* No valid kind was determined during the execution of {@link kindFromExtension}.
|
||||||
*/
|
*/
|
||||||
export class UnknownFileKindError extends Error {}
|
export class UnknownFileKindError extends Error {}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to determine the {@link VaultFile.kind} from a file's name.
|
* Try to determine the {@link VaultFile.kind} from a file's extension.
|
||||||
*
|
*
|
||||||
* @param name {string} The file name to use.
|
* @param extension {string} The file's extension, with no leading colon.
|
||||||
* @returns {"card"|"canvas"} The successfully determined file type.
|
* @returns {"card"|"canvas"} The successfully determined file type.
|
||||||
*/
|
*/
|
||||||
function kindFromName(name) {
|
function kindFromExtension(extension) {
|
||||||
if(name.endsWith(".md")) return "card"
|
if(extension === "md") return "card"
|
||||||
else if(name.endsWith(".canvas")) return "canvas"
|
else if(extension === ".canvas") return "canvas"
|
||||||
throw UnknownFileKindError("No file type matched the given file name.")
|
throw UnknownFileKindError("No file type matched the given file extension.")
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,8 +77,8 @@ async function fetchVaultFile(fileURL) {
|
||||||
if(!response.ok) throw new VaultFetchError(response, "Fetch response is not ok")
|
if(!response.ok) throw new VaultFetchError(response, "Fetch response is not ok")
|
||||||
|
|
||||||
const contents = await response.text()
|
const contents = await response.text()
|
||||||
const name = fileURL.pathname.split("/").at(-1)
|
const kind = kindFromExtension(fileURL.pathname.split(".").at(-1))
|
||||||
const kind = kindFromName(name)
|
const name = decodeURIComponent(fileURL.pathname.split("/").at(-1).split(".").slice(0, -1).join("."))
|
||||||
|
|
||||||
return new VaultFile({kind, name, contents})
|
return new VaultFile({kind, name, contents})
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ export async function getVaultFile(fileURL) {
|
||||||
|
|
||||||
if(cached !== undefined) return cached
|
if(cached !== undefined) return cached
|
||||||
|
|
||||||
const vaultFile = fetchVaultFile(fileURL)
|
const vaultFile = await fetchVaultFile(fileURL)
|
||||||
VAULT_CACHE[fileURL] = vaultFile
|
VAULT_CACHE[fileURL] = vaultFile
|
||||||
return vaultFile
|
return vaultFile
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue