You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
919 B
JavaScript
31 lines
919 B
JavaScript
3 years ago
|
"use strict";
|
||
|
|
||
|
const Promise = require("bluebird");
|
||
|
const loadImageFile = require("../load-image-file");
|
||
|
const elementToThumbnail = require("../element-to-thumbnail");
|
||
|
|
||
|
const { validateOptions } = require("@validatem/core");
|
||
|
const required = require("@validatem/required");
|
||
|
const isInteger = require("@validatem/is-integer");
|
||
|
const isString = require("@validatem/is-string");
|
||
|
|
||
|
module.exports = function thumbnailImageBrowser(_options) {
|
||
|
let { file, width, height, mimetype } = validateOptions(arguments, {
|
||
|
file: [ required ], // FIXME
|
||
|
maximumWidth: [ required, isInteger ], // FIXME: positive
|
||
|
maximumHeight: [ required, isInteger ], // FIXME: positive
|
||
|
mimetype: [ required, isString ]
|
||
|
});
|
||
|
|
||
|
return Promise.try(() => {
|
||
|
return loadImageFile(file);
|
||
|
}).then((element) => {
|
||
|
return elementToThumbnail({
|
||
|
element: element,
|
||
|
maximumWidth: width,
|
||
|
maximumHeight: height,
|
||
|
mimetype: mimetype
|
||
|
});
|
||
|
});
|
||
|
};
|