var LoaderUtils = {
|
|
createFilesMap: function ( files ) {
|
|
var map = {};
|
|
for ( var i = 0; i < files.length; i ++ ) {
|
|
var file = files[ i ];
|
map[ file.name ] = file;
|
|
}
|
|
return map;
|
|
},
|
|
getFilesFromItemList: function ( items, onDone ) {
|
|
// TOFIX: setURLModifier() breaks when the file being loaded is not in root
|
|
var itemsCount = 0;
|
var itemsTotal = 0;
|
|
var files = [];
|
var filesMap = {};
|
|
function onEntryHandled() {
|
|
itemsCount ++;
|
|
if ( itemsCount === itemsTotal ) {
|
|
onDone( files, filesMap );
|
|
}
|
|
}
|
|
function handleEntry( entry ) {
|
|
if ( entry.isDirectory ) {
|
|
var reader = entry.createReader();
|
reader.readEntries( function ( entries ) {
|
|
for ( var i = 0; i < entries.length; i ++ ) {
|
|
handleEntry( entries[ i ] );
|
|
}
|
|
onEntryHandled();
|
|
} );
|
|
} else if ( entry.isFile ) {
|
|
entry.file( function ( file ) {
|
|
files.push( file );
|
|
filesMap[ entry.fullPath.substr( 1 ) ] = file;
|
onEntryHandled();
|
|
} );
|
|
}
|
|
itemsTotal ++;
|
|
}
|
|
for ( var i = 0; i < items.length; i ++ ) {
|
|
var item = items[ i ];
|
|
if ( item.kind === 'file' ) {
|
|
handleEntry( item.webkitGetAsEntry() );
|
|
}
|
|
}
|
|
}
|
|
};
|
|
export { LoaderUtils };
|