lib/resolver.js
function resolve(options) {
    options = extend({
        root: '.',
        fileProvider: defaultFileProvider
    }, options);

    var context = {
        options: options,
        parser: new Parser({
            excludeClasses: options.excludeClasses,
            skipParse: options.skipParse,
            extraDependencies: options.extraDependencies,
            parserOptions: options.parserOptions
        }),
        classNameByAlias: {},             // maps alias className (String) to its real className (String)
        providedFileInfoByClassName: {},  // maps className (String) to fileInfo (ExtClass) for provided files
        fileInfoByPath: {},               // maps filePath (String) to fileInfo (ExtClass)  for files to include
        fileInfoByClassName: {},          // maps className (String) to fileInfo (ExtClass) for files to include
        fileInfos: []
    };

    var providedOption = options.provided;
    if (providedOption) {
        toArray(providedOption).forEach(function(path) {
            markProvided(path, context)
        });
    }

    toArray(options.entry).forEach(function(path) {
        collectDependencies(path, context)
    });

    return orderFileInfo(context);
}
function resolve(options) {
    options = extend({
        root: '.',
        fileProvider: defaultFileProvider
    }, options);

    var context = {
        options: options,
        parser: new Parser({
            excludeClasses: options.excludeClasses,
            skipParse: options.skipParse,
            extraDependencies: options.extraDependencies,
            parserOptions: options.parserOptions
        }),
        classNameByAlias: {},             // maps alias className (String) to its real className (String)
        providedFileInfoByClassName: {},  // maps className (String) to fileInfo (ExtClass) for provided files
        fileInfoByPath: {},               // maps filePath (String) to fileInfo (ExtClass)  for files to include
        fileInfoByClassName: {},          // maps className (String) to fileInfo (ExtClass) for files to include
        fileInfos: []
    };

    var providedOption = options.provided;
    if (providedOption) {
        toArray(providedOption).forEach(function(path) {
            markProvided(path, context)
        });
    }

    toArray(options.entry).forEach(function(path) {
        collectDependencies(path, context)
    });

    return orderFileInfo(context);
}
function resolve ( options ) { options = extend ( { root : '.' , fileProvider : defaultFileProvider } , options ) ; var context = { options : options , parser : new Parser ( { excludeClasses : options . excludeClasses , skipParse : options . skipParse , extraDependencies : options . extraDependencies , parserOptions : options . parserOptions } ) , classNameByAlias : { } , // maps alias className (String) to its real className (String) providedFileInfoByClassName : { } , // maps className (String) to fileInfo (ExtClass) for provided files fileInfoByPath : { } , // maps filePath (String) to fileInfo (ExtClass)  for files to include fileInfoByClassName : { } , // maps className (String) to fileInfo (ExtClass) for files to include fileInfos : [ ] } ; var providedOption = options . provided ; if ( providedOption ) { toArray ( providedOption ) . forEach ( function ( path ) { markProvided ( path , context ) } ) ; } toArray ( options . entry ) . forEach ( function ( path ) { collectDependencies ( path , context ) } ) ; return orderFileInfo ( context ) ; }
Resolves and sorts all dependencies of an Ext JS project.

@param options Example:
{
// Log verbose? Optional, default is false.
verbose: false,

// Source file encoding. Default: 'utf8'
encoding: 'utf8',

// The root of your project. All paths are relative to this. Default: '.'
root: 'path/to/project',

// Add Ext JS scripts you load independently in your html file.
provided: [ 'extjs/ext-dev.js' ],

// Add all entry points to include with dependencies
entry: [ 'app.js' ],

resolve: {
// The source folders for each class name prefix. Optional.
path: {
'Ext':   'ext/src',
'myapp': 'app'
},

// Alternative class names. Optional.
alias: {
'Ext.Layer': 'Ext.dom.Layer'
}
},

// Optimize source? (removes some statements like `require`) Optional. Default is false.
optimizeSource: false,

// Extra dependencies. Optional.
extraDependencies: {
requires: {
'MyClass': 'MyDependency'
},
uses: {
'MyClass': 'MyDependency'
}
}

// Classes to exclude. Optional.
excludeClasses: ['Ext.*', 'MyApp.some.Class'],

// Files to exclude (excludes also dependencies). Optional.
skipParse: ['app/ux/SkipMe.js'],

// The file provider to use. Optional.
fileProvider: {
// Returns an object representing the content of a file.
createFileContent: function(rootPath, filePath, encoding) { ... },

// Returns the content of a file as string.
getContentAsString: function(content) { ... }
}
}
@return The dependencies as array of ExtClass in correct loading order
Resolves and sorts all dependencies of an Ext JS project .