html-dir-content
Version:
(recursively) iterate directory entries in the browser (html5 File System API)
4 lines (3 loc) • 2.16 kB
JavaScript
/* html-dir-content v0.3.2 (c) 2020, Yoav Niran, https://github.com/yoavniran/html-dir-content.git/blob/master/LICENSE */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).htmlDirContent={})}(this,function(e){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){var t;return!0===e[r]?e:(n(t={},r,!0),n(t,"recursive",!0===e||!!e.recursive),n(t,"withFullPath",!!e.withFullPath),n(t,"bail",e.bail&&0<e.bail?e.bail:1e3),t)}function a(e){return t.apply([],e)}function l(e,t,n){var r,i;return e.isDirectory?t.recursive?u(e,t,n+1):Promise.resolve([]):(r=e,i=t,new Promise(function(t,e){r.file?r.file(function(e){return t(function(e,t,n){var r,i;return(2<arguments.length&&void 0!==n?n:{}).withFullPath?(r=t,(i=new File([e],r,{type:e.type,lastModified:e.lastModified})).hdcFullPath=r,i):e}(e,r.fullPath,i))},e):t(null)}).catch(function(){return null}).then(function(e){return e?[e]:[]}))}function o(e,t){var n,r=1<arguments.length&&void 0!==t?t:{};return u((n=e).getAsEntry?n.getAsEntry():n.webkitGetAsEntry?n.webkitGetAsEntry():null,i(r))}var r="opts_init",t=Array.prototype.concat,u=function(i,o,e){var u=2<arguments.length&&void 0!==e?e:0;return i&&u<o.bail&&i.isDirectory&&i.createReader?new Promise(function(t){function n(){Promise.all(r.map(function(e){return l(e,o,u)})).then(function(e){return t(a(e))})}var r=[],e=i.createReader();!function t(){e.readEntries(function(e){e.length?(r=r.concat(e),t()):n()},n)}()}):Promise.resolve([])};e.getFiles=o,e.getFilesFromDragEvent=function(e,t){var r=i(1<arguments.length&&void 0!==t?t:{});return new Promise(function(t){e.dataTransfer.items?Promise.all(a(e.dataTransfer.items).filter(function(e){return"file"===e.kind}).map(function(e){return o(n=e,r).then(function(e){var t;return e.length||(e=(t=n.getAsFile())?[t]:e),e});var n})).then(function(e){return t(a(e))}):e.dataTransfer.files?t(a(e.dataTransfer.files)):t([])})},Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=html-dir-content.min.js.map