| 1 | import * as Cloudflare from "alchemy/Cloudflare"; |
| 2 | import { Stack } from "alchemy/Stack"; |
| 3 | import * as Effect from "effect/Effect"; |
| 4 | import * as HttpServerResponse from "effect/http/HttpServerResponse"; |
| 5 | |
| 6 | export class SandboxContainer extends Cloudflare.Container< |
| 7 | SandboxContainer, |
| 8 | {} |
| 9 | >()("SandboxContainer") {} |
| 10 | |
| 11 | export const SandboxLive = /* @__PURE__ */ SandboxContainer.make( |
| 12 | Stack.useSync((stack) => ({ |
| 13 | main: import.meta.url, |
| 14 | instanceType: stack.stage === "prod" ? "standard-1" : "dev", |
| 15 | env: { |
| 16 | GREETING: "hello-from-env", |
| 17 | }, |
| 18 | observability: { |
| 19 | logs: { |
| 20 | enabled: true, |
| 21 | }, |
| 22 | }, |
| 23 | })), |
| 24 | Effect.gen(function* () { |
| 25 | return SandboxContainer.of({ |
| 26 | fetch: Effect.succeed( |
| 27 | HttpServerResponse.text( |
| 28 | `Hello from Sandbox container! GREETING=${process.env.GREETING}`, |
| 29 | ), |
| 30 | ), |
| 31 | }); |
| 32 | }), |
| 33 | ); |
| 34 | |
| 35 | export default SandboxLive; |