src/cm/media/js/lib/yui/yui3-3.15.0/build/get-nodejs/get-nodejs-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('get', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
    * NodeJS specific Get module used to load remote resources.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
    * It contains the same signature as the default Get module so there is no code change needed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
    * @module get-nodejs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
    * @class GetNodeJS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
    var Module = require('module'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
        path = require('path'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
        fs = require('fs'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
        request = require('request'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
        end = function(cb, msg, result) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
            //Y.log('Get end: ' + cb.onEnd);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
            if (Y.Lang.isFunction(cb.onEnd)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
                cb.onEnd.call(Y, msg, result);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
        }, pass = function(cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
            //Y.log('Get pass: ' + cb.onSuccess);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
            if (Y.Lang.isFunction(cb.onSuccess)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
                cb.onSuccess.call(Y, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
            end(cb, 'success', 'success');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
        }, fail = function(cb, er) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
            //Y.log('Get fail: ' + er);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
            er.errors = [er];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
            if (Y.Lang.isFunction(cb.onFailure)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
                cb.onFailure.call(Y, er, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
            end(cb, er, 'fail');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
    Y.Get = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    //Setup the default config base path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    Y.config.base = path.join(__dirname, '../');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    YUI.require = require;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    YUI.process = process;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    * Takes the raw JS files and wraps them to be executed in the YUI context so they can be loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
    * into the YUI object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    * @method _exec
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
    * @param {String} data The JS to execute
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    * @param {String} url The path to the file that was parsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
    * @param {Function} cb The callback to execute when this is completed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    * @param {Error} cb.err=null Error object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    * @param {String} cb.url The URL that was just parsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    Y.Get._exec = function(data, url, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        if (data.charCodeAt(0) === 0xFEFF) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            data = data.slice(1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
        var mod = new Module(url, module);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        mod.filename = url;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
        mod.paths = Module._nodeModulePaths(path.dirname(url));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
        if (typeof YUI._getLoadHook === 'function') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
            data = YUI._getLoadHook(data, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
        mod._compile('module.exports = function (YUI) {' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            'return (function () {'+ data + '\n;return YUI;}).apply(global);' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
        '};', url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
        /*global YUI:true */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
        YUI = mod.exports(YUI);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
        mod.loaded = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
        cb(null, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
    * Fetches the content from a remote URL or a file from disc and passes the content
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    * off to `_exec` for parsing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    * @method _include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
    * @param {String} url The URL/File path to fetch the content from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
    * @param {Function} cb The callback to fire once the content has been executed via `_exec`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
    Y.Get._include = function (url, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
        var cfg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
            mod,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
            self = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
        if (url.match(/^https?:\/\//)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
            cfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
                url: url,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
                timeout: self.timeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
            request(cfg, function (err, response, body) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
                if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
                    Y.log(err, 'error', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
                    cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
                    Y.Get._exec(body, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
            try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
                // Try to resolve paths relative to the module that required yui.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
                url = Module._findPath(url, Module._resolveLookupPaths(url, module.parent.parent)[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
                if (Y.config.useSync) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
                    //Needs to be in useSync
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
                    mod = fs.readFileSync(url,'utf8');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
                    fs.readFile(url, 'utf8', function (err, mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
                        if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
                            cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
                            Y.Get._exec(mod, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
                    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
                    return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
            } catch (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
                cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
                return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
            Y.Get._exec(mod, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
    * Override for Get.script for loading local or remote YUI modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
    * @method js
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
    * @param {Array|String} s The URL's to load into this context
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
    * @param {Object} options Transaction options
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
    Y.Get.js = function(s, options) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
        var urls = Y.Array(s), url, i, l = urls.length, c= 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
            check = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
                if (c === l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
                    pass(options);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
        /*jshint loopfunc: true */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
        for (i=0; i<l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
            url = urls[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
            if (Y.Lang.isObject(url)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
                url = url.url;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
            url = url.replace(/'/g, '%27');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
            Y.log('URL: ' + url, 'info', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
            Y.Get._include(url, function(err, url) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
                if (!Y.config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
                    Y.config = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
                        debug: true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
                    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
                if (options.onProgress) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
                    options.onProgress.call(options.context || Y, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
                Y.log('After Load: ' + url, 'info', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
                if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
                    fail(options, err);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
                    Y.log('----------------------------------------------------------', 'error', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
                    Y.log(err, 'error', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
                    Y.log('----------------------------------------------------------', 'error', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
                    c++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
                    check();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
        //Keeping Signature in the browser.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
        return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
            execute: function() {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
    * Alias for `Y.Get.js`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
    * @method script
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
    Y.Get.script = Y.Get.js;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
    //Place holder for SS Dom access
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
    Y.Get.css = function(s, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
        Y.log('Y.Get.css is not supported, just reporting that it has loaded but not fetching.', 'warn', 'get');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
        pass(cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
}, '@VERSION@');