@effect/platform-node-shared 0.51.0 → 0.51.2

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.
@@ -26,7 +26,8 @@ const layerClientProtocol = exports.layerClientProtocol = /*#__PURE__*/Layer.eff
26
26
  const socket = yield* NodeSocket.makeNet({
27
27
  host: address.host,
28
28
  port: address.port,
29
- timeout: 5500
29
+ timeout: 5500,
30
+ openTimeout: 1000
30
31
  });
31
32
  return yield* RpcClient.makeProtocolSocket().pipe(Effect.provideService(_Socket.Socket, socket), Effect.provideService(RpcSerialization.RpcSerialization, serialization));
32
33
  }, Effect.orDie);
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocketCommon.js","names":["Runners","_interopRequireWildcard","require","_Socket","RpcClient","RpcSerialization","Effect","Layer","NodeSocket","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","layerClientProtocol","exports","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","host","port","timeout","makeProtocolSocket","pipe","provideService","Socket","orDie"],"sources":["../../src/NodeClusterSocketCommon.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,KAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAP,uBAAA,CAAAC,OAAA;AAA6C,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAT7C;;;;AAWA;;;;AAIO,MAAMkB,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,gBAI5BrB,KAAK,CAACuB,MAAM,CACd9B,OAAO,CAAC+B,iBAAiB,eACzBzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAO5B,gBAAgB,CAACA,gBAAgB;EAC9D,OAAOC,MAAM,CAAC4B,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAO5B,UAAU,CAAC6B,OAAO,CAAC;MACvCC,IAAI,EAAEH,OAAO,CAACG,IAAI;MAClBC,IAAI,EAAEJ,OAAO,CAACI,IAAI;MAClBC,OAAO,EAAE;KACV,CAAC;IACF,OAAO,OAAOpC,SAAS,CAACqC,kBAAkB,EAAE,CAACC,IAAI,CAC/CpC,MAAM,CAACqC,cAAc,CAACC,cAAM,EAAER,MAAM,CAAC,EACrC9B,MAAM,CAACqC,cAAc,CAACtC,gBAAgB,CAACA,gBAAgB,EAAE4B,aAAa,CAAC,CACxE;EACH,CAAC,EAAE3B,MAAM,CAACuC,KAAK,CAAC;AAClB,CAAC,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterSocketCommon.js","names":["Runners","_interopRequireWildcard","require","_Socket","RpcClient","RpcSerialization","Effect","Layer","NodeSocket","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","layerClientProtocol","exports","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","host","port","timeout","openTimeout","makeProtocolSocket","pipe","provideService","Socket","orDie"],"sources":["../../src/NodeClusterSocketCommon.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAH,uBAAA,CAAAC,OAAA;AACA,IAAAG,gBAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,KAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,UAAA,GAAAP,uBAAA,CAAAC,OAAA;AAA6C,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAT7C;;;;AAWA;;;;AAIO,MAAMkB,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,gBAI5BrB,KAAK,CAACuB,MAAM,CACd9B,OAAO,CAAC+B,iBAAiB,eACzBzB,MAAM,CAAC0B,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAO5B,gBAAgB,CAACA,gBAAgB;EAC9D,OAAOC,MAAM,CAAC4B,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAO5B,UAAU,CAAC6B,OAAO,CAAC;MACvCC,IAAI,EAAEH,OAAO,CAACG,IAAI;MAClBC,IAAI,EAAEJ,OAAO,CAACI,IAAI;MAClBC,OAAO,EAAE,IAAI;MACbC,WAAW,EAAE;KACd,CAAC;IACF,OAAO,OAAOrC,SAAS,CAACsC,kBAAkB,EAAE,CAACC,IAAI,CAC/CrC,MAAM,CAACsC,cAAc,CAACC,cAAM,EAAET,MAAM,CAAC,EACrC9B,MAAM,CAACsC,cAAc,CAACvC,gBAAgB,CAACA,gBAAgB,EAAE4B,aAAa,CAAC,CACxE;EACH,CAAC,EAAE3B,MAAM,CAACwC,KAAK,CAAC;AAClB,CAAC,CAAC,CACH","ignoreList":[]}
@@ -10,6 +10,7 @@ var Context = _interopRequireWildcard(require("effect/Context"));
10
10
  var Deferred = _interopRequireWildcard(require("effect/Deferred"));
11
11
  var Effect = _interopRequireWildcard(require("effect/Effect"));
12
12
  var FiberSet = _interopRequireWildcard(require("effect/FiberSet"));
13
+ var _Function = require("effect/Function");
13
14
  var Layer = _interopRequireWildcard(require("effect/Layer"));
14
15
  var Scope = _interopRequireWildcard(require("effect/Scope"));
15
16
  var Net = _interopRequireWildcard(require("node:net"));
@@ -28,8 +29,9 @@ const NetSocket = exports.NetSocket = /*#__PURE__*/Context.GenericTag("@effect/p
28
29
  * @category constructors
29
30
  */
30
31
  const makeNet = options => fromDuplex(Effect.scopeWith(scope => {
31
- const conn = Net.createConnection(options);
32
+ let conn;
32
33
  return Effect.flatMap(Scope.addFinalizer(scope, Effect.sync(() => {
34
+ if (!conn) return;
33
35
  if (conn.closed === false) {
34
36
  if ("destroySoon" in conn) {
35
37
  conn.destroySoon();
@@ -40,30 +42,51 @@ const makeNet = options => fromDuplex(Effect.scopeWith(scope => {
40
42
  }
41
43
  conn.removeAllListeners();
42
44
  })), () => Effect.async(resume => {
43
- const onError = cause => resume(Effect.fail(new Socket.SocketGenericError({
44
- reason: "Open",
45
- cause
46
- })));
45
+ conn = Net.createConnection(options);
47
46
  conn.once("connect", () => {
48
- conn.off("error", onError);
49
47
  resume(Effect.succeed(conn));
50
48
  });
51
- conn.on("error", onError);
49
+ conn.on("error", cause => {
50
+ resume(Effect.fail(new Socket.SocketGenericError({
51
+ reason: "Open",
52
+ cause
53
+ })));
54
+ });
52
55
  }));
53
- }));
56
+ }), options);
54
57
  /**
55
58
  * @since 1.0.0
56
59
  * @category constructors
57
60
  */
58
61
  exports.makeNet = makeNet;
59
- const fromDuplex = open => Effect.withFiberRuntime(fiber => {
62
+ const fromDuplex = (open, options) => Effect.withFiberRuntime(fiber => {
60
63
  let currentSocket;
61
64
  const latch = Effect.unsafeMakeLatch(false);
62
65
  const openContext = fiber.currentContext;
63
66
  const run = (handler, opts) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
64
67
  const fiberSet = yield* FiberSet.make().pipe(Scope.extend(scope));
65
- const conn = yield* Scope.extend(open, scope);
68
+ yield* Scope.addFinalizer(scope, Effect.sync(() => {
69
+ conn.off("data", onData);
70
+ conn.off("end", onEnd);
71
+ conn.off("error", onError);
72
+ conn.off("close", onClose);
73
+ }));
74
+ const conn = yield* Scope.extend(open, scope).pipe(options?.openTimeout ? Effect.timeoutFail({
75
+ duration: options.openTimeout,
76
+ onTimeout: () => new Socket.SocketGenericError({
77
+ reason: "Open",
78
+ cause: new Error("Connection timed out")
79
+ })
80
+ }) : _Function.identity);
81
+ conn.on("end", onEnd);
82
+ conn.on("error", onError);
83
+ conn.on("close", onClose);
66
84
  const run = yield* Effect.provideService(FiberSet.runtime(fiberSet)(), NetSocket, conn);
85
+ conn.on("data", onData);
86
+ currentSocket = conn;
87
+ yield* latch.open;
88
+ if (opts?.onOpen) yield* opts.onOpen;
89
+ return yield* FiberSet.join(fiberSet);
67
90
  function onData(chunk) {
68
91
  const result = handler(chunk);
69
92
  if (Effect.isEffect(result)) {
@@ -85,20 +108,6 @@ const fromDuplex = open => Effect.withFiberRuntime(fiber => {
85
108
  code: hadError ? 1006 : 1000
86
109
  })));
87
110
  }
88
- yield* Scope.addFinalizer(scope, Effect.sync(() => {
89
- conn.off("data", onData);
90
- conn.off("end", onEnd);
91
- conn.off("error", onError);
92
- conn.off("close", onClose);
93
- }));
94
- conn.on("data", onData);
95
- conn.on("end", onEnd);
96
- conn.on("error", onError);
97
- conn.on("close", onClose);
98
- currentSocket = conn;
99
- yield* latch.open;
100
- if (opts?.onOpen) yield* opts.onOpen;
101
- return yield* FiberSet.join(fiberSet);
102
111
  })).pipe(Effect.mapInputContext(input => Context.merge(openContext, input)), Effect.ensuring(Effect.sync(() => {
103
112
  latch.unsafeClose();
104
113
  currentSocket = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.js","names":["Socket","_interopRequireWildcard","require","Channel","Context","Deferred","Effect","FiberSet","Layer","Scope","Net","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NetSocket","exports","GenericTag","makeNet","options","fromDuplex","scopeWith","scope","conn","createConnection","flatMap","addFinalizer","sync","closed","destroySoon","destroy","removeAllListeners","async","resume","onError","cause","fail","SocketGenericError","reason","once","off","succeed","on","open","withFiberRuntime","fiber","currentSocket","latch","unsafeMakeLatch","openContext","currentContext","run","handler","opts","scopedWith","fnUntraced","fiberSet","make","pipe","extend","provideService","runtime","onData","chunk","result","isEffect","onEnd","unsafeDone","deferred","void","onClose","hadError","SocketCloseError","code","onOpen","join","mapInputContext","input","merge","ensuring","unsafeClose","undefined","interruptible","write","whenOpen","isCloseEvent","Error","writer","acquireRelease","writableEnded","end","of","TypeId","runRaw","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet","effect"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeSocket.js","names":["Socket","_interopRequireWildcard","require","Channel","Context","Deferred","Effect","FiberSet","_Function","Layer","Scope","Net","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NetSocket","exports","GenericTag","makeNet","options","fromDuplex","scopeWith","scope","conn","flatMap","addFinalizer","sync","closed","destroySoon","destroy","removeAllListeners","async","resume","createConnection","once","succeed","on","cause","fail","SocketGenericError","reason","open","withFiberRuntime","fiber","currentSocket","latch","unsafeMakeLatch","openContext","currentContext","run","handler","opts","scopedWith","fnUntraced","fiberSet","make","pipe","extend","off","onData","onEnd","onError","onClose","openTimeout","timeoutFail","duration","onTimeout","Error","identity","provideService","runtime","onOpen","join","chunk","result","isEffect","unsafeDone","deferred","void","hadError","SocketCloseError","code","mapInputContext","input","merge","ensuring","unsafeClose","undefined","interruptible","write","whenOpen","isCloseEvent","writer","acquireRelease","writableEnded","end","of","TypeId","runRaw","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet","effect"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocketCommon.d.ts","sourceRoot":"","sources":["../../src/NodeClusterSocketCommon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAGlD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAA;AAEhE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAiBlC,CAAA"}
1
+ {"version":3,"file":"NodeClusterSocketCommon.d.ts","sourceRoot":"","sources":["../../src/NodeClusterSocketCommon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAA;AAGlD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAA;AAEhE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAC3C,OAAO,CAAC,iBAAiB,EACzB,KAAK,EACL,gBAAgB,CAAC,gBAAgB,CAkBlC,CAAA"}
@@ -5,6 +5,7 @@ import * as Socket from "@effect/platform/Socket";
5
5
  import * as Channel from "effect/Channel";
6
6
  import type * as Chunk from "effect/Chunk";
7
7
  import * as Context from "effect/Context";
8
+ import type * as Duration from "effect/Duration";
8
9
  import * as Effect from "effect/Effect";
9
10
  import * as Layer from "effect/Layer";
10
11
  import * as Scope from "effect/Scope";
@@ -26,12 +27,16 @@ export declare const NetSocket: Context.Tag<NetSocket, Net.Socket>;
26
27
  * @since 1.0.0
27
28
  * @category constructors
28
29
  */
29
- export declare const makeNet: (options: Net.NetConnectOpts) => Effect.Effect<Socket.Socket, Socket.SocketError>;
30
+ export declare const makeNet: (options: Net.NetConnectOpts & {
31
+ readonly openTimeout?: Duration.DurationInput | undefined;
32
+ }) => Effect.Effect<Socket.Socket, Socket.SocketError>;
30
33
  /**
31
34
  * @since 1.0.0
32
35
  * @category constructors
33
36
  */
34
- export declare const fromDuplex: <RO>(open: Effect.Effect<Duplex, Socket.SocketError, RO>) => Effect.Effect<Socket.Socket, never, Exclude<RO, Scope.Scope>>;
37
+ export declare const fromDuplex: <RO>(open: Effect.Effect<Duplex, Socket.SocketError, RO>, options?: {
38
+ readonly openTimeout?: Duration.DurationInput | undefined;
39
+ }) => Effect.Effect<Socket.Socket, never, Exclude<RO, Scope.Scope>>;
35
40
  /**
36
41
  * @since 1.0.0
37
42
  * @category constructors
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.d.ts","sourceRoot":"","sources":["../../src/NodeSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAExD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,GAAG,CAAC,cAAc,KAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CA8B/C,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,EAAE,EAC3B,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAoG3D,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,GAAG,KAAK,EACvC,SAAS,GAAG,CAAC,cAAc,KAC1B,OAAO,CAAC,OAAO,CAChB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EACvB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EACpD,MAAM,CAAC,WAAW,GAAG,EAAE,EACvB,EAAE,EACF,IAAI,EACJ,OAAO,CAIN,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,GAAG,CAAC,cAAc,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CACrD,CAAA"}
1
+ {"version":3,"file":"NodeSocket.d.ts","sourceRoot":"","sources":["../../src/NodeSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAExD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,SAAS,GAAG,CAAC,cAAc,GAAG;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;CAC1D,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAgC/C,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,EAAE,EAC3B,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EACnD,UAAU;IACR,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAA;CAC1D,KACA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CA8G3D,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,GAAG,KAAK,EACvC,SAAS,GAAG,CAAC,cAAc,KAC1B,OAAO,CAAC,OAAO,CAChB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EACvB,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,EACpD,MAAM,CAAC,WAAW,GAAG,EAAE,EACvB,EAAE,EACF,IAAI,EACJ,OAAO,CAIN,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,SAAS,GAAG,CAAC,cAAc,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CACrD,CAAA"}
@@ -18,7 +18,8 @@ export const layerClientProtocol = /*#__PURE__*/Layer.effect(Runners.RpcClientPr
18
18
  const socket = yield* NodeSocket.makeNet({
19
19
  host: address.host,
20
20
  port: address.port,
21
- timeout: 5500
21
+ timeout: 5500,
22
+ openTimeout: 1000
22
23
  });
23
24
  return yield* RpcClient.makeProtocolSocket().pipe(Effect.provideService(Socket, socket), Effect.provideService(RpcSerialization.RpcSerialization, serialization));
24
25
  }, Effect.orDie);
@@ -1 +1 @@
1
- {"version":3,"file":"NodeClusterSocketCommon.js","names":["Runners","Socket","RpcClient","RpcSerialization","Effect","Layer","NodeSocket","layerClientProtocol","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","host","port","timeout","makeProtocolSocket","pipe","provideService","orDie"],"sources":["../../src/NodeClusterSocketCommon.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,yBAAyB;AAClD,SAASC,MAAM,QAAQ,yBAAyB;AAChD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAClD,OAAO,KAAKC,gBAAgB,MAAM,8BAA8B;AAChE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAI5BF,KAAK,CAACG,MAAM,CACdR,OAAO,CAACS,iBAAiB,eACzBL,MAAM,CAACM,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAOR,gBAAgB,CAACA,gBAAgB;EAC9D,OAAOC,MAAM,CAACQ,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAOR,UAAU,CAACS,OAAO,CAAC;MACvCC,IAAI,EAAEH,OAAO,CAACG,IAAI;MAClBC,IAAI,EAAEJ,OAAO,CAACI,IAAI;MAClBC,OAAO,EAAE;KACV,CAAC;IACF,OAAO,OAAOhB,SAAS,CAACiB,kBAAkB,EAAE,CAACC,IAAI,CAC/ChB,MAAM,CAACiB,cAAc,CAACpB,MAAM,EAAEa,MAAM,CAAC,EACrCV,MAAM,CAACiB,cAAc,CAAClB,gBAAgB,CAACA,gBAAgB,EAAEQ,aAAa,CAAC,CACxE;EACH,CAAC,EAAEP,MAAM,CAACkB,KAAK,CAAC;AAClB,CAAC,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"NodeClusterSocketCommon.js","names":["Runners","Socket","RpcClient","RpcSerialization","Effect","Layer","NodeSocket","layerClientProtocol","effect","RpcClientProtocol","gen","serialization","fnUntraced","address","socket","makeNet","host","port","timeout","openTimeout","makeProtocolSocket","pipe","provideService","orDie"],"sources":["../../src/NodeClusterSocketCommon.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,yBAAyB;AAClD,SAASC,MAAM,QAAQ,yBAAyB;AAChD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAClD,OAAO,KAAKC,gBAAgB,MAAM,8BAA8B;AAChE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAI5BF,KAAK,CAACG,MAAM,CACdR,OAAO,CAACS,iBAAiB,eACzBL,MAAM,CAACM,GAAG,CAAC,aAAS;EAClB,MAAMC,aAAa,GAAG,OAAOR,gBAAgB,CAACA,gBAAgB;EAC9D,OAAOC,MAAM,CAACQ,UAAU,CAAC,WAAUC,OAAO;IACxC,MAAMC,MAAM,GAAG,OAAOR,UAAU,CAACS,OAAO,CAAC;MACvCC,IAAI,EAAEH,OAAO,CAACG,IAAI;MAClBC,IAAI,EAAEJ,OAAO,CAACI,IAAI;MAClBC,OAAO,EAAE,IAAI;MACbC,WAAW,EAAE;KACd,CAAC;IACF,OAAO,OAAOjB,SAAS,CAACkB,kBAAkB,EAAE,CAACC,IAAI,CAC/CjB,MAAM,CAACkB,cAAc,CAACrB,MAAM,EAAEa,MAAM,CAAC,EACrCV,MAAM,CAACkB,cAAc,CAACnB,gBAAgB,CAACA,gBAAgB,EAAEQ,aAAa,CAAC,CACxE;EACH,CAAC,EAAEP,MAAM,CAACmB,KAAK,CAAC;AAClB,CAAC,CAAC,CACH","ignoreList":[]}
@@ -7,6 +7,7 @@ import * as Context from "effect/Context";
7
7
  import * as Deferred from "effect/Deferred";
8
8
  import * as Effect from "effect/Effect";
9
9
  import * as FiberSet from "effect/FiberSet";
10
+ import { identity } from "effect/Function";
10
11
  import * as Layer from "effect/Layer";
11
12
  import * as Scope from "effect/Scope";
12
13
  import * as Net from "node:net";
@@ -20,8 +21,9 @@ export const NetSocket = /*#__PURE__*/Context.GenericTag("@effect/platform-node/
20
21
  * @category constructors
21
22
  */
22
23
  export const makeNet = options => fromDuplex(Effect.scopeWith(scope => {
23
- const conn = Net.createConnection(options);
24
+ let conn;
24
25
  return Effect.flatMap(Scope.addFinalizer(scope, Effect.sync(() => {
26
+ if (!conn) return;
25
27
  if (conn.closed === false) {
26
28
  if ("destroySoon" in conn) {
27
29
  conn.destroySoon();
@@ -32,29 +34,50 @@ export const makeNet = options => fromDuplex(Effect.scopeWith(scope => {
32
34
  }
33
35
  conn.removeAllListeners();
34
36
  })), () => Effect.async(resume => {
35
- const onError = cause => resume(Effect.fail(new Socket.SocketGenericError({
36
- reason: "Open",
37
- cause
38
- })));
37
+ conn = Net.createConnection(options);
39
38
  conn.once("connect", () => {
40
- conn.off("error", onError);
41
39
  resume(Effect.succeed(conn));
42
40
  });
43
- conn.on("error", onError);
41
+ conn.on("error", cause => {
42
+ resume(Effect.fail(new Socket.SocketGenericError({
43
+ reason: "Open",
44
+ cause
45
+ })));
46
+ });
44
47
  }));
45
- }));
48
+ }), options);
46
49
  /**
47
50
  * @since 1.0.0
48
51
  * @category constructors
49
52
  */
50
- export const fromDuplex = open => Effect.withFiberRuntime(fiber => {
53
+ export const fromDuplex = (open, options) => Effect.withFiberRuntime(fiber => {
51
54
  let currentSocket;
52
55
  const latch = Effect.unsafeMakeLatch(false);
53
56
  const openContext = fiber.currentContext;
54
57
  const run = (handler, opts) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
55
58
  const fiberSet = yield* FiberSet.make().pipe(Scope.extend(scope));
56
- const conn = yield* Scope.extend(open, scope);
59
+ yield* Scope.addFinalizer(scope, Effect.sync(() => {
60
+ conn.off("data", onData);
61
+ conn.off("end", onEnd);
62
+ conn.off("error", onError);
63
+ conn.off("close", onClose);
64
+ }));
65
+ const conn = yield* Scope.extend(open, scope).pipe(options?.openTimeout ? Effect.timeoutFail({
66
+ duration: options.openTimeout,
67
+ onTimeout: () => new Socket.SocketGenericError({
68
+ reason: "Open",
69
+ cause: new Error("Connection timed out")
70
+ })
71
+ }) : identity);
72
+ conn.on("end", onEnd);
73
+ conn.on("error", onError);
74
+ conn.on("close", onClose);
57
75
  const run = yield* Effect.provideService(FiberSet.runtime(fiberSet)(), NetSocket, conn);
76
+ conn.on("data", onData);
77
+ currentSocket = conn;
78
+ yield* latch.open;
79
+ if (opts?.onOpen) yield* opts.onOpen;
80
+ return yield* FiberSet.join(fiberSet);
58
81
  function onData(chunk) {
59
82
  const result = handler(chunk);
60
83
  if (Effect.isEffect(result)) {
@@ -76,20 +99,6 @@ export const fromDuplex = open => Effect.withFiberRuntime(fiber => {
76
99
  code: hadError ? 1006 : 1000
77
100
  })));
78
101
  }
79
- yield* Scope.addFinalizer(scope, Effect.sync(() => {
80
- conn.off("data", onData);
81
- conn.off("end", onEnd);
82
- conn.off("error", onError);
83
- conn.off("close", onClose);
84
- }));
85
- conn.on("data", onData);
86
- conn.on("end", onEnd);
87
- conn.on("error", onError);
88
- conn.on("close", onClose);
89
- currentSocket = conn;
90
- yield* latch.open;
91
- if (opts?.onOpen) yield* opts.onOpen;
92
- return yield* FiberSet.join(fiberSet);
93
102
  })).pipe(Effect.mapInputContext(input => Context.merge(openContext, input)), Effect.ensuring(Effect.sync(() => {
94
103
  latch.unsafeClose();
95
104
  currentSocket = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.js","names":["Socket","Channel","Context","Deferred","Effect","FiberSet","Layer","Scope","Net","NetSocket","GenericTag","makeNet","options","fromDuplex","scopeWith","scope","conn","createConnection","flatMap","addFinalizer","sync","closed","destroySoon","destroy","removeAllListeners","async","resume","onError","cause","fail","SocketGenericError","reason","once","off","succeed","on","open","withFiberRuntime","fiber","currentSocket","latch","unsafeMakeLatch","openContext","currentContext","run","handler","opts","scopedWith","fnUntraced","fiberSet","make","pipe","extend","provideService","runtime","onData","chunk","result","isEffect","onEnd","unsafeDone","deferred","void","onClose","hadError","SocketCloseError","code","onOpen","join","mapInputContext","input","merge","ensuring","unsafeClose","undefined","interruptible","write","whenOpen","isCloseEvent","Error","writer","acquireRelease","writableEnded","end","of","TypeId","runRaw","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet","effect"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NodeSocket.js","names":["Socket","Channel","Context","Deferred","Effect","FiberSet","identity","Layer","Scope","Net","NetSocket","GenericTag","makeNet","options","fromDuplex","scopeWith","scope","conn","flatMap","addFinalizer","sync","closed","destroySoon","destroy","removeAllListeners","async","resume","createConnection","once","succeed","on","cause","fail","SocketGenericError","reason","open","withFiberRuntime","fiber","currentSocket","latch","unsafeMakeLatch","openContext","currentContext","run","handler","opts","scopedWith","fnUntraced","fiberSet","make","pipe","extend","off","onData","onEnd","onError","onClose","openTimeout","timeoutFail","duration","onTimeout","Error","provideService","runtime","onOpen","join","chunk","result","isEffect","unsafeDone","deferred","void","hadError","SocketCloseError","code","mapInputContext","input","merge","ensuring","unsafeClose","undefined","interruptible","write","whenOpen","isCloseEvent","writer","acquireRelease","writableEnded","end","of","TypeId","runRaw","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet","effect"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform-node-shared",
3
- "version": "0.51.0",
3
+ "version": "0.51.2",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -16,11 +16,11 @@
16
16
  "ws": "^8.18.2"
17
17
  },
18
18
  "peerDependencies": {
19
- "@effect/cluster": "^0.50.0",
20
- "@effect/platform": "^0.92.0",
19
+ "@effect/cluster": "^0.50.2",
20
+ "@effect/platform": "^0.92.1",
21
21
  "@effect/rpc": "^0.71.0",
22
22
  "@effect/sql": "^0.46.0",
23
- "effect": "^3.18.0"
23
+ "effect": "^3.18.1"
24
24
  },
25
25
  "publishConfig": {
26
26
  "provenance": true
@@ -25,7 +25,8 @@ export const layerClientProtocol: Layer.Layer<
25
25
  const socket = yield* NodeSocket.makeNet({
26
26
  host: address.host,
27
27
  port: address.port,
28
- timeout: 5500
28
+ timeout: 5500,
29
+ openTimeout: 1000
29
30
  })
30
31
  return yield* RpcClient.makeProtocolSocket().pipe(
31
32
  Effect.provideService(Socket, socket),
package/src/NodeSocket.ts CHANGED
@@ -6,8 +6,10 @@ import * as Channel from "effect/Channel"
6
6
  import type * as Chunk from "effect/Chunk"
7
7
  import * as Context from "effect/Context"
8
8
  import * as Deferred from "effect/Deferred"
9
+ import type * as Duration from "effect/Duration"
9
10
  import * as Effect from "effect/Effect"
10
11
  import * as FiberSet from "effect/FiberSet"
12
+ import { identity } from "effect/Function"
11
13
  import * as Layer from "effect/Layer"
12
14
  import * as Scope from "effect/Scope"
13
15
  import * as Net from "node:net"
@@ -34,15 +36,18 @@ export const NetSocket: Context.Tag<NetSocket, Net.Socket> = Context.GenericTag(
34
36
  * @category constructors
35
37
  */
36
38
  export const makeNet = (
37
- options: Net.NetConnectOpts
39
+ options: Net.NetConnectOpts & {
40
+ readonly openTimeout?: Duration.DurationInput | undefined
41
+ }
38
42
  ): Effect.Effect<Socket.Socket, Socket.SocketError> =>
39
43
  fromDuplex(
40
44
  Effect.scopeWith((scope) => {
41
- const conn = Net.createConnection(options)
45
+ let conn: Net.Socket | undefined
42
46
  return Effect.flatMap(
43
47
  Scope.addFinalizer(
44
48
  scope,
45
49
  Effect.sync(() => {
50
+ if (!conn) return
46
51
  if (conn.closed === false) {
47
52
  if ("destroySoon" in conn) {
48
53
  conn.destroySoon()
@@ -55,16 +60,17 @@ export const makeNet = (
55
60
  ),
56
61
  () =>
57
62
  Effect.async<Net.Socket, Socket.SocketError, never>((resume) => {
58
- const onError = (cause: Error) =>
59
- resume(Effect.fail(new Socket.SocketGenericError({ reason: "Open", cause })))
63
+ conn = Net.createConnection(options)
60
64
  conn.once("connect", () => {
61
- conn.off("error", onError)
62
- resume(Effect.succeed(conn))
65
+ resume(Effect.succeed(conn!))
66
+ })
67
+ conn.on("error", (cause) => {
68
+ resume(Effect.fail(new Socket.SocketGenericError({ reason: "Open", cause })))
63
69
  })
64
- conn.on("error", onError)
65
70
  })
66
71
  )
67
- })
72
+ }),
73
+ options
68
74
  )
69
75
 
70
76
  /**
@@ -72,7 +78,10 @@ export const makeNet = (
72
78
  * @category constructors
73
79
  */
74
80
  export const fromDuplex = <RO>(
75
- open: Effect.Effect<Duplex, Socket.SocketError, RO>
81
+ open: Effect.Effect<Duplex, Socket.SocketError, RO>,
82
+ options?: {
83
+ readonly openTimeout?: Duration.DurationInput | undefined
84
+ }
76
85
  ): Effect.Effect<Socket.Socket, never, Exclude<RO, Scope.Scope>> =>
77
86
  Effect.withFiberRuntime<Socket.Socket, never, Exclude<RO, Scope.Scope>>((fiber) => {
78
87
  let currentSocket: Duplex | undefined
@@ -85,8 +94,37 @@ export const fromDuplex = <RO>(
85
94
  const fiberSet = yield* FiberSet.make<any, E | Socket.SocketError>().pipe(
86
95
  Scope.extend(scope)
87
96
  )
88
- const conn = yield* Scope.extend(open, scope)
97
+ yield* Scope.addFinalizer(
98
+ scope,
99
+ Effect.sync(() => {
100
+ conn.off("data", onData)
101
+ conn.off("end", onEnd)
102
+ conn.off("error", onError)
103
+ conn.off("close", onClose)
104
+ })
105
+ )
106
+
107
+ const conn = yield* Scope.extend(open, scope).pipe(
108
+ options?.openTimeout ?
109
+ Effect.timeoutFail({
110
+ duration: options.openTimeout,
111
+ onTimeout: () =>
112
+ new Socket.SocketGenericError({ reason: "Open", cause: new Error("Connection timed out") })
113
+ }) :
114
+ identity
115
+ )
116
+ conn.on("end", onEnd)
117
+ conn.on("error", onError)
118
+ conn.on("close", onClose)
119
+
89
120
  const run = yield* Effect.provideService(FiberSet.runtime(fiberSet)<R>(), NetSocket, conn as Net.Socket)
121
+ conn.on("data", onData)
122
+
123
+ currentSocket = conn
124
+ yield* latch.open
125
+ if (opts?.onOpen) yield* opts.onOpen
126
+
127
+ return yield* FiberSet.join(fiberSet)
90
128
 
91
129
  function onData(chunk: Uint8Array) {
92
130
  const result = handler(chunk)
@@ -114,25 +152,6 @@ export const fromDuplex = <RO>(
114
152
  )
115
153
  )
116
154
  }
117
- yield* Scope.addFinalizer(
118
- scope,
119
- Effect.sync(() => {
120
- conn.off("data", onData)
121
- conn.off("end", onEnd)
122
- conn.off("error", onError)
123
- conn.off("close", onClose)
124
- })
125
- )
126
- conn.on("data", onData)
127
- conn.on("end", onEnd)
128
- conn.on("error", onError)
129
- conn.on("close", onClose)
130
-
131
- currentSocket = conn
132
- yield* latch.open
133
- if (opts?.onOpen) yield* opts.onOpen
134
-
135
- return yield* FiberSet.join(fiberSet)
136
155
  })).pipe(
137
156
  Effect.mapInputContext((input: Context.Context<R>) => Context.merge(openContext, input)),
138
157
  Effect.ensuring(Effect.sync(() => {