Skip to content

Commit 217bfa2

Browse files
committed
Changes while testing and reviewing
1 parent ced94eb commit 217bfa2

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

classes/Page/Page.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const databaseTiny = new dbDriver("tiny")
77

88
export default class Page {
99
#tinyAction = 'create'
10+
#hydrated = false
1011
#setRerumId() {
1112
if (!this.id.startsWith(process.env.RERUMIDPREFIX)) {
1213
this.id = `${process.env.RERUMIDPREFIX}${this.id.split("/").pop()}`
@@ -105,13 +106,14 @@ export default class Page {
105106
}
106107
this.#tinyAction = 'update'
107108
this.id = rawPageData.id ?? rawPageData["@id"] ?? this.id
108-
if (rawPageData.target) this.target = rawPageData.target
109+
if ('target' in rawPageData) this.target = rawPageData.target
109110
if ('items' in rawPageData) this.items = rawPageData.items
110111
if (rawPageData.creator) this.creator = rawPageData.creator
111112
if (rawPageData.label) this.label = ProjectFactory.getLabelAsString(rawPageData.label)
112-
if (rawPageData.partOf) this.partOf = Array.isArray(rawPageData.partOf) ? rawPageData.partOf[0]?.id ?? rawPageData.partOf[0] : rawPageData.partOf
113+
if ('partOf' in rawPageData) this.partOf = Array.isArray(rawPageData.partOf) ? rawPageData.partOf[0]?.id ?? rawPageData.partOf[0] : rawPageData.partOf
113114
if ('prev' in rawPageData) this.prev = rawPageData.prev
114115
if ('next' in rawPageData) this.next = rawPageData.next
116+
this.#hydrated = true
115117
}
116118
return this
117119
}
@@ -129,7 +131,7 @@ export default class Page {
129131
this.items.map(async (item) => {
130132
// If item is a string, it's an annotation ID - fetch from RERUM
131133
let lineRef
132-
if (typeof item === "string") lineRef = { "id": item, "target":"placeholder" }
134+
if (typeof item === "string") lineRef = { "id": item, "target":"pending-resolution" }
133135
else if (typeof item === "object" && item.id) lineRef = item
134136
else return { id: item?.id ?? item, error: "Unrecognized Page item format" }
135137
let line
@@ -254,9 +256,9 @@ export default class Page {
254256
* @returns {Object} The Page as JSON.
255257
*/
256258
async asJSON(isLD) {
257-
if (!(this.items?.length || this.partOf || this.target || 'prev' in this || 'next' in this)) {
259+
if (!this.#hydrated && this.id?.startsWith?.(process.env.RERUMIDPREFIX)) {
258260
await this.#loadAnnotationPageDataFromRerum()
259-
}
261+
}
260262
let result
261263
if (isLD) {
262264
result = {

0 commit comments

Comments
 (0)