Better validation and test coverage for background colours

This commit is contained in:
Lovell Fuller
2019-08-16 20:37:17 +01:00
parent e4333ff6b0
commit da4e05c118
6 changed files with 33 additions and 16 deletions

View File

@@ -83,18 +83,22 @@ function toColorspace (colorspace) {
* Update a colour attribute of the this.options Object.
* @private
* @param {String} key
* @param {String|Object} val
* @throws {Error} Invalid key
* @param {String|Object} value
* @throws {Error} Invalid value
*/
function _setColourOption (key, val) {
if (is.object(val) || is.string(val)) {
const colour = color(val);
this.options[key] = [
colour.red(),
colour.green(),
colour.blue(),
Math.round(colour.alpha() * 255)
];
function _setBackgroundColourOption (key, value) {
if (is.defined(value)) {
if (is.object(value) || is.string(value)) {
const colour = color(value);
this.options[key] = [
colour.red(),
colour.green(),
colour.blue(),
Math.round(colour.alpha() * 255)
];
} else {
throw is.invalidParameterError('background', 'object or string', value);
}
}
}
@@ -111,7 +115,7 @@ module.exports = function (Sharp) {
toColourspace,
toColorspace,
// Private
_setColourOption
_setBackgroundColourOption
});
// Class attributes
Sharp.colourspace = colourspace;