MCPcopy Index your code
hub / github.com/oakserver/oak / respond

Method respond

http_server_node.ts:116–142  ·  view source on GitHub ↗
(response: Response)

Source from the content-addressed store, hash-verified

114 }
115
116 async respond(response: Response) {
117 if (this.#responded) {
118 throw new Error("Requested already responded to.");
119 }
120 for (const [key, value] of response.headers) {
121 this.#response.setHeader(key, value);
122 }
123 this.#response.writeHead(response.status, response.statusText);
124 if (response.body) {
125 for await (const chunk of response.body) {
126 const { promise, resolve, reject } = createPromiseWithResolvers<void>();
127 // deno-lint-ignore no-explicit-any
128 this.#response.write(chunk, (err: any) => {
129 if (err) {
130 reject(err);
131 } else {
132 resolve();
133 }
134 });
135 await promise;
136 }
137 }
138 const { promise, resolve } = createPromiseWithResolvers<void>();
139 this.#response.end(resolve);
140 await promise;
141 this.#responded = true;
142 }
143}
144
145export class Server implements OakServer<NodeRequest> {

Callers 1

fnFunction · 0.95

Calls 1

Tested by 1

fnFunction · 0.76