diff --git a/.gitignore b/.gitignore index 97aca2e..681410b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ +*.swp +*.swo .env -node_modules \ No newline at end of file +node_modules +docs/ \ No newline at end of file diff --git a/app.mjs b/app.mjs index 570cf59..f80235a 100644 --- a/app.mjs +++ b/app.mjs @@ -1,5 +1,6 @@ //let createError = require('http-errors'); import createError from 'http-errors'; +import logger from 'morgan'; import express from 'express'; import path from 'path'; import router from './routes/index.mjs'; @@ -13,7 +14,7 @@ const PORT = process.env.PORT || 3000; //app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); -//app.use(logger('dev')); +app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); //app.use(express.static(path.join(__dirname, 'public'))); diff --git a/package.json b/package.json index 541c291..d05a31e 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "dependencies": { "dotenv": "^16.3.1", "ejs": "^3.1.9", - "express": "^4.18.2" + "express": "^4.18.2", + "morgan": "^1.10.0" } } diff --git a/src/Canvas.js b/src/Canvas.js index 784425e..356116a 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -1,4 +1,9 @@ -export default class Canvas { +/** + * @class + */ +class Canvas { images = []; } + +export default Canvas; diff --git a/src/IIIFResource.js b/src/IIIFResource.js new file mode 100644 index 0000000..28114d2 --- /dev/null +++ b/src/IIIFResource.js @@ -0,0 +1,11 @@ +/** + * @interface + */ +class IIIFResource { + id; + type; + + toObject() {} +} + +export default IIIFResource; \ No newline at end of file diff --git a/src/Manifest.js b/src/Manifest.js index 15c9f0c..50dfe44 100644 --- a/src/Manifest.js +++ b/src/Manifest.js @@ -1,7 +1,12 @@ +import IIIFResource from './IIIFResource.js'; import Sequence from "./Sequence.js"; import Canvas from "./Canvas.js"; -export default class Manifest { +/** + * @implements IIIFResource + * @class + */ +class Manifest { id = ''; type = 'sc:Manifest'; /** @@ -27,7 +32,6 @@ export default class Manifest { } /** - * @todo Implement * @param {string} idParam From the request */ generateID(idParam) { @@ -35,6 +39,7 @@ export default class Manifest { } /** * @todo Implement + * @returns {object} */ toObject() { return { @@ -44,3 +49,5 @@ export default class Manifest { } } } + +export default Manifest; \ No newline at end of file diff --git a/src/Sequence.js b/src/Sequence.js index 26c7577..9e219a2 100644 --- a/src/Sequence.js +++ b/src/Sequence.js @@ -1,3 +1,11 @@ -export default class Sequence { +import IIIFResource from './IIIFResource.js'; +/** + * @todo Not needed in IIIF API v3, + * replaced by items + * @implements IIIFResource + * @class + */ +class Sequence { } +export default Sequence; \ No newline at end of file diff --git a/src/jsdoc.json b/src/jsdoc.json new file mode 100644 index 0000000..e9a29a3 --- /dev/null +++ b/src/jsdoc.json @@ -0,0 +1,20 @@ +{ + "source": { + "include": ["src/"], + "includePattern": ".js$", + "excludePattern": "(node_modules/|docs)" + }, + + "plugins": ["plugins/markdown"], + + "opts": { + "encoding": "utf8", + "destination": "docs/", + "recurse": true, + "verbose": true, + "template": "/home/nicolo/.npm-global/lib/node_modules/clean-jsdoc-theme", + "theme_opts": { + "theme": "light" + } + } +} diff --git a/yarn.lock b/yarn.lock index 2a5b3fc..32aedea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -32,6 +32,13 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + body-parser@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" @@ -132,7 +139,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -depd@2.0.0: +depd@2.0.0, depd@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -362,6 +369,17 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" +morgan@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -389,6 +407,18 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -429,6 +459,11 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" +safe-buffer@5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"