@effect/platform-node-shared 0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49

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.
Files changed (154) hide show
  1. package/Http/Etag/package.json +6 -0
  2. package/Http/Multipart/package.json +6 -0
  3. package/LICENSE +21 -0
  4. package/NodeCommandExecutor/package.json +6 -0
  5. package/NodeFileSystem/package.json +6 -0
  6. package/NodeKeyValueStore/package.json +6 -0
  7. package/NodePath/package.json +6 -0
  8. package/NodeRuntime/package.json +6 -0
  9. package/NodeSink/package.json +6 -0
  10. package/NodeStream/package.json +6 -0
  11. package/NodeTerminal/package.json +6 -0
  12. package/README.md +64 -0
  13. package/dist/cjs/Http/Etag.js +43 -0
  14. package/dist/cjs/Http/Etag.js.map +1 -0
  15. package/dist/cjs/Http/Multipart.js +48 -0
  16. package/dist/cjs/Http/Multipart.js.map +1 -0
  17. package/dist/cjs/NodeCommandExecutor.js +38 -0
  18. package/dist/cjs/NodeCommandExecutor.js.map +1 -0
  19. package/dist/cjs/NodeFileSystem.js +42 -0
  20. package/dist/cjs/NodeFileSystem.js.map +1 -0
  21. package/dist/cjs/NodeKeyValueStore.js +42 -0
  22. package/dist/cjs/NodeKeyValueStore.js.map +1 -0
  23. package/dist/cjs/NodePath.js +52 -0
  24. package/dist/cjs/NodePath.js.map +1 -0
  25. package/dist/cjs/NodeRuntime.js +38 -0
  26. package/dist/cjs/NodeRuntime.js.map +1 -0
  27. package/dist/cjs/NodeSink.js +43 -0
  28. package/dist/cjs/NodeSink.js.map +1 -0
  29. package/dist/cjs/NodeStream.js +68 -0
  30. package/dist/cjs/NodeStream.js.map +1 -0
  31. package/dist/cjs/NodeTerminal.js +43 -0
  32. package/dist/cjs/NodeTerminal.js.map +1 -0
  33. package/dist/cjs/internal/commandExecutor.js +151 -0
  34. package/dist/cjs/internal/commandExecutor.js.map +1 -0
  35. package/dist/cjs/internal/error.js +44 -0
  36. package/dist/cjs/internal/error.js.map +1 -0
  37. package/dist/cjs/internal/fileSystem.js +370 -0
  38. package/dist/cjs/internal/fileSystem.js.map +1 -0
  39. package/dist/cjs/internal/http/etag.js +74 -0
  40. package/dist/cjs/internal/http/etag.js.map +1 -0
  41. package/dist/cjs/internal/http/multipart.js +119 -0
  42. package/dist/cjs/internal/http/multipart.js.map +1 -0
  43. package/dist/cjs/internal/path.js +72 -0
  44. package/dist/cjs/internal/path.js.map +1 -0
  45. package/dist/cjs/internal/runtime.js +59 -0
  46. package/dist/cjs/internal/runtime.js.map +1 -0
  47. package/dist/cjs/internal/sink.js +52 -0
  48. package/dist/cjs/internal/sink.js.map +1 -0
  49. package/dist/cjs/internal/stream.js +208 -0
  50. package/dist/cjs/internal/stream.js.map +1 -0
  51. package/dist/cjs/internal/terminal.js +121 -0
  52. package/dist/cjs/internal/terminal.js.map +1 -0
  53. package/dist/dts/Http/Etag.d.ts +16 -0
  54. package/dist/dts/Http/Etag.d.ts.map +1 -0
  55. package/dist/dts/Http/Multipart.d.ts +29 -0
  56. package/dist/dts/Http/Multipart.d.ts.map +1 -0
  57. package/dist/dts/NodeCommandExecutor.d.ts +12 -0
  58. package/dist/dts/NodeCommandExecutor.d.ts.map +1 -0
  59. package/dist/dts/NodeFileSystem.d.ts +11 -0
  60. package/dist/dts/NodeFileSystem.d.ts.map +1 -0
  61. package/dist/dts/NodeKeyValueStore.d.ts +12 -0
  62. package/dist/dts/NodeKeyValueStore.d.ts.map +1 -0
  63. package/dist/dts/NodePath.d.ts +21 -0
  64. package/dist/dts/NodePath.d.ts.map +1 -0
  65. package/dist/dts/NodeRuntime.d.ts +10 -0
  66. package/dist/dts/NodeRuntime.d.ts.map +1 -0
  67. package/dist/dts/NodeSink.d.ts +22 -0
  68. package/dist/dts/NodeSink.d.ts.map +1 -0
  69. package/dist/dts/NodeStream.d.ts +79 -0
  70. package/dist/dts/NodeStream.d.ts.map +1 -0
  71. package/dist/dts/NodeTerminal.d.ts +18 -0
  72. package/dist/dts/NodeTerminal.d.ts.map +1 -0
  73. package/dist/dts/internal/commandExecutor.d.ts +2 -0
  74. package/dist/dts/internal/commandExecutor.d.ts.map +1 -0
  75. package/dist/dts/internal/error.d.ts +2 -0
  76. package/dist/dts/internal/error.d.ts.map +1 -0
  77. package/dist/dts/internal/fileSystem.d.ts +2 -0
  78. package/dist/dts/internal/fileSystem.d.ts.map +1 -0
  79. package/dist/dts/internal/http/etag.d.ts +2 -0
  80. package/dist/dts/internal/http/etag.d.ts.map +1 -0
  81. package/dist/dts/internal/http/multipart.d.ts +2 -0
  82. package/dist/dts/internal/http/multipart.d.ts.map +1 -0
  83. package/dist/dts/internal/path.d.ts +2 -0
  84. package/dist/dts/internal/path.d.ts.map +1 -0
  85. package/dist/dts/internal/runtime.d.ts +2 -0
  86. package/dist/dts/internal/runtime.d.ts.map +1 -0
  87. package/dist/dts/internal/sink.d.ts +2 -0
  88. package/dist/dts/internal/sink.d.ts.map +1 -0
  89. package/dist/dts/internal/stream.d.ts +2 -0
  90. package/dist/dts/internal/stream.d.ts.map +1 -0
  91. package/dist/dts/internal/terminal.d.ts +2 -0
  92. package/dist/dts/internal/terminal.d.ts.map +1 -0
  93. package/dist/esm/Http/Etag.js +12 -0
  94. package/dist/esm/Http/Etag.js.map +1 -0
  95. package/dist/esm/Http/Multipart.js +17 -0
  96. package/dist/esm/Http/Multipart.js.map +1 -0
  97. package/dist/esm/NodeCommandExecutor.js +7 -0
  98. package/dist/esm/NodeCommandExecutor.js.map +1 -0
  99. package/dist/esm/NodeFileSystem.js +10 -0
  100. package/dist/esm/NodeFileSystem.js.map +1 -0
  101. package/dist/esm/NodeKeyValueStore.js +10 -0
  102. package/dist/esm/NodeKeyValueStore.js.map +1 -0
  103. package/dist/esm/NodePath.js +20 -0
  104. package/dist/esm/NodePath.js.map +1 -0
  105. package/dist/esm/NodeRuntime.js +7 -0
  106. package/dist/esm/NodeRuntime.js.map +1 -0
  107. package/dist/esm/NodeSink.js +12 -0
  108. package/dist/esm/NodeSink.js.map +1 -0
  109. package/dist/esm/NodeStream.js +37 -0
  110. package/dist/esm/NodeStream.js.map +1 -0
  111. package/dist/esm/NodeTerminal.js +12 -0
  112. package/dist/esm/NodeTerminal.js.map +1 -0
  113. package/dist/esm/internal/commandExecutor.js +120 -0
  114. package/dist/esm/internal/commandExecutor.js.map +1 -0
  115. package/dist/esm/internal/error.js +37 -0
  116. package/dist/esm/internal/error.js.map +1 -0
  117. package/dist/esm/internal/fileSystem.js +339 -0
  118. package/dist/esm/internal/fileSystem.js.map +1 -0
  119. package/dist/esm/internal/http/etag.js +43 -0
  120. package/dist/esm/internal/http/etag.js.map +1 -0
  121. package/dist/esm/internal/http/multipart.js +85 -0
  122. package/dist/esm/internal/http/multipart.js.map +1 -0
  123. package/dist/esm/internal/path.js +41 -0
  124. package/dist/esm/internal/path.js.map +1 -0
  125. package/dist/esm/internal/runtime.js +27 -0
  126. package/dist/esm/internal/runtime.js.map +1 -0
  127. package/dist/esm/internal/sink.js +19 -0
  128. package/dist/esm/internal/sink.js.map +1 -0
  129. package/dist/esm/internal/stream.js +170 -0
  130. package/dist/esm/internal/stream.js.map +1 -0
  131. package/dist/esm/internal/terminal.js +89 -0
  132. package/dist/esm/internal/terminal.js.map +1 -0
  133. package/dist/esm/package.json +4 -0
  134. package/package.json +105 -0
  135. package/src/Http/Etag.ts +18 -0
  136. package/src/Http/Multipart.ts +40 -0
  137. package/src/NodeCommandExecutor.ts +13 -0
  138. package/src/NodeFileSystem.ts +13 -0
  139. package/src/NodeKeyValueStore.ts +20 -0
  140. package/src/NodePath.ts +25 -0
  141. package/src/NodeRuntime.ts +11 -0
  142. package/src/NodeSink.ts +30 -0
  143. package/src/NodeStream.ts +109 -0
  144. package/src/NodeTerminal.ts +20 -0
  145. package/src/internal/commandExecutor.ts +203 -0
  146. package/src/internal/error.ts +51 -0
  147. package/src/internal/fileSystem.ts +575 -0
  148. package/src/internal/http/etag.ts +44 -0
  149. package/src/internal/http/multipart.ts +107 -0
  150. package/src/internal/path.ts +58 -0
  151. package/src/internal/runtime.ts +36 -0
  152. package/src/internal/sink.ts +57 -0
  153. package/src/internal/stream.ts +325 -0
  154. package/src/internal/terminal.ts +123 -0
@@ -0,0 +1,339 @@
1
+ import { effectify } from "@effect/platform/Effectify";
2
+ import * as Error from "@effect/platform/Error";
3
+ import * as FileSystem from "@effect/platform/FileSystem";
4
+ import * as Effect from "effect/Effect";
5
+ import { pipe } from "effect/Function";
6
+ import * as Layer from "effect/Layer";
7
+ import * as Option from "effect/Option";
8
+ import * as Crypto from "node:crypto";
9
+ import * as NFS from "node:fs";
10
+ import * as OS from "node:os";
11
+ import * as Path from "node:path";
12
+ import { handleErrnoException } from "./error.js";
13
+ const handleBadArgument = method => err => Error.BadArgument({
14
+ module: "FileSystem",
15
+ method,
16
+ message: err.message ?? String(err)
17
+ });
18
+ // == access
19
+ const access = /*#__PURE__*/(() => {
20
+ const nodeAccess = /*#__PURE__*/effectify(NFS.access, /*#__PURE__*/handleErrnoException("FileSystem", "access"), /*#__PURE__*/handleBadArgument("access"));
21
+ return (path, options) => {
22
+ let mode = NFS.constants.F_OK;
23
+ if (options?.readable) {
24
+ mode |= NFS.constants.R_OK;
25
+ }
26
+ if (options?.writable) {
27
+ mode |= NFS.constants.W_OK;
28
+ }
29
+ return nodeAccess(path, mode);
30
+ };
31
+ })();
32
+ // == copy
33
+ const copy = /*#__PURE__*/(() => {
34
+ const nodeCp = /*#__PURE__*/effectify(NFS.cp, /*#__PURE__*/handleErrnoException("FileSystem", "copy"), /*#__PURE__*/handleBadArgument("copy"));
35
+ return (fromPath, toPath, options) => nodeCp(fromPath, toPath, {
36
+ force: options?.overwrite ?? false,
37
+ preserveTimestamps: options?.preserveTimestamps ?? false,
38
+ recursive: true
39
+ });
40
+ })();
41
+ // == copyFile
42
+ const copyFile = /*#__PURE__*/(() => {
43
+ const nodeCopyFile = /*#__PURE__*/effectify(NFS.copyFile, /*#__PURE__*/handleErrnoException("FileSystem", "copyFile"), /*#__PURE__*/handleBadArgument("copyFile"));
44
+ return (fromPath, toPath) => nodeCopyFile(fromPath, toPath);
45
+ })();
46
+ // == chmod
47
+ const chmod = /*#__PURE__*/(() => {
48
+ const nodeChmod = /*#__PURE__*/effectify(NFS.chmod, /*#__PURE__*/handleErrnoException("FileSystem", "chmod"), /*#__PURE__*/handleBadArgument("chmod"));
49
+ return (path, mode) => nodeChmod(path, mode);
50
+ })();
51
+ // == chown
52
+ const chown = /*#__PURE__*/(() => {
53
+ const nodeChown = /*#__PURE__*/effectify(NFS.chown, /*#__PURE__*/handleErrnoException("FileSystem", "chown"), /*#__PURE__*/handleBadArgument("chown"));
54
+ return (path, uid, gid) => nodeChown(path, uid, gid);
55
+ })();
56
+ // == link
57
+ const link = /*#__PURE__*/(() => {
58
+ const nodeLink = /*#__PURE__*/effectify(NFS.link, /*#__PURE__*/handleErrnoException("FileSystem", "link"), /*#__PURE__*/handleBadArgument("link"));
59
+ return (existingPath, newPath) => nodeLink(existingPath, newPath);
60
+ })();
61
+ // == makeDirectory
62
+ const makeDirectory = /*#__PURE__*/(() => {
63
+ const nodeMkdir = /*#__PURE__*/effectify(NFS.mkdir, /*#__PURE__*/handleErrnoException("FileSystem", "makeDirectory"), /*#__PURE__*/handleBadArgument("makeDirectory"));
64
+ return (path, options) => nodeMkdir(path, {
65
+ recursive: options?.recursive ?? false,
66
+ mode: options?.mode
67
+ });
68
+ })();
69
+ // == makeTempDirectory
70
+ const makeTempDirectoryFactory = method => {
71
+ const nodeMkdtemp = effectify(NFS.mkdtemp, handleErrnoException("FileSystem", method), handleBadArgument(method));
72
+ return options => Effect.suspend(() => {
73
+ const prefix = options?.prefix ?? "";
74
+ const directory = typeof options?.directory === "string" ? Path.join(options.directory, ".") : OS.tmpdir();
75
+ return nodeMkdtemp(prefix ? Path.join(directory, prefix) : directory + "/");
76
+ });
77
+ };
78
+ const makeTempDirectory = /*#__PURE__*/makeTempDirectoryFactory("makeTempDirectory");
79
+ // == remove
80
+ const removeFactory = method => {
81
+ const nodeRm = effectify(NFS.rm, handleErrnoException("FileSystem", method), handleBadArgument(method));
82
+ return (path, options) => nodeRm(path, {
83
+ recursive: options?.recursive ?? false
84
+ });
85
+ };
86
+ const remove = /*#__PURE__*/removeFactory("remove");
87
+ // == makeTempDirectoryScoped
88
+ const makeTempDirectoryScoped = /*#__PURE__*/(() => {
89
+ const makeDirectory = /*#__PURE__*/makeTempDirectoryFactory("makeTempDirectoryScoped");
90
+ const removeDirectory = /*#__PURE__*/removeFactory("makeTempDirectoryScoped");
91
+ return options => Effect.acquireRelease(makeDirectory(options), directory => Effect.orDie(removeDirectory(directory, {
92
+ recursive: true
93
+ })));
94
+ })();
95
+ // == open
96
+ const openFactory = method => {
97
+ const nodeOpen = effectify(NFS.open, handleErrnoException("FileSystem", method), handleBadArgument(method));
98
+ const nodeClose = effectify(NFS.close, handleErrnoException("FileSystem", method), handleBadArgument(method));
99
+ return (path, options) => pipe(Effect.acquireRelease(nodeOpen(path, options?.flag ?? "r", options?.mode), fd => Effect.orDie(nodeClose(fd))), Effect.map(fd => makeFile(FileSystem.FileDescriptor(fd), options?.flag?.startsWith("a") ?? false)));
100
+ };
101
+ const open = /*#__PURE__*/openFactory("open");
102
+ const makeFile = /*#__PURE__*/(() => {
103
+ const nodeReadFactory = method => effectify(NFS.read, handleErrnoException("FileSystem", method), handleBadArgument(method));
104
+ const nodeRead = /*#__PURE__*/nodeReadFactory("read");
105
+ const nodeReadAlloc = /*#__PURE__*/nodeReadFactory("readAlloc");
106
+ const nodeStat = /*#__PURE__*/effectify(NFS.fstat, /*#__PURE__*/handleErrnoException("FileSystem", "stat"), /*#__PURE__*/handleBadArgument("stat"));
107
+ const nodeTruncate = /*#__PURE__*/effectify(NFS.ftruncate, /*#__PURE__*/handleErrnoException("FileSystem", "truncate"), /*#__PURE__*/handleBadArgument("truncate"));
108
+ const nodeWriteFactory = method => effectify(NFS.write, handleErrnoException("FileSystem", method), handleBadArgument(method));
109
+ const nodeWrite = /*#__PURE__*/nodeWriteFactory("write");
110
+ const nodeWriteAll = /*#__PURE__*/nodeWriteFactory("writeAll");
111
+ class FileImpl {
112
+ fd;
113
+ append;
114
+ [FileSystem.FileTypeId];
115
+ semaphore = Effect.unsafeMakeSemaphore(1);
116
+ position = 0n;
117
+ constructor(fd, append) {
118
+ this.fd = fd;
119
+ this.append = append;
120
+ this[FileSystem.FileTypeId] = FileSystem.FileTypeId;
121
+ }
122
+ get stat() {
123
+ return Effect.map(nodeStat(this.fd), makeFileInfo);
124
+ }
125
+ seek(offset, from) {
126
+ const offsetSize = FileSystem.Size(offset);
127
+ return this.semaphore.withPermits(1)(Effect.sync(() => {
128
+ if (from === "start") {
129
+ this.position = offsetSize;
130
+ } else if (from === "current") {
131
+ this.position = this.position + offsetSize;
132
+ }
133
+ return this.position;
134
+ }));
135
+ }
136
+ read(buffer) {
137
+ return this.semaphore.withPermits(1)(Effect.map(Effect.suspend(() => nodeRead(this.fd, {
138
+ buffer,
139
+ position: this.position
140
+ })), bytesRead => {
141
+ const sizeRead = FileSystem.Size(bytesRead);
142
+ this.position = this.position + sizeRead;
143
+ return sizeRead;
144
+ }));
145
+ }
146
+ readAlloc(size) {
147
+ const sizeNumber = Number(size);
148
+ return this.semaphore.withPermits(1)(Effect.flatMap(Effect.sync(() => Buffer.allocUnsafeSlow(sizeNumber)), buffer => Effect.map(nodeReadAlloc(this.fd, {
149
+ buffer,
150
+ position: this.position
151
+ }), bytesRead => {
152
+ if (bytesRead === 0) {
153
+ return Option.none();
154
+ }
155
+ this.position = this.position + BigInt(bytesRead);
156
+ if (bytesRead === sizeNumber) {
157
+ return Option.some(buffer);
158
+ }
159
+ const dst = Buffer.allocUnsafeSlow(bytesRead);
160
+ buffer.copy(dst, 0, 0, bytesRead);
161
+ return Option.some(dst);
162
+ })));
163
+ }
164
+ truncate(length) {
165
+ return this.semaphore.withPermits(1)(Effect.map(nodeTruncate(this.fd, length ? Number(length) : undefined), () => {
166
+ if (!this.append) {
167
+ const len = BigInt(length ?? 0);
168
+ if (this.position > len) {
169
+ this.position = len;
170
+ }
171
+ }
172
+ }));
173
+ }
174
+ write(buffer) {
175
+ return this.semaphore.withPermits(1)(Effect.map(Effect.suspend(() => nodeWrite(this.fd, buffer, undefined, undefined, this.append ? undefined : Number(this.position))), bytesWritten => {
176
+ const sizeWritten = FileSystem.Size(bytesWritten);
177
+ if (!this.append) {
178
+ this.position = this.position + sizeWritten;
179
+ }
180
+ return sizeWritten;
181
+ }));
182
+ }
183
+ writeAllChunk(buffer) {
184
+ return Effect.flatMap(Effect.suspend(() => nodeWriteAll(this.fd, buffer, undefined, undefined, this.append ? undefined : Number(this.position))), bytesWritten => {
185
+ if (bytesWritten === 0) {
186
+ return Effect.fail(Error.SystemError({
187
+ module: "FileSystem",
188
+ method: "writeAll",
189
+ reason: "WriteZero",
190
+ pathOrDescriptor: this.fd,
191
+ message: "write returned 0 bytes written"
192
+ }));
193
+ }
194
+ if (!this.append) {
195
+ this.position = this.position + BigInt(bytesWritten);
196
+ }
197
+ return bytesWritten < buffer.length ? this.writeAllChunk(buffer.subarray(bytesWritten)) : Effect.unit;
198
+ });
199
+ }
200
+ writeAll(buffer) {
201
+ return this.semaphore.withPermits(1)(this.writeAllChunk(buffer));
202
+ }
203
+ }
204
+ return (fd, append) => new FileImpl(fd, append);
205
+ })();
206
+ // == makeTempFile
207
+ const makeTempFileFactory = method => {
208
+ const makeDirectory = makeTempDirectoryFactory(method);
209
+ const open = openFactory(method);
210
+ const randomHexString = bytes => Effect.sync(() => Crypto.randomBytes(bytes).toString("hex"));
211
+ return options => pipe(Effect.zip(makeDirectory(options), randomHexString(6)), Effect.map(([directory, random]) => Path.join(directory, random)), Effect.tap(path => Effect.scoped(open(path, {
212
+ flag: "w+"
213
+ }))));
214
+ };
215
+ const makeTempFile = /*#__PURE__*/makeTempFileFactory("makeTempFile");
216
+ // == makeTempFileScoped
217
+ const makeTempFileScoped = /*#__PURE__*/(() => {
218
+ const makeFile = /*#__PURE__*/makeTempFileFactory("makeTempFileScoped");
219
+ const removeFile = /*#__PURE__*/removeFactory("makeTempFileScoped");
220
+ return options => Effect.acquireRelease(makeFile(options), file => Effect.orDie(removeFile(file)));
221
+ })();
222
+ // == readDirectory
223
+ const readDirectory = /*#__PURE__*/(() => {
224
+ const nodeReadDirectory = /*#__PURE__*/effectify(NFS.readdir, /*#__PURE__*/handleErrnoException("FileSystem", "readDirectory"), /*#__PURE__*/handleBadArgument("readDirectory"));
225
+ return (path, options) => nodeReadDirectory(path, options);
226
+ })();
227
+ // == readFile
228
+ const readFile = path => Effect.async((resume, signal) => {
229
+ try {
230
+ NFS.readFile(path, {
231
+ signal
232
+ }, (err, data) => {
233
+ if (err) {
234
+ resume(Effect.fail(handleErrnoException("FileSystem", "readFile")(err, [path])));
235
+ } else {
236
+ resume(Effect.succeed(data));
237
+ }
238
+ });
239
+ } catch (err) {
240
+ resume(Effect.fail(handleBadArgument("readFile")(err)));
241
+ }
242
+ });
243
+ // == readLink
244
+ const readLink = /*#__PURE__*/(() => {
245
+ const nodeReadLink = /*#__PURE__*/effectify(NFS.readlink, /*#__PURE__*/handleErrnoException("FileSystem", "readLink"), /*#__PURE__*/handleBadArgument("readLink"));
246
+ return path => nodeReadLink(path);
247
+ })();
248
+ // == realPath
249
+ const realPath = /*#__PURE__*/(() => {
250
+ const nodeRealPath = /*#__PURE__*/effectify(NFS.realpath, /*#__PURE__*/handleErrnoException("FileSystem", "realPath"), /*#__PURE__*/handleBadArgument("realPath"));
251
+ return path => nodeRealPath(path);
252
+ })();
253
+ // == rename
254
+ const rename = /*#__PURE__*/(() => {
255
+ const nodeRename = /*#__PURE__*/effectify(NFS.rename, /*#__PURE__*/handleErrnoException("FileSystem", "rename"), /*#__PURE__*/handleBadArgument("rename"));
256
+ return (oldPath, newPath) => nodeRename(oldPath, newPath);
257
+ })();
258
+ // == stat
259
+ const makeFileInfo = stat => ({
260
+ type: stat.isFile() ? "File" : stat.isDirectory() ? "Directory" : stat.isSymbolicLink() ? "SymbolicLink" : stat.isBlockDevice() ? "BlockDevice" : stat.isCharacterDevice() ? "CharacterDevice" : stat.isFIFO() ? "FIFO" : stat.isSocket() ? "Socket" : "Unknown",
261
+ mtime: Option.fromNullable(stat.mtime),
262
+ atime: Option.fromNullable(stat.atime),
263
+ birthtime: Option.fromNullable(stat.birthtime),
264
+ dev: stat.dev,
265
+ rdev: Option.fromNullable(stat.rdev),
266
+ ino: Option.fromNullable(stat.ino),
267
+ mode: stat.mode,
268
+ nlink: Option.fromNullable(stat.nlink),
269
+ uid: Option.fromNullable(stat.uid),
270
+ gid: Option.fromNullable(stat.gid),
271
+ size: FileSystem.Size(stat.size),
272
+ blksize: Option.fromNullable(FileSystem.Size(stat.blksize)),
273
+ blocks: Option.fromNullable(stat.blocks)
274
+ });
275
+ const stat = /*#__PURE__*/(() => {
276
+ const nodeStat = /*#__PURE__*/effectify(NFS.stat, /*#__PURE__*/handleErrnoException("FileSystem", "stat"), /*#__PURE__*/handleBadArgument("stat"));
277
+ return path => Effect.map(nodeStat(path), makeFileInfo);
278
+ })();
279
+ // == symlink
280
+ const symlink = /*#__PURE__*/(() => {
281
+ const nodeSymlink = /*#__PURE__*/effectify(NFS.symlink, /*#__PURE__*/handleErrnoException("FileSystem", "symlink"), /*#__PURE__*/handleBadArgument("symlink"));
282
+ return (target, path) => nodeSymlink(target, path);
283
+ })();
284
+ // == truncate
285
+ const truncate = /*#__PURE__*/(() => {
286
+ const nodeTruncate = /*#__PURE__*/effectify(NFS.truncate, /*#__PURE__*/handleErrnoException("FileSystem", "truncate"), /*#__PURE__*/handleBadArgument("truncate"));
287
+ return (path, length) => nodeTruncate(path, length !== undefined ? Number(length) : undefined);
288
+ })();
289
+ // == utimes
290
+ const utimes = /*#__PURE__*/(() => {
291
+ const nodeUtimes = /*#__PURE__*/effectify(NFS.utimes, /*#__PURE__*/handleErrnoException("FileSystem", "utime"), /*#__PURE__*/handleBadArgument("utime"));
292
+ return (path, atime, mtime) => nodeUtimes(path, atime, mtime);
293
+ })();
294
+ // == writeFile
295
+ const writeFile = (path, data, options) => Effect.async((resume, signal) => {
296
+ try {
297
+ NFS.writeFile(path, data, {
298
+ signal,
299
+ flag: options?.flag,
300
+ mode: options?.mode
301
+ }, err => {
302
+ if (err) {
303
+ resume(Effect.fail(handleErrnoException("FileSystem", "writeFile")(err, [path])));
304
+ } else {
305
+ resume(Effect.unit);
306
+ }
307
+ });
308
+ } catch (err) {
309
+ resume(Effect.fail(handleBadArgument("writeFile")(err)));
310
+ }
311
+ });
312
+ const fileSystemImpl = /*#__PURE__*/FileSystem.make({
313
+ access,
314
+ chmod,
315
+ chown,
316
+ copy,
317
+ copyFile,
318
+ link,
319
+ makeDirectory,
320
+ makeTempDirectory,
321
+ makeTempDirectoryScoped,
322
+ makeTempFile,
323
+ makeTempFileScoped,
324
+ open,
325
+ readDirectory,
326
+ readFile,
327
+ readLink,
328
+ realPath,
329
+ remove,
330
+ rename,
331
+ stat,
332
+ symlink,
333
+ truncate,
334
+ utimes,
335
+ writeFile
336
+ });
337
+ /** @internal */
338
+ export const layer = /*#__PURE__*/Layer.succeed(FileSystem.FileSystem, fileSystemImpl);
339
+ //# sourceMappingURL=fileSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystem.js","names":["effectify","Error","FileSystem","Effect","pipe","Layer","Option","Crypto","NFS","OS","Path","handleErrnoException","handleBadArgument","method","err","BadArgument","module","message","String","access","nodeAccess","path","options","mode","constants","F_OK","readable","R_OK","writable","W_OK","copy","nodeCp","cp","fromPath","toPath","force","overwrite","preserveTimestamps","recursive","copyFile","nodeCopyFile","chmod","nodeChmod","chown","nodeChown","uid","gid","link","nodeLink","existingPath","newPath","makeDirectory","nodeMkdir","mkdir","makeTempDirectoryFactory","nodeMkdtemp","mkdtemp","suspend","prefix","directory","join","tmpdir","makeTempDirectory","removeFactory","nodeRm","rm","remove","makeTempDirectoryScoped","removeDirectory","acquireRelease","orDie","openFactory","nodeOpen","open","nodeClose","close","flag","fd","map","makeFile","FileDescriptor","startsWith","nodeReadFactory","read","nodeRead","nodeReadAlloc","nodeStat","fstat","nodeTruncate","ftruncate","nodeWriteFactory","write","nodeWrite","nodeWriteAll","FileImpl","append","FileTypeId","semaphore","unsafeMakeSemaphore","position","constructor","stat","makeFileInfo","seek","offset","from","offsetSize","Size","withPermits","sync","buffer","bytesRead","sizeRead","readAlloc","size","sizeNumber","Number","flatMap","Buffer","allocUnsafeSlow","none","BigInt","some","dst","truncate","length","undefined","len","bytesWritten","sizeWritten","writeAllChunk","fail","SystemError","reason","pathOrDescriptor","subarray","unit","writeAll","makeTempFileFactory","randomHexString","bytes","randomBytes","toString","zip","random","tap","scoped","makeTempFile","makeTempFileScoped","removeFile","file","readDirectory","nodeReadDirectory","readdir","readFile","async","resume","signal","data","succeed","readLink","nodeReadLink","readlink","realPath","nodeRealPath","realpath","rename","nodeRename","oldPath","type","isFile","isDirectory","isSymbolicLink","isBlockDevice","isCharacterDevice","isFIFO","isSocket","mtime","fromNullable","atime","birthtime","dev","rdev","ino","nlink","blksize","blocks","symlink","nodeSymlink","target","utimes","nodeUtimes","writeFile","fileSystemImpl","make","layer"],"sources":["../../../src/internal/fileSystem.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import * as Etag from "@effect/platform/Http/Etag";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ const fromFileInfo = info => {
5
+ const mtime = info.mtime._tag === "Some" ? info.mtime.value.getTime().toString(16) : "0";
6
+ return `${info.size.toString(16)}-${mtime}`;
7
+ };
8
+ const fromFileWeb = file => {
9
+ return `${file.size.toString(16)}-${file.lastModified.toString(16)}`;
10
+ };
11
+ /** @internal */
12
+ export const layer = /*#__PURE__*/Layer.succeed(Etag.Generator, /*#__PURE__*/Etag.Generator.of({
13
+ [Etag.GeneratorTypeId]: Etag.GeneratorTypeId,
14
+ fromFileInfo(info) {
15
+ return Effect.sync(() => ({
16
+ _tag: "Strong",
17
+ value: fromFileInfo(info)
18
+ }));
19
+ },
20
+ fromFileWeb(file) {
21
+ return Effect.sync(() => ({
22
+ _tag: "Strong",
23
+ value: fromFileWeb(file)
24
+ }));
25
+ }
26
+ }));
27
+ /** @internal */
28
+ export const layerWeak = /*#__PURE__*/Layer.succeed(Etag.Generator, /*#__PURE__*/Etag.Generator.of({
29
+ [Etag.GeneratorTypeId]: Etag.GeneratorTypeId,
30
+ fromFileInfo(info) {
31
+ return Effect.sync(() => ({
32
+ _tag: "Weak",
33
+ value: fromFileInfo(info)
34
+ }));
35
+ },
36
+ fromFileWeb(file) {
37
+ return Effect.sync(() => ({
38
+ _tag: "Weak",
39
+ value: fromFileWeb(file)
40
+ }));
41
+ }
42
+ }));
43
+ //# sourceMappingURL=etag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag.js","names":["Etag","Effect","Layer","fromFileInfo","info","mtime","_tag","value","getTime","toString","size","fromFileWeb","file","lastModified","layer","succeed","Generator","of","GeneratorTypeId","sync","layerWeak"],"sources":["../../../../src/internal/http/etag.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,KAAKA,IAAI,MAAM,4BAA4B;AAClD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,MAAMC,YAAY,GAAIC,IAA0B,IAAI;EAClD,MAAMC,KAAK,GAAGD,IAAI,CAACC,KAAK,CAACC,IAAI,KAAK,MAAM,GACpCF,IAAI,CAACC,KAAK,CAACE,KAAK,CAACC,OAAO,EAAE,CAACC,QAAQ,CAAC,EAAE,CAAC,GACvC,GAAG;EACP,OAAO,GAAGL,IAAI,CAACM,IAAI,CAACD,QAAQ,CAAC,EAAE,CAAC,IAAIJ,KAAK,EAAE;AAC7C,CAAC;AAED,MAAMM,WAAW,GAAIC,IAAwB,IAAI;EAC/C,OAAO,GAAGA,IAAI,CAACF,IAAI,CAACD,QAAQ,CAAC,EAAE,CAAC,IAAIG,IAAI,CAACC,YAAY,CAACJ,QAAQ,CAAC,EAAE,CAAC,EAAE;AACtE,CAAC;AAED;AACA,OAAO,MAAMK,KAAK,gBAAGZ,KAAK,CAACa,OAAO,CAChCf,IAAI,CAACgB,SAAS,eACdhB,IAAI,CAACgB,SAAS,CAACC,EAAE,CAAC;EAChB,CAACjB,IAAI,CAACkB,eAAe,GAAGlB,IAAI,CAACkB,eAAe;EAC5Cf,YAAYA,CAACC,IAAI;IACf,OAAOH,MAAM,CAACkB,IAAI,CAAC,OAAO;MAAEb,IAAI,EAAE,QAAQ;MAAEC,KAAK,EAAEJ,YAAY,CAACC,IAAI;IAAC,CAAE,CAAC,CAAC;EAC3E,CAAC;EACDO,WAAWA,CAACC,IAAI;IACd,OAAOX,MAAM,CAACkB,IAAI,CAAC,OAAO;MAAEb,IAAI,EAAE,QAAQ;MAAEC,KAAK,EAAEI,WAAW,CAACC,IAAI;IAAC,CAAE,CAAC,CAAC;EAC1E;CACD,CAAC,CACH;AAED;AACA,OAAO,MAAMQ,SAAS,gBAAGlB,KAAK,CAACa,OAAO,CACpCf,IAAI,CAACgB,SAAS,eACdhB,IAAI,CAACgB,SAAS,CAACC,EAAE,CAAC;EAChB,CAACjB,IAAI,CAACkB,eAAe,GAAGlB,IAAI,CAACkB,eAAe;EAC5Cf,YAAYA,CAACC,IAAI;IACf,OAAOH,MAAM,CAACkB,IAAI,CAAC,OAAO;MAAEb,IAAI,EAAE,MAAM;MAAEC,KAAK,EAAEJ,YAAY,CAACC,IAAI;IAAC,CAAE,CAAC,CAAC;EACzE,CAAC;EACDO,WAAWA,CAACC,IAAI;IACd,OAAOX,MAAM,CAACkB,IAAI,CAAC,OAAO;MAAEb,IAAI,EAAE,MAAM;MAAEC,KAAK,EAAEI,WAAW,CAACC,IAAI;IAAC,CAAE,CAAC,CAAC;EACxE;CACD,CAAC,CACH"}
@@ -0,0 +1,85 @@
1
+ import * as Multipart from "@effect/platform/Http/Multipart";
2
+ import * as Effect from "effect/Effect";
3
+ import { pipe } from "effect/Function";
4
+ import * as Stream from "effect/Stream";
5
+ import { decodeField } from "multipasta";
6
+ import * as MP from "multipasta/node";
7
+ import * as NFS from "node:fs";
8
+ import * as NodeStreamP from "node:stream/promises";
9
+ import * as NodeStream from "../stream.js";
10
+ /** @internal */
11
+ export const stream = (source, headers) => pipe(Multipart.makeConfig(headers), Effect.map(config => NodeStream.fromReadable(() => {
12
+ const parser = MP.make(config);
13
+ source.pipe(parser);
14
+ return parser;
15
+ }, error => convertError(error))), Stream.unwrap, Stream.map(convertPart));
16
+ /** @internal */
17
+ export const persisted = (source, headers) => Multipart.toPersisted(stream(source, headers), (path, file) => Effect.tryPromise({
18
+ try: signal => NodeStreamP.pipeline(file.file, NFS.createWriteStream(path), {
19
+ signal
20
+ }),
21
+ catch: error => Multipart.MultipartError("InternalError", error)
22
+ }));
23
+ const convertPart = part => part._tag === "Field" ? new FieldImpl(part.info, part.value) : new FileImpl(part);
24
+ class FieldImpl {
25
+ [Multipart.TypeId];
26
+ _tag = "Field";
27
+ key;
28
+ contentType;
29
+ value;
30
+ constructor(info, value) {
31
+ this[Multipart.TypeId] = Multipart.TypeId;
32
+ this.key = info.name;
33
+ this.contentType = info.contentType;
34
+ this.value = decodeField(info, value);
35
+ }
36
+ }
37
+ class FileImpl {
38
+ file;
39
+ _tag = "File";
40
+ [Multipart.TypeId];
41
+ key;
42
+ name;
43
+ contentType;
44
+ content;
45
+ constructor(file) {
46
+ this.file = file;
47
+ this[Multipart.TypeId] = Multipart.TypeId;
48
+ this.key = file.info.name;
49
+ this.name = file.filename ?? file.info.name;
50
+ this.contentType = file.info.contentType;
51
+ this.content = NodeStream.fromReadable(() => file, error => Multipart.MultipartError("InternalError", error));
52
+ }
53
+ }
54
+ /** @internal */
55
+ export const fileToReadable = file => file.file;
56
+ function convertError(error) {
57
+ switch (error._tag) {
58
+ case "ReachedLimit":
59
+ {
60
+ switch (error.limit) {
61
+ case "MaxParts":
62
+ {
63
+ return Multipart.MultipartError("TooManyParts", error);
64
+ }
65
+ case "MaxFieldSize":
66
+ {
67
+ return Multipart.MultipartError("FieldTooLarge", error);
68
+ }
69
+ case "MaxPartSize":
70
+ {
71
+ return Multipart.MultipartError("FileTooLarge", error);
72
+ }
73
+ case "MaxTotalSize":
74
+ {
75
+ return Multipart.MultipartError("BodyTooLarge", error);
76
+ }
77
+ }
78
+ }
79
+ default:
80
+ {
81
+ return Multipart.MultipartError("Parse", error);
82
+ }
83
+ }
84
+ }
85
+ //# sourceMappingURL=multipart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multipart.js","names":["Multipart","Effect","pipe","Stream","decodeField","MP","NFS","NodeStreamP","NodeStream","stream","source","headers","makeConfig","map","config","fromReadable","parser","make","error","convertError","unwrap","convertPart","persisted","toPersisted","path","file","tryPromise","try","signal","pipeline","createWriteStream","catch","MultipartError","part","_tag","FieldImpl","info","value","FileImpl","TypeId","key","contentType","constructor","name","content","filename","fileToReadable","limit"],"sources":["../../../../src/internal/http/multipart.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { BadArgument } from "@effect/platform/Error";
2
+ import { Path } from "@effect/platform/Path";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import * as NodePath from "node:path";
6
+ import * as NodeUrl from "node:url";
7
+ const fromFileUrl = url => Effect.try({
8
+ try: () => NodeUrl.fileURLToPath(url),
9
+ catch: error => BadArgument({
10
+ module: "Path",
11
+ method: "fromFileUrl",
12
+ message: `${error}`
13
+ })
14
+ });
15
+ const toFileUrl = path => Effect.try({
16
+ try: () => NodeUrl.pathToFileURL(path),
17
+ catch: error => BadArgument({
18
+ module: "Path",
19
+ method: "toFileUrl",
20
+ message: `${error}`
21
+ })
22
+ });
23
+ /** @internal */
24
+ export const layerPosix = /*#__PURE__*/Layer.succeed(Path, /*#__PURE__*/Path.of({
25
+ ...NodePath.posix,
26
+ fromFileUrl,
27
+ toFileUrl
28
+ }));
29
+ /** @internal */
30
+ export const layerWin32 = /*#__PURE__*/Layer.succeed(Path, /*#__PURE__*/Path.of({
31
+ ...NodePath.win32,
32
+ fromFileUrl,
33
+ toFileUrl
34
+ }));
35
+ /** @internal */
36
+ export const layer = /*#__PURE__*/Layer.succeed(Path, /*#__PURE__*/Path.of({
37
+ ...NodePath,
38
+ fromFileUrl,
39
+ toFileUrl
40
+ }));
41
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","names":["BadArgument","Path","Effect","Layer","NodePath","NodeUrl","fromFileUrl","url","try","fileURLToPath","catch","error","module","method","message","toFileUrl","path","pathToFileURL","layerPosix","succeed","of","posix","layerWin32","win32","layer"],"sources":["../../../src/internal/path.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,wBAAwB;AACpD,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,WAAW;AACrC,OAAO,KAAKC,OAAO,MAAM,UAAU;AAEnC,MAAMC,WAAW,GAAIC,GAAQ,IAC3BL,MAAM,CAACM,GAAG,CAAC;EACTA,GAAG,EAAEA,CAAA,KAAMH,OAAO,CAACI,aAAa,CAACF,GAAG,CAAC;EACrCG,KAAK,EAAGC,KAAK,IACXX,WAAW,CAAC;IACVY,MAAM,EAAE,MAAM;IACdC,MAAM,EAAE,aAAa;IACrBC,OAAO,EAAE,GAAGH,KAAK;GAClB;CACJ,CAAC;AAEJ,MAAMI,SAAS,GAAIC,IAAY,IAC7Bd,MAAM,CAACM,GAAG,CAAC;EACTA,GAAG,EAAEA,CAAA,KAAMH,OAAO,CAACY,aAAa,CAACD,IAAI,CAAC;EACtCN,KAAK,EAAGC,KAAK,IACXX,WAAW,CAAC;IACVY,MAAM,EAAE,MAAM;IACdC,MAAM,EAAE,WAAW;IACnBC,OAAO,EAAE,GAAGH,KAAK;GAClB;CACJ,CAAC;AAEJ;AACA,OAAO,MAAMO,UAAU,gBAAGf,KAAK,CAACgB,OAAO,CACrClB,IAAI,eACJA,IAAI,CAACmB,EAAE,CAAC;EACN,GAAGhB,QAAQ,CAACiB,KAAK;EACjBf,WAAW;EACXS;CACD,CAAC,CACH;AAED;AACA,OAAO,MAAMO,UAAU,gBAAGnB,KAAK,CAACgB,OAAO,CACrClB,IAAI,eACJA,IAAI,CAACmB,EAAE,CAAC;EACN,GAAGhB,QAAQ,CAACmB,KAAK;EACjBjB,WAAW;EACXS;CACD,CAAC,CACH;AAED;AACA,OAAO,MAAMS,KAAK,gBAAGrB,KAAK,CAACgB,OAAO,CAChClB,IAAI,eACJA,IAAI,CAACmB,EAAE,CAAC;EACN,GAAGhB,QAAQ;EACXE,WAAW;EACXS;CACD,CAAC,CACH"}
@@ -0,0 +1,27 @@
1
+ import { defaultTeardown } from "@effect/platform/Runtime";
2
+ import * as Cause from "effect/Cause";
3
+ import * as Effect from "effect/Effect";
4
+ /** @internal */
5
+ export const runMain = (effect, teardown = defaultTeardown) => {
6
+ const keepAlive = setInterval(() => {}, 2 ** 31 - 1);
7
+ const fiber = Effect.runFork(Effect.tapErrorCause(effect, cause => {
8
+ if (Cause.isInterruptedOnly(cause)) {
9
+ return Effect.unit;
10
+ }
11
+ return Effect.logError(cause);
12
+ }));
13
+ fiber.addObserver(exit => {
14
+ clearInterval(keepAlive);
15
+ teardown(exit, code => {
16
+ process.exit(code);
17
+ });
18
+ });
19
+ function onSigint() {
20
+ process.removeListener("SIGINT", onSigint);
21
+ process.removeListener("SIGTERM", onSigint);
22
+ fiber.unsafeInterruptAsFork(fiber.id());
23
+ }
24
+ process.once("SIGINT", onSigint);
25
+ process.once("SIGTERM", onSigint);
26
+ };
27
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +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"}
@@ -0,0 +1,19 @@
1
+ import * as Channel from "effect/Channel";
2
+ import * as Deferred from "effect/Deferred";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Sink from "effect/Sink";
5
+ import { writeInput } from "./stream.js";
6
+ /** @internal */
7
+ export const fromWritable = (evaluate, onError, options) => Sink.fromChannel(fromWritableChannel(evaluate, onError, options));
8
+ /** @internal */
9
+ export const fromWritableChannel = (writable, onError, options) => Channel.flatMap(Effect.zip(Effect.sync(() => writable()), Deferred.make()), ([writable, deferred]) => Channel.embedInput(writableOutput(writable, deferred, onError), writeInput(writable, cause => Deferred.failCause(deferred, cause), options, Deferred.complete(deferred, Effect.unit))));
10
+ const writableOutput = (writable, deferred, onError) => Effect.suspend(() => {
11
+ function handleError(err) {
12
+ Deferred.unsafeDone(deferred, Effect.fail(onError(err)));
13
+ }
14
+ writable.on("error", handleError);
15
+ return Effect.ensuring(Deferred.await(deferred), Effect.sync(() => {
16
+ writable.removeListener("error", handleError);
17
+ }));
18
+ });
19
+ //# sourceMappingURL=sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sink.js","names":["Channel","Deferred","Effect","Sink","writeInput","fromWritable","evaluate","onError","options","fromChannel","fromWritableChannel","writable","flatMap","zip","sync","make","deferred","embedInput","writableOutput","cause","failCause","complete","unit","suspend","handleError","err","unsafeDone","fail","on","ensuring","await","removeListener"],"sources":["../../../src/internal/sink.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AAGnC,SAASC,UAAU,QAAQ,aAAa;AAExC;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,QAAmD,EACnDC,OAA8B,EAC9BC,OAA6B,KACWL,IAAI,CAACM,WAAW,CAACC,mBAAmB,CAACJ,QAAQ,EAAEC,OAAO,EAAEC,OAAO,CAAC,CAAC;AAE3G;AACA,OAAO,MAAME,mBAAmB,GAAGA,CACjCC,QAAmD,EACnDJ,OAA+B,EAC/BC,OAA6B,KAE7BR,OAAO,CAACY,OAAO,CACbV,MAAM,CAACW,GAAG,CACRX,MAAM,CAACY,IAAI,CAAC,MAAMH,QAAQ,EAAE,CAAC,EAC7BV,QAAQ,CAACc,IAAI,EAAiB,CAC/B,EACD,CAAC,CAACJ,QAAQ,EAAEK,QAAQ,CAAC,KACnBhB,OAAO,CAACiB,UAAU,CAChBC,cAAc,CAACP,QAAQ,EAAEK,QAAQ,EAAET,OAAO,CAAC,EAC3CH,UAAU,CACRO,QAAQ,EACPQ,KAAK,IAAKlB,QAAQ,CAACmB,SAAS,CAACJ,QAAQ,EAAEG,KAAK,CAAC,EAC9CX,OAAO,EACPP,QAAQ,CAACoB,QAAQ,CAACL,QAAQ,EAAEd,MAAM,CAACoB,IAAI,CAAC,CACzC,CACF,CACJ;AAEH,MAAMJ,cAAc,GAAGA,CACrBP,QAA0C,EAC1CK,QAAyC,EACzCT,OAA8B,KAE9BL,MAAM,CAACqB,OAAO,CAAC,MAAK;EAClB,SAASC,WAAWA,CAACC,GAAY;IAC/BxB,QAAQ,CAACyB,UAAU,CAACV,QAAQ,EAAEd,MAAM,CAACyB,IAAI,CAACpB,OAAO,CAACkB,GAAG,CAAC,CAAC,CAAC;EAC1D;EACAd,QAAQ,CAACiB,EAAE,CAAC,OAAO,EAAEJ,WAAW,CAAC;EACjC,OAAOtB,MAAM,CAAC2B,QAAQ,CACpB5B,QAAQ,CAAC6B,KAAK,CAACd,QAAQ,CAAC,EACxBd,MAAM,CAACY,IAAI,CAAC,MAAK;IACfH,QAAQ,CAACoB,cAAc,CAAC,OAAO,EAAEP,WAAW,CAAC;EAC/C,CAAC,CAAC,CACH;AACH,CAAC,CAAC"}