UNPKG

maniiifest

Version:

Typesafe IIIF presentation v3 manifest and collection parsing without external dependencies

58 lines (57 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ManiiifestAnnotationCollection = void 0; const F = require("./specification"); /** * Parses and provides access to a standalone W3C Annotation Collection. * * Create via `Maniiifest.parseAnnotationCollection(data)` or `new ManiiifestAnnotationCollection(data)`. */ class ManiiifestAnnotationCollection { constructor(data) { try { this.specification = F.readAnnotationCollectionT(data); } catch (error) { throw new Error(`Failed to parse IIIF data as AnnotationCollection: ${error instanceof Error ? error.message : String(error)}`); } } getAnnotationCollection() { return F.writeAnnotationCollectionT(this.specification); } getAnnotationCollectionId() { return this.specification.id !== undefined ? F.writeIdT(this.specification.id) : null; } getAnnotationCollectionType() { return F.writeTypeT(this.specification.type); } getAnnotationCollectionContext() { return this.specification.context !== undefined ? F.writeContextT(this.specification.context) : null; } getAnnotationCollectionLabel() { return this.specification.label !== undefined ? F.writeLabelT(this.specification.label) : null; } getAnnotationCollectionFirst() { return this.specification.first !== undefined ? F.writeFirstT(this.specification.first) : null; } getAnnotationCollectionLast() { return this.specification.last !== undefined ? F.writeLastT(this.specification.last) : null; } getAnnotationCollectionTotal() { return this.specification.total !== undefined ? F.writeTotalT(this.specification.total) : null; } /** @yields {U.Annotation} Each annotation in the collection. */ *iterateAnnotationCollectionAnnotation() { var _a; for (const annotation of (_a = this.specification.items) !== null && _a !== void 0 ? _a : []) { yield F.writeAnnotationT(annotation); } } } exports.ManiiifestAnnotationCollection = ManiiifestAnnotationCollection;