const { AWS_LAMBDA_RUNTIME_API, LAMBDA_TASK_ROOT, _HANDLER } = process.env; if (!AWS_LAMBDA_RUNTIME_API || AWS_LAMBDA_RUNTIME_API === "") { throw new Error("AWS_LAMBDA_RUNTIME_API is not set"); } const nextURL = `http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next`; const sourceDir = LAMBDA_TASK_ROOT; if (!sourceDir) { throw new Error("handler is not set"); } // don't care if this fails if (process.cwd() !== sourceDir) { try { process.chdir(sourceDir); } catch (e) {} } var handlerDot = _HANDLER.lastIndexOf("."); var sourcefile = handlerDot > 0 ? _HANDLER.substring(0, handlerDot) : _HANDLER; if (sourcefile.length === 0) { throw new Error("handler is not set"); } if (!sourcefile.startsWith("/")) { sourcefile = `./${sourcefile}`; } function noop() {} const method = (handlerDot > 0 ? _HANDLER.substring(handlerDot) : "") || "GET"; if (typeof process.env.VERBOSE !== "undefined") { console.time(`Loaded ${sourcefile}`); } var Handler; try { Handler = await import(sourcefile); } catch (e: any) { console.error("Error loading sourcefile:", e); try { await fetch( new URL(`http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error`) .href, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ errorMessage: e.message, errorType: e.name, stackTrace: e?.stack?.split("\n") ?? [], }), }, ); } catch (e2) { console.error("Error sending error to runtime:", e2); } process.exit(1); } if (typeof process.env.VERBOSE !== "undefined") { console.timeEnd(`Loaded ${sourcefile}`); } const handlerFunction = Handler.default?.fetch; if (typeof handlerFunction !== "function") { const e = new Error(`${sourcefile} must export default a function called fetch Here is an example: export default { fetch(req) { return new Response("Hello World"); } } `); console.error(e); try { await fetch( new URL(`http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error`) .href, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ errorMessage: e.message, errorType: e.name, stackTrace: e?.stack?.split("\n") ?? [], }), }, ); } catch (e2) { console.error("Error sending error to runtime:", e2); } process.exit(1); } var baseURLString = AWS_LAMBDA_RUNTIME_API; if ("baseURI" in Handler.default) { baseURLString = Handler.default.baseURI?.toString(); } var baseURL; try { baseURL = new URL(baseURLString); } catch (e: any) { console.error("Error parsing baseURI:", e); try { await fetch( new URL(`http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/init/error`) .href, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ errorMessage: e.message, errorType: e.name, stackTrace: e?.stack?.split("\n") || [], }), }, ); } catch (e2) { console.error("Error sending error to runtime:", e2); } process.exit(1); } async function runHandler(response: Response) { const traceID = response.headers.get("Lambda-Runtime-Trace-Id"); const requestID = response.headers.get("Lambda-Runtime-Aws-Request-Id"); var request = new Request(baseURL.href, { method, headers: response.headers, body: parseInt(response.headers.get("Content-Length") || "0", 10) > 0 ? await response.blob() : undefined, }); // we are done with the Response object here // allow it to be GC'd (response as any) = undefined; var result: Response; try { if (typeof process.env.VERBOSE !== "undefined") { console.time(`[${traceID}] Run ${request.url}`); } result = handlerFunction(request, {}); if (result && (result as any).then) { await result; } } catch (e1: any) { if (typeof process.env.VERBOSE !== "undefined") { console.error(`[${traceID}] Error running handler:`, e1); } fetch( `http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/${requestID}/error`, { method: "POST", body: JSON.stringify({ errorMessage: e1.message, errorType: e1.name, stackTrace: e1?.stack?.split("\n") ?? [], }), }, ).finally(noop); return; } finally { if (typeof process.env.VERBOSE !== "undefined") { console.timeEnd(`[${traceID}] Run ${request.url}`); } } if (!result || !("headers" in result)) { await fetch( `http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/${requestID}/error`, { method: "POST", body: JSON.stringify({ errorMessage: "Expected Response object", errorType: "ExpectedResponseObject", stackTrace: [], }), }, ); return; } await fetch( `http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/${requestID}/response`, { method: "POST", headers: result.headers, body: await result.blob(), }, ); (result as any) = undefined; } while (true) { fetch(nextURL).then(runHandler, console.error); } export {}; insensitive-pkg-names'>insensitive-pkg-names Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/snippets/lodash-regexp.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-01-29Update bun-flavored-toml.mdGravatar Jarred Sumner 1-11/+1
2022-01-29Update MakefileGravatar Jarred Sumner 1-0/+1
2022-01-29Slight tweaks to TOML parserGravatar Jarred Sumner 3-13/+134
2022-01-29Bundle embedded fast refresh if using react and no fast refresh is foundGravatar Jarred Sumner 1-9/+16
2022-01-29Embed a favicon when none existsGravatar Jarred Sumner 2-0/+30
2022-01-29cleanupGravatar Jarred Sumner 3-6/+39
2022-01-29Enable Fast Refresh when not bundlingGravatar Jarred Sumner 1-9/+34
2022-01-29Embed React Fast Refresh in BunGravatar Jarred Sumner 14-80/+327
2022-01-29Handle null/undefined `module.exports` betterGravatar Jarred Sumner 1-4/+7
2022-01-29[JS Printer] Fix CJS <> ESM interop edgecaseGravatar Jarred Sumner 1-0/+7
2022-01-29Fix bug introduced in 97d17904Gravatar Jarred Sumner 1-1/+1
2022-01-29Slice onceGravatar Jarred Sumner 1-5/+8
2022-01-29Tag importsGravatar Jarred Sumner 2-0/+26
2022-01-28Update toml_lexer.zigGravatar Jarred Sumner 1-1/+0
2022-01-28Implement TOML parserGravatar Jarred Sumner 15-18/+2044
2022-01-28Update AST layout to store capacity for itemsGravatar Jarred Sumner 49-396/+513
2022-01-28Update README.mdGravatar Jarred Sumner 1-1/+1
2022-01-28Update README.mdGravatar Jarred Sumner 1-4/+0
2022-01-28Update README.mdGravatar Jarred Sumner 1-6/+4
2022-01-28Update README.mdGravatar Jarred Sumner 1-8/+5
2022-01-28Update README.mdGravatar Jarred Sumner 1-30/+48
2022-01-28Update README.mdGravatar Jarred Sumner 1-2/+2
2022-01-28Update README.mdGravatar Jarred Sumner 1-0/+5
2022-01-28Add Bun.Transpiler doc to the readmeGravatar Jarred Sumner 1-0/+215
2022-01-27Automate clang version checking / code signing (#113)Gravatar Alexander Kuznetsov 1-2/+14
2022-01-27Stop reading `"bun"` from package.jsonGravatar Jarred Sumner 1-29/+0
2022-01-27[bunfig] Implement config file formatGravatar Jarred Sumner 20-156/+667
2022-01-27Don't look like a crash when CLI args are missingGravatar Jarred Sumner 1-0/+3
2022-01-27[cli] Add support for commands which optionally have one argumentGravatar Jarred Sumner 3-12/+22
2022-01-26Update MakefileGravatar Jarred Sumner 1-1/+1
2022-01-26print file name on panicGravatar Jarred Sumner 1-1/+1
2022-01-25mergeGravatar Jarred Sumner 2-1/+2
2022-01-25Slightly saferGravatar Jarred Sumner 1-1/+1
2022-01-25Split http into filesGravatar Jarred Sumner 7-1079/+1055
2022-01-25Update DockerfileGravatar Jarred Sumner 1-1/+1
2022-01-25Fix up dev containerGravatar Jarred Sumner 2-5/+1
2022-01-25On successful connect, switch to non-blocking sockets until we're about to closeGravatar Jarred SUmner 1-2/+18
2022-01-25Fix getsockopt()Gravatar Jarred SUmner 1-2/+5
2022-01-24Automatically retry on would blockGravatar Jarred SUmner 1-8/+4
2022-01-24Fallback to readev / writevGravatar Jarred SUmner 1-7/+226
2022-01-24No io_uring for Ubuntu 20.04Gravatar Jarred SUmner 6-27/+50
2022-01-23Update io_linux.zigGravatar Jarred Sumner 1-0/+1
2022-01-23[linux][http] return errno instead of unexpectedGravatar Jarred Sumner 1-2/+31
2022-01-23[http] Remove usages of `unreachable` in syscall error handlingGravatar Jarred Sumner 1-10/+0
2022-01-23Update io_linux.zigGravatar Jarred Sumner 1-0/+1
2022-01-23Use non-cancellable syscalls for HTTP & use errno for errorsGravatar Jarred Sumner 3-78/+933
2022-01-23Improve error message when `bun upgrade` failsGravatar Jarred Sumner 1-1/+1
2022-01-23NiceGravatar Jarred Sumner 1-1/+1
2022-01-23Update analytics_thread.zigGravatar Jarred Sumner 1-0/+8