@effect/platform-bun 4.0.0-rc.109 → 4.0.0-rc.111

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.
@@ -27,8 +27,8 @@
27
27
  "@effect/sql-sqlite-wasm": "workspace:*",
28
28
  "@effect/vitest": "workspace:*",
29
29
  "effect": "workspace:*",
30
- "hono": "^4.12.28",
31
- "nodemailer": "^9.0.3"
30
+ "hono": "^4.13.2",
31
+ "nodemailer": "^9.0.5"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/nodemailer": "^8.0.1"
@@ -23,7 +23,8 @@ const tasks = Command.make("tasks").pipe(
23
23
  workspace,
24
24
  verbose: Flag.boolean("verbose").pipe(
25
25
  Flag.withAlias("v"),
26
- Flag.withDescription("Print diagnostic output")
26
+ Flag.withDescription("Print diagnostic output"),
27
+ Flag.withDefault(false)
27
28
  )
28
29
  }),
29
30
  Command.withDescription("Track and manage tasks")
@@ -92,7 +93,8 @@ const list = Command.make(
92
93
  Flag.withDefault("open")
93
94
  ),
94
95
  json: Flag.boolean("json").pipe(
95
- Flag.withDescription("Print machine-readable output")
96
+ Flag.withDescription("Print machine-readable output"),
97
+ Flag.withDefault(false)
96
98
  )
97
99
  },
98
100
  Effect.fn(function*({ status, json }) {
@@ -1 +1 @@
1
- {"version":3,"file":"BunRedis.d.ts","sourceRoot":"","sources":["../src/BunRedis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;;qBASvC,WAAW;kBACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;AARjG;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAmCxC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,aACN,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,GAAG,SAAS,KAC/D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAuC,CAAA;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YACb,MAAM,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,KAC7D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,WAAW,CAKtD,CAAA"}
1
+ {"version":3,"file":"BunRedis.d.ts","sourceRoot":"","sources":["../src/BunRedis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;;qBASvC,WAAW;kBACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;AARjG;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAqExC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,aACN,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,GAAG,SAAS,KAC/D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAuC,CAAA;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YACb,MAAM,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,KAC7D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,WAAW,CAKtD,CAAA"}
package/dist/BunRedis.js CHANGED
@@ -12,6 +12,7 @@
12
12
  import { RedisClient } from "bun";
13
13
  import * as Config from "effect/Config";
14
14
  import * as Context from "effect/Context";
15
+ import * as Deferred from "effect/Deferred";
15
16
  import * as Effect from "effect/Effect";
16
17
  import * as Fn from "effect/Function";
17
18
  import * as Layer from "effect/Layer";
@@ -40,6 +41,42 @@ const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
40
41
  catch: cause => new Redis.RedisError({
41
42
  cause
42
43
  })
44
+ }),
45
+ subscribe: (channel, onMessage) => Effect.gen(function* () {
46
+ const terminal = yield* Deferred.make();
47
+ yield* Effect.acquireRelease(Effect.tryPromise({
48
+ try: async () => {
49
+ const subscriber = new RedisClient(options?.url, {
50
+ ...options,
51
+ autoReconnect: false
52
+ });
53
+ subscriber.onclose = cause => {
54
+ Deferred.doneUnsafe(terminal, new Redis.RedisError({
55
+ cause
56
+ }));
57
+ };
58
+ try {
59
+ await subscriber.subscribe(channel, (message, channel) => {
60
+ onMessage({
61
+ channel,
62
+ message
63
+ });
64
+ });
65
+ return subscriber;
66
+ } catch (cause) {
67
+ subscriber.onclose = null;
68
+ subscriber.close();
69
+ throw cause;
70
+ }
71
+ },
72
+ catch: cause => new Redis.RedisError({
73
+ cause
74
+ })
75
+ }), subscriber => Effect.sync(() => {
76
+ subscriber.onclose = null;
77
+ subscriber.close();
78
+ }));
79
+ return Deferred.await(terminal);
43
80
  })
44
81
  });
45
82
  const bunRedis = Fn.identity({
@@ -1 +1 @@
1
- {"version":3,"file":"BunRedis.js","names":[],"sources":["../src/BunRedis.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;AAWA,SAAS,WAAW,QAA2B,KAAK;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,KAAK,MAAM,mCAAmC;AAE1D;;;;;;AAMA,OAAM,MAAO,QAAS,sBAAQ,OAAO,CAAC,OAAO,EAGzC,CAAC,+BAA+B,CAAC;AAErC,MAAM,IAAI,gBAAG,MAAM,CAAC,UAAU,CAAC,WAC7B,OAEgB;EAEhB,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK;EACjC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;EACnE,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;EAErD,MAAM,GAAG,GAAO,CAAsC,IACpD,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;IACpB,KAAK,EAAG,KAAK,IAAK,IAAI,KAAK,CAAC,UAAU,CAAC;MAAE;IAAK,CAAE;GACjD,CAAC;EAEJ,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE,CAAc,OAAe,EAAE,GAAG,IAA2B,KACjE,MAAM,CAAC,UAAU,CAAC;MAChB,GAAG,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAqB,CAAe;MACpE,KAAK,EAAG,KAAK,IAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAAE;MAAK,CAAE;KACjD;GACJ,CAAC;EAEF,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAsB;IAChD,MAAM;IACN;GACD,CAAC;EAEF,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAChC;AACH,CAAC,CAAC;AAEF;;;;;;AAMA,OAAO,MAAM,KAAK,GAChB,OAAgE,IACxB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAE5E;;;;;;AAMA,OAAO,MAAM,WAAW,GACtB,OAA8D,IAE9D,KAAK,CAAC,aAAa,CACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACrB,CACF","ignoreList":[]}
1
+ {"version":3,"file":"BunRedis.js","names":[],"sources":["../src/BunRedis.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@effect/platform-bun",
3
3
  "type": "module",
4
- "version": "4.0.0-rc.109",
4
+ "version": "4.0.0-rc.111",
5
5
  "license": "MIT",
6
6
  "description": "Platform specific implementations for the Bun runtime",
7
7
  "homepage": "https://effect.website",
@@ -49,14 +49,14 @@
49
49
  "provenance": true
50
50
  },
51
51
  "peerDependencies": {
52
- "effect": "^4.0.0-rc.109"
52
+ "effect": "^4.0.0-rc.111"
53
53
  },
54
54
  "dependencies": {
55
- "@effect/platform-node-shared": "^4.0.0-rc.109"
55
+ "@effect/platform-node-shared": "^4.0.0-rc.111"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/bun": "^1.3.14",
59
- "effect": "^4.0.0-rc.109"
59
+ "effect": "^4.0.0-rc.111"
60
60
  },
61
61
  "scripts": {
62
62
  "codegen": "effect-utils codegen",
package/src/BunRedis.ts CHANGED
@@ -12,6 +12,7 @@
12
12
  import { RedisClient, type RedisOptions } from "bun"
13
13
  import * as Config from "effect/Config"
14
14
  import * as Context from "effect/Context"
15
+ import * as Deferred from "effect/Deferred"
15
16
  import * as Effect from "effect/Effect"
16
17
  import * as Fn from "effect/Function"
17
18
  import * as Layer from "effect/Layer"
@@ -49,6 +50,40 @@ const make = Effect.fnUntraced(function*(
49
50
  Effect.tryPromise({
50
51
  try: () => client.send(command, args as Array<string>) as Promise<A>,
51
52
  catch: (cause) => new Redis.RedisError({ cause })
53
+ }),
54
+ subscribe: (channel, onMessage) =>
55
+ Effect.gen(function*() {
56
+ const terminal = yield* Deferred.make<void, Redis.RedisError>()
57
+ yield* Effect.acquireRelease(
58
+ Effect.tryPromise({
59
+ try: async () => {
60
+ const subscriber = new RedisClient(options?.url, {
61
+ ...options,
62
+ autoReconnect: false
63
+ })
64
+ subscriber.onclose = (cause) => {
65
+ Deferred.doneUnsafe(terminal, new Redis.RedisError({ cause }))
66
+ }
67
+ try {
68
+ await subscriber.subscribe(channel, (message, channel) => {
69
+ onMessage({ channel, message })
70
+ })
71
+ return subscriber
72
+ } catch (cause) {
73
+ subscriber.onclose = null
74
+ subscriber.close()
75
+ throw cause
76
+ }
77
+ },
78
+ catch: (cause) => new Redis.RedisError({ cause })
79
+ }),
80
+ (subscriber) =>
81
+ Effect.sync(() => {
82
+ subscriber.onclose = null
83
+ subscriber.close()
84
+ })
85
+ )
86
+ return Deferred.await(terminal)
52
87
  })
53
88
  })
54
89