biketrack-app/node_modules/@ethersphere/bee-js/dist/cjs/utils/file.js

50 lines
1.9 KiB
JavaScript

"use strict";
/**
* Compatibility functions for working with File API objects
*
* https://developer.mozilla.org/en-US/docs/Web/API/File
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fileArrayBuffer = exports.isFile = void 0;
function isFile(file) {
// browser
if (typeof File === 'function') {
return file instanceof File;
}
// node.js
const f = file;
return (typeof f === 'object' &&
typeof f.name === 'string' &&
(typeof f.stream === 'function' || typeof f.arrayBuffer === 'function'));
}
exports.isFile = isFile;
/**
* Compatibility helper for browsers where the `arrayBuffer function is
* missing from `File` objects.
*
* @param file A File object
*/
function fileArrayBuffer(file) {
return __awaiter(this, void 0, void 0, function* () {
if (file.arrayBuffer) {
return file.arrayBuffer();
}
// workaround for Safari where arrayBuffer is not supported on Files
return new Promise(resolve => {
const fr = new FileReader();
fr.onload = () => resolve(fr.result);
fr.readAsArrayBuffer(file);
});
});
}
exports.fileArrayBuffer = fileArrayBuffer;