Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

264 lines
4.4 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validateConfig = validateConfig;
function _utils() {
const data = require("@parcel/utils");
_utils = function () {
return data;
};
return data;
}
// https://sharp.pixelplumbing.com/api-output#jpeg
const JPEG_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
progressive: {
type: 'boolean'
},
chromaSubsampling: {
type: 'string'
},
optimiseCoding: {
type: 'boolean'
},
optimizeCoding: {
type: 'boolean'
},
mozjpeg: {
type: 'boolean'
},
trellisQuantisation: {
type: 'boolean'
},
overshootDeringing: {
type: 'boolean'
},
optimiseScans: {
type: 'boolean'
},
optimizeScans: {
type: 'boolean'
},
quantisationTable: {
type: 'number'
},
quantizationTable: {
type: 'number'
},
force: {
type: 'boolean'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#png
const PNG_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
progressive: {
type: 'boolean'
},
compressionLevel: {
type: 'number'
},
adaptiveFiltering: {
type: 'boolean'
},
palette: {
type: 'boolean'
},
colours: {
type: 'number'
},
colors: {
type: 'number'
},
dither: {
type: 'number'
},
force: {
type: 'boolean'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#webp
const WEBP_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
alphaQuality: {
type: 'number'
},
lossless: {
type: 'boolean'
},
nearLossless: {
type: 'boolean'
},
smartSubsample: {
type: 'boolean'
},
reductionEffort: {
type: 'number'
},
pageHeight: {
type: 'number'
},
loop: {
type: 'number'
},
delay: {
type: 'array',
items: {
type: 'number'
}
},
force: {
type: 'boolean'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#gif
const GIF_OUTPUT_SCHEMA = {
type: 'object',
properties: {
pageHeight: {
type: 'number'
},
loop: {
type: 'number'
},
delay: {
type: 'array',
items: {
type: 'number'
}
},
force: {
type: 'boolean'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#tiff
const TIFF_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
force: {
type: 'boolean'
},
compression: {
type: 'string'
},
predictor: {
type: 'string'
},
pyramid: {
type: 'boolean'
},
tile: {
type: 'boolean'
},
tileWidth: {
type: 'number'
},
tileHeight: {
type: 'number'
},
xres: {
type: 'number'
},
yres: {
type: 'number'
},
bitdepth: {
type: 'number'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#avif
const AVIF_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
lossless: {
type: 'boolean'
},
speed: {
type: 'number'
},
chromaSubsampling: {
type: 'string'
}
},
additionalProperties: true
}; // https://sharp.pixelplumbing.com/api-output#heif
const HEIF_OUTPUT_SCHEMA = {
type: 'object',
properties: {
quality: {
type: 'number'
},
compression: {
type: 'string'
},
lossless: {
type: 'boolean'
},
speed: {
type: 'number'
},
chromaSubsampling: {
type: 'string'
}
},
additionalProperties: true
};
const CONFIG_SCHEMA = {
type: 'object',
properties: {
// Fallback quality
quality: {
type: 'number'
},
jpeg: JPEG_OUTPUT_SCHEMA,
png: PNG_OUTPUT_SCHEMA,
webp: WEBP_OUTPUT_SCHEMA,
gif: GIF_OUTPUT_SCHEMA,
tiff: TIFF_OUTPUT_SCHEMA,
avif: AVIF_OUTPUT_SCHEMA,
heif: HEIF_OUTPUT_SCHEMA
},
additionalProperties: false
};
function validateConfig(data, filePath) {
_utils().validateSchema.diagnostic(CONFIG_SCHEMA, {
data,
filePath
}, '@parcel/transformer-image', 'Invalid sharp config');
}