@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,CAsRlE"}
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"}
@@ -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
- await pipeline(nodeReadable, responseStream);
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
- resolve({ statusCode: statusCode || 200, headers: out, body: body });
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) { headersSent = true; body += chunk.toString(); return true; },
262
- end: function (chunk) { if (chunk) body += chunk.toString(); if (!resolved) { finishRes(); res.emit("finish"); res.emit("close"); } },
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwQ3C,CAAC;AACF,CAAC"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easel-sh/cli",
3
- "version": "0.1.0-alpha.13",
3
+ "version": "0.1.0-alpha.15",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "cli": "./dist/cli.js"