aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/api/server.classes.ts
blob: b3d17495708d5efb4a08a85ff3a1b9a05ea24b4f (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import { define } from "../scripts/class-definitions";

function generate(name) {
  return define({
    name,
    proto: {
      fetch: {
        fn: "fetch",
        length: 1,
      },
    },
    values: ["callback"],
    klass: {},
    finalize: true,
    construct: true,
  });
}
export default [
  // generate(`HTTPServer`),
  // generate(`DebugModeHTTPServer`),
  // generate(`HTTPSServer`),
  // generate(`DebugModeHTTPSServer`),

  define({
    name: "ServerWebSocket",
    JSType: "0b11101110",
    proto: {
      send: {
        fn: "send",
        length: 2,
      },
      sendText: {
        fn: "sendText",
        length: 2,
        DOMJIT: {
          returns: "int",
          args: ["JSString", "bool"],
        },
      },
      sendBinary: {
        fn: "sendBinary",
        length: 2,
        DOMJIT: {
          returns: "int",
          args: ["JSUint8Array", "bool"],
        },
      },

      publishText: {
        fn: "publishText",
        length: 2,
        DOMJIT: {
          returns: "int",
          args: ["JSString", "JSString"],
        },
      },
      publishBinary: {
        fn: "publishBinary",
        length: 2,
        DOMJIT: {
          returns: "int",
          args: ["JSString", "JSUint8Array"],
        },
      },

      close: {
        fn: "close",
        length: 1,
      },
      cork: {
        fn: "cork",
        length: 1,
      },
      getBufferedAmount: {
        fn: "getBufferedAmount",
        length: 0,
      },
      binaryType: {
        getter: "getBinaryType",
        setter: "setBinaryType",
      },
      publish: {
        fn: "publish",
        length: 3,
      },
      data: {
        getter: "getData",
        cache: true,
        setter: "setData",
      },
      readyState: {
        getter: "getReadyState",
      },
      subscribe: {
        fn: "subscribe",
        length: 1,
      },
      unsubscribe: {
        fn: "unsubscribe",
        length: 1,
      },
      isSubscribed: {
        fn: "isSubscribed",
        length: 1,
      },

      // topics: {
      //   getter: "getTopics",
      // },

      remoteAddress: {
        getter: "getRemoteAddress",
        cache: true,
      },
    },
    finalize: true,
    construct: true,
    klass: {},
  }),
];