@easel-sh/cli 0.1.0-alpha.13 → 0.1.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-wrapper.d.ts","sourceRoot":"","sources":["../src/handler-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"handler-wrapper.d.ts","sourceRoot":"","sources":["../src/handler-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA8UlE"}
|
package/dist/handler-wrapper.js
CHANGED
|
@@ -55,7 +55,16 @@ async function writeFetchResponseToStream(responseStream, response) {
|
|
|
55
55
|
|
|
56
56
|
if (response.body != null && typeof response.body.getReader === "function") {
|
|
57
57
|
const nodeReadable = Readable.fromWeb(response.body);
|
|
58
|
-
|
|
58
|
+
var streamStartMs = Date.now();
|
|
59
|
+
console.log("[handler] stream body pipeline starting at " + streamStartMs + " ms");
|
|
60
|
+
try {
|
|
61
|
+
await pipeline(nodeReadable, responseStream);
|
|
62
|
+
var streamEndMs = Date.now();
|
|
63
|
+
console.log("[handler] stream body pipeline finished at " + streamEndMs + " ms (duration " + (streamEndMs - streamStartMs) + " ms)");
|
|
64
|
+
} catch (pipeErr) {
|
|
65
|
+
console.error("[handler] stream body pipeline error at " + Date.now() + " ms:", pipeErr instanceof Error ? pipeErr.message : String(pipeErr));
|
|
66
|
+
throw pipeErr;
|
|
67
|
+
}
|
|
59
68
|
} else {
|
|
60
69
|
const body = await response.text();
|
|
61
70
|
responseStream.write(body);
|
|
@@ -133,7 +142,8 @@ async function runStreamingHandler(event, responseStream, context) {
|
|
|
133
142
|
);
|
|
134
143
|
}
|
|
135
144
|
|
|
136
|
-
var result = await runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParams, bodyBuffer);
|
|
145
|
+
var result = await runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParams, bodyBuffer, responseStream);
|
|
146
|
+
if (result.streaming) return;
|
|
137
147
|
writeStreamFirstLine(responseStream, result.statusCode || 200, result.headers);
|
|
138
148
|
responseStream.write(result.body || "");
|
|
139
149
|
responseStream.end();
|
|
@@ -197,9 +207,12 @@ async function runBufferedHandler(event, context) {
|
|
|
197
207
|
return runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParams, bodyBuffer);
|
|
198
208
|
}
|
|
199
209
|
|
|
200
|
-
function runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParams, bodyBuffer) {
|
|
210
|
+
function runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParams, bodyBuffer, responseStream) {
|
|
201
211
|
return new Promise(function (resolve, reject) {
|
|
202
212
|
var _bodyParsed, cookiesObj;
|
|
213
|
+
var firstLineSent = false;
|
|
214
|
+
var streamingUsed = false;
|
|
215
|
+
var ended = false;
|
|
203
216
|
function getParsedBody() {
|
|
204
217
|
if (_bodyParsed !== undefined) return _bodyParsed;
|
|
205
218
|
if (!bodyBuffer || bodyBuffer.length === 0) return undefined;
|
|
@@ -234,12 +247,23 @@ function runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParam
|
|
|
234
247
|
Object.defineProperty(req, "body", { get: getParsedBody, set: function (v) { _bodyParsed = v; }, enumerable: true, configurable: true });
|
|
235
248
|
Object.defineProperty(req, "cookies", { get: getCookies, set: function (v) { cookiesObj = v; }, enumerable: true, configurable: true });
|
|
236
249
|
var statusCode = 200, headers = {}, body = "", headersSent = false, resolved = false;
|
|
250
|
+
function ensureFirstLineSent() {
|
|
251
|
+
if (firstLineSent || !responseStream) return;
|
|
252
|
+
firstLineSent = true;
|
|
253
|
+
var out = {};
|
|
254
|
+
Object.entries(headers).forEach(function (e) { out[e[0]] = Array.isArray(e[1]) ? e[1].join(", ") : e[1]; });
|
|
255
|
+
writeStreamFirstLine(responseStream, statusCode || 200, out);
|
|
256
|
+
}
|
|
237
257
|
function finishRes() {
|
|
238
258
|
if (resolved) return;
|
|
239
259
|
resolved = true;
|
|
240
260
|
var out = {};
|
|
241
261
|
Object.entries(headers).forEach(function (e) { out[e[0]] = Array.isArray(e[1]) ? e[1].join(", ") : e[1]; });
|
|
242
|
-
|
|
262
|
+
if (streamingUsed && responseStream) {
|
|
263
|
+
resolve({ statusCode: statusCode || 200, headers: out, body: "", streaming: true });
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
resolve({ statusCode: statusCode || 200, headers: out, body: body, streaming: false });
|
|
243
267
|
}
|
|
244
268
|
var res = Object.assign(new EventEmitter(), {
|
|
245
269
|
setHeader: function (k, v) { if (!headersSent) headers[k.toLowerCase()] = v; },
|
|
@@ -258,8 +282,39 @@ function runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParam
|
|
|
258
282
|
return res;
|
|
259
283
|
},
|
|
260
284
|
flushHeaders: function () { headersSent = true; return res; },
|
|
261
|
-
write: function (chunk) {
|
|
262
|
-
|
|
285
|
+
write: function (chunk) {
|
|
286
|
+
headersSent = true;
|
|
287
|
+
if (responseStream) {
|
|
288
|
+
streamingUsed = true;
|
|
289
|
+
ensureFirstLineSent();
|
|
290
|
+
var data = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk.toString(), "utf8");
|
|
291
|
+
return responseStream.write(data);
|
|
292
|
+
}
|
|
293
|
+
body += chunk.toString();
|
|
294
|
+
return true;
|
|
295
|
+
},
|
|
296
|
+
end: function (chunk) {
|
|
297
|
+
if (ended) return;
|
|
298
|
+
if (responseStream) {
|
|
299
|
+
ended = true;
|
|
300
|
+
streamingUsed = true;
|
|
301
|
+
ensureFirstLineSent();
|
|
302
|
+
if (chunk) {
|
|
303
|
+
var data = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk.toString(), "utf8");
|
|
304
|
+
responseStream.write(data);
|
|
305
|
+
}
|
|
306
|
+
responseStream.end();
|
|
307
|
+
var out = {};
|
|
308
|
+
Object.entries(headers).forEach(function (e) { out[e[0]] = Array.isArray(e[1]) ? e[1].join(", ") : e[1]; });
|
|
309
|
+
resolved = true;
|
|
310
|
+
resolve({ statusCode: statusCode || 200, headers: out, body: "", streaming: true });
|
|
311
|
+
res.emit("finish");
|
|
312
|
+
res.emit("close");
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
if (chunk) body += chunk.toString();
|
|
316
|
+
if (!resolved) { finishRes(); res.emit("finish"); res.emit("close"); }
|
|
317
|
+
},
|
|
263
318
|
destroy: function (err) { if (!resolved) { res.emit("close"); reject(err || new Error("Response destroyed")); } return res; },
|
|
264
319
|
flush: function () {},
|
|
265
320
|
status: function (c) { statusCode = c; return res; },
|
|
@@ -275,6 +330,7 @@ function runNodeStyleHandler(handler, method, url, normalizedHeaders, queryParam
|
|
|
275
330
|
Object.defineProperty(res, "statusCode", { get: function () { return statusCode; }, set: function (v) { statusCode = v; }, enumerable: true, configurable: true });
|
|
276
331
|
req.on("error", reject);
|
|
277
332
|
res.on("error", reject);
|
|
333
|
+
if (responseStream) responseStream.on("error", reject);
|
|
278
334
|
try { handler(req, res); } catch (e) { reject(e); }
|
|
279
335
|
});
|
|
280
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-wrapper.js","sourceRoot":"","sources":["../src/handler-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,OAAO;;;;;;;;;;;iCAWwB,WAAW
|
|
1
|
+
{"version":3,"file":"handler-wrapper.js","sourceRoot":"","sources":["../src/handler-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3E,OAAO;;;;;;;;;;;iCAWwB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgU3C,CAAC;AACF,CAAC"}
|
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
+
import { EventEmitter } from "node:events";
|
|
2
3
|
import fs from "node:fs";
|
|
3
4
|
import os from "node:os";
|
|
4
5
|
import path from "node:path";
|
|
5
6
|
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
6
7
|
import { generateHandlerWrapper } from "./handler-wrapper.js";
|
|
8
|
+
function createMockResponseStream() {
|
|
9
|
+
const writes = [];
|
|
10
|
+
const stream = Object.assign(new EventEmitter(), {
|
|
11
|
+
writes,
|
|
12
|
+
endCount: 0,
|
|
13
|
+
ended: false,
|
|
14
|
+
write(chunk) {
|
|
15
|
+
this.writes.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
16
|
+
return true;
|
|
17
|
+
},
|
|
18
|
+
end() {
|
|
19
|
+
this.endCount++;
|
|
20
|
+
this.ended = true;
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
return stream;
|
|
24
|
+
}
|
|
25
|
+
const STREAMING_MOCK_EVENT = {
|
|
26
|
+
requestContext: { http: { method: "GET" } },
|
|
27
|
+
headers: { host: "localhost" },
|
|
28
|
+
rawPath: "/",
|
|
29
|
+
queryStringParameters: null,
|
|
30
|
+
};
|
|
7
31
|
describe("handler-wrapper", () => {
|
|
8
32
|
let tmpDir;
|
|
9
33
|
const require = createRequire(import.meta.url);
|
|
@@ -68,5 +92,99 @@ describe("handler-wrapper", () => {
|
|
|
68
92
|
expect(result.headers).toBeDefined();
|
|
69
93
|
expect(result.headers["content-type"]).toBe("text/plain");
|
|
70
94
|
});
|
|
95
|
+
describe("streaming mode (Node-style write/end)", () => {
|
|
96
|
+
beforeEach(() => {
|
|
97
|
+
globalThis.awslambda = {
|
|
98
|
+
streamifyResponse: (fn) => async (event, responseStream, context) => await fn(event, responseStream, context),
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
afterEach(() => {
|
|
102
|
+
delete globalThis.awslambda;
|
|
103
|
+
});
|
|
104
|
+
it("Node-style streaming: writeHead + write + write + end sends first line then body chunks", async () => {
|
|
105
|
+
const wrapperCode = generateHandlerWrapper("index.mjs");
|
|
106
|
+
fs.writeFileSync(path.join(tmpDir, "handler.js"), wrapperCode, "utf8");
|
|
107
|
+
fs.writeFileSync(path.join(tmpDir, "index.mjs"), `export default function (req, res) {
|
|
108
|
+
res.writeHead(200, { "content-type": "text/plain" });
|
|
109
|
+
res.write("a");
|
|
110
|
+
res.write("b");
|
|
111
|
+
res.end("c");
|
|
112
|
+
}`, "utf8");
|
|
113
|
+
const handler = require(path.join(tmpDir, "handler.js")).handler;
|
|
114
|
+
const responseStream = createMockResponseStream();
|
|
115
|
+
await handler(STREAMING_MOCK_EVENT, responseStream, {});
|
|
116
|
+
expect(responseStream.writes.length).toBe(4);
|
|
117
|
+
const firstLine = JSON.stringify({
|
|
118
|
+
statusCode: 200,
|
|
119
|
+
headers: { "content-type": "text/plain" },
|
|
120
|
+
}) + "\n";
|
|
121
|
+
expect(responseStream.writes[0].toString()).toBe(firstLine);
|
|
122
|
+
expect(responseStream.writes[1].toString()).toBe("a");
|
|
123
|
+
expect(responseStream.writes[2].toString()).toBe("b");
|
|
124
|
+
expect(responseStream.writes[3].toString()).toBe("c");
|
|
125
|
+
expect(responseStream.ended).toBe(true);
|
|
126
|
+
});
|
|
127
|
+
it("Node-style buffered (res.send) with streaming wrapper sends first line + body and end()", async () => {
|
|
128
|
+
const wrapperCode = generateHandlerWrapper("index.mjs");
|
|
129
|
+
fs.writeFileSync(path.join(tmpDir, "handler.js"), wrapperCode, "utf8");
|
|
130
|
+
fs.writeFileSync(path.join(tmpDir, "index.mjs"), `export default function (req, res) {
|
|
131
|
+
res.send("hello");
|
|
132
|
+
}`, "utf8");
|
|
133
|
+
const handler = require(path.join(tmpDir, "handler.js")).handler;
|
|
134
|
+
const responseStream = createMockResponseStream();
|
|
135
|
+
await handler(STREAMING_MOCK_EVENT, responseStream, {});
|
|
136
|
+
expect(responseStream.writes.length).toBe(2);
|
|
137
|
+
const firstLine = JSON.parse(responseStream.writes[0].toString());
|
|
138
|
+
expect(firstLine.statusCode).toBe(200);
|
|
139
|
+
expect(firstLine.headers).toBeDefined();
|
|
140
|
+
expect(responseStream.writes[1].toString()).toBe("hello");
|
|
141
|
+
expect(responseStream.ended).toBe(true);
|
|
142
|
+
});
|
|
143
|
+
it("multiple end() is no-op: end() called exactly once", async () => {
|
|
144
|
+
const wrapperCode = generateHandlerWrapper("index.mjs");
|
|
145
|
+
fs.writeFileSync(path.join(tmpDir, "handler.js"), wrapperCode, "utf8");
|
|
146
|
+
fs.writeFileSync(path.join(tmpDir, "index.mjs"), `export default function (req, res) {
|
|
147
|
+
res.writeHead(200);
|
|
148
|
+
res.write("a");
|
|
149
|
+
res.end();
|
|
150
|
+
res.end();
|
|
151
|
+
}`, "utf8");
|
|
152
|
+
const handler = require(path.join(tmpDir, "handler.js")).handler;
|
|
153
|
+
const responseStream = createMockResponseStream();
|
|
154
|
+
await handler(STREAMING_MOCK_EVENT, responseStream, {});
|
|
155
|
+
expect(responseStream.endCount).toBe(1);
|
|
156
|
+
expect(responseStream.writes.length).toBe(2);
|
|
157
|
+
const firstLine = JSON.parse(responseStream.writes[0].toString());
|
|
158
|
+
expect(firstLine.statusCode).toBe(200);
|
|
159
|
+
expect(responseStream.writes[1].toString()).toBe("a");
|
|
160
|
+
expect(responseStream.ended).toBe(true);
|
|
161
|
+
});
|
|
162
|
+
it("responseStream error is caught and written as 502 to stream", async () => {
|
|
163
|
+
const wrapperCode = generateHandlerWrapper("index.mjs");
|
|
164
|
+
fs.writeFileSync(path.join(tmpDir, "handler.js"), wrapperCode, "utf8");
|
|
165
|
+
fs.writeFileSync(path.join(tmpDir, "index.mjs"), `export default function (req, res) {
|
|
166
|
+
res.writeHead(200);
|
|
167
|
+
res.write("a");
|
|
168
|
+
}`, "utf8");
|
|
169
|
+
const handler = require(path.join(tmpDir, "handler.js")).handler;
|
|
170
|
+
const responseStream = createMockResponseStream();
|
|
171
|
+
const err = new Error("stream error");
|
|
172
|
+
const promise = handler(STREAMING_MOCK_EVENT, responseStream, {});
|
|
173
|
+
await new Promise((r) => setImmediate(r));
|
|
174
|
+
responseStream.emit("error", err);
|
|
175
|
+
await promise;
|
|
176
|
+
const lastFirstLine = responseStream.writes.length >= 2
|
|
177
|
+
? responseStream.writes[responseStream.writes.length - 2]
|
|
178
|
+
: null;
|
|
179
|
+
const lastBody = responseStream.writes.length >= 1
|
|
180
|
+
? responseStream.writes[responseStream.writes.length - 1]
|
|
181
|
+
: null;
|
|
182
|
+
expect(lastFirstLine).toBeDefined();
|
|
183
|
+
const firstLine = JSON.parse(lastFirstLine.toString());
|
|
184
|
+
expect(firstLine.statusCode).toBe(502);
|
|
185
|
+
expect(lastBody.toString()).toContain("stream error");
|
|
186
|
+
expect(responseStream.ended).toBe(true);
|
|
187
|
+
});
|
|
188
|
+
});
|
|
71
189
|
});
|
|
72
190
|
//# sourceMappingURL=handler-wrapper.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-wrapper.test.js","sourceRoot":"","sources":["../src/handler-wrapper.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handler-wrapper.test.js","sourceRoot":"","sources":["../src/handler-wrapper.test.ts"],"names":[],"mappings":"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"}
|