summaryrefslogtreecommitdiffhomepage
path: root/src/nodejs/unit-http/loader.js
blob: 849df3d13c8e5c7b6b5f42bdc25f68762952d833 (plain) (blame)
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
// can only be ran as part of a --require param on the node process
if (module.parent && module.parent.id === "internal/preload") {
    const { Module } = require("module")

    if (!Module.prototype.require.__unit_loader) {
        const http = require("./http")
        const websocket = require("./websocket")

        const original = Module.prototype.require;

        Module.prototype.require = function (id) {
            switch(id) {
                case "http":
                case "node:http":
                case "unit-http":
                    return http

                case "websocket":
                case "node:websocket":
                case "unit-http/websocket":
                    return websocket
            }

            return original.apply(this, arguments);
        }

        Module.prototype.require.__unit_loader = true;
    }
}