createBlob.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. /**
  4. * Abstracts constructing a Blob object, so it also works in older
  5. * browsers that don't support the native Blob constructor. (i.e.
  6. * old QtWebKit versions, at least).
  7. * Abstracts constructing a Blob object, so it also works in older
  8. * browsers that don't support the native Blob constructor. (i.e.
  9. * old QtWebKit versions, at least).
  10. *
  11. * @param parts
  12. * @param properties
  13. */
  14. function createBlob(parts, properties) {
  15. /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */
  16. parts = parts || [];
  17. properties = properties || {};
  18. try {
  19. return new Blob(parts, properties);
  20. }
  21. catch (e) {
  22. if (e.name !== 'TypeError') {
  23. throw e;
  24. }
  25. //tslint:disable-next-line:variable-name
  26. var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder
  27. : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder
  28. : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder
  29. : WebKitBlobBuilder;
  30. var builder = new Builder();
  31. for (var i = 0; i < parts.length; i += 1) {
  32. builder.append(parts[i]);
  33. }
  34. return builder.getBlob(properties.type);
  35. }
  36. }
  37. exports.createBlob = createBlob;
  38. //# sourceMappingURL=createBlob.js.map