40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
import Manifest from '../src/Manifest.js';
|
|
import Sequence from '../src/Sequence.js';
|
|
import Canvas from '../src/Canvas.js';
|
|
import Image from '../src/Image.js';
|
|
|
|
import * as fs from 'fs';
|
|
/**
|
|
* Generate a manifest object to serve
|
|
* @param {string} manifestId
|
|
*/
|
|
export default async function generateManifest(manifestId) {
|
|
const IIIF_API_VERSION = process.env.IIIF_API_VERSION;
|
|
const BASE_URL = process.env.BASE_URL;
|
|
|
|
const manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
|
|
const sequence = new Sequence();
|
|
const canvas = new Canvas(IIIF_API_VERSION, BASE_URL);
|
|
const image = new Image(4000, 3000);
|
|
canvas.setThumbnail();
|
|
canvas.addImage(image);
|
|
sequence.addCanvas(canvas);
|
|
manifest.addSequence(sequence);
|
|
manifest.generateID(manifestId);
|
|
|
|
console.log(await getImageList(manifestId));
|
|
|
|
return manifest.toObject();
|
|
}
|
|
/**
|
|
* @param {string} manifestId
|
|
*/
|
|
async function getImageList(manifestId) {
|
|
let folderName = manifestId.replace(/pherc-(\d+)-(\w+)$/, function (match, g1, g2) {
|
|
return `PHerc_${g1}_${g2.toUpperCase()}`;
|
|
});
|
|
|
|
return await fs.promises.readdir(`./test-images/${folderName}`);
|
|
} |