@sanity/form-builder
Version:
Sanity form builder
37 lines (36 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = rotateImage;
var _rxjs = require("rxjs");
var _operators = require("rxjs/operators");
var _orient = _interopRequireDefault(require("./orient"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// The eslint import plugin doesn't work well with opaque types
// https://github.com/benmosher/eslint-plugin-import/issues/921
// https://github.com/gajus/eslint-plugin-flowtype/issues/260
// eslint-disable-next-line import/named
function loadImage(url) {
/* global window */
return new _rxjs.Observable(observer => {
var image = new window.Image();
//console.time("read image");
image.onerror = () => {
observer.error(new Error("Could not load image from url \"".concat(url, "\". Image may be of an unsupported format")));
};
image.onload = () => {
//console.timeEnd("read image");
observer.next(image);
observer.complete();
};
image.src = url;
return () => {
// todo: cancel loading (if possible?)
};
});
}
function rotateImage(file, orientation) {
/* global window */
return loadImage(window.URL.createObjectURL(file)).pipe((0, _operators.mergeMap)(image => (0, _orient.default)(image, orientation)));
}