MCPcopy Index your code
hub / github.com/mailru/FileAPI / _readEntryAsFiles

Function _readEntryAsFiles

lib/FileAPI.core.js:1560–1629  ·  view source on GitHub ↗
(entry, callback)

Source from the content-addressed store, hash-verified

1558
1559
1560 function _readEntryAsFiles(entry, callback){
1561 if( !entry ){
1562 // error
1563 var err = new Error('invalid entry');
1564 entry = new Object(entry);
1565 entry.error = err;
1566 callback(err.message, [], [entry]);
1567 }
1568 else if( entry.isFile ){
1569 // Read as file
1570 entry.file(function (file){
1571 // success
1572 file.fullPath = entry.fullPath;
1573 callback(false, [file], [file]);
1574 }, function (err){
1575 // error
1576 entry.error = err;
1577 callback('FileError.code: ' + err.code, [], [entry]);
1578 });
1579 }
1580 else if( entry.isDirectory ){
1581 var
1582 reader = entry.createReader()
1583 , firstAttempt = true
1584 , files = []
1585 , all = [entry]
1586 ;
1587
1588 var onerror = function (err){
1589 // error
1590 entry.error = err;
1591 callback('DirectoryError.code: ' + err.code, files, all);
1592 };
1593 var ondone = function ondone(entries){
1594 if( firstAttempt ){
1595 firstAttempt = false;
1596 if( !entries.length ){
1597 entry.error = new Error('directory is empty');
1598 }
1599 }
1600
1601 // success
1602 if( entries.length ){
1603 api.afor(entries, function (next, entry){
1604 _readEntryAsFiles(entry, function (err, entryFiles, allEntries){
1605 if( !err ){
1606 files = files.concat(entryFiles);
1607 }
1608 all = all.concat(allEntries);
1609
1610 if( next ){
1611 next();
1612 }
1613 else {
1614 reader.readEntries(ondone, onerror);
1615 }
1616 });
1617 });

Callers 2

FileAPI.core.jsFile · 0.85
ondoneFunction · 0.85

Calls 1

_getAsEntryFunction · 0.85

Tested by

no test coverage detected