JavaScript in Indigo is loaded using a module loader Require JS
By default and custom theme will look for a app file in indigo-theme-js/app in the skins repository
In indigo-theme-js the app file must be edited by it's respective file in appsrc
The grunt command is run in indigo-theme-js to 'uglify' the files in appsrc and write them to app
The contents of the app files should be wrapped in either the require() or define() methods
The custom themes use the main.js file located in UCLIndigoSkin which contains all the mappings for the libaries that are available for the apps to load