nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

index.js (1337B)


      1 import {arrayBufferToString} from '~/lib/binary-strings';
      2 
      3 const selectFiles = (() => {
      4     let fileInput;
      5     return function selectFiles(multiple = false) {
      6         if (fileInput) {
      7             document.body.removeChild(fileInput);
      8         }
      9         fileInput = document.createElement('input');
     10         document.body.appendChild(fileInput);
     11         fileInput.type = 'file';
     12         fileInput.multiple = Boolean(multiple);
     13         fileInput.style.display = 'none';
     14 
     15         const result = new Promise(function(resolve) {
     16                 fileInput.addEventListener('change', function() {
     17                         resolve(fileInput.files);
     18                     }
     19                 );
     20             }
     21         );
     22         fileInput.click();
     23         return result;
     24     };
     25 })();
     26 
     27 function readFile(file) {
     28     return new Promise(function(resolve) {
     29             var reader = new FileReader();
     30             reader.onload = function(e) {
     31                 resolve({
     32                         data: arrayBufferToString(e.target.result),
     33                         filename: file.name
     34                     }
     35                 );
     36             };
     37             reader.readAsArrayBuffer(file);
     38         }
     39     );
     40 }
     41 
     42 function readFiles(files) {
     43     files = Array.prototype.slice.apply(files);
     44     return Promise.all(files.map(readFile));
     45 }
     46 
     47 export {selectFiles, readFiles};