UNPKG

summernote-webpack

Version:
65 lines (60 loc) 1.52 kB
define(function () { /** * @class core.async * * Async functions which returns `Promise` * * @singleton * @alternateClassName async */ var async = (function () { /** * @method readFileAsDataURL * * read contents of file as representing URL * * @param {File} file * @return {Promise} - then: dataUrl */ var readFileAsDataURL = function (file) { return $.Deferred(function (deferred) { $.extend(new FileReader(), { onload: function (e) { var dataURL = e.target.result; deferred.resolve(dataURL); }, onerror: function () { deferred.reject(this); } }).readAsDataURL(file); }).promise(); }; /** * @method createImage * * create `<image>` from url string * * @param {String} url * @return {Promise} - then: $image */ var createImage = function (url) { return $.Deferred(function (deferred) { var $img = $('<img>'); $img.one('load', function () { $img.off('error abort'); deferred.resolve($img); }).one('error abort', function () { $img.off('load').detach(); deferred.reject($img); }).css({ display: 'none' }).appendTo(document.body).attr('src', url); }).promise(); }; return { readFileAsDataURL: readFileAsDataURL, createImage: createImage }; })(); return async; });