@useairfoil/flight 0.3.0 → 0.4.0

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,30 +0,0 @@
1
- import { StartedTestContainer } from "testcontainers";
2
- import { Effect, Layer } from "effect";
3
- import * as ServiceMap from "effect/ServiceMap";
4
-
5
- //#region test/wings-container.d.ts
6
- declare class WingsContainer {
7
- private container;
8
- start(): Promise<WingsContainer>;
9
- stop(): Promise<void>;
10
- getGrpcPort(): number;
11
- getHttpPort(): number;
12
- getGrpcHost(): string;
13
- getHttpHost(): string;
14
- private getHost;
15
- getContainer(): StartedTestContainer;
16
- }
17
- //#endregion
18
- //#region test/wings-container.effect.d.ts
19
- declare const EffectWingsContainer_base: ServiceMap.ServiceClass<EffectWingsContainer, "EffectWingsContainer", {
20
- readonly getGrpcPort: Effect.Effect<number>;
21
- readonly getHttpPort: Effect.Effect<number>;
22
- readonly getGrpcHost: Effect.Effect<string>;
23
- readonly getHttpHost: Effect.Effect<string>;
24
- readonly getContainer: Effect.Effect<StartedTestContainer>;
25
- }>;
26
- declare class EffectWingsContainer extends EffectWingsContainer_base {}
27
- declare const EffectWingsContainerLive: Layer.Layer<EffectWingsContainer, Error, never>;
28
- //#endregion
29
- export { EffectWingsContainer, EffectWingsContainerLive, WingsContainer };
30
- //# sourceMappingURL=index.d.ts.map
@@ -1,80 +0,0 @@
1
- import { GenericContainer, Wait } from "testcontainers";
2
- import { Effect, Layer, Scope } from "effect";
3
- import * as ServiceMap from "effect/ServiceMap";
4
-
5
- //#region test/wings-container.ts
6
- var WingsContainer = class {
7
- container = null;
8
- async start() {
9
- this.container = await new GenericContainer("docker.useairfoil.com/airfoil/wings:latest").withCommand([
10
- "dev",
11
- "--http.address=0.0.0.0:7780",
12
- "--metadata.address=0.0.0.0:7777"
13
- ]).withExposedPorts(7777, 7780).withTmpFs({ "/tmp": "rw" }).withWaitStrategy(Wait.forLogMessage(/gRPC server listening on 0\.0\.0\.0:7777/)).withStartupTimeout(6e4).start();
14
- return this;
15
- }
16
- async stop() {
17
- if (this.container) {
18
- await this.container.stop();
19
- this.container = null;
20
- }
21
- }
22
- getGrpcPort() {
23
- if (!this.container) throw new Error("Container not started");
24
- return this.container.getMappedPort(7777);
25
- }
26
- getHttpPort() {
27
- if (!this.container) throw new Error("Container not started");
28
- return this.container.getMappedPort(7780);
29
- }
30
- getGrpcHost() {
31
- return `${this.getHost()}:${this.getGrpcPort()}`;
32
- }
33
- getHttpHost() {
34
- return `${this.getHost()}:${this.getHttpPort()}`;
35
- }
36
- getHost() {
37
- if (!this.container) throw new Error("Container not started");
38
- return this.container.getHost();
39
- }
40
- getContainer() {
41
- if (!this.container) throw new Error("Container not started");
42
- return this.container;
43
- }
44
- };
45
-
46
- //#endregion
47
- //#region test/wings-container.effect.ts
48
- var EffectWingsContainer = class extends ServiceMap.Service()("EffectWingsContainer") {};
49
- const EffectWingsContainerLive = Layer.effect(EffectWingsContainer)(Effect.gen(function* () {
50
- const scope = yield* Scope.Scope;
51
- const container = yield* Effect.tryPromise({
52
- try: () => new GenericContainer("docker.useairfoil.com/airfoil/wings:latest").withCommand([
53
- "dev",
54
- "--http.address=0.0.0.0:7780",
55
- "--metadata.address=0.0.0.0:7777"
56
- ]).withExposedPorts(7777, 7780).withTmpFs({ "/tmp": "rw" }).withWaitStrategy(Wait.forLogMessage(/gRPC server listening on 0\.0\.0\.0:7777/)).withStartupTimeout(6e4).start(),
57
- catch: (error) => /* @__PURE__ */ new Error(`Failed to start container: ${error}`)
58
- });
59
- yield* Scope.addFinalizer(scope, Effect.tryPromise({
60
- try: () => container.stop(),
61
- catch: (error) => /* @__PURE__ */ new Error(`Failed to stop container: ${error}`)
62
- }).pipe(Effect.tap(() => Effect.log("Container stopped successfully")), Effect.catch((error) => Effect.log(`Error stopping container: ${error}`))));
63
- return {
64
- getGrpcPort: Effect.sync(() => container.getMappedPort(7777)),
65
- getHttpPort: Effect.sync(() => container.getMappedPort(7780)),
66
- getGrpcHost: Effect.gen(function* () {
67
- const port = yield* Effect.sync(() => container.getMappedPort(7777));
68
- return `${yield* Effect.sync(() => container.getHost())}:${port}`;
69
- }),
70
- getHttpHost: Effect.gen(function* () {
71
- const port = yield* Effect.sync(() => container.getMappedPort(7780));
72
- return `${yield* Effect.sync(() => container.getHost())}:${port}`;
73
- }),
74
- getContainer: Effect.succeed(container)
75
- };
76
- }));
77
-
78
- //#endregion
79
- export { EffectWingsContainer, EffectWingsContainerLive, WingsContainer };
80
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../test/wings-container.ts","../../test/wings-container.effect.ts"],"sourcesContent":["import {\n GenericContainer,\n type StartedTestContainer,\n Wait,\n} from \"testcontainers\";\n\nexport class WingsContainer {\n private container: StartedTestContainer | null = null;\n\n async start(): Promise<WingsContainer> {\n const container = new GenericContainer(\n \"docker.useairfoil.com/airfoil/wings:latest\",\n )\n .withCommand([\n \"dev\",\n \"--http.address=0.0.0.0:7780\",\n \"--metadata.address=0.0.0.0:7777\",\n ])\n .withExposedPorts(7777, 7780)\n .withTmpFs({ \"/tmp\": \"rw\" })\n .withWaitStrategy(\n Wait.forLogMessage(/gRPC server listening on 0\\.0\\.0\\.0:7777/),\n )\n .withStartupTimeout(60_000);\n\n this.container = await container.start();\n return this;\n }\n\n async stop(): Promise<void> {\n if (this.container) {\n await this.container.stop();\n this.container = null;\n }\n }\n\n getGrpcPort(): number {\n if (!this.container) {\n throw new Error(\"Container not started\");\n }\n return this.container.getMappedPort(7777);\n }\n\n getHttpPort(): number {\n if (!this.container) {\n throw new Error(\"Container not started\");\n }\n return this.container.getMappedPort(7780);\n }\n\n getGrpcHost(): string {\n return `${this.getHost()}:${this.getGrpcPort()}`;\n }\n\n getHttpHost(): string {\n return `${this.getHost()}:${this.getHttpPort()}`;\n }\n\n private getHost(): string {\n if (!this.container) {\n throw new Error(\"Container not started\");\n }\n return this.container.getHost();\n }\n\n getContainer(): StartedTestContainer {\n if (!this.container) {\n throw new Error(\"Container not started\");\n }\n return this.container;\n }\n}\n","import { Effect, Layer, Scope } from \"effect\";\nimport * as ServiceMap from \"effect/ServiceMap\";\nimport {\n GenericContainer,\n type StartedTestContainer,\n Wait,\n} from \"testcontainers\";\n\nexport class EffectWingsContainer extends ServiceMap.Service<\n EffectWingsContainer,\n {\n readonly getGrpcPort: Effect.Effect<number>;\n readonly getHttpPort: Effect.Effect<number>;\n readonly getGrpcHost: Effect.Effect<string>;\n readonly getHttpHost: Effect.Effect<string>;\n readonly getContainer: Effect.Effect<StartedTestContainer>;\n }\n>()(\"EffectWingsContainer\") {}\n\nexport const EffectWingsContainerLive = Layer.effect(EffectWingsContainer)(\n Effect.gen(function* () {\n const scope = yield* Scope.Scope;\n\n const container = yield* Effect.tryPromise({\n try: () =>\n new GenericContainer(\"docker.useairfoil.com/airfoil/wings:latest\")\n .withCommand([\n \"dev\",\n \"--http.address=0.0.0.0:7780\",\n \"--metadata.address=0.0.0.0:7777\",\n ])\n .withExposedPorts(7777, 7780)\n .withTmpFs({ \"/tmp\": \"rw\" })\n .withWaitStrategy(\n Wait.forLogMessage(/gRPC server listening on 0\\.0\\.0\\.0:7777/),\n )\n .withStartupTimeout(60_000)\n .start(),\n catch: (error) => new Error(`Failed to start container: ${error}`),\n });\n\n yield* Scope.addFinalizer(\n scope,\n Effect.tryPromise({\n try: () => container.stop(),\n catch: (error) => new Error(`Failed to stop container: ${error}`),\n }).pipe(\n Effect.tap(() => Effect.log(\"Container stopped successfully\")),\n Effect.catch((error) =>\n Effect.log(`Error stopping container: ${error}`),\n ),\n ),\n );\n\n return {\n getGrpcPort: Effect.sync(() => container.getMappedPort(7777)),\n getHttpPort: Effect.sync(() => container.getMappedPort(7780)),\n getGrpcHost: Effect.gen(function* () {\n const port = yield* Effect.sync(() => container.getMappedPort(7777));\n const host = yield* Effect.sync(() => container.getHost());\n return `${host}:${port}`;\n }),\n getHttpHost: Effect.gen(function* () {\n const port = yield* Effect.sync(() => container.getMappedPort(7780));\n const host = yield* Effect.sync(() => container.getHost());\n return `${host}:${port}`;\n }),\n getContainer: Effect.succeed(container),\n };\n }),\n);\n"],"mappings":";;;;;AAMA,IAAa,iBAAb,MAA4B;CAC1B,AAAQ,YAAyC;CAEjD,MAAM,QAAiC;AAgBrC,OAAK,YAAY,MAfC,IAAI,iBACpB,6CACD,CACE,YAAY;GACX;GACA;GACA;GACD,CAAC,CACD,iBAAiB,MAAM,KAAK,CAC5B,UAAU,EAAE,QAAQ,MAAM,CAAC,CAC3B,iBACC,KAAK,cAAc,2CAA2C,CAC/D,CACA,mBAAmB,IAAO,CAEI,OAAO;AACxC,SAAO;;CAGT,MAAM,OAAsB;AAC1B,MAAI,KAAK,WAAW;AAClB,SAAM,KAAK,UAAU,MAAM;AAC3B,QAAK,YAAY;;;CAIrB,cAAsB;AACpB,MAAI,CAAC,KAAK,UACR,OAAM,IAAI,MAAM,wBAAwB;AAE1C,SAAO,KAAK,UAAU,cAAc,KAAK;;CAG3C,cAAsB;AACpB,MAAI,CAAC,KAAK,UACR,OAAM,IAAI,MAAM,wBAAwB;AAE1C,SAAO,KAAK,UAAU,cAAc,KAAK;;CAG3C,cAAsB;AACpB,SAAO,GAAG,KAAK,SAAS,CAAC,GAAG,KAAK,aAAa;;CAGhD,cAAsB;AACpB,SAAO,GAAG,KAAK,SAAS,CAAC,GAAG,KAAK,aAAa;;CAGhD,AAAQ,UAAkB;AACxB,MAAI,CAAC,KAAK,UACR,OAAM,IAAI,MAAM,wBAAwB;AAE1C,SAAO,KAAK,UAAU,SAAS;;CAGjC,eAAqC;AACnC,MAAI,CAAC,KAAK,UACR,OAAM,IAAI,MAAM,wBAAwB;AAE1C,SAAO,KAAK;;;;;;AC7DhB,IAAa,uBAAb,cAA0C,WAAW,SASlD,CAAC,uBAAuB,CAAC;AAE5B,MAAa,2BAA2B,MAAM,OAAO,qBAAqB,CACxE,OAAO,IAAI,aAAa;CACtB,MAAM,QAAQ,OAAO,MAAM;CAE3B,MAAM,YAAY,OAAO,OAAO,WAAW;EACzC,WACE,IAAI,iBAAiB,6CAA6C,CAC/D,YAAY;GACX;GACA;GACA;GACD,CAAC,CACD,iBAAiB,MAAM,KAAK,CAC5B,UAAU,EAAE,QAAQ,MAAM,CAAC,CAC3B,iBACC,KAAK,cAAc,2CAA2C,CAC/D,CACA,mBAAmB,IAAO,CAC1B,OAAO;EACZ,QAAQ,0BAAU,IAAI,MAAM,8BAA8B,QAAQ;EACnE,CAAC;AAEF,QAAO,MAAM,aACX,OACA,OAAO,WAAW;EAChB,WAAW,UAAU,MAAM;EAC3B,QAAQ,0BAAU,IAAI,MAAM,6BAA6B,QAAQ;EAClE,CAAC,CAAC,KACD,OAAO,UAAU,OAAO,IAAI,iCAAiC,CAAC,EAC9D,OAAO,OAAO,UACZ,OAAO,IAAI,6BAA6B,QAAQ,CACjD,CACF,CACF;AAED,QAAO;EACL,aAAa,OAAO,WAAW,UAAU,cAAc,KAAK,CAAC;EAC7D,aAAa,OAAO,WAAW,UAAU,cAAc,KAAK,CAAC;EAC7D,aAAa,OAAO,IAAI,aAAa;GACnC,MAAM,OAAO,OAAO,OAAO,WAAW,UAAU,cAAc,KAAK,CAAC;AAEpE,UAAO,GADM,OAAO,OAAO,WAAW,UAAU,SAAS,CAAC,CAC3C,GAAG;IAClB;EACF,aAAa,OAAO,IAAI,aAAa;GACnC,MAAM,OAAO,OAAO,OAAO,WAAW,UAAU,cAAc,KAAK,CAAC;AAEpE,UAAO,GADM,OAAO,OAAO,WAAW,UAAU,SAAS,CAAC,CAC3C,GAAG;IAClB;EACF,cAAc,OAAO,QAAQ,UAAU;EACxC;EACD,CACH"}