UNPKG

@sanity/form-builder

Version:
37 lines (36 loc) 1.32 kB
"use strict"; 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))); }