Make code prettier
This updates ESLint and our shared eslint-config-openlayers to use Prettier. Most formatting changes were automatically applied with this:
npm run lint -- --fix
A few manual changes were required:
* In `examples/offscreen-canvas.js`, the `//eslint-disable-line` comment needed to be moved to the appropriate line to disable the error about the `'worker-loader!./offscreen-canvas.worker.js'` import.
* In `examples/webpack/exapmle-builder.js`, spaces could not be added after a couple `function`s for some reason. While editing this, I reworked `ExampleBuilder` to be a class.
* In `src/ol/format/WMSGetFeatureInfo.js`, the `// @ts-ignore` comment needed to be moved down one line so it applied to the `parsersNS` argument.
This commit is contained in:
+200
-98
@@ -4,7 +4,6 @@
|
||||
|
||||
import {assert} from '../asserts.js';
|
||||
|
||||
|
||||
/**
|
||||
* @typedef {Object} PreferredOptions
|
||||
* @property {string} [format] Preferred image format. Will be used if the image information
|
||||
@@ -51,7 +50,7 @@ import {assert} from '../asserts.js';
|
||||
const Versions = {
|
||||
VERSION1: 'version1',
|
||||
VERSION2: 'version2',
|
||||
VERSION3: 'version3'
|
||||
VERSION3: 'version3',
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -65,67 +64,96 @@ IIIF_PROFILE_VALUES[Versions.VERSION1] = {
|
||||
'level0': {
|
||||
supports: [],
|
||||
formats: [],
|
||||
qualities: ['native']
|
||||
qualities: ['native'],
|
||||
},
|
||||
'level1': {
|
||||
supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'],
|
||||
formats: ['jpg'],
|
||||
qualities: ['native']
|
||||
qualities: ['native'],
|
||||
},
|
||||
'level2': {
|
||||
supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct',
|
||||
'sizeByConfinedWh', 'sizeByWh'],
|
||||
supports: [
|
||||
'regionByPx',
|
||||
'regionByPct',
|
||||
'sizeByW',
|
||||
'sizeByH',
|
||||
'sizeByPct',
|
||||
'sizeByConfinedWh',
|
||||
'sizeByWh',
|
||||
],
|
||||
formats: ['jpg', 'png'],
|
||||
qualities: ['native', 'color', 'grey', 'bitonal']
|
||||
}
|
||||
qualities: ['native', 'color', 'grey', 'bitonal'],
|
||||
},
|
||||
};
|
||||
IIIF_PROFILE_VALUES[Versions.VERSION2] = {
|
||||
'level0': {
|
||||
supports: [],
|
||||
formats: ['jpg'],
|
||||
qualities: ['default']
|
||||
qualities: ['default'],
|
||||
},
|
||||
'level1': {
|
||||
supports: ['regionByPx', 'sizeByW', 'sizeByH', 'sizeByPct'],
|
||||
formats: ['jpg'],
|
||||
qualities: ['default']
|
||||
qualities: ['default'],
|
||||
},
|
||||
'level2': {
|
||||
supports: ['regionByPx', 'regionByPct', 'sizeByW', 'sizeByH', 'sizeByPct',
|
||||
'sizeByConfinedWh', 'sizeByDistortedWh', 'sizeByWh'],
|
||||
supports: [
|
||||
'regionByPx',
|
||||
'regionByPct',
|
||||
'sizeByW',
|
||||
'sizeByH',
|
||||
'sizeByPct',
|
||||
'sizeByConfinedWh',
|
||||
'sizeByDistortedWh',
|
||||
'sizeByWh',
|
||||
],
|
||||
formats: ['jpg', 'png'],
|
||||
qualities: ['default', 'bitonal']
|
||||
}
|
||||
qualities: ['default', 'bitonal'],
|
||||
},
|
||||
};
|
||||
IIIF_PROFILE_VALUES[Versions.VERSION3] = {
|
||||
'level0': {
|
||||
supports: [],
|
||||
formats: ['jpg'],
|
||||
qualities: ['default']
|
||||
qualities: ['default'],
|
||||
},
|
||||
'level1': {
|
||||
supports: ['regionByPx', 'regionSquare', 'sizeByW', 'sizeByH', 'sizeByWh'],
|
||||
formats: ['jpg'],
|
||||
qualities: ['default']
|
||||
qualities: ['default'],
|
||||
},
|
||||
'level2': {
|
||||
supports: ['regionByPx', 'regionSquare', 'regionByPct',
|
||||
'sizeByW', 'sizeByH', 'sizeByPct', 'sizeByConfinedWh', 'sizeByWh'],
|
||||
supports: [
|
||||
'regionByPx',
|
||||
'regionSquare',
|
||||
'regionByPct',
|
||||
'sizeByW',
|
||||
'sizeByH',
|
||||
'sizeByPct',
|
||||
'sizeByConfinedWh',
|
||||
'sizeByWh',
|
||||
],
|
||||
formats: ['jpg', 'png'],
|
||||
qualities: ['default']
|
||||
}
|
||||
qualities: ['default'],
|
||||
},
|
||||
};
|
||||
IIIF_PROFILE_VALUES['none'] = {
|
||||
'none': {
|
||||
supports: [],
|
||||
formats: [],
|
||||
qualities: []
|
||||
}
|
||||
qualities: [],
|
||||
},
|
||||
};
|
||||
|
||||
const COMPLIANCE_VERSION1 = new RegExp('^https?\:\/\/library\.stanford\.edu\/iiif\/image-api\/(1\.1\/)?compliance\.html#level[0-2]$');
|
||||
const COMPLIANCE_VERSION2 = new RegExp('^https?\:\/\/iiif\.io\/api\/image\/2\/level[0-2](\.json)?$');
|
||||
const COMPLIANCE_VERSION3 = new RegExp('(^https?\:\/\/iiif\.io\/api\/image\/3\/level[0-2](\.json)?$)|(^level[0-2]$)');
|
||||
const COMPLIANCE_VERSION1 = new RegExp(
|
||||
'^https?://library.stanford.edu/iiif/image-api/(1.1/)?compliance.html#level[0-2]$'
|
||||
);
|
||||
const COMPLIANCE_VERSION2 = new RegExp(
|
||||
'^https?://iiif.io/api/image/2/level[0-2](.json)?$'
|
||||
);
|
||||
const COMPLIANCE_VERSION3 = new RegExp(
|
||||
'(^https?://iiif.io/api/image/3/level[0-2](.json)?$)|(^level[0-2]$)'
|
||||
);
|
||||
|
||||
function generateVersion1Options(iiifInfo) {
|
||||
let levelProfile = iiifInfo.getComplianceLevelSupportedFeatures();
|
||||
@@ -134,84 +162,138 @@ function generateVersion1Options(iiifInfo) {
|
||||
levelProfile = IIIF_PROFILE_VALUES[Versions.VERSION1]['level0'];
|
||||
}
|
||||
return {
|
||||
url: iiifInfo.imageInfo['@id'] === undefined ? undefined : iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''),
|
||||
url:
|
||||
iiifInfo.imageInfo['@id'] === undefined
|
||||
? undefined
|
||||
: iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''),
|
||||
supports: levelProfile.supports,
|
||||
formats: [...levelProfile.formats, iiifInfo.imageInfo.formats === undefined ?
|
||||
[] : iiifInfo.imageInfo.formats
|
||||
formats: [
|
||||
...levelProfile.formats,
|
||||
iiifInfo.imageInfo.formats === undefined
|
||||
? []
|
||||
: iiifInfo.imageInfo.formats,
|
||||
],
|
||||
qualities: [...levelProfile.qualities, iiifInfo.imageInfo.qualities === undefined ?
|
||||
[] : iiifInfo.imageInfo.qualities
|
||||
qualities: [
|
||||
...levelProfile.qualities,
|
||||
iiifInfo.imageInfo.qualities === undefined
|
||||
? []
|
||||
: iiifInfo.imageInfo.qualities,
|
||||
],
|
||||
resolutions: iiifInfo.imageInfo.scale_factors,
|
||||
tileSize: iiifInfo.imageInfo.tile_width !== undefined ? (iiifInfo.imageInfo.tile_height !== undefined ?
|
||||
[iiifInfo.imageInfo.tile_width, iiifInfo.imageInfo.tile_height] : [iiifInfo.imageInfo.tile_width, iiifInfo.imageInfo.tile_width]) :
|
||||
(iiifInfo.imageInfo.tile_height != undefined ? [iiifInfo.imageInfo.tile_height, iiifInfo.imageInfo.tile_height] : undefined)
|
||||
tileSize:
|
||||
iiifInfo.imageInfo.tile_width !== undefined
|
||||
? iiifInfo.imageInfo.tile_height !== undefined
|
||||
? [iiifInfo.imageInfo.tile_width, iiifInfo.imageInfo.tile_height]
|
||||
: [iiifInfo.imageInfo.tile_width, iiifInfo.imageInfo.tile_width]
|
||||
: iiifInfo.imageInfo.tile_height != undefined
|
||||
? [iiifInfo.imageInfo.tile_height, iiifInfo.imageInfo.tile_height]
|
||||
: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
function generateVersion2Options(iiifInfo) {
|
||||
const levelProfile = iiifInfo.getComplianceLevelSupportedFeatures(),
|
||||
additionalProfile = Array.isArray(iiifInfo.imageInfo.profile) && iiifInfo.imageInfo.profile.length > 1,
|
||||
profileSupports = additionalProfile && iiifInfo.imageInfo.profile[1].supports ? iiifInfo.imageInfo.profile[1].supports : [],
|
||||
profileFormats = additionalProfile && iiifInfo.imageInfo.profile[1].formats ? iiifInfo.imageInfo.profile[1].formats : [],
|
||||
profileQualities = additionalProfile && iiifInfo.imageInfo.profile[1].qualities ? iiifInfo.imageInfo.profile[1].qualities : [];
|
||||
additionalProfile =
|
||||
Array.isArray(iiifInfo.imageInfo.profile) &&
|
||||
iiifInfo.imageInfo.profile.length > 1,
|
||||
profileSupports =
|
||||
additionalProfile && iiifInfo.imageInfo.profile[1].supports
|
||||
? iiifInfo.imageInfo.profile[1].supports
|
||||
: [],
|
||||
profileFormats =
|
||||
additionalProfile && iiifInfo.imageInfo.profile[1].formats
|
||||
? iiifInfo.imageInfo.profile[1].formats
|
||||
: [],
|
||||
profileQualities =
|
||||
additionalProfile && iiifInfo.imageInfo.profile[1].qualities
|
||||
? iiifInfo.imageInfo.profile[1].qualities
|
||||
: [];
|
||||
return {
|
||||
url: iiifInfo.imageInfo['@id'].replace(/\/?(info.json)?$/g, ''),
|
||||
sizes: iiifInfo.imageInfo.sizes === undefined ? undefined : iiifInfo.imageInfo.sizes.map(function(size) {
|
||||
return [size.width, size.height];
|
||||
}),
|
||||
tileSize: iiifInfo.imageInfo.tiles === undefined ? undefined : [
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.width;
|
||||
})[0],
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.height === undefined ? tile.width : tile.height;
|
||||
})[0]
|
||||
],
|
||||
resolutions: iiifInfo.imageInfo.tiles === undefined ? undefined :
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.scaleFactors;
|
||||
})[0],
|
||||
sizes:
|
||||
iiifInfo.imageInfo.sizes === undefined
|
||||
? undefined
|
||||
: iiifInfo.imageInfo.sizes.map(function (size) {
|
||||
return [size.width, size.height];
|
||||
}),
|
||||
tileSize:
|
||||
iiifInfo.imageInfo.tiles === undefined
|
||||
? undefined
|
||||
: [
|
||||
iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.width;
|
||||
})[0],
|
||||
iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.height === undefined ? tile.width : tile.height;
|
||||
})[0],
|
||||
],
|
||||
resolutions:
|
||||
iiifInfo.imageInfo.tiles === undefined
|
||||
? undefined
|
||||
: iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.scaleFactors;
|
||||
})[0],
|
||||
supports: [...levelProfile.supports, ...profileSupports],
|
||||
formats: [...levelProfile.formats, ...profileFormats],
|
||||
qualities: [...levelProfile.qualities, ...profileQualities]
|
||||
qualities: [...levelProfile.qualities, ...profileQualities],
|
||||
};
|
||||
}
|
||||
|
||||
function generateVersion3Options(iiifInfo) {
|
||||
const levelProfile = iiifInfo.getComplianceLevelSupportedFeatures(),
|
||||
formats = iiifInfo.imageInfo.extraFormats === undefined ? levelProfile.formats :
|
||||
[...levelProfile.formats, ...iiifInfo.imageInfo.extraFormats],
|
||||
preferredFormat = iiifInfo.imageInfo.preferredFormats !== undefined && Array.isArray(iiifInfo.imageInfo.preferredFormats) &&
|
||||
iiifInfo.imageInfo.preferredFormats.length > 0 ?
|
||||
iiifInfo.imageInfo.preferredFormats.filter(function(format) {
|
||||
return ['jpg', 'png', 'gif'].includes(format);
|
||||
}).reduce(function(acc, format) {
|
||||
return acc === undefined && formats.includes(format) ? format : acc;
|
||||
}, undefined) : undefined;
|
||||
formats =
|
||||
iiifInfo.imageInfo.extraFormats === undefined
|
||||
? levelProfile.formats
|
||||
: [...levelProfile.formats, ...iiifInfo.imageInfo.extraFormats],
|
||||
preferredFormat =
|
||||
iiifInfo.imageInfo.preferredFormats !== undefined &&
|
||||
Array.isArray(iiifInfo.imageInfo.preferredFormats) &&
|
||||
iiifInfo.imageInfo.preferredFormats.length > 0
|
||||
? iiifInfo.imageInfo.preferredFormats
|
||||
.filter(function (format) {
|
||||
return ['jpg', 'png', 'gif'].includes(format);
|
||||
})
|
||||
.reduce(function (acc, format) {
|
||||
return acc === undefined && formats.includes(format)
|
||||
? format
|
||||
: acc;
|
||||
}, undefined)
|
||||
: undefined;
|
||||
return {
|
||||
url: iiifInfo.imageInfo['id'],
|
||||
sizes: iiifInfo.imageInfo.sizes === undefined ? undefined : iiifInfo.imageInfo.sizes.map(function(size) {
|
||||
return [size.width, size.height];
|
||||
}),
|
||||
tileSize: iiifInfo.imageInfo.tiles === undefined ? undefined : [
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.width;
|
||||
})[0],
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.height;
|
||||
})[0]
|
||||
],
|
||||
resolutions: iiifInfo.imageInfo.tiles === undefined ? undefined :
|
||||
iiifInfo.imageInfo.tiles.map(function(tile) {
|
||||
return tile.scaleFactors;
|
||||
})[0],
|
||||
supports: iiifInfo.imageInfo.extraFeatures === undefined ? levelProfile.supports :
|
||||
[...levelProfile.supports, ...iiifInfo.imageInfo.extraFeatures],
|
||||
sizes:
|
||||
iiifInfo.imageInfo.sizes === undefined
|
||||
? undefined
|
||||
: iiifInfo.imageInfo.sizes.map(function (size) {
|
||||
return [size.width, size.height];
|
||||
}),
|
||||
tileSize:
|
||||
iiifInfo.imageInfo.tiles === undefined
|
||||
? undefined
|
||||
: [
|
||||
iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.width;
|
||||
})[0],
|
||||
iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.height;
|
||||
})[0],
|
||||
],
|
||||
resolutions:
|
||||
iiifInfo.imageInfo.tiles === undefined
|
||||
? undefined
|
||||
: iiifInfo.imageInfo.tiles.map(function (tile) {
|
||||
return tile.scaleFactors;
|
||||
})[0],
|
||||
supports:
|
||||
iiifInfo.imageInfo.extraFeatures === undefined
|
||||
? levelProfile.supports
|
||||
: [...levelProfile.supports, ...iiifInfo.imageInfo.extraFeatures],
|
||||
formats: formats,
|
||||
qualities: iiifInfo.imageInfo.extraQualities === undefined ? levelProfile.qualities :
|
||||
[...levelProfile.qualities, ...iiifInfo.imageInfo.extraQualities],
|
||||
preferredFormat: preferredFormat
|
||||
qualities:
|
||||
iiifInfo.imageInfo.extraQualities === undefined
|
||||
? levelProfile.qualities
|
||||
: [...levelProfile.qualities, ...iiifInfo.imageInfo.extraQualities],
|
||||
preferredFormat: preferredFormat,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -228,7 +310,6 @@ versionFunctions[Versions.VERSION3] = generateVersion3Options;
|
||||
* @api
|
||||
*/
|
||||
class IIIFInfo {
|
||||
|
||||
/**
|
||||
* @param {string|ImageInformationResponse} imageInfo
|
||||
* Deserialized image information JSON response object or JSON response as string
|
||||
@@ -273,7 +354,10 @@ class IIIFInfo {
|
||||
return Versions.VERSION3;
|
||||
case 'ol-no-context':
|
||||
// Image API 1.0 has no '@context'
|
||||
if (this.getComplianceLevelEntryFromProfile(Versions.VERSION1) && this.imageInfo.identifier) {
|
||||
if (
|
||||
this.getComplianceLevelEntryFromProfile(Versions.VERSION1) &&
|
||||
this.imageInfo.identifier
|
||||
) {
|
||||
return Versions.VERSION1;
|
||||
}
|
||||
break;
|
||||
@@ -307,11 +391,18 @@ class IIIFInfo {
|
||||
}
|
||||
break;
|
||||
case Versions.VERSION2:
|
||||
if (typeof this.imageInfo.profile === 'string' && COMPLIANCE_VERSION2.test(this.imageInfo.profile)) {
|
||||
if (
|
||||
typeof this.imageInfo.profile === 'string' &&
|
||||
COMPLIANCE_VERSION2.test(this.imageInfo.profile)
|
||||
) {
|
||||
return this.imageInfo.profile;
|
||||
}
|
||||
if (Array.isArray(this.imageInfo.profile) && this.imageInfo.profile.length > 0
|
||||
&& typeof this.imageInfo.profile[0] === 'string' && COMPLIANCE_VERSION2.test(this.imageInfo.profile[0])) {
|
||||
if (
|
||||
Array.isArray(this.imageInfo.profile) &&
|
||||
this.imageInfo.profile.length > 0 &&
|
||||
typeof this.imageInfo.profile[0] === 'string' &&
|
||||
COMPLIANCE_VERSION2.test(this.imageInfo.profile[0])
|
||||
) {
|
||||
return this.imageInfo.profile[0];
|
||||
}
|
||||
break;
|
||||
@@ -355,11 +446,12 @@ class IIIFInfo {
|
||||
*/
|
||||
getTileSourceOptions(opt_preferredOptions) {
|
||||
const options = opt_preferredOptions || {},
|
||||
version = this.getImageApiVersion();
|
||||
version = this.getImageApiVersion();
|
||||
if (version === undefined) {
|
||||
return;
|
||||
}
|
||||
const imageOptions = version === undefined ? undefined : versionFunctions[version](this);
|
||||
const imageOptions =
|
||||
version === undefined ? undefined : versionFunctions[version](this);
|
||||
if (imageOptions === undefined) {
|
||||
return;
|
||||
}
|
||||
@@ -368,18 +460,28 @@ class IIIFInfo {
|
||||
version: version,
|
||||
size: [this.imageInfo.width, this.imageInfo.height],
|
||||
sizes: imageOptions.sizes,
|
||||
format: options.format !== undefined && imageOptions.formats.includes(options.format) ? options.format :
|
||||
imageOptions.preferredFormat !== undefined ? imageOptions.preferredFormat : 'jpg',
|
||||
format:
|
||||
options.format !== undefined &&
|
||||
imageOptions.formats.includes(options.format)
|
||||
? options.format
|
||||
: imageOptions.preferredFormat !== undefined
|
||||
? imageOptions.preferredFormat
|
||||
: 'jpg',
|
||||
supports: imageOptions.supports,
|
||||
quality: options.quality && imageOptions.qualities.includes(options.quality) ?
|
||||
options.quality : imageOptions.qualities.includes('native') ? 'native' : 'default',
|
||||
resolutions: Array.isArray(imageOptions.resolutions) ? imageOptions.resolutions.sort(function(a, b) {
|
||||
return b - a;
|
||||
}) : undefined,
|
||||
tileSize: imageOptions.tileSize
|
||||
quality:
|
||||
options.quality && imageOptions.qualities.includes(options.quality)
|
||||
? options.quality
|
||||
: imageOptions.qualities.includes('native')
|
||||
? 'native'
|
||||
: 'default',
|
||||
resolutions: Array.isArray(imageOptions.resolutions)
|
||||
? imageOptions.resolutions.sort(function (a, b) {
|
||||
return b - a;
|
||||
})
|
||||
: undefined,
|
||||
tileSize: imageOptions.tileSize,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default IIIFInfo;
|
||||
|
||||
Reference in New Issue
Block a user