保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var LoaderLoadingError = require("./LoaderLoadingError");
 
module.exports = function loadLoader(loader, callback) {
    if(typeof System === "object" && typeof System.import === "function") {
        System.import(loader.path).catch(callback).then(function(module) {
            loader.normal = typeof module === "function" ? module : module.default;
            loader.pitch = module.pitch;
            loader.raw = module.raw;
            if(typeof loader.normal !== "function" && typeof loader.pitch !== "function") {
                return callback(new LoaderLoadingError(
                    "Module '" + loader.path + "' is not a loader (must have normal or pitch function)"
                ));
            }
            callback();
        });
    } else {
        try {
            var module = require(loader.path);
        } catch(e) {
            // it is possible for node to choke on a require if the FD descriptor
            // limit has been reached. give it a chance to recover.
            if(e instanceof Error && e.code === "EMFILE") {
                var retry = loadLoader.bind(null, loader, callback);
                if(typeof setImmediate === "function") {
                    // node >= 0.9.0
                    return setImmediate(retry);
                } else {
                    // node < 0.9.0
                    return process.nextTick(retry);
                }
            }
            return callback(e);
        }
        if(typeof module !== "function" && typeof module !== "object") {
            return callback(new LoaderLoadingError(
                "Module '" + loader.path + "' is not a loader (export function or es6 module)"
            ));
        }
        loader.normal = typeof module === "function" ? module : module.default;
        loader.pitch = module.pitch;
        loader.raw = module.raw;
        if(typeof loader.normal !== "function" && typeof loader.pitch !== "function") {
            return callback(new LoaderLoadingError(
                "Module '" + loader.path + "' is not a loader (must have normal or pitch function)"
            ));
        }
        callback();
    }
};