Browse Source

Add a fetch polyfill with Promise

pull/261/head
Artur Arseniev 9 years ago
parent
commit
b36cb112af
  1. 4
      dist/grapes.min.js
  2. 3
      package.json
  3. 25
      src/utils/fetch.js
  4. 4
      yarn.lock

4
dist/grapes.min.js

File diff suppressed because one or more lines are too long

3
package.json

@ -1,7 +1,7 @@
{
"name": "grapesjs",
"description": "Free and Open Source Web Builder Framework",
"version": "0.9.24",
"version": "0.9.25",
"author": "Artur Arseniev",
"license": "BSD-3-Clause",
"homepage": "http://grapesjs.com",
@ -18,6 +18,7 @@
"font-awesome": "^4.7.0",
"jquery": "^3.1.1",
"keymaster": "^1.6.2",
"promise-polyfill": "^6.0.2",
"spectrum-colorpicker": "^1.8.0",
"underscore": "^1.8.3"
},

25
src/utils/fetch.js

@ -0,0 +1,25 @@
import Promise from 'promise-polyfill';
window.Promise = window.Promise || Promise;
export default typeof fetch == 'function' ? fetch.bind() : (url, options) => {
return new Promise((res, rej) => {
const req = new XMLHttpRequest();
req.open(options.method || 'get', url);
req.withCredentials = options.credentials == 'include';
for (let k in options.headers || {}) {
req.setRequestHeader(k, options.headers[k]);
}
req.onload = e => res(e.target.responseText, req);
req.onerror = rej;
// Actually, fetch doesn't support onProgress feature
if (req.upload && options.onProgress) {
req.upload.onprogress = options.onProgress;
}
req.send(options.body);
});
}

4
yarn.lock

@ -3985,6 +3985,10 @@ progress@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
promise-polyfill@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.0.2.tgz#d9c86d3dc4dc2df9016e88946defd69b49b41162"
protocols@^1.1.0, protocols@^1.4.0:
version "1.4.3"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.3.tgz#635b1c0785f0b389e8a012df1b1afffda9608b76"

Loading…
Cancel
Save