A set of types that describe the format of the IIIF Presentation 2.1.1 specification as accurately as possible. Types are also available for IIIF Presentation 3
Installation:
$ npm i @iiif/presentation-2
Installation (yarn):
$ yarn add @iiif/presentation-2
Usage (Typescript):
import { Manifest } from '@iiif/presentation-2';
const manifest = getManifestFromSomewhere() as Manifest;
function doSomethingWithManifest(manifest: Manifest) {
// ...
}
Usage (Javascript):
/**
* @typedef { import("@iiif/presentation-2").Manifest } Manifest
*/
/**
* @type {Manifest}
*/
const manifest = {};
/**
* @param manifest {Manifest}
*/
function doSomethingWithManifest(manifest) {
console.log(manifest.label);
}
// You can also inline the import:
/**
* @type {import("@iiif/presentation-2").Manifest}
*/
const manifest2 = {};
This will enable types completions in VSCode and IDEA, along with inline documentation from the IIIF specification:
The following types are supported:
- Manifest
- Collection
- Canvas
- Annotation (Open Annotation)
- Annotation List (Open Annotation)
- Layer
- Content Resource
- Provider
- Range
- Service
These types are building blocks of other types.
Type | Description |
---|---|
TechnicalProperties | The technical properties of IIIF in a map TechnicalProperties['id'] |
DescriptiveProperties | The descriptive properties of IIIF in a map DescriptiveProperties['label'] |
LinkingProperties | The linking properties of IIIF in a map LinkingProperties['related'] |
PagingProperties | The paging properties of IIIF in a map PagingProperties['first'] |
RightsProperties | The structural properties of IIIF in a map RightsProperties['attribution'] |