@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.
- package/Console.d.ts +42 -0
- package/Console.d.ts.map +1 -0
- package/Console.js +22 -0
- package/Console.js.map +1 -0
- package/Effectify.d.ts +225 -0
- package/Effectify.d.ts.map +1 -0
- package/Effectify.js +15 -0
- package/Effectify.js.map +1 -0
- package/Error.d.ts +72 -0
- package/Error.d.ts.map +1 -0
- package/Error.js +28 -0
- package/Error.js.map +1 -0
- package/FileSystem/File.d.ts +91 -0
- package/FileSystem/File.d.ts.map +1 -0
- package/FileSystem/File.js +41 -0
- package/FileSystem/File.js.map +1 -0
- package/FileSystem.d.ts +147 -0
- package/FileSystem.d.ts.map +1 -0
- package/FileSystem.js +28 -0
- package/FileSystem.js.map +1 -0
- package/LICENSE +21 -0
- package/Runtime.d.ts +22 -0
- package/Runtime.d.ts.map +1 -0
- package/Runtime.js +23 -0
- package/Runtime.js.map +1 -0
- package/internal/console.d.ts +8 -0
- package/internal/console.d.ts.map +1 -0
- package/internal/console.js +100 -0
- package/internal/console.js.map +1 -0
- package/internal/effectify.d.ts +2 -0
- package/internal/effectify.d.ts.map +1 -0
- package/internal/effectify.js +25 -0
- package/internal/effectify.js.map +1 -0
- package/internal/error.d.ts +2 -0
- package/internal/error.d.ts.map +1 -0
- package/internal/error.js +24 -0
- package/internal/error.js.map +1 -0
- package/internal/fileSystem.d.ts +2 -0
- package/internal/fileSystem.d.ts.map +1 -0
- package/internal/fileSystem.js +49 -0
- package/internal/fileSystem.js.map +1 -0
- package/mjs/Console.mjs +12 -0
- package/mjs/Console.mjs.map +1 -0
- package/mjs/Effectify.mjs +6 -0
- package/mjs/Effectify.mjs.map +1 -0
- package/mjs/Error.mjs +17 -0
- package/mjs/Error.mjs.map +1 -0
- package/mjs/FileSystem/File.mjs +28 -0
- package/mjs/FileSystem/File.mjs.map +1 -0
- package/mjs/FileSystem.mjs +17 -0
- package/mjs/FileSystem.mjs.map +1 -0
- package/mjs/Runtime.mjs +13 -0
- package/mjs/Runtime.mjs.map +1 -0
- package/mjs/internal/console.mjs +90 -0
- package/mjs/internal/console.mjs.map +1 -0
- package/mjs/internal/effectify.mjs +16 -0
- package/mjs/internal/effectify.mjs.map +1 -0
- package/mjs/internal/error.mjs +13 -0
- package/mjs/internal/error.mjs.map +1 -0
- package/mjs/internal/fileSystem.mjs +38 -0
- package/mjs/internal/fileSystem.mjs.map +1 -0
- package/package.json +30 -0
- package/src/Console.ts +45 -0
- package/src/Effectify.ts +257 -0
- package/src/Error.ts +93 -0
- package/src/FileSystem/File.ts +125 -0
- package/src/FileSystem.ts +237 -0
- package/src/Runtime.ts +36 -0
- package/src/internal/console.ts +105 -0
- package/src/internal/effectify.ts +31 -0
- package/src/internal/error.ts +21 -0
- package/src/internal/fileSystem.ts +60 -0
- package/tsconfig.build.json +10 -0
- package/tsconfig.examples.json +11 -0
- package/tsconfig.json +11 -0
- 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"}
|
package/mjs/Runtime.mjs
ADDED
|
@@ -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":"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"}
|
|
@@ -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
|
package/src/Effectify.ts
ADDED
|
@@ -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
|