Advertisement
Vadorequest

loader-index.ts

Nov 30th, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///<reference path='../def/lib.d.ts' />
  2. /// <reference path='../def/require.d.ts' />
  3. /// <reference path='InitIndex.ts' />
  4.  
  5. /**
  6.  * The variables declared here MUST be defined before, typically just before the call to this file!
  7.  */
  8. declare var config;
  9.  
  10. // Pre-initialization
  11. var _languages = {};// Contains languages texts.
  12. var _TARGET = 'browser';// Useful for shared files which need to know the target.
  13.  
  14.  
  15. /**
  16.  * paths    List of the files to load. (Cannot contains references TS classes)
  17.  *              key: New reference name of the file.
  18.  *              path: Relative path to /public/js/loader/ of the file.
  19.  *
  20.  * shim     Config about the libraries (dependencies and more).
  21.  *          See http://requirejs.org/docs/api.html#config-shim
  22.  */
  23. require.config({
  24.     baseUrl: 'js/loader',
  25.     callback: function(){
  26.         /*
  27.          A function to execute after deps have been loaded. Useful when require is defined as a config object before require.js is loaded,
  28.          and you want to specify a function to require after the configuration's deps array has been loaded.
  29.          */
  30.         console.debug('Dependencies loaded.');
  31.     },
  32.     waitSeconds: 7,// Timeout 7s to load a script.
  33.     paths: {
  34.         /*
  35.          ******** Load libraries (1) ********
  36.          */
  37.  
  38.         // Lib - requireJs (addons: http://requirejs.org/docs/download.html#domReady)
  39.         'domReady': '../generated/lib/domReady.min',
  40.         'text': '../generated/lib/text.min',
  41.  
  42.         /*
  43.          ******** Load languages ********
  44.          */
  45.         'languages': '../../languages/languages',
  46.         'defaultLanguage': '../../languages/'+config.defaultLanguage,
  47.  
  48.         /*
  49.          ******** Load shared source code ********
  50.          */
  51.         'Lang': '../generated/shared/Lang.min',
  52.         'Message': '../generated/shared/Message.min',
  53.         'ValidatorMessage': '../generated/shared/ValidatorMessage.min',
  54.  
  55.         /*
  56.          ******** Load libraries (2) ********
  57.          */
  58.  
  59.         // Lib - jQuery
  60.         '$': '../generated/lib/jquery-1.10.2.min',
  61.         'jqueryUiCore': '../generated/lib/jquery.ui.core.min',
  62.         'jqueryUiEffect': '../generated/lib/jquery.ui.effect.min',
  63.  
  64.         // Lib - Javascript extends
  65.         'class': '../generated/lib/class.min',
  66.  
  67.         // Lib - Pixi
  68.         'pixi': '../generated/lib/pixi.min',
  69.         'pixiExtends': '../generated/lib/pixi_extends.min',
  70.  
  71.         // Lib - Socket
  72.         'socketIo': '../generated/lib/socket.io.min',
  73.  
  74.         // Lib - Pomelo
  75.         'pomeloclient': '../generated/lib/pomeloclient.min',
  76.  
  77.         // Lib - Path finder
  78.         'aStar': '../generated/lib/AStar.min',
  79.  
  80.         /*
  81.          ******** Load other scripts ********
  82.          */
  83.         'js': '../generated/js.min'
  84.     },
  85.     shim: {
  86.         'languages': {
  87.             exports: 'languages'
  88.         },
  89.         'defaultLanguage': {
  90.             deps: ["languages"]
  91.         },
  92.         'Lang': {
  93.             deps: ["languages"]
  94.         },
  95.         'Message': {
  96.             deps: ["languages", "Lang"]
  97.         },
  98.         'ValidatorMessage': {
  99.             deps: ["languages", "Lang", "Message"]
  100.         },
  101.         '$': {
  102.             exports: '$'
  103.         },
  104.         'jqueryUiCore': {
  105.             deps: ["$"],
  106.             exports: '$'
  107.         },
  108.         'jqueryUiEffect': {
  109.             deps: ["$"],
  110.             exports: "$"
  111.         }
  112.         ,
  113.         'pixi': {
  114.             exports: 'PIXI'
  115.         },
  116.         'pixiExtends': {
  117.             deps: ["$", "pixi"]
  118.         },
  119.         'pomeloclient': {
  120.             deps: ["socketIo"]
  121.         },
  122.         'js': {
  123.             deps: ["languages", "Lang", "pixi", "pixiExtends", "pomeloclient"]
  124.         }
  125.     }
  126. });
  127.  
  128.  
  129. /**
  130.  * [] Array of name that should be the same than those defined in the config.paths. Exception for the TS classes with reference in this file.
  131.  */
  132. require(
  133.     [
  134.         'languages', 'defaultLanguage',
  135.         'Lang', 'Message', 'ValidatorMessage',
  136.         'InitIndex',
  137.         'domReady', 'text',
  138.         '$', 'jqueryUiCore', 'jqueryUiEffect',
  139.         'class',
  140.         'pixi', 'pixiExtends',
  141.         'socketIo', 'pomeloclient',
  142.         'aStar',
  143.         'js'
  144.     ],
  145.     (
  146.         _languages, _defaultLanguage,
  147.         _lang, _message, _validatorMessage,
  148.         _init,
  149.         _domReady, _text,
  150.          $, jqueryUiCore, jqueryUiEffect,
  151.          _class,
  152.          _pixi, pixiExtends,
  153.          _socketIo, _pomeloclient,
  154.          _aStar,
  155.          _js
  156.     )
  157.     // All the previous variables will be accessible here, all these scripts are loaded!
  158.     => {
  159.         console.debug('All libraries loaded. Running initialization process...');
  160.  
  161.         // Make shared source classes public, to help.
  162.         _exports([
  163.             {
  164.                 o: _lang.Lang,
  165.                 n: 'Lang'
  166.             },
  167.             {
  168.                 o: _message.Message,
  169.                 n: 'Message'
  170.             },
  171.             {
  172.                 o: _validatorMessage.ValidatorMessage,
  173.                 n: 'ValidatorMessage'
  174.             }
  175.         ]);
  176.  
  177.  
  178.         /**
  179.          * Export an array of object to made them public on the browser.
  180.          * @param   objects - Array of objects. Class of function basically.
  181.          * @private
  182.          */
  183.         function _exports(objects){
  184.             for(var i in objects){
  185.                 _export(objects[i].o, objects[i].n);
  186.             }
  187.         }
  188.  
  189.         /**
  190.          *Export an object to the browser to make it public.
  191.          * @param o     Object to export.
  192.          * @param name  Customise the name. Optional.
  193.          * @private
  194.          */
  195.         function _export(o: any, name: any = ''){
  196.             if(!name){
  197.                 name = o.name;
  198.             }
  199.             window[name] = o;
  200.         }
  201.  
  202.         // Pre-initialization done.
  203.         console.debug('Pre-Initialization done with success.');
  204.  
  205.  
  206.         // Initialization.
  207.         var init = new _init.InitIndex();
  208.     }
  209. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement