Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/annotorious-annotator/line-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@ class AnnotoriousAnnotator extends HTMLElement {
let resolvedCanvas = await this.vault.get(uri, 'canvas')
if (!resolvedCanvas && TPEN.activeProject?.manifest) {
// Canvas not directly resolvable, try to hydrate from all manifests
await this.vault.prefetchDocuments(TPEN.activeProject.manifest)
await this.vault.prefetchManifests(TPEN.activeProject.manifest)
// After manifests are cached, try again
resolvedCanvas = await this.vault.get(uri, 'canvas')
}
Expand Down
2 changes: 1 addition & 1 deletion components/column-selector/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export default class ColumnSelector extends HTMLElement {

this.#page = await vault.get(pageId, 'annotationpage', true)
if (!this.#page && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
this.#page = await vault.get(pageId, 'annotationpage', true)
}
if (!this.#page) return
Expand Down
2 changes: 1 addition & 1 deletion components/continue-working/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ class ContinueWorking extends HTMLElement {
canvas = await vault.get(canvasId, 'canvas')
if (!canvas && project.manifest?.[0]) {
// Try to hydrate from all manifests
await vault.prefetchDocuments(project.manifest)
await vault.prefetchManifests(project.manifest)
// After manifests are cached, try again
canvas = await vault.get(canvasId, 'canvas')
}
Expand Down
2 changes: 1 addition & 1 deletion components/default-transcribe/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class TpenTranscriptionElement extends HTMLElement {
async #loadPage(annotationPageID) {
let page = await vault.get(annotationPageID, 'annotationpage')
if (!page && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
page = await vault.get(annotationPageID, 'annotationpage')
}
if (!page) {
Expand Down
4 changes: 2 additions & 2 deletions components/legacy-annotator/plain.js
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ class LegacyAnnotator extends HTMLElement {
if(!page) return
let resolvedPage = await vault.get(page, 'annotationpage')
if (!resolvedPage && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
resolvedPage = await vault.get(page, 'annotationpage')
}
if (!resolvedPage) {
Expand Down Expand Up @@ -400,7 +400,7 @@ class LegacyAnnotator extends HTMLElement {
let resolvedCanvas = await vault.get(canvas, 'canvas')
if (!resolvedCanvas && TPEN.activeProject?.manifest) {
// Try to hydrate from all manifests
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
// After manifests are cached, try again
resolvedCanvas = await vault.get(canvas, 'canvas')
}
Expand Down
2 changes: 1 addition & 1 deletion components/line-image/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ class TpenImageFragment extends HTMLElement {
this.cleanup.onDocument('canvas-change', async (event) => {
let canvas = await vault.get(event.detail.canvasId, 'canvas')
if (!canvas && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
canvas = await vault.get(event.detail.canvasId, 'canvas')
}
if (!canvas) {
Expand Down
4 changes: 2 additions & 2 deletions components/simple-transcription/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ export default class SimpleTranscriptionInterface extends HTMLElement {
// Use vault.get to fetch the page properly
let fetchedPage = await vault.get(pageID, 'annotationpage', true)
if (!fetchedPage && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
fetchedPage = await vault.get(pageID, 'annotationpage', true)
}
if (!fetchedPage) {
Expand Down Expand Up @@ -521,7 +521,7 @@ export default class SimpleTranscriptionInterface extends HTMLElement {

let fetchedCanvas = await vault.get(canvasID, 'canvas')
if (!fetchedCanvas && TPEN.activeProject?.manifest) {
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
fetchedCanvas = await vault.get(canvasID, 'canvas')
}
if (!fetchedCanvas) {
Expand Down
2 changes: 1 addition & 1 deletion components/transcription-block/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ export default class TranscriptionBlock extends HTMLElement {
if (!this.#page && TPEN.activeProject?.manifest) {
// Try to hydrate from all manifests
const manifestUrls = TPEN.activeProject?.manifest
await vault.prefetchDocuments(manifestUrls)
await vault.prefetchManifests(manifestUrls)
// After manifests are cached, try again
this.#page = await vault.get(pageID, 'annotationpage', true)
}
Expand Down
4 changes: 2 additions & 2 deletions interfaces/transcription/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -628,7 +628,7 @@ export default class TranscriptionInterface extends HTMLElement {
let canvas = await vault.get(canvasID, 'canvas')
if (!canvas && TPEN.activeProject?.manifest) {
// Canvas not directly resolvable, try to hydrate from all manifests
await vault.prefetchDocuments(TPEN.activeProject.manifest)
await vault.prefetchManifests(TPEN.activeProject.manifest)
// After manifests are cached, try again
canvas = await vault.get(canvasID, 'canvas')
}
Expand Down Expand Up @@ -663,7 +663,7 @@ export default class TranscriptionInterface extends HTMLElement {
if (!this.#page && TPEN.activeProject?.manifest) {
// Try to hydrate from all manifests
const manifestUrls = TPEN.activeProject?.manifest
await vault.prefetchDocuments(manifestUrls)
await vault.prefetchManifests(manifestUrls)
// After manifests are cached, try again
this.#page = await vault.get(pageID, 'annotationpage', true)
}
Expand Down
13 changes: 11 additions & 2 deletions js/vault.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,12 @@ class Vault {
return Object.values(this.store)
}

async prefetchDocuments(items) {
async prefetchDocuments(items, docType) {
if (!Array.isArray(items)) items = [items]
const errors = []
const promises = items.map(item => {
return this.get(item, item?.['@type'] ?? item?.type)
const type = docType ?? item?.['@type'] ?? item?.type
return this.get(item, type)
.catch(err => {
errors.push({ item, error: err?.message || String(err) })
return null
Expand All @@ -227,6 +228,14 @@ class Vault {
}
return errors
}

async prefetchManifests(items) {
return this.prefetchDocuments(items, 'manifest')
}

async prefetchCollections(items) {
return this.prefetchDocuments(items, 'collection')
}
}

const vault = new Vault()
Expand Down