@effect/platform 0.0.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.
Files changed (76) hide show
  1. package/Console.d.ts +42 -0
  2. package/Console.d.ts.map +1 -0
  3. package/Console.js +22 -0
  4. package/Console.js.map +1 -0
  5. package/Effectify.d.ts +225 -0
  6. package/Effectify.d.ts.map +1 -0
  7. package/Effectify.js +15 -0
  8. package/Effectify.js.map +1 -0
  9. package/Error.d.ts +72 -0
  10. package/Error.d.ts.map +1 -0
  11. package/Error.js +28 -0
  12. package/Error.js.map +1 -0
  13. package/FileSystem/File.d.ts +91 -0
  14. package/FileSystem/File.d.ts.map +1 -0
  15. package/FileSystem/File.js +41 -0
  16. package/FileSystem/File.js.map +1 -0
  17. package/FileSystem.d.ts +147 -0
  18. package/FileSystem.d.ts.map +1 -0
  19. package/FileSystem.js +28 -0
  20. package/FileSystem.js.map +1 -0
  21. package/LICENSE +21 -0
  22. package/Runtime.d.ts +22 -0
  23. package/Runtime.d.ts.map +1 -0
  24. package/Runtime.js +23 -0
  25. package/Runtime.js.map +1 -0
  26. package/internal/console.d.ts +8 -0
  27. package/internal/console.d.ts.map +1 -0
  28. package/internal/console.js +100 -0
  29. package/internal/console.js.map +1 -0
  30. package/internal/effectify.d.ts +2 -0
  31. package/internal/effectify.d.ts.map +1 -0
  32. package/internal/effectify.js +25 -0
  33. package/internal/effectify.js.map +1 -0
  34. package/internal/error.d.ts +2 -0
  35. package/internal/error.d.ts.map +1 -0
  36. package/internal/error.js +24 -0
  37. package/internal/error.js.map +1 -0
  38. package/internal/fileSystem.d.ts +2 -0
  39. package/internal/fileSystem.d.ts.map +1 -0
  40. package/internal/fileSystem.js +49 -0
  41. package/internal/fileSystem.js.map +1 -0
  42. package/mjs/Console.mjs +12 -0
  43. package/mjs/Console.mjs.map +1 -0
  44. package/mjs/Effectify.mjs +6 -0
  45. package/mjs/Effectify.mjs.map +1 -0
  46. package/mjs/Error.mjs +17 -0
  47. package/mjs/Error.mjs.map +1 -0
  48. package/mjs/FileSystem/File.mjs +28 -0
  49. package/mjs/FileSystem/File.mjs.map +1 -0
  50. package/mjs/FileSystem.mjs +17 -0
  51. package/mjs/FileSystem.mjs.map +1 -0
  52. package/mjs/Runtime.mjs +13 -0
  53. package/mjs/Runtime.mjs.map +1 -0
  54. package/mjs/internal/console.mjs +90 -0
  55. package/mjs/internal/console.mjs.map +1 -0
  56. package/mjs/internal/effectify.mjs +16 -0
  57. package/mjs/internal/effectify.mjs.map +1 -0
  58. package/mjs/internal/error.mjs +13 -0
  59. package/mjs/internal/error.mjs.map +1 -0
  60. package/mjs/internal/fileSystem.mjs +38 -0
  61. package/mjs/internal/fileSystem.mjs.map +1 -0
  62. package/package.json +30 -0
  63. package/src/Console.ts +45 -0
  64. package/src/Effectify.ts +257 -0
  65. package/src/Error.ts +93 -0
  66. package/src/FileSystem/File.ts +125 -0
  67. package/src/FileSystem.ts +237 -0
  68. package/src/Runtime.ts +36 -0
  69. package/src/internal/console.ts +105 -0
  70. package/src/internal/effectify.ts +31 -0
  71. package/src/internal/error.ts +21 -0
  72. package/src/internal/fileSystem.ts +60 -0
  73. package/tsconfig.build.json +10 -0
  74. package/tsconfig.examples.json +11 -0
  75. package/tsconfig.json +11 -0
  76. package/tsconfig.test.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"File.mjs","names":["Brand","FileTypeId","Symbol","for","isFile","u","make","impl","Descriptor","nominal"],"sources":["../../src/FileSystem/File.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,oBAAoB;AAM3C;;;;AAIA,OAAO,MAAMC,UAAU,gBAAkBC,MAAM,CAACC,GAAG,CACjD,kCAAkC,CACnC;AAQD;;;;AAIA,OAAO,MAAMC,MAAM,GAAIC,CAAU,IAAgB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIJ,UAAU,IAAII,CAAC;AA6BvG;;;;AAIA,OAAO,MAAMC,IAAI,GAAIC,IAA4B,KAAY;EAC3D,CAACN,UAAU,GAAGA,UAAU;EACxB,GAAGM;CACJ,CAAC;AAgDF;;;;AAIA,OAAO,MAAMC,UAAU,gBAAGR,KAAK,CAACS,OAAO,EAAmB"}
@@ -0,0 +1,17 @@
1
+ import * as internal from "@effect/platform/internal/fileSystem";
2
+ /**
3
+ * @since 1.0.0
4
+ * @category constructor
5
+ */
6
+ export const Size = internal.Size;
7
+ /**
8
+ * @since 1.0.0
9
+ * @category tag
10
+ */
11
+ export const FileSystem = internal.tag;
12
+ /**
13
+ * @since 1.0.0
14
+ * @category constructor
15
+ */
16
+ export const make = internal.make;
17
+ //# sourceMappingURL=FileSystem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSystem.mjs","names":["internal","Size","FileSystem","tag","make"],"sources":["../src/FileSystem.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAKA,QAAQ,MAAM,sCAAsC;AAYhE;;;;AAIA,OAAO,MAAMC,IAAI,GAAqCD,QAAQ,CAACC,IAAI;AAyMnE;;;;AAIA,OAAO,MAAMC,UAAU,GAAgCF,QAAQ,CAACG,GAAG;AAEnE;;;;AAIA,OAAO,MAAMC,IAAI,GAA8DJ,QAAQ,CAACI,IAAI"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Cause from "@effect/io/Cause";
5
+ import * as Exit from "@effect/io/Exit";
6
+ /**
7
+ * @category teardown
8
+ * @since 1.0.0
9
+ */
10
+ export const defaultTeardown = (exit, onExit) => {
11
+ onExit(Exit.isFailure(exit) && !Cause.isInterruptedOnly(exit.cause) ? 1 : 0);
12
+ };
13
+ //# sourceMappingURL=Runtime.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Runtime.mjs","names":["Cause","Exit","defaultTeardown","exit","onExit","isFailure","isInterruptedOnly","cause"],"sources":["../src/Runtime.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,kBAAkB;AAEzC,OAAO,KAAKC,IAAI,MAAM,iBAAiB;AAUvC;;;;AAIA,OAAO,MAAMC,eAAe,GAAaA,CACvCC,IAAqB,EACrBC,MAA8B,KAC5B;EACFA,MAAM,CAACH,IAAI,CAACI,SAAS,CAACF,IAAI,CAAC,IAAI,CAACH,KAAK,CAACM,iBAAiB,CAACH,IAAI,CAACI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { Tag } from "@effect/data/Context";
2
+ import * as Effect from "@effect/io/Effect";
3
+ import * as Layer from "@effect/io/Layer";
4
+ /**
5
+ * @since 1.0.0
6
+ * @category tag
7
+ */
8
+ export const Console = /*#__PURE__*/Tag();
9
+ /** @internal */
10
+ const consoleImpl = /*#__PURE__*/Console.of({
11
+ assert(condition, ...args) {
12
+ return Effect.sync(() => {
13
+ console.assert(condition, ...args);
14
+ });
15
+ },
16
+ clear() {
17
+ return Effect.sync(() => {
18
+ console.clear();
19
+ });
20
+ },
21
+ count(label) {
22
+ return Effect.sync(() => {
23
+ console.count(label);
24
+ });
25
+ },
26
+ countReset(label) {
27
+ return Effect.sync(() => {
28
+ console.countReset(label);
29
+ });
30
+ },
31
+ debug(...args) {
32
+ return Effect.sync(() => {
33
+ console.debug(...args);
34
+ });
35
+ },
36
+ dir(...args) {
37
+ return Effect.sync(() => {
38
+ console.dir(...args);
39
+ });
40
+ },
41
+ dirxml(...args) {
42
+ return Effect.sync(() => {
43
+ console.dirxml(...args);
44
+ });
45
+ },
46
+ error(...args) {
47
+ return Effect.sync(() => {
48
+ console.error(...args);
49
+ });
50
+ },
51
+ group(options) {
52
+ return self => Effect.acquireUseRelease(options?.collapsed ? Effect.sync(() => console.groupCollapsed(options?.label)) : Effect.sync(() => console.group(options?.label)), () => self, () => Effect.sync(() => console.groupEnd()));
53
+ },
54
+ info(...args) {
55
+ return Effect.sync(() => {
56
+ console.info(...args);
57
+ });
58
+ },
59
+ log(...args) {
60
+ return Effect.sync(() => {
61
+ console.log(...args);
62
+ });
63
+ },
64
+ table(tabularData, properties) {
65
+ return Effect.sync(() => {
66
+ console.table(tabularData, properties);
67
+ });
68
+ },
69
+ time(label) {
70
+ return self => Effect.acquireUseRelease(Effect.sync(() => console.time(label)), () => self, () => Effect.sync(() => console.timeEnd(label)));
71
+ },
72
+ timeLog(label, ...args) {
73
+ return Effect.sync(() => {
74
+ console.timeLog(label, ...args);
75
+ });
76
+ },
77
+ trace(...args) {
78
+ return Effect.sync(() => {
79
+ console.trace(...args);
80
+ });
81
+ },
82
+ warn(...args) {
83
+ return Effect.sync(() => {
84
+ console.warn(...args);
85
+ });
86
+ }
87
+ });
88
+ /** @internal */
89
+ export const layer = /*#__PURE__*/Layer.succeed(Console, consoleImpl);
90
+ //# sourceMappingURL=console.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.mjs","names":["Tag","Effect","Layer","Console","consoleImpl","of","assert","condition","args","sync","console","clear","count","label","countReset","debug","dir","dirxml","error","group","options","self","acquireUseRelease","collapsed","groupCollapsed","groupEnd","info","log","table","tabularData","properties","time","timeEnd","timeLog","trace","warn","layer","succeed"],"sources":["../../src/internal/console.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAC1C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AAGzC;;;;AAIA,OAAO,MAAMC,OAAO,gBAAGH,GAAG,EAAY;AAEtC;AACA,MAAMI,WAAW,gBAAGD,OAAO,CAACE,EAAE,CAAC;EAC7BC,MAAMA,CAACC,SAAS,EAAE,GAAGC,IAAI;IACvB,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACJ,MAAM,CAACC,SAAS,EAAE,GAAGC,IAAI,CAAC;IACpC,CAAC,CAAC;EACJ,CAAC;EACDG,KAAKA,CAAA;IACH,OAAOV,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACC,KAAK,EAAE;IACjB,CAAC,CAAC;EACJ,CAAC;EACDC,KAAKA,CAACC,KAAK;IACT,OAAOZ,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACE,KAAK,CAACC,KAAK,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC;EACDC,UAAUA,CAACD,KAAK;IACd,OAAOZ,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACI,UAAU,CAACD,KAAK,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC;EACDE,KAAKA,CAAC,GAAGP,IAAI;IACX,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACK,KAAK,CAAC,GAAGP,IAAI,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC;EACDQ,GAAGA,CAAC,GAAGR,IAAI;IACT,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACM,GAAG,CAAC,GAAGR,IAAI,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC;EACDS,MAAMA,CAAC,GAAGT,IAAI;IACZ,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACO,MAAM,CAAC,GAAGT,IAAI,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC;EACDU,KAAKA,CAAC,GAAGV,IAAI;IACX,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACQ,KAAK,CAAC,GAAGV,IAAI,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC;EACDW,KAAKA,CAACC,OAAO;IACX,OAAQC,IAAI,IACVpB,MAAM,CAACqB,iBAAiB,CACtBF,OAAO,EAAEG,SAAS,GAChBtB,MAAM,CAACQ,IAAI,CAAC,MAAMC,OAAO,CAACc,cAAc,CAACJ,OAAO,EAAEP,KAAK,CAAC,CAAC,GACzDZ,MAAM,CAACQ,IAAI,CAAC,MAAMC,OAAO,CAACS,KAAK,CAACC,OAAO,EAAEP,KAAK,CAAC,CAAC,EAClD,MAAMQ,IAAI,EACV,MAAMpB,MAAM,CAACQ,IAAI,CAAC,MAAMC,OAAO,CAACe,QAAQ,EAAE,CAAC,CAC5C;EACL,CAAC;EACDC,IAAIA,CAAC,GAAGlB,IAAI;IACV,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACgB,IAAI,CAAC,GAAGlB,IAAI,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC;EACDmB,GAAGA,CAAC,GAAGnB,IAAI;IACT,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACiB,GAAG,CAAC,GAAGnB,IAAI,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC;EACDoB,KAAKA,CAACC,WAAW,EAAEC,UAAU;IAC3B,OAAO7B,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACkB,KAAK,CAACC,WAAW,EAAEC,UAAU,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC;EACDC,IAAIA,CAAClB,KAAK;IACR,OAAQQ,IAAI,IACVpB,MAAM,CAACqB,iBAAiB,CACtBrB,MAAM,CAACQ,IAAI,CAAC,MAAMC,OAAO,CAACqB,IAAI,CAAClB,KAAK,CAAC,CAAC,EACtC,MAAMQ,IAAI,EACV,MAAMpB,MAAM,CAACQ,IAAI,CAAC,MAAMC,OAAO,CAACsB,OAAO,CAACnB,KAAK,CAAC,CAAC,CAChD;EACL,CAAC;EACDoB,OAAOA,CAACpB,KAAK,EAAE,GAAGL,IAAI;IACpB,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACuB,OAAO,CAACpB,KAAK,EAAE,GAAGL,IAAI,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC;EACD0B,KAAKA,CAAC,GAAG1B,IAAI;IACX,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACwB,KAAK,CAAC,GAAG1B,IAAI,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC;EACD2B,IAAIA,CAAC,GAAG3B,IAAI;IACV,OAAOP,MAAM,CAACQ,IAAI,CAAC,MAAK;MACtBC,OAAO,CAACyB,IAAI,CAAC,GAAG3B,IAAI,CAAC;IACvB,CAAC,CAAC;EACJ;CACD,CAAC;AAEF;AACA,OAAO,MAAM4B,KAAK,gBAAGlC,KAAK,CAACmC,OAAO,CAAClC,OAAO,EAAEC,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ import * as Effect from "@effect/io/Effect";
2
+ /** @internal */
3
+ export const effectify = (fn, onError, onSyncError) => (...args) => Effect.async(resume => {
4
+ try {
5
+ fn(...args, (err, result) => {
6
+ if (err) {
7
+ resume(Effect.fail(onError ? onError(err, args) : err));
8
+ } else {
9
+ resume(Effect.succeed(result));
10
+ }
11
+ });
12
+ } catch (err) {
13
+ resume(onSyncError ? Effect.fail(onSyncError(err, args)) : Effect.die(err));
14
+ }
15
+ });
16
+ //# sourceMappingURL=effectify.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effectify.mjs","names":["Effect","effectify","fn","onError","onSyncError","args","async","resume","err","result","fail","succeed","die"],"sources":["../../src/internal/effectify.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,mBAAmB;AAG3C;AACA,OAAO,MAAMC,SAAS,GAYnBA,CAAIC,EAAY,EAAEC,OAAoC,EAAEC,WAAwC,KAC/F,CAAC,GAAGC,IAAgB,KAClBL,MAAM,CAACM,KAAK,CAAmBC,MAAM,IAAI;EACvC,IAAI;IACFL,EAAE,CAAC,GAAGG,IAAI,EAAE,CAACG,GAAiB,EAAEC,MAAS,KAAI;MAC3C,IAAID,GAAG,EAAE;QACPD,MAAM,CAACP,MAAM,CAACU,IAAI,CAACP,OAAO,GAAGA,OAAO,CAACK,GAAG,EAAEH,IAAI,CAAC,GAAGG,GAAG,CAAC,CAAC;OACxD,MAAM;QACLD,MAAM,CAACP,MAAM,CAACW,OAAO,CAACF,MAAM,CAAC,CAAC;;IAElC,CAAC,CAAC;GACH,CAAC,OAAOD,GAAG,EAAE;IACZD,MAAM,CAACH,WAAW,GAAGJ,MAAM,CAACU,IAAI,CAACN,WAAW,CAACI,GAAG,EAAEH,IAAI,CAAC,CAAC,GAAGL,MAAM,CAACY,GAAG,CAACJ,GAAG,CAAC,CAAC;;AAE/E,CAAC,CAAS"}
@@ -0,0 +1,13 @@
1
+ import * as Data from "@effect/data/Data";
2
+ /** @internal */
3
+ export const PlatformErrorTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Error/PlatformErrorTypeId");
4
+ const make = tag => props => Data.struct({
5
+ [PlatformErrorTypeId]: PlatformErrorTypeId,
6
+ _tag: tag,
7
+ ...props
8
+ });
9
+ /** @internal */
10
+ export const badArgument = /*#__PURE__*/make("BadArgument");
11
+ /** @internal */
12
+ export const systemError = /*#__PURE__*/make("SystemError");
13
+ //# sourceMappingURL=error.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.mjs","names":["Data","PlatformErrorTypeId","Symbol","for","make","tag","props","struct","_tag","badArgument","systemError"],"sources":["../../src/internal/error.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,mBAAmB;AAGzC;AACA,OAAO,MAAMC,mBAAmB,gBAA8BC,MAAM,CAACC,GAAG,CACtE,4CAA4C,CAChB;AAE9B,MAAMC,IAAI,GAAmCC,GAAc,IACxDC,KAAkD,IACjDN,IAAI,CAACO,MAAM,CAAC;EACV,CAACN,mBAAmB,GAAGA,mBAAmB;EAC1CO,IAAI,EAAEH,GAAG;EACT,GAAGC;CACC,CAAC;AAEX;AACA,OAAO,MAAMG,WAAW,gBAAGL,IAAI,CAAoB,aAAa,CAAC;AAEjE;AACA,OAAO,MAAMM,WAAW,gBAAGN,IAAI,CAAoB,aAAa,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { Tag } from "@effect/data/Context";
2
+ import * as Option from "@effect/data/Option";
3
+ import * as Effect from "@effect/io/Effect";
4
+ import * as Sink from "@effect/stream/Sink";
5
+ import * as Stream from "@effect/stream/Stream";
6
+ /** @internal */
7
+ export const tag = /*#__PURE__*/Tag();
8
+ /** @internal */
9
+ export const Size = bytes => typeof bytes === "bigint" ? bytes : BigInt(bytes);
10
+ /** @internal */
11
+ export const make = impl => {
12
+ return tag.of({
13
+ ...impl,
14
+ stream: (path, options) => Stream.unwrapScoped(Effect.map(file => stream(file, options))(impl.open(path, {
15
+ flag: "r"
16
+ }))),
17
+ sink: (path, options) => Sink.unwrapScoped(Effect.map(file => Sink.forEach(_ => file.writeAll(_)))(impl.open(path, {
18
+ flag: "w",
19
+ ...options
20
+ })))
21
+ });
22
+ };
23
+ /** @internal */
24
+ const stream = (file, {
25
+ bufferSize = 4,
26
+ bytesToRead,
27
+ chunkSize = Size(16n * 1024n),
28
+ offset = Size(0n)
29
+ } = {}) => Stream.bufferChunks(Stream.unfoldEffect(offset, position => {
30
+ if (bytesToRead !== undefined && bytesToRead <= position - offset) {
31
+ return Effect.succeedNone();
32
+ }
33
+ const toRead = bytesToRead !== undefined && bytesToRead - (position - offset) < chunkSize ? bytesToRead - (position - offset) : chunkSize;
34
+ return Effect.map(Option.map(buf => [buf, Size(position + BigInt(buf.length))]))(file.readAlloc(toRead, {
35
+ offset: position
36
+ }));
37
+ }), bufferSize);
38
+ //# sourceMappingURL=fileSystem.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystem.mjs","names":["Tag","Option","Effect","Sink","Stream","tag","Size","bytes","BigInt","make","impl","of","stream","path","options","unwrapScoped","map","file","open","flag","sink","forEach","_","writeAll","bufferSize","bytesToRead","chunkSize","offset","bufferChunks","unfoldEffect","position","undefined","succeedNone","toRead","buf","length","readAlloc"],"sources":["../../src/internal/fileSystem.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAG,QAAQ,sBAAsB;AAE1C,OAAO,KAAKC,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAG3C,OAAO,KAAKC,IAAI,MAAM,qBAAqB;AAC3C,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAE/C;AACA,OAAO,MAAMC,GAAG,gBAAGL,GAAG,EAAc;AAEpC;AACA,OAAO,MAAMM,IAAI,GAAIC,KAAsB,IAAK,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAc,GAAGC,MAAM,CAACD,KAAK,CAAU;AAEnH;AACA,OAAO,MAAME,IAAI,GAAIC,IAAyC,IAAgB;EAC5E,OAAOL,GAAG,CAACM,EAAE,CAAC;IACZ,GAAGD,IAAI;IACPE,MAAM,EAAEA,CAACC,IAAI,EAAEC,OAAO,KAIlBV,MAAM,CAACW,YAAY,CADnBb,MAAM,CAACc,GAAG,CAAEC,IAAI,IAAKL,MAAM,CAACK,IAAI,EAAEH,OAAO,CAAC,CAAC,CAD3CJ,IAAI,CAACQ,IAAI,CAACL,IAAI,EAAE;MAAEM,IAAI,EAAE;IAAG,CAAE,CAAC,EAG/B;IACHC,IAAI,EAAEA,CAACP,IAAI,EAAEC,OAAO,KAIhBX,IAAI,CAACY,YAAY,CADjBb,MAAM,CAACc,GAAG,CAAEC,IAAI,IAAKd,IAAI,CAACkB,OAAO,CAAEC,CAAa,IAAKL,IAAI,CAACM,QAAQ,CAACD,CAAC,CAAC,CAAC,CAAC,CADvEZ,IAAI,CAACQ,IAAI,CAACL,IAAI,EAAE;MAAEM,IAAI,EAAE,GAAG;MAAE,GAAGL;IAAO,CAAE,CAAC;GAI/C,CAAC;AACJ,CAAC;AAED;AACA,MAAMF,MAAM,GAAGA,CAACK,IAAU,EAAE;EAC1BO,UAAU,GAAG,CAAC;EACdC,WAAW;EACXC,SAAS,GAAGpB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;EAC7BqB,MAAM,GAAGrB,IAAI,CAAC,EAAE;AAAC,IACA,EAAE,KACnBF,MAAM,CAACwB,YAAY,CACjBxB,MAAM,CAACyB,YAAY,CAACF,MAAM,EAAGG,QAAQ,IAAI;EACvC,IAAIL,WAAW,KAAKM,SAAS,IAAIN,WAAW,IAAIK,QAAQ,GAAGH,MAAM,EAAE;IACjE,OAAOzB,MAAM,CAAC8B,WAAW,EAAE;;EAG7B,MAAMC,MAAM,GAAGR,WAAW,KAAKM,SAAS,IAAIN,WAAW,IAAIK,QAAQ,GAAGH,MAAM,CAAC,GAAGD,SAAS,GACrFD,WAAW,IAAIK,QAAQ,GAAGH,MAAM,CAAC,GACjCD,SAAS;EAEb,OAEExB,MAAM,CAACc,GAAG,CACRf,MAAM,CAACe,GAAG,CAAEkB,GAAG,IAAK,CAACA,GAAG,EAAE5B,IAAI,CAACwB,QAAQ,GAAGtB,MAAM,CAAC0B,GAAG,CAACC,MAAM,CAAC,CAAC,CAAU,CAAC,CACzE,CAHDlB,IAAI,CAACmB,SAAS,CAACH,MAAe,EAAE;IAAEN,MAAM,EAAEG;EAAQ,CAAE,CAAC;AAKzD,CAAC,CAAC,EACFN,UAAU,CACX"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@effect/platform",
3
+ "version": "0.0.0",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/effect-ts/platform.git"
8
+ },
9
+ "dependencies": {
10
+ "@effect/data": "^0.12.5",
11
+ "@effect/io": "^0.26.0",
12
+ "@effect/stream": "^0.22.0"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "sideEffects": [],
18
+ "exports": {
19
+ "./*": {
20
+ "import": {
21
+ "types": "./*.d.ts",
22
+ "default": "./mjs/*.mjs"
23
+ },
24
+ "require": {
25
+ "types": "./*.d.ts",
26
+ "default": "./*.js"
27
+ }
28
+ }
29
+ }
30
+ }
package/src/Console.ts ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Context from "@effect/data/Context"
5
+ import type { Effect } from "@effect/io/Effect"
6
+ import type { Layer } from "@effect/io/Layer"
7
+ import * as internal from "@effect/platform/internal/console"
8
+
9
+ /**
10
+ * @since 1.0.0
11
+ * @category model
12
+ */
13
+ export interface Console {
14
+ assert(condition: boolean, ...args: Array<any>): Effect<never, never, void>
15
+ clear(): Effect<never, never, void>
16
+ count(label?: string): Effect<never, never, void>
17
+ countReset(label?: string): Effect<never, never, void>
18
+ debug(...args: Array<any>): Effect<never, never, void>
19
+ dir(...args: Array<any>): Effect<never, never, void>
20
+ dirxml(...args: Array<any>): Effect<never, never, void>
21
+ error(...args: Array<any>): Effect<never, never, void>
22
+ group(options?: {
23
+ readonly label?: string
24
+ readonly collapsed?: boolean
25
+ }): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
26
+ info(...args: Array<any>): Effect<never, never, void>
27
+ log(...args: Array<any>): Effect<never, never, void>
28
+ table(tabularData: any, properties?: ReadonlyArray<string>): Effect<never, never, void>
29
+ time(label?: string): <R, E, A>(self: Effect<R, E, A>) => Effect<R, E, A>
30
+ timeLog(label?: string, ...args: Array<any>): Effect<never, never, void>
31
+ trace(...args: Array<any>): Effect<never, never, void>
32
+ warn(...args: Array<any>): Effect<never, never, void>
33
+ }
34
+
35
+ /**
36
+ * @since 1.0.0
37
+ * @category tag
38
+ */
39
+ export const Console: Context.Tag<Console, Console> = internal.Console
40
+
41
+ /**
42
+ * @since 1.0.0
43
+ * @category layer
44
+ */
45
+ export const layer: Layer<never, never, Console> = internal.layer
@@ -0,0 +1,257 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Effect from "@effect/io/Effect"
5
+ import * as internal from "@effect/platform/internal/effectify"
6
+
7
+ interface Callback<E, A> {
8
+ (err: E, a?: A): void
9
+ }
10
+
11
+ type ArgsWithCallback<Args extends Array<any>, E, A> = [...args: Args, cb: Callback<E, A>]
12
+
13
+ type WithoutNull<A> = unknown extends A ? void : Exclude<A, null | undefined>
14
+
15
+ /**
16
+ * Converts a callback-based function to a function that returns an `Effect`.
17
+ *
18
+ * @since 1.0.0
19
+ */
20
+ export type Effectify<T, E> = T extends {
21
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
22
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
23
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
24
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
25
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
26
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
27
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
28
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
29
+ (...args: ArgsWithCallback<infer Args9, infer _E9, infer A9>): infer _R9
30
+ (...args: ArgsWithCallback<infer Args10, infer _E10, infer A10>): infer _R10
31
+ } ? {
32
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
33
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
34
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
35
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
36
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
37
+ (...args: Args6): Effect.Effect<never, E, WithoutNull<A6>>
38
+ (...args: Args7): Effect.Effect<never, E, WithoutNull<A7>>
39
+ (...args: Args8): Effect.Effect<never, E, WithoutNull<A8>>
40
+ (...args: Args9): Effect.Effect<never, E, WithoutNull<A9>>
41
+ (...args: Args10): Effect.Effect<never, E, WithoutNull<A10>>
42
+ }
43
+ : T extends {
44
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
45
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
46
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
47
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
48
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
49
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
50
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
51
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
52
+ (...args: ArgsWithCallback<infer Args9, infer _E9, infer A9>): infer _R9
53
+ } ? {
54
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
55
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
56
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
57
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
58
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
59
+ (...args: Args6): Effect.Effect<never, E, WithoutNull<A6>>
60
+ (...args: Args7): Effect.Effect<never, E, WithoutNull<A7>>
61
+ (...args: Args8): Effect.Effect<never, E, WithoutNull<A8>>
62
+ (...args: Args9): Effect.Effect<never, E, WithoutNull<A9>>
63
+ }
64
+ : T extends {
65
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
66
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
67
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
68
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
69
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
70
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
71
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
72
+ (...args: ArgsWithCallback<infer Args8, infer _E8, infer A8>): infer _R8
73
+ } ? {
74
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
75
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
76
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
77
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
78
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
79
+ (...args: Args6): Effect.Effect<never, E, WithoutNull<A6>>
80
+ (...args: Args7): Effect.Effect<never, E, WithoutNull<A7>>
81
+ (...args: Args8): Effect.Effect<never, E, WithoutNull<A8>>
82
+ }
83
+ : T extends {
84
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
85
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
86
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
87
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
88
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
89
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
90
+ (...args: ArgsWithCallback<infer Args7, infer _E7, infer A7>): infer _R7
91
+ } ? {
92
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
93
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
94
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
95
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
96
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
97
+ (...args: Args6): Effect.Effect<never, E, WithoutNull<A6>>
98
+ (...args: Args7): Effect.Effect<never, E, WithoutNull<A7>>
99
+ }
100
+ : T extends {
101
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
102
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
103
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
104
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
105
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
106
+ (...args: ArgsWithCallback<infer Args6, infer _E6, infer A6>): infer _R6
107
+ } ? {
108
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
109
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
110
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
111
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
112
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
113
+ (...args: Args6): Effect.Effect<never, E, WithoutNull<A6>>
114
+ }
115
+ : T extends {
116
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
117
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
118
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
119
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
120
+ (...args: ArgsWithCallback<infer Args5, infer _E5, infer A5>): infer _R5
121
+ } ? {
122
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
123
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
124
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
125
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
126
+ (...args: Args5): Effect.Effect<never, E, WithoutNull<A5>>
127
+ }
128
+ : T extends {
129
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
130
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
131
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
132
+ (...args: ArgsWithCallback<infer Args4, infer _E4, infer A4>): infer _R4
133
+ } ? {
134
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
135
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
136
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
137
+ (...args: Args4): Effect.Effect<never, E, WithoutNull<A4>>
138
+ }
139
+ : T extends {
140
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
141
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
142
+ (...args: ArgsWithCallback<infer Args3, infer _E3, infer A3>): infer _R3
143
+ } ? {
144
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
145
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
146
+ (...args: Args3): Effect.Effect<never, E, WithoutNull<A3>>
147
+ }
148
+ : T extends {
149
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
150
+ (...args: ArgsWithCallback<infer Args2, infer _E2, infer A2>): infer _R2
151
+ } ? {
152
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
153
+ (...args: Args2): Effect.Effect<never, E, WithoutNull<A2>>
154
+ }
155
+ : T extends {
156
+ (...args: ArgsWithCallback<infer Args1, infer _E1, infer A1>): infer _R1
157
+ } ? {
158
+ (...args: Args1): Effect.Effect<never, E, WithoutNull<A1>>
159
+ }
160
+ : never
161
+
162
+ /**
163
+ * @category util
164
+ * @since 1.0.0
165
+ */
166
+ export type EffectifyError<T> = T extends {
167
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
168
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
169
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
170
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
171
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
172
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
173
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
174
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
175
+ (...args: ArgsWithCallback<infer _Args9, infer E9, infer _A9>): infer _R9
176
+ (...args: ArgsWithCallback<infer _Args10, infer E10, infer _A10>): infer _R10
177
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10>
178
+ : T extends {
179
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
180
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
181
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
182
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
183
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
184
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
185
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
186
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
187
+ (...args: ArgsWithCallback<infer _Args9, infer E9, infer _A9>): infer _R9
188
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9>
189
+ : T extends {
190
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
191
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
192
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
193
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
194
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
195
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
196
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
197
+ (...args: ArgsWithCallback<infer _Args8, infer E8, infer _A8>): infer _R8
198
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8>
199
+ : T extends {
200
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
201
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
202
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
203
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
204
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
205
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
206
+ (...args: ArgsWithCallback<infer _Args7, infer E7, infer _A7>): infer _R7
207
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6 | E7>
208
+ : T extends {
209
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
210
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
211
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
212
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
213
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
214
+ (...args: ArgsWithCallback<infer _Args6, infer E6, infer _A6>): infer _R6
215
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5 | E6>
216
+ : T extends {
217
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
218
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
219
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
220
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
221
+ (...args: ArgsWithCallback<infer _Args5, infer E5, infer _A5>): infer _R5
222
+ } ? NonNullable<E1 | E2 | E3 | E4 | E5>
223
+ : T extends {
224
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
225
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
226
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
227
+ (...args: ArgsWithCallback<infer _Args4, infer E4, infer _A4>): infer _R4
228
+ } ? NonNullable<E1 | E2 | E3 | E4>
229
+ : T extends {
230
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
231
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
232
+ (...args: ArgsWithCallback<infer _Args3, infer E3, infer _A3>): infer _R3
233
+ } ? NonNullable<E1 | E2 | E3>
234
+ : T extends {
235
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
236
+ (...args: ArgsWithCallback<infer _Args2, infer E2, infer _A2>): infer _R2
237
+ } ? NonNullable<E1 | E2>
238
+ : T extends {
239
+ (...args: ArgsWithCallback<infer _Args1, infer E1, infer _A1>): infer _R1
240
+ } ? NonNullable<E1>
241
+ : never
242
+
243
+ /**
244
+ * @since 1.0.0
245
+ */
246
+ export const effectify: {
247
+ <F extends (...args: Array<any>) => any>(fn: F): Effectify<F, EffectifyError<F>>
248
+ <F extends (...args: Array<any>) => any, E>(
249
+ fn: F,
250
+ onError: (error: EffectifyError<F>, args: Parameters<F>) => E
251
+ ): Effectify<F, E>
252
+ <F extends (...args: Array<any>) => any, E, E2>(
253
+ fn: F,
254
+ onError: (error: EffectifyError<F>, args: Parameters<F>) => E,
255
+ onSyncError: (error: unknown, args: Parameters<F>) => E2
256
+ ): Effectify<F, E | E2>
257
+ } = internal.effectify
package/src/Error.ts ADDED
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Data from "@effect/data/Data"
5
+ import * as internal from "@effect/platform/internal/error"
6
+
7
+ /**
8
+ * @since 1.0.0
9
+ * @category type id
10
+ */
11
+ export const PlatformErrorTypeId: unique symbol = internal.PlatformErrorTypeId
12
+
13
+ /**
14
+ * @since 1.0.0
15
+ * @category type id
16
+ */
17
+ export type PlatformErrorTypeId = typeof PlatformErrorTypeId
18
+
19
+ /**
20
+ * @since 1.0.0
21
+ * @category error
22
+ */
23
+ export type PlatformError = BadArgument | SystemError
24
+
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export namespace PlatformError {
29
+ /**
30
+ * @since 1.0.0
31
+ * @category models
32
+ */
33
+ export interface Base extends Data.Case {
34
+ readonly [PlatformErrorTypeId]: typeof PlatformErrorTypeId
35
+ readonly _tag: string
36
+ readonly module: "FileSystem"
37
+ readonly method: string
38
+ readonly message: string
39
+ }
40
+
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ export type ProvidedFields = PlatformErrorTypeId | "_tag" | keyof Data.Case
45
+ }
46
+
47
+ /**
48
+ * @since 1.0.0
49
+ * @category error
50
+ */
51
+ export interface BadArgument extends PlatformError.Base {
52
+ readonly _tag: "BadArgument"
53
+ }
54
+
55
+ /**
56
+ * @since 1.0.0
57
+ * @category error
58
+ */
59
+ export const BadArgument: (props: Omit<BadArgument, PlatformError.ProvidedFields>) => BadArgument = internal.badArgument
60
+
61
+ /**
62
+ * @since 1.0.0
63
+ * @category model
64
+ */
65
+ export type SystemErrorReason =
66
+ | "AlreadyExists"
67
+ | "BadResource"
68
+ | "Busy"
69
+ | "InvalidData"
70
+ | "NotFound"
71
+ | "PermissionDenied"
72
+ | "TimedOut"
73
+ | "UnexpectedEof"
74
+ | "Unknown"
75
+ | "WouldBlock"
76
+ | "WriteZero"
77
+
78
+ /**
79
+ * @since 1.0.0
80
+ * @category models
81
+ */
82
+ export interface SystemError extends PlatformError.Base {
83
+ readonly _tag: "SystemError"
84
+ readonly reason: SystemErrorReason
85
+ readonly syscall?: string
86
+ readonly pathOrDescriptor: string | number
87
+ }
88
+
89
+ /**
90
+ * @since 1.0.0
91
+ * @category error
92
+ */
93
+ export const SystemError: (props: Omit<SystemError, PlatformError.ProvidedFields>) => SystemError = internal.systemError