config.js 2.02 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2015 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */

/* globals define */
(function() {
    'use strict';

    // those are the libraries that are loaded before require.js and have an anonymous or no define.
    // note, that we can't use requirejs' shim, since it would still try to load the modules dynamically
    var libs =  {
        'backbone': {
            exports: 'Backbone'
        },
        'underscore': {
            exports: '_'
        },
        'jquery': {
            exports: 'jQuery'
        },
        'gsap': {
            test: function() {
                return window.com && window.com.greensock;
            },
            define: function(name) {
                define(name, function() {
                    var ret = window.com.greensock;
                    delete window.com.greensock;
                    return ret;
                });
            }
        }
    };

    function defaultDefine(name, exports) {
        define(name, function() {
            return window[exports];
        })
    }

    function defaultTest(exports) {
        return window[exports] !== null;
    }

    for (var name in libs) {
        if (!libs.hasOwnProperty(name)) {
            continue;
        }
        var exports = libs[name].exports;
        var test = libs[name].test || defaultTest;
        var fn = libs[name].define || defaultDefine;

        if (test(exports)) {
            fn(name, exports);
        }
    }

}());