@useairfoil/flight 0.2.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,29 +0,0 @@
1
- import { StartedTestContainer } from "testcontainers";
2
- import { Context, Effect, Layer } from "effect";
3
-
4
- //#region test/wings-container.d.ts
5
- declare class WingsContainer {
6
- private container;
7
- start(): Promise<WingsContainer>;
8
- stop(): Promise<void>;
9
- getGrpcPort(): number;
10
- getHttpPort(): number;
11
- getGrpcHost(): string;
12
- getHttpHost(): string;
13
- private getHost;
14
- getContainer(): StartedTestContainer;
15
- }
16
- //#endregion
17
- //#region test/wings-container.effect.d.ts
18
- declare const EffectWingsContainer_base: Context.TagClass<EffectWingsContainer, "EffectWingsContainer", {
19
- readonly getGrpcPort: Effect.Effect<number>;
20
- readonly getHttpPort: Effect.Effect<number>;
21
- readonly getGrpcHost: Effect.Effect<string>;
22
- readonly getHttpHost: Effect.Effect<string>;
23
- readonly getContainer: Effect.Effect<StartedTestContainer>;
24
- }>;
25
- declare class EffectWingsContainer extends EffectWingsContainer_base {}
26
- declare const EffectWingsContainerLive: Layer.Layer<EffectWingsContainer, Error, never>;
27
- //#endregion
28
- export { EffectWingsContainer, EffectWingsContainerLive, WingsContainer };
29
- //# sourceMappingURL=index.d.ts.map
@@ -1,79 +0,0 @@
1
- import { GenericContainer, Wait } from "testcontainers";
2
- import { Context, Effect, Layer, Scope } from "effect";
3
-
4
- //#region test/wings-container.ts
5
- var WingsContainer = class {
6
- container = null;
7
- async start() {
8
- this.container = await new GenericContainer("docker.useairfoil.com/airfoil/wings:latest").withCommand([
9
- "dev",
10
- "--http.address=0.0.0.0:7780",
11
- "--metadata.address=0.0.0.0:7777"
12
- ]).withExposedPorts(7777, 7780).withTmpFs({ "/tmp": "rw" }).withWaitStrategy(Wait.forLogMessage(/gRPC server listening on 0\.0\.0\.0:7777/)).withStartupTimeout(6e4).start();
13
- return this;
14
- }
15
- async stop() {
16
- if (this.container) {
17
- await this.container.stop();
18
- this.container = null;
19
- }
20
- }
21
- getGrpcPort() {
22
- if (!this.container) throw new Error("Container not started");
23
- return this.container.getMappedPort(7777);
24
- }
25
- getHttpPort() {
26
- if (!this.container) throw new Error("Container not started");
27
- return this.container.getMappedPort(7780);
28
- }
29
- getGrpcHost() {
30
- return `${this.getHost()}:${this.getGrpcPort()}`;
31
- }
32
- getHttpHost() {
33
- return `${this.getHost()}:${this.getHttpPort()}`;
34
- }
35
- getHost() {
36
- if (!this.container) throw new Error("Container not started");
37
- return this.container.getHost();
38
- }
39
- getContainer() {
40
- if (!this.container) throw new Error("Container not started");
41
- return this.container;
42
- }
43
- };
44
-
45
- //#endregion
46
- //#region test/wings-container.effect.ts
47
- var EffectWingsContainer = class extends Context.Tag("EffectWingsContainer")() {};
48
- const EffectWingsContainerLive = Layer.scoped(EffectWingsContainer, Effect.gen(function* () {
49
- const scope = yield* Scope.Scope;
50
- const container = yield* Effect.tryPromise({
51
- try: () => new GenericContainer("docker.useairfoil.com/airfoil/wings:latest").withCommand([
52
- "dev",
53
- "--http.address=0.0.0.0:7780",
54
- "--metadata.address=0.0.0.0:7777"
55
- ]).withExposedPorts(7777, 7780).withTmpFs({ "/tmp": "rw" }).withWaitStrategy(Wait.forLogMessage(/gRPC server listening on 0\.0\.0\.0:7777/)).withStartupTimeout(6e4).start(),
56
- catch: (error) => /* @__PURE__ */ new Error(`Failed to start container: ${error}`)
57
- });
58
- yield* Scope.addFinalizer(scope, Effect.tryPromise({
59
- try: () => container.stop(),
60
- catch: (error) => /* @__PURE__ */ new Error(`Failed to stop container: ${error}`)
61
- }).pipe(Effect.tap(() => Effect.log("Container stopped successfully")), Effect.catchAll((error) => Effect.log(`Error stopping container: ${error}`))));
62
- return {
63
- getGrpcPort: Effect.sync(() => container.getMappedPort(7777)),
64
- getHttpPort: Effect.sync(() => container.getMappedPort(7780)),
65
- getGrpcHost: Effect.gen(function* () {
66
- const port = yield* Effect.sync(() => container.getMappedPort(7777));
67
- return `${yield* Effect.sync(() => container.getHost())}:${port}`;
68
- }),
69
- getHttpHost: Effect.gen(function* () {
70
- const port = yield* Effect.sync(() => container.getMappedPort(7780));
71
- return `${yield* Effect.sync(() => container.getHost())}:${port}`;
72
- }),
73
- getContainer: Effect.succeed(container)
74
- };
75
- }));
76
-
77
- //#endregion
78
- export { EffectWingsContainer, EffectWingsContainerLive, WingsContainer };
79
- //# 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 { Context, Effect, Layer, Scope } from \"effect\";\nimport {\n GenericContainer,\n type StartedTestContainer,\n Wait,\n} from \"testcontainers\";\n\nexport class EffectWingsContainer extends Context.Tag(\"EffectWingsContainer\")<\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>() {}\n\nexport const EffectWingsContainerLive = Layer.scoped(\n 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.catchAll((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;;;;;;AC9DhB,IAAa,uBAAb,cAA0C,QAAQ,IAAI,uBAAuB,EAS1E,CAAC;AAEJ,MAAa,2BAA2B,MAAM,OAC5C,sBACA,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,UAAU,UACf,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"}