| 1 | #!/usr/bin/env node |
| 2 | /** |
| 3 | * @since 4.0.0 |
| 4 | */ |
| 5 | import * as NodeRuntime from "@effect/platform-node/NodeRuntime" |
| 6 | import * as NodeServices from "@effect/platform-node/NodeServices" |
| 7 | import * as Command from "effect/cli/Command" |
| 8 | import * as Effect from "effect/Effect" |
| 9 | import * as Layer from "effect/Layer" |
| 10 | import PackageJson from "../package.json" with { type: "json" } |
| 11 | import { cli } from "./Cli.ts" |
| 12 | import { Fixtures } from "./Fixtures.ts" |
| 13 | import { Reporter } from "./Reporter.ts" |
| 14 | |
| 15 | const MainLayer = Layer.mergeAll( |
| 16 | Fixtures.layer, |
| 17 | Reporter.layer |
| 18 | ).pipe(Layer.provideMerge(NodeServices.layer)) |
| 19 | |
| 20 | Command.run(cli, { version: PackageJson["version"] }).pipe( |
| 21 | Effect.provide(MainLayer), |
| 22 | NodeRuntime.runMain |
| 23 | ) |