@effect/platform-node-shared 0.2.5 → 0.3.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.
@@ -59,7 +59,7 @@ const makeNet = options => fromNetSocket(Effect.acquireRelease(Effect.async(resu
59
59
  resume(Effect.succeed(conn));
60
60
  });
61
61
  conn.on("error", error => {
62
- resume(Effect.fail(new Socket.SocketError({
62
+ resume(Effect.fail(new Socket.SocketGenericError({
63
63
  reason: "Open",
64
64
  error
65
65
  })));
@@ -85,11 +85,13 @@ const fromNetSocket = open => Effect.gen(function* (_) {
85
85
  const fiberSet = yield* _(FiberSet.make());
86
86
  const run = yield* _(FiberSet.runtime(fiberSet)(), Effect.provideService(NetSocket, conn));
87
87
  const writeFiber = yield* _(Queue.take(sendQueue), Effect.tap(chunk => Effect.async(resume => {
88
- if (chunk === EOF) {
88
+ if (Socket.isCloseEvent(chunk)) {
89
+ conn.destroy(chunk.code > 1000 ? new Error(`closed with code ${chunk.code}`) : undefined);
90
+ } else if (chunk === EOF) {
89
91
  conn.end(() => resume(Effect.unit));
90
92
  } else {
91
93
  conn.write(chunk, error => {
92
- resume(error ? Effect.fail(new Socket.SocketError({
94
+ resume(error ? Effect.fail(new Socket.SocketGenericError({
93
95
  reason: "Write",
94
96
  error
95
97
  })) : Effect.unit);
@@ -104,17 +106,23 @@ const fromNetSocket = open => Effect.gen(function* (_) {
104
106
  resume(Effect.unit);
105
107
  });
106
108
  conn.on("error", error => {
107
- resume(Effect.fail(new Socket.SocketError({
109
+ resume(Effect.fail(new Socket.SocketGenericError({
108
110
  reason: "Read",
109
111
  error
110
112
  })));
111
113
  });
114
+ conn.on("close", hadError => {
115
+ resume(Effect.fail(new Socket.SocketCloseError({
116
+ reason: "Close",
117
+ code: hadError ? 1006 : 1000
118
+ })));
119
+ });
112
120
  }), Effect.raceFirst(Fiber.join(writeFiber)), Effect.raceFirst(FiberSet.join(fiberSet)));
113
121
  }).pipe(Effect.scoped);
114
122
  const write = chunk => Queue.offer(sendQueue, chunk);
115
123
  const writer = Effect.acquireRelease(Effect.succeed(write), () => Queue.offer(sendQueue, EOF));
116
124
  return Socket.Socket.of({
117
- [Socket.SocketTypeId]: Socket.SocketTypeId,
125
+ [Socket.TypeId]: Socket.TypeId,
118
126
  run,
119
127
  writer
120
128
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.js","names":["Socket","_interopRequireWildcard","require","Channel","Context","Effect","Fiber","FiberSet","Layer","Queue","Net","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NetSocket","exports","GenericTag","EOF","Symbol","for","makeNet","options","fromNetSocket","acquireRelease","async","resume","conn","createConnection","on","removeAllListeners","succeed","error","fail","SocketError","reason","sync","destroy","closed","destroySoon","open","gen","_","sendQueue","unbounded","run","handler","fiberSet","make","runtime","provideService","writeFiber","take","tap","chunk","end","unit","write","forever","fork","raceFirst","join","pipe","scoped","offer","writer","of","SocketTypeId","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"NodeSocket.js","names":["Socket","_interopRequireWildcard","require","Channel","Context","Effect","Fiber","FiberSet","Layer","Queue","Net","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NetSocket","exports","GenericTag","EOF","Symbol","for","makeNet","options","fromNetSocket","acquireRelease","async","resume","conn","createConnection","on","removeAllListeners","succeed","error","fail","SocketGenericError","reason","sync","destroy","closed","destroySoon","open","gen","_","sendQueue","unbounded","run","handler","fiberSet","make","runtime","provideService","writeFiber","take","tap","chunk","isCloseEvent","code","Error","undefined","end","unit","write","forever","fork","hadError","SocketCloseError","raceFirst","join","pipe","scoped","offer","writer","of","TypeId","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -33,9 +33,10 @@ function _interopRequireWildcard(e, r) {
33
33
  return n.default = e, t && t.set(e, n), n;
34
34
  }
35
35
  /** @internal */
36
- const runMain = (effect, teardown = _Runtime.defaultTeardown) => {
36
+ const runMain = (effect, options) => {
37
+ const teardown = options?.teardown ?? _Runtime.defaultTeardown;
37
38
  const keepAlive = setInterval(() => {}, 2 ** 31 - 1);
38
- const fiber = Effect.runFork(Effect.tapErrorCause(effect, cause => {
39
+ const fiber = Effect.runFork(options?.disableErrorReporting === true ? effect : Effect.tapErrorCause(effect, cause => {
39
40
  if (Cause.isInterruptedOnly(cause)) {
40
41
  return Effect.unit;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","names":["_Runtime","require","Cause","_interopRequireWildcard","Effect","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","runMain","effect","teardown","defaultTeardown","keepAlive","setInterval","fiber","runFork","tapErrorCause","cause","isInterruptedOnly","unit","logError","addObserver","exit","clearInterval","code","process","onSigint","removeListener","unsafeInterruptAsFork","id","once","exports"],"sources":["../../../src/internal/runtime.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","names":["_Runtime","require","Cause","_interopRequireWildcard","Effect","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","runMain","effect","options","teardown","defaultTeardown","keepAlive","setInterval","fiber","runFork","disableErrorReporting","tapErrorCause","cause","isInterruptedOnly","unit","logError","addObserver","exit","clearInterval","code","process","onSigint","removeListener","unsafeInterruptAsFork","id","once","exports"],"sources":["../../../src/internal/runtime.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -36,7 +36,7 @@ export declare const fromNetSocket: (open: Effect.Effect<Net.Socket, Socket.Sock
36
36
  * @since 1.0.0
37
37
  * @category constructors
38
38
  */
39
- export declare const makeNetChannel: <IE = never>(options: Net.NetConnectOpts) => Channel.Channel<Chunk.Chunk<Uint8Array>, Chunk.Chunk<Uint8Array>, Socket.SocketError | IE, IE, void, unknown, never>;
39
+ export declare const makeNetChannel: <IE = never>(options: Net.NetConnectOpts) => Channel.Channel<Chunk.Chunk<Uint8Array>, Chunk.Chunk<Uint8Array | Socket.CloseEvent>, Socket.SocketError | IE, IE, void, unknown, never>;
40
40
  /**
41
41
  * @since 1.0.0
42
42
  * @category layers
@@ -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;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;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;AAID;;;GAGG;AACH,eAAO,MAAM,OAAO,YACT,IAAI,cAAc,KAC1B,aAAa,CAAC,aAAa,EAAE,OAAO,WAAW,EAAE,WAAW,CAwB5D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,SAClB,aAAa,CAAC,UAAU,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC,KAC/D,aAAa,CAAC,aAAa,CAwD1B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,wBAChB,IAAI,cAAc,yHAI1B,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAa,IAAI,cAAc,KAAG,WAAW,CAAC,aAAa,EAAE,OAAO,WAAW,CAIjG,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;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;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;AAGD;;;GAGG;AACH,eAAO,MAAM,OAAO,YACT,IAAI,cAAc,KAC1B,aAAa,CAAC,aAAa,EAAE,OAAO,WAAW,EAAE,WAAW,CAwB5D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,SAClB,aAAa,CAAC,UAAU,EAAE,OAAO,WAAW,EAAE,WAAW,CAAC,KAC/D,aAAa,CAAC,aAAa,CAoE1B,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,cAAc,wBAChB,IAAI,cAAc,6IAW1B,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAa,IAAI,cAAc,KAAG,WAAW,CAAC,aAAa,EAAE,OAAO,WAAW,CAIjG,CAAA"}
@@ -27,7 +27,7 @@ export const makeNet = options => fromNetSocket(Effect.acquireRelease(Effect.asy
27
27
  resume(Effect.succeed(conn));
28
28
  });
29
29
  conn.on("error", error => {
30
- resume(Effect.fail(new Socket.SocketError({
30
+ resume(Effect.fail(new Socket.SocketGenericError({
31
31
  reason: "Open",
32
32
  error
33
33
  })));
@@ -52,11 +52,13 @@ export const fromNetSocket = open => Effect.gen(function* (_) {
52
52
  const fiberSet = yield* _(FiberSet.make());
53
53
  const run = yield* _(FiberSet.runtime(fiberSet)(), Effect.provideService(NetSocket, conn));
54
54
  const writeFiber = yield* _(Queue.take(sendQueue), Effect.tap(chunk => Effect.async(resume => {
55
- if (chunk === EOF) {
55
+ if (Socket.isCloseEvent(chunk)) {
56
+ conn.destroy(chunk.code > 1000 ? new Error(`closed with code ${chunk.code}`) : undefined);
57
+ } else if (chunk === EOF) {
56
58
  conn.end(() => resume(Effect.unit));
57
59
  } else {
58
60
  conn.write(chunk, error => {
59
- resume(error ? Effect.fail(new Socket.SocketError({
61
+ resume(error ? Effect.fail(new Socket.SocketGenericError({
60
62
  reason: "Write",
61
63
  error
62
64
  })) : Effect.unit);
@@ -71,17 +73,23 @@ export const fromNetSocket = open => Effect.gen(function* (_) {
71
73
  resume(Effect.unit);
72
74
  });
73
75
  conn.on("error", error => {
74
- resume(Effect.fail(new Socket.SocketError({
76
+ resume(Effect.fail(new Socket.SocketGenericError({
75
77
  reason: "Read",
76
78
  error
77
79
  })));
78
80
  });
81
+ conn.on("close", hadError => {
82
+ resume(Effect.fail(new Socket.SocketCloseError({
83
+ reason: "Close",
84
+ code: hadError ? 1006 : 1000
85
+ })));
86
+ });
79
87
  }), Effect.raceFirst(Fiber.join(writeFiber)), Effect.raceFirst(FiberSet.join(fiberSet)));
80
88
  }).pipe(Effect.scoped);
81
89
  const write = chunk => Queue.offer(sendQueue, chunk);
82
90
  const writer = Effect.acquireRelease(Effect.succeed(write), () => Queue.offer(sendQueue, EOF));
83
91
  return Socket.Socket.of({
84
- [Socket.SocketTypeId]: Socket.SocketTypeId,
92
+ [Socket.TypeId]: Socket.TypeId,
85
93
  run,
86
94
  writer
87
95
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSocket.js","names":["Socket","Channel","Context","Effect","Fiber","FiberSet","Layer","Queue","Net","NetSocket","GenericTag","EOF","Symbol","for","makeNet","options","fromNetSocket","acquireRelease","async","resume","conn","createConnection","on","removeAllListeners","succeed","error","fail","SocketError","reason","sync","destroy","closed","destroySoon","open","gen","_","sendQueue","unbounded","run","handler","fiberSet","make","runtime","provideService","writeFiber","take","tap","chunk","end","unit","write","forever","fork","raceFirst","join","pipe","scoped","offer","writer","of","SocketTypeId","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"NodeSocket.js","names":["Socket","Channel","Context","Effect","Fiber","FiberSet","Layer","Queue","Net","NetSocket","GenericTag","EOF","Symbol","for","makeNet","options","fromNetSocket","acquireRelease","async","resume","conn","createConnection","on","removeAllListeners","succeed","error","fail","SocketGenericError","reason","sync","destroy","closed","destroySoon","open","gen","_","sendQueue","unbounded","run","handler","fiberSet","make","runtime","provideService","writeFiber","take","tap","chunk","isCloseEvent","code","Error","undefined","end","unit","write","forever","fork","hadError","SocketCloseError","raceFirst","join","pipe","scoped","offer","writer","of","TypeId","makeNetChannel","unwrapScoped","map","toChannelWith","layerNet"],"sources":["../../src/NodeSocket.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -2,9 +2,10 @@ import { defaultTeardown } from "@effect/platform/Runtime";
2
2
  import * as Cause from "effect/Cause";
3
3
  import * as Effect from "effect/Effect";
4
4
  /** @internal */
5
- export const runMain = (effect, teardown = defaultTeardown) => {
5
+ export const runMain = (effect, options) => {
6
+ const teardown = options?.teardown ?? defaultTeardown;
6
7
  const keepAlive = setInterval(() => {}, 2 ** 31 - 1);
7
- const fiber = Effect.runFork(Effect.tapErrorCause(effect, cause => {
8
+ const fiber = Effect.runFork(options?.disableErrorReporting === true ? effect : Effect.tapErrorCause(effect, cause => {
8
9
  if (Cause.isInterruptedOnly(cause)) {
9
10
  return Effect.unit;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","names":["defaultTeardown","Cause","Effect","runMain","effect","teardown","keepAlive","setInterval","fiber","runFork","tapErrorCause","cause","isInterruptedOnly","unit","logError","addObserver","exit","clearInterval","code","process","onSigint","removeListener","unsafeInterruptAsFork","id","once"],"sources":["../../../src/internal/runtime.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAe,QAAsB,0BAA0B;AACxE,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;AACA,OAAO,MAAMC,OAAO,GAAYA,CAC9BC,MAA2B,EAC3BC,QAAQ,GAAGL,eAAe,KACxB;EACF,MAAMM,SAAS,GAAGC,WAAW,CAAC,MAAK,CAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;EAEpD,MAAMC,KAAK,GAAGN,MAAM,CAACO,OAAO,CAC1BP,MAAM,CAACQ,aAAa,CAACN,MAAM,EAAGO,KAAK,IAAI;IACrC,IAAIV,KAAK,CAACW,iBAAiB,CAACD,KAAK,CAAC,EAAE;MAClC,OAAOT,MAAM,CAACW,IAAI;IACpB;IACA,OAAOX,MAAM,CAACY,QAAQ,CAACH,KAAK,CAAC;EAC/B,CAAC,CAAC,CACH;EAEDH,KAAK,CAACO,WAAW,CAAEC,IAAI,IAAI;IACzBC,aAAa,CAACX,SAAS,CAAC;IACxBD,QAAQ,CAACW,IAAI,EAAGE,IAAI,IAAI;MACtBC,OAAO,CAACH,IAAI,CAACE,IAAI,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,SAASE,QAAQA,CAAA;IACfD,OAAO,CAACE,cAAc,CAAC,QAAQ,EAAED,QAAQ,CAAC;IAC1CD,OAAO,CAACE,cAAc,CAAC,SAAS,EAAED,QAAQ,CAAC;IAC3CZ,KAAK,CAACc,qBAAqB,CAACd,KAAK,CAACe,EAAE,EAAE,CAAC;EACzC;EAEAJ,OAAO,CAACK,IAAI,CAAC,QAAQ,EAAEJ,QAAQ,CAAC;EAChCD,OAAO,CAACK,IAAI,CAAC,SAAS,EAAEJ,QAAQ,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"runtime.js","names":["defaultTeardown","Cause","Effect","runMain","effect","options","teardown","keepAlive","setInterval","fiber","runFork","disableErrorReporting","tapErrorCause","cause","isInterruptedOnly","unit","logError","addObserver","exit","clearInterval","code","process","onSigint","removeListener","unsafeInterruptAsFork","id","once"],"sources":["../../../src/internal/runtime.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAe,QAAsB,0BAA0B;AACxE,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;AACA,OAAO,MAAMC,OAAO,GAAYA,CAC9BC,MAAM,EACNC,OAAO,KACL;EACF,MAAMC,QAAQ,GAAGD,OAAO,EAAEC,QAAQ,IAAIN,eAAe;EACrD,MAAMO,SAAS,GAAGC,WAAW,CAAC,MAAK,CAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;EAEpD,MAAMC,KAAK,GAAGP,MAAM,CAACQ,OAAO,CAC1BL,OAAO,EAAEM,qBAAqB,KAAK,IAAI,GACrCP,MAAM,GACNF,MAAM,CAACU,aAAa,CAACR,MAAM,EAAGS,KAAK,IAAI;IACrC,IAAIZ,KAAK,CAACa,iBAAiB,CAACD,KAAK,CAAC,EAAE;MAClC,OAAOX,MAAM,CAACa,IAAI;IACpB;IACA,OAAOb,MAAM,CAACc,QAAQ,CAACH,KAAK,CAAC;EAC/B,CAAC,CAAC,CACL;EAEDJ,KAAK,CAACQ,WAAW,CAAEC,IAAI,IAAI;IACzBC,aAAa,CAACZ,SAAS,CAAC;IACxBD,QAAQ,CAACY,IAAI,EAAGE,IAAI,IAAI;MACtBC,OAAO,CAACH,IAAI,CAACE,IAAI,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,SAASE,QAAQA,CAAA;IACfD,OAAO,CAACE,cAAc,CAAC,QAAQ,EAAED,QAAQ,CAAC;IAC1CD,OAAO,CAACE,cAAc,CAAC,SAAS,EAAED,QAAQ,CAAC;IAC3Cb,KAAK,CAACe,qBAAqB,CAACf,KAAK,CAACgB,EAAE,EAAE,CAAC;EACzC;EAEAJ,OAAO,CAACK,IAAI,CAAC,QAAQ,EAAEJ,QAAQ,CAAC;EAChCD,OAAO,CAACK,IAAI,CAAC,SAAS,EAAEJ,QAAQ,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform-node-shared",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,8 +13,8 @@
13
13
  "multipasta": "^0.1.21"
14
14
  },
15
15
  "peerDependencies": {
16
- "@effect/platform": "^0.47.1",
17
- "effect": "^2.4.3"
16
+ "@effect/platform": "^0.48.0",
17
+ "effect": "^2.4.4"
18
18
  },
19
19
  "exports": {
20
20
  "./package.json": "./package.json",
package/src/NodeSocket.ts CHANGED
@@ -28,7 +28,6 @@ export interface NetSocket {
28
28
  export const NetSocket: Context.Tag<NetSocket, Net.Socket> = Context.GenericTag(
29
29
  "@effect/platform-node/NodeSocket/NetSocket"
30
30
  )
31
-
32
31
  const EOF = Symbol.for("@effect/experimental/Socket/Node/EOF")
33
32
 
34
33
  /**
@@ -47,7 +46,7 @@ export const makeNet = (
47
46
  resume(Effect.succeed(conn))
48
47
  })
49
48
  conn.on("error", (error) => {
50
- resume(Effect.fail(new Socket.SocketError({ reason: "Open", error })))
49
+ resume(Effect.fail(new Socket.SocketGenericError({ reason: "Open", error })))
51
50
  })
52
51
  return Effect.sync(() => {
53
52
  conn.destroy()
@@ -71,7 +70,7 @@ export const fromNetSocket = (
71
70
  open: Effect.Effect<Net.Socket, Socket.SocketError, Scope.Scope>
72
71
  ): Effect.Effect<Socket.Socket> =>
73
72
  Effect.gen(function*(_) {
74
- const sendQueue = yield* _(Queue.unbounded<Uint8Array | typeof EOF>())
73
+ const sendQueue = yield* _(Queue.unbounded<Uint8Array | Socket.CloseEvent | typeof EOF>())
75
74
 
76
75
  const run = <R, E, _>(handler: (_: Uint8Array) => Effect.Effect<_, E, R>) =>
77
76
  Effect.gen(function*(_) {
@@ -85,11 +84,13 @@ export const fromNetSocket = (
85
84
  Queue.take(sendQueue),
86
85
  Effect.tap((chunk) =>
87
86
  Effect.async<void, Socket.SocketError, never>((resume) => {
88
- if (chunk === EOF) {
87
+ if (Socket.isCloseEvent(chunk)) {
88
+ conn.destroy(chunk.code > 1000 ? new Error(`closed with code ${chunk.code}`) : undefined)
89
+ } else if (chunk === EOF) {
89
90
  conn.end(() => resume(Effect.unit))
90
91
  } else {
91
92
  conn.write(chunk, (error) => {
92
- resume(error ? Effect.fail(new Socket.SocketError({ reason: "Write", error })) : Effect.unit)
93
+ resume(error ? Effect.fail(new Socket.SocketGenericError({ reason: "Write", error })) : Effect.unit)
93
94
  })
94
95
  }
95
96
  })
@@ -106,7 +107,17 @@ export const fromNetSocket = (
106
107
  resume(Effect.unit)
107
108
  })
108
109
  conn.on("error", (error) => {
109
- resume(Effect.fail(new Socket.SocketError({ reason: "Read", error })))
110
+ resume(Effect.fail(new Socket.SocketGenericError({ reason: "Read", error })))
111
+ })
112
+ conn.on("close", (hadError) => {
113
+ resume(
114
+ Effect.fail(
115
+ new Socket.SocketCloseError({
116
+ reason: "Close",
117
+ code: hadError ? 1006 : 1000
118
+ })
119
+ )
120
+ )
110
121
  })
111
122
  }),
112
123
  Effect.raceFirst(Fiber.join(writeFiber)),
@@ -114,14 +125,14 @@ export const fromNetSocket = (
114
125
  )
115
126
  }).pipe(Effect.scoped)
116
127
 
117
- const write = (chunk: Uint8Array) => Queue.offer(sendQueue, chunk)
128
+ const write = (chunk: Uint8Array | Socket.CloseEvent) => Queue.offer(sendQueue, chunk)
118
129
  const writer = Effect.acquireRelease(
119
130
  Effect.succeed(write),
120
131
  () => Queue.offer(sendQueue, EOF)
121
132
  )
122
133
 
123
134
  return Socket.Socket.of({
124
- [Socket.SocketTypeId]: Socket.SocketTypeId,
135
+ [Socket.TypeId]: Socket.TypeId,
125
136
  run,
126
137
  writer
127
138
  })
@@ -133,7 +144,14 @@ export const fromNetSocket = (
133
144
  */
134
145
  export const makeNetChannel = <IE = never>(
135
146
  options: Net.NetConnectOpts
136
- ): Channel.Channel<Chunk.Chunk<Uint8Array>, Chunk.Chunk<Uint8Array>, Socket.SocketError | IE, IE, void, unknown> =>
147
+ ): Channel.Channel<
148
+ Chunk.Chunk<Uint8Array>,
149
+ Chunk.Chunk<Uint8Array | Socket.CloseEvent>,
150
+ Socket.SocketError | IE,
151
+ IE,
152
+ void,
153
+ unknown
154
+ > =>
137
155
  Channel.unwrapScoped(
138
156
  Effect.map(makeNet(options), Socket.toChannelWith<IE>())
139
157
  )
@@ -3,19 +3,22 @@ import * as Cause from "effect/Cause"
3
3
  import * as Effect from "effect/Effect"
4
4
 
5
5
  /** @internal */
6
- export const runMain: RunMain = <E, A>(
7
- effect: Effect.Effect<A, E>,
8
- teardown = defaultTeardown
6
+ export const runMain: RunMain = (
7
+ effect,
8
+ options
9
9
  ) => {
10
+ const teardown = options?.teardown ?? defaultTeardown
10
11
  const keepAlive = setInterval(() => {}, 2 ** 31 - 1)
11
12
 
12
13
  const fiber = Effect.runFork(
13
- Effect.tapErrorCause(effect, (cause) => {
14
- if (Cause.isInterruptedOnly(cause)) {
15
- return Effect.unit
16
- }
17
- return Effect.logError(cause)
18
- })
14
+ options?.disableErrorReporting === true ?
15
+ effect :
16
+ Effect.tapErrorCause(effect, (cause) => {
17
+ if (Cause.isInterruptedOnly(cause)) {
18
+ return Effect.unit
19
+ }
20
+ return Effect.logError(cause)
21
+ })
19
22
  )
20
23
 
21
24
  fiber.addObserver((exit) => {