@effect/platform-browser 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.
- package/Clipboard/package.json +6 -0
- package/Effectify/package.json +6 -0
- package/Error/package.json +6 -0
- package/HttpClient/package.json +6 -0
- package/KeyValueStore/package.json +6 -0
- package/LICENSE +21 -0
- package/Path/package.json +6 -0
- package/README.md +64 -0
- package/Runtime/package.json +6 -0
- package/Transferable/package.json +6 -0
- package/Worker/package.json +6 -0
- package/WorkerRunner/package.json +6 -0
- package/dist/cjs/Clipboard.js +54 -0
- package/dist/cjs/Clipboard.js.map +1 -0
- package/dist/cjs/Effectify.js +13 -0
- package/dist/cjs/Effectify.js.map +1 -0
- package/dist/cjs/Error.js +25 -0
- package/dist/cjs/Error.js.map +1 -0
- package/dist/cjs/HttpClient.js +46 -0
- package/dist/cjs/HttpClient.js.map +1 -0
- package/dist/cjs/KeyValueStore.js +73 -0
- package/dist/cjs/KeyValueStore.js.map +1 -0
- package/dist/cjs/Path.js +17 -0
- package/dist/cjs/Path.js.map +1 -0
- package/dist/cjs/Runtime.js +38 -0
- package/dist/cjs/Runtime.js.map +1 -0
- package/dist/cjs/Transferable.js +17 -0
- package/dist/cjs/Transferable.js.map +1 -0
- package/dist/cjs/Worker.js +87 -0
- package/dist/cjs/Worker.js.map +1 -0
- package/dist/cjs/WorkerRunner.js +69 -0
- package/dist/cjs/WorkerRunner.js.map +1 -0
- package/dist/cjs/index.js +52 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/clipboard.js +88 -0
- package/dist/cjs/internal/clipboard.js.map +1 -0
- package/dist/cjs/internal/keyValueStore.js +128 -0
- package/dist/cjs/internal/keyValueStore.js.map +1 -0
- package/dist/cjs/internal/runtime.js +47 -0
- package/dist/cjs/internal/runtime.js.map +1 -0
- package/dist/cjs/internal/worker.js +89 -0
- package/dist/cjs/internal/worker.js.map +1 -0
- package/dist/cjs/internal/workerRunner.js +101 -0
- package/dist/cjs/internal/workerRunner.js.map +1 -0
- package/dist/dts/Clipboard.d.ts +37 -0
- package/dist/dts/Clipboard.d.ts.map +1 -0
- package/dist/dts/Effectify.d.ts +19 -0
- package/dist/dts/Effectify.d.ts.map +1 -0
- package/dist/dts/Error.d.ts +31 -0
- package/dist/dts/Error.d.ts.map +1 -0
- package/dist/dts/HttpClient.d.ts +61 -0
- package/dist/dts/HttpClient.d.ts.map +1 -0
- package/dist/dts/KeyValueStore.d.ts +19 -0
- package/dist/dts/KeyValueStore.d.ts.map +1 -0
- package/dist/dts/Path.d.ts +7 -0
- package/dist/dts/Path.d.ts.map +1 -0
- package/dist/dts/Runtime.d.ts +10 -0
- package/dist/dts/Runtime.d.ts.map +1 -0
- package/dist/dts/Transferable.d.ts +7 -0
- package/dist/dts/Transferable.d.ts.map +1 -0
- package/dist/dts/Worker.d.ts +46 -0
- package/dist/dts/Worker.d.ts.map +1 -0
- package/dist/dts/WorkerRunner.d.ts +30 -0
- package/dist/dts/WorkerRunner.d.ts.map +1 -0
- package/dist/dts/index.d.ts +51 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/clipboard.d.ts +2 -0
- package/dist/dts/internal/clipboard.d.ts.map +1 -0
- package/dist/dts/internal/keyValueStore.d.ts +2 -0
- package/dist/dts/internal/keyValueStore.d.ts.map +1 -0
- package/dist/dts/internal/runtime.d.ts +2 -0
- package/dist/dts/internal/runtime.d.ts.map +1 -0
- package/dist/dts/internal/worker.d.ts +2 -0
- package/dist/dts/internal/worker.d.ts.map +1 -0
- package/dist/dts/internal/workerRunner.d.ts +2 -0
- package/dist/dts/internal/workerRunner.d.ts.map +1 -0
- package/dist/esm/Clipboard.js +22 -0
- package/dist/esm/Clipboard.js.map +1 -0
- package/dist/esm/Effectify.js +10 -0
- package/dist/esm/Effectify.js.map +1 -0
- package/dist/esm/Error.js +20 -0
- package/dist/esm/Error.js.map +1 -0
- package/dist/esm/HttpClient.js +61 -0
- package/dist/esm/HttpClient.js.map +1 -0
- package/dist/esm/KeyValueStore.js +25 -0
- package/dist/esm/KeyValueStore.js.map +1 -0
- package/dist/esm/Path.js +7 -0
- package/dist/esm/Path.js.map +1 -0
- package/dist/esm/Runtime.js +7 -0
- package/dist/esm/Runtime.js.map +1 -0
- package/dist/esm/Transferable.js +7 -0
- package/dist/esm/Transferable.js.map +1 -0
- package/dist/esm/Worker.js +36 -0
- package/dist/esm/Worker.js.map +1 -0
- package/dist/esm/WorkerRunner.js +21 -0
- package/dist/esm/WorkerRunner.js.map +1 -0
- package/dist/esm/index.js +51 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/clipboard.js +56 -0
- package/dist/esm/internal/clipboard.js.map +1 -0
- package/dist/esm/internal/keyValueStore.js +97 -0
- package/dist/esm/internal/keyValueStore.js.map +1 -0
- package/dist/esm/internal/runtime.js +15 -0
- package/dist/esm/internal/runtime.js.map +1 -0
- package/dist/esm/internal/worker.js +58 -0
- package/dist/esm/internal/worker.js.map +1 -0
- package/dist/esm/internal/workerRunner.js +68 -0
- package/dist/esm/internal/workerRunner.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +110 -0
- package/src/Clipboard.ts +44 -0
- package/src/Effectify.ts +22 -0
- package/src/Error.ts +34 -0
- package/src/HttpClient.ts +62 -0
- package/src/KeyValueStore.ts +27 -0
- package/src/Path.ts +7 -0
- package/src/Runtime.ts +11 -0
- package/src/Transferable.ts +7 -0
- package/src/Worker.ts +64 -0
- package/src/WorkerRunner.ts +45 -0
- package/src/index.ts +59 -0
- package/src/internal/clipboard.ts +71 -0
- package/src/internal/keyValueStore.ts +130 -0
- package/src/internal/runtime.ts +20 -0
- package/src/internal/worker.ts +72 -0
- package/src/internal/workerRunner.ts +92 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as internal from "./internal/worker.js";
|
|
2
|
+
/**
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
export * from "@effect/platform/Worker";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
* @category constructors
|
|
9
|
+
*/
|
|
10
|
+
export const makePool = internal.makePool;
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category constructors
|
|
14
|
+
*/
|
|
15
|
+
export const makePoolLayer = internal.makePoolLayer;
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category constructors
|
|
19
|
+
*/
|
|
20
|
+
export const makePoolSerialized = internal.makePoolSerialized;
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category constructors
|
|
24
|
+
*/
|
|
25
|
+
export const makePoolSerializedLayer = internal.makePoolSerializedLayer;
|
|
26
|
+
/**
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
* @category layers
|
|
29
|
+
*/
|
|
30
|
+
export const layerManager = internal.layerManager;
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
* @category layers
|
|
34
|
+
*/
|
|
35
|
+
export const layerWorker = internal.layerWorker;
|
|
36
|
+
//# sourceMappingURL=Worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Worker.js","names":["internal","makePool","makePoolLayer","makePoolSerialized","makePoolSerializedLayer","layerManager","layerWorker"],"sources":["../../src/Worker.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAEhD;;;AAGA,cAAc,yBAAyB;AAEvC;;;;AAIA,OAAO,MAAMC,QAAQ,GAEuED,QAAQ,CAACC,QAAQ;AAE7G;;;;AAIA,OAAO,MAAMC,aAAa,GAGFF,QAAQ,CAACE,aAAa;AAE9C;;;;AAIA,OAAO,MAAMC,kBAAkB,GAG7BH,QAAQ,CAACG,kBAAkB;AAE7B;;;;AAIA,OAAO,MAAMC,uBAAuB,GAGZJ,QAAQ,CAACI,uBAAuB;AAExD;;;;AAIA,OAAO,MAAMC,YAAY,GAAsCL,QAAQ,CAACK,YAAY;AAEpF;;;;AAIA,OAAO,MAAMC,WAAW,GAAuCN,QAAQ,CAACM,WAAW"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as internal from "./internal/workerRunner.js";
|
|
2
|
+
/**
|
|
3
|
+
* @since 1.0.0
|
|
4
|
+
*/
|
|
5
|
+
export * from "@effect/platform/WorkerRunner";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
* @category layers
|
|
9
|
+
*/
|
|
10
|
+
export const layerPlatform = internal.layerPlatform;
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category layers
|
|
14
|
+
*/
|
|
15
|
+
export const layer = internal.layer;
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category layers
|
|
19
|
+
*/
|
|
20
|
+
export const layerSerialized = internal.layerSerialized;
|
|
21
|
+
//# sourceMappingURL=WorkerRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerRunner.js","names":["internal","layerPlatform","layer","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAUA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAEtD;;;AAGA,cAAc,+BAA+B;AAE7C;;;;AAIA,OAAO,MAAMC,aAAa,GAAuCD,QAAQ,CAACC,aAAa;AAEvF;;;;AAIA,OAAO,MAAMC,KAAK,GAGwBF,QAAQ,CAACE,KAAK;AAExD;;;;AAIA,OAAO,MAAMC,eAAe,GAQkEH,QAAQ,CAACG,eAAe"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
export * as Clipboard from "./Clipboard.js";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
*/
|
|
8
|
+
export * as Effectify from "./Effectify.js";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
export * as Error from "./Error.js";
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
export * as HttpClient from "./HttpClient.js";
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*
|
|
20
|
+
* Also includes exports from [`@effect/platform/KeyValueStore`](https://effect-ts.github.io/effect/platform/KeyValueStore.ts.html).
|
|
21
|
+
*/
|
|
22
|
+
export * as KeyValueStore from "./KeyValueStore.js";
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
*
|
|
26
|
+
* Also includes exports from [`@effect/platform/Path`](https://effect-ts.github.io/effect/platform/Path.ts.html).
|
|
27
|
+
*/
|
|
28
|
+
export * as Path from "./Path.js";
|
|
29
|
+
/**
|
|
30
|
+
* @since 1.0.0
|
|
31
|
+
*/
|
|
32
|
+
export * as Runtime from "./Runtime.js";
|
|
33
|
+
/**
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
*
|
|
36
|
+
* Also includes exports from [`@effect/platform/Transferable`](https://effect-ts.github.io/effect/platform/Transferable.ts.html).
|
|
37
|
+
*/
|
|
38
|
+
export * as Transferable from "./Transferable.js";
|
|
39
|
+
/**
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
*
|
|
42
|
+
* Also includes exports from [`@effect/platform/Worker`](https://effect-ts.github.io/effect/platform/Worker.ts.html).
|
|
43
|
+
*/
|
|
44
|
+
export * as Worker from "./Worker.js";
|
|
45
|
+
/**
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
*
|
|
48
|
+
* Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/effect/platform/WorkerRunner.ts.html).
|
|
49
|
+
*/
|
|
50
|
+
export * as WorkerRunner from "./WorkerRunner.js";
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Clipboard","Effectify","Error","HttpClient","KeyValueStore","Path","Runtime","Transferable","Worker","WorkerRunner"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;;;AAKA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;;;AAKA,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;;;AAKA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;;;AAKA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;;;AAKA,OAAO,KAAKC,YAAY,MAAM,mBAAmB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as PlatformError from "@effect/platform/Error";
|
|
2
|
+
import { GenericTag } from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
/** @internal */
|
|
6
|
+
export const tag = /*#__PURE__*/GenericTag("@effect/platform-browser/Clipboard");
|
|
7
|
+
/** @internal */
|
|
8
|
+
export const make = impl => tag.of({
|
|
9
|
+
...impl,
|
|
10
|
+
clear: impl.writeString(""),
|
|
11
|
+
writeBlob: blob => impl.write([new ClipboardItem({
|
|
12
|
+
[blob.type]: blob
|
|
13
|
+
})])
|
|
14
|
+
});
|
|
15
|
+
/** @internal */
|
|
16
|
+
const clipboardError = props => PlatformError.SystemError({
|
|
17
|
+
reason: "PermissionDenied",
|
|
18
|
+
module: "Clipboard",
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
/** @internal */
|
|
22
|
+
export const layer = /*#__PURE__*/Layer.succeed(tag, /*#__PURE__*/make({
|
|
23
|
+
read: /*#__PURE__*/Effect.tryPromise({
|
|
24
|
+
try: () => navigator.clipboard.read(),
|
|
25
|
+
catch: () => clipboardError({
|
|
26
|
+
"message": "Unable to read from clipboard",
|
|
27
|
+
"method": "read",
|
|
28
|
+
"pathOrDescriptor": "layer"
|
|
29
|
+
})
|
|
30
|
+
}),
|
|
31
|
+
write: s => Effect.tryPromise({
|
|
32
|
+
try: () => navigator.clipboard.write(s),
|
|
33
|
+
catch: () => clipboardError({
|
|
34
|
+
"message": "Unable to write to clipboard",
|
|
35
|
+
"method": "write",
|
|
36
|
+
"pathOrDescriptor": "layer"
|
|
37
|
+
})
|
|
38
|
+
}),
|
|
39
|
+
readString: /*#__PURE__*/Effect.tryPromise({
|
|
40
|
+
try: () => navigator.clipboard.readText(),
|
|
41
|
+
catch: () => clipboardError({
|
|
42
|
+
"message": "Unable to read a string from clipboard",
|
|
43
|
+
"method": "readString",
|
|
44
|
+
"pathOrDescriptor": "layer"
|
|
45
|
+
})
|
|
46
|
+
}),
|
|
47
|
+
writeString: text => Effect.tryPromise({
|
|
48
|
+
try: () => navigator.clipboard.writeText(text),
|
|
49
|
+
catch: () => clipboardError({
|
|
50
|
+
"message": "Unable to write a string to clipboard",
|
|
51
|
+
"method": "writeString",
|
|
52
|
+
"pathOrDescriptor": "layer"
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
}));
|
|
56
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","names":["PlatformError","GenericTag","Effect","Layer","tag","make","impl","of","clear","writeString","writeBlob","blob","write","ClipboardItem","type","clipboardError","props","SystemError","reason","module","layer","succeed","read","tryPromise","try","navigator","clipboard","catch","s","readString","readText","text","writeText"],"sources":["../../../src/internal/clipboard.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,aAAa,MAAM,wBAAwB;AACvD,SAASC,UAAU,QAAQ,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC;AACA,OAAO,MAAMC,GAAG,gBAAGH,UAAU,CAAsB,oCAAoC,CAAC;AAExF;AACA,OAAO,MAAMI,IAAI,GACfC,IAAsD,IAEtDF,GAAG,CAACG,EAAE,CAAC;EACL,GAAGD,IAAI;EACPE,KAAK,EAAEF,IAAI,CAACG,WAAW,CAAC,EAAE,CAAC;EAC3BC,SAAS,EAAGC,IAAU,IAAKL,IAAI,CAACM,KAAK,CAAC,CAAC,IAAIC,aAAa,CAAC;IAAE,CAACF,IAAI,CAACG,IAAI,GAAGH;EAAI,CAAE,CAAC,CAAC;CACjF,CAAC;AAEJ;AACA,MAAMI,cAAc,GAAIC,KAAiF,IACvGhB,aAAa,CAACiB,WAAW,CAAC;EACxBC,MAAM,EAAE,kBAAkB;EAC1BC,MAAM,EAAE,WAAW;EACnB,GAAGH;CACJ,CAAC;AAEJ;AACA,OAAO,MAAMI,KAAK,gBAAGjB,KAAK,CAACkB,OAAO,CAChCjB,GAAG,eACHC,IAAI,CAAC;EACHiB,IAAI,eAAEpB,MAAM,CAACqB,UAAU,CAAC;IACtBC,GAAG,EAAEA,CAAA,KAAMC,SAAS,CAACC,SAAS,CAACJ,IAAI,EAAE;IACrCK,KAAK,EAAEA,CAAA,KACLZ,cAAc,CAAC;MACb,SAAS,EAAE,+BAA+B;MAC1C,QAAQ,EAAE,MAAM;MAChB,kBAAkB,EAAE;KACrB;GACJ,CAAC;EACFH,KAAK,EAAGgB,CAAuB,IAC7B1B,MAAM,CAACqB,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KAAMC,SAAS,CAACC,SAAS,CAACd,KAAK,CAACgB,CAAC,CAAC;IACvCD,KAAK,EAAEA,CAAA,KACLZ,cAAc,CAAC;MACb,SAAS,EAAE,8BAA8B;MACzC,QAAQ,EAAE,OAAO;MACjB,kBAAkB,EAAE;KACrB;GACJ,CAAC;EACJc,UAAU,eAAE3B,MAAM,CAACqB,UAAU,CAAC;IAC5BC,GAAG,EAAEA,CAAA,KAAMC,SAAS,CAACC,SAAS,CAACI,QAAQ,EAAE;IACzCH,KAAK,EAAEA,CAAA,KACLZ,cAAc,CAAC;MACb,SAAS,EAAE,wCAAwC;MACnD,QAAQ,EAAE,YAAY;MACtB,kBAAkB,EAAE;KACrB;GACJ,CAAC;EACFN,WAAW,EAAGsB,IAAY,IACxB7B,MAAM,CAACqB,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KAAMC,SAAS,CAACC,SAAS,CAACM,SAAS,CAACD,IAAI,CAAC;IAC9CJ,KAAK,EAAEA,CAAA,KACLZ,cAAc,CAAC;MACb,SAAS,EAAE,uCAAuC;MAClD,QAAQ,EAAE,aAAa;MACvB,kBAAkB,EAAE;KACrB;GACJ;CACJ,CAAC,CACH"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import * as PlatformError from "@effect/platform/Error";
|
|
2
|
+
import * as KeyValueStore from "@effect/platform/KeyValueStore";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Option from "effect/Option";
|
|
6
|
+
const storageError = props => PlatformError.SystemError({
|
|
7
|
+
reason: "PermissionDenied",
|
|
8
|
+
module: "KeyValueStore",
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
/** @internal */
|
|
12
|
+
export const layerLocalStorage = /*#__PURE__*/Layer.succeed(KeyValueStore.KeyValueStore, /*#__PURE__*/KeyValueStore.make({
|
|
13
|
+
get: key => Effect.try({
|
|
14
|
+
try: () => Option.fromNullable(localStorage.getItem(key)),
|
|
15
|
+
catch: () => storageError({
|
|
16
|
+
pathOrDescriptor: "layerLocalStorage",
|
|
17
|
+
method: "get",
|
|
18
|
+
message: `Unable to get item with key ${key}`
|
|
19
|
+
})
|
|
20
|
+
}),
|
|
21
|
+
set: (key, value) => Effect.try({
|
|
22
|
+
try: () => localStorage.setItem(key, value),
|
|
23
|
+
catch: () => storageError({
|
|
24
|
+
pathOrDescriptor: "layerLocalStorage",
|
|
25
|
+
method: "set",
|
|
26
|
+
message: `Unable to set item with key ${key}`
|
|
27
|
+
})
|
|
28
|
+
}),
|
|
29
|
+
remove: key => Effect.try({
|
|
30
|
+
try: () => localStorage.removeItem(key),
|
|
31
|
+
catch: () => storageError({
|
|
32
|
+
pathOrDescriptor: "layerLocalStorage",
|
|
33
|
+
method: "remove",
|
|
34
|
+
message: `Unable to remove item with key ${key}`
|
|
35
|
+
})
|
|
36
|
+
}),
|
|
37
|
+
clear: /*#__PURE__*/Effect.try({
|
|
38
|
+
try: () => localStorage.clear(),
|
|
39
|
+
catch: () => storageError({
|
|
40
|
+
pathOrDescriptor: "layerLocalStorage",
|
|
41
|
+
method: "clear",
|
|
42
|
+
message: `Unable to clear storage`
|
|
43
|
+
})
|
|
44
|
+
}),
|
|
45
|
+
size: /*#__PURE__*/Effect.try({
|
|
46
|
+
try: () => localStorage.length,
|
|
47
|
+
catch: () => storageError({
|
|
48
|
+
pathOrDescriptor: "layerLocalStorage",
|
|
49
|
+
method: "size",
|
|
50
|
+
message: `Unable to get size`
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
}));
|
|
54
|
+
/** @internal */
|
|
55
|
+
export const layerSessionStorage = /*#__PURE__*/Layer.succeed(KeyValueStore.KeyValueStore, /*#__PURE__*/KeyValueStore.make({
|
|
56
|
+
get: key => Effect.try({
|
|
57
|
+
try: () => Option.fromNullable(sessionStorage.getItem(key)),
|
|
58
|
+
catch: () => storageError({
|
|
59
|
+
pathOrDescriptor: "layerSessionStorage",
|
|
60
|
+
method: "get",
|
|
61
|
+
message: `Unable to get item with key ${key}`
|
|
62
|
+
})
|
|
63
|
+
}),
|
|
64
|
+
set: (key, value) => Effect.try({
|
|
65
|
+
try: () => sessionStorage.setItem(key, value),
|
|
66
|
+
catch: () => storageError({
|
|
67
|
+
pathOrDescriptor: "layerSessionStorage",
|
|
68
|
+
method: "set",
|
|
69
|
+
message: `Unable to set item with key ${key}`
|
|
70
|
+
})
|
|
71
|
+
}),
|
|
72
|
+
remove: key => Effect.try({
|
|
73
|
+
try: () => sessionStorage.removeItem(key),
|
|
74
|
+
catch: () => storageError({
|
|
75
|
+
pathOrDescriptor: "layerSessionStorage",
|
|
76
|
+
method: "remove",
|
|
77
|
+
message: `Unable to remove item with key ${key}`
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
clear: /*#__PURE__*/Effect.try({
|
|
81
|
+
try: () => sessionStorage.clear(),
|
|
82
|
+
catch: () => storageError({
|
|
83
|
+
pathOrDescriptor: "layerSessionStorage",
|
|
84
|
+
method: "clear",
|
|
85
|
+
message: `Unable to clear storage`
|
|
86
|
+
})
|
|
87
|
+
}),
|
|
88
|
+
size: /*#__PURE__*/Effect.try({
|
|
89
|
+
try: () => sessionStorage.length,
|
|
90
|
+
catch: () => storageError({
|
|
91
|
+
pathOrDescriptor: "layerSessionStorage",
|
|
92
|
+
method: "size",
|
|
93
|
+
message: `Unable to get size`
|
|
94
|
+
})
|
|
95
|
+
})
|
|
96
|
+
}));
|
|
97
|
+
//# sourceMappingURL=keyValueStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyValueStore.js","names":["PlatformError","KeyValueStore","Effect","Layer","Option","storageError","props","SystemError","reason","module","layerLocalStorage","succeed","make","get","key","try","fromNullable","localStorage","getItem","catch","pathOrDescriptor","method","message","set","value","setItem","remove","removeItem","clear","size","length","layerSessionStorage","sessionStorage"],"sources":["../../../src/internal/keyValueStore.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
/** @internal */
|
|
4
|
+
export const runMain = effect => {
|
|
5
|
+
const fiber = Effect.runFork(Effect.tapErrorCause(effect, cause => {
|
|
6
|
+
if (Cause.isInterruptedOnly(cause)) {
|
|
7
|
+
return Effect.unit;
|
|
8
|
+
}
|
|
9
|
+
return Effect.logError(cause);
|
|
10
|
+
}));
|
|
11
|
+
addEventListener("beforeunload", () => {
|
|
12
|
+
Effect.runFork(fiber.interruptAsFork(fiber.id()));
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","names":["Cause","Effect","runMain","effect","fiber","runFork","tapErrorCause","cause","isInterruptedOnly","unit","logError","addEventListener","interruptAsFork","id"],"sources":["../../../src/internal/runtime.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;AACA,OAAO,MAAMC,OAAO,GAClBC,MAA2B,IACzB;EACF,MAAMC,KAAK,GAAGH,MAAM,CAACI,OAAO,CAC1BJ,MAAM,CAACK,aAAa,CAACH,MAAM,EAAGI,KAAK,IAAI;IACrC,IAAIP,KAAK,CAACQ,iBAAiB,CAACD,KAAK,CAAC,EAAE;MAClC,OAAON,MAAM,CAACQ,IAAI;IACpB;IACA,OAAOR,MAAM,CAACS,QAAQ,CAACH,KAAK,CAAC;EAC/B,CAAC,CAAC,CACH;EAEDI,gBAAgB,CAAC,cAAc,EAAE,MAAK;IACpCV,MAAM,CAACI,OAAO,CAACD,KAAK,CAACQ,eAAe,CAACR,KAAK,CAACS,EAAE,EAAE,CAAC,CAAC;EACnD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as Worker from "@effect/platform/Worker";
|
|
2
|
+
import { WorkerError } from "@effect/platform/WorkerError";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Queue from "effect/Queue";
|
|
6
|
+
const platformWorkerImpl = /*#__PURE__*/Worker.PlatformWorker.of({
|
|
7
|
+
[Worker.PlatformWorkerTypeId]: Worker.PlatformWorkerTypeId,
|
|
8
|
+
spawn(worker_) {
|
|
9
|
+
return Effect.gen(function* (_) {
|
|
10
|
+
const worker = worker_;
|
|
11
|
+
let port;
|
|
12
|
+
if ("port" in worker) {
|
|
13
|
+
port = worker.port;
|
|
14
|
+
port.start();
|
|
15
|
+
} else {
|
|
16
|
+
port = worker;
|
|
17
|
+
}
|
|
18
|
+
yield* _(Effect.addFinalizer(() => Effect.sync(() => port.postMessage([1]))));
|
|
19
|
+
const queue = yield* _(Queue.unbounded());
|
|
20
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
21
|
+
function onMessage(event) {
|
|
22
|
+
queue.unsafeOffer(event.data);
|
|
23
|
+
}
|
|
24
|
+
function onError(event) {
|
|
25
|
+
resume(Effect.fail(WorkerError("unknown", event.message, event.error?.stack)));
|
|
26
|
+
}
|
|
27
|
+
port.addEventListener("message", onMessage);
|
|
28
|
+
port.addEventListener("error", onError);
|
|
29
|
+
return Effect.sync(() => {
|
|
30
|
+
port.removeEventListener("message", onMessage);
|
|
31
|
+
port.removeEventListener("error", onError);
|
|
32
|
+
});
|
|
33
|
+
}), Effect.interruptible, Effect.forkScoped);
|
|
34
|
+
const send = (message, transfers) => Effect.try({
|
|
35
|
+
try: () => port.postMessage([0, message], transfers),
|
|
36
|
+
catch: error => WorkerError("send", error.message, error.stack)
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
fiber,
|
|
40
|
+
queue,
|
|
41
|
+
send
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
/** @internal */
|
|
47
|
+
export const layerWorker = /*#__PURE__*/Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
|
|
48
|
+
/** @internal */
|
|
49
|
+
export const layerManager = /*#__PURE__*/Layer.provide(Worker.layerManager, layerWorker);
|
|
50
|
+
/** @internal */
|
|
51
|
+
export const makePool = /*#__PURE__*/Worker.makePool();
|
|
52
|
+
/** @internal */
|
|
53
|
+
export const makePoolLayer = /*#__PURE__*/Worker.makePoolLayer(layerManager);
|
|
54
|
+
/** @internal */
|
|
55
|
+
export const makePoolSerialized = /*#__PURE__*/Worker.makePoolSerialized();
|
|
56
|
+
/** @internal */
|
|
57
|
+
export const makePoolSerializedLayer = /*#__PURE__*/Worker.makePoolSerializedLayer(layerManager);
|
|
58
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","names":["Worker","WorkerError","Effect","Layer","Queue","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","worker","port","start","addFinalizer","sync","postMessage","queue","unbounded","fiber","async","resume","onMessage","event","unsafeOffer","data","onError","fail","message","error","stack","addEventListener","removeEventListener","interruptible","forkScoped","send","transfers","try","catch","layerWorker","succeed","layerManager","provide","makePool","makePoolLayer","makePoolSerialized","makePoolSerializedLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { WorkerError } from "@effect/platform/WorkerError";
|
|
2
|
+
import * as Runner from "@effect/platform/WorkerRunner";
|
|
3
|
+
import * as Cause from "effect/Cause";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Layer from "effect/Layer";
|
|
6
|
+
import * as Queue from "effect/Queue";
|
|
7
|
+
import * as Schedule from "effect/Schedule";
|
|
8
|
+
const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
|
|
9
|
+
[Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
|
|
10
|
+
start(shutdown) {
|
|
11
|
+
return Effect.gen(function* (_) {
|
|
12
|
+
const port = "postMessage" in self ? self : yield* _(Effect.async((resume, signal) => {
|
|
13
|
+
self.addEventListener("connect", function (event) {
|
|
14
|
+
const port = event.ports[0];
|
|
15
|
+
port.start();
|
|
16
|
+
resume(Effect.succeed(port));
|
|
17
|
+
}, {
|
|
18
|
+
once: true,
|
|
19
|
+
signal
|
|
20
|
+
});
|
|
21
|
+
}));
|
|
22
|
+
const queue = yield* _(Queue.unbounded());
|
|
23
|
+
yield* _(Effect.async(resume => {
|
|
24
|
+
function onMessage(event) {
|
|
25
|
+
const message = event.data;
|
|
26
|
+
if (message[0] === 0) {
|
|
27
|
+
queue.unsafeOffer(message[1]);
|
|
28
|
+
} else {
|
|
29
|
+
Effect.runFork(shutdown);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function onMessageError(error) {
|
|
33
|
+
resume(Effect.fail(WorkerError("decode", error.message, error.error?.stack)));
|
|
34
|
+
}
|
|
35
|
+
function onError(error) {
|
|
36
|
+
resume(Effect.fail(WorkerError("unknown", error.message, error.error?.stack)));
|
|
37
|
+
}
|
|
38
|
+
port.addEventListener("message", onMessage);
|
|
39
|
+
port.addEventListener("messageerror", onMessageError);
|
|
40
|
+
port.addEventListener("error", onError);
|
|
41
|
+
return Effect.sync(() => {
|
|
42
|
+
port.removeEventListener("message", onMessage);
|
|
43
|
+
port.removeEventListener("messageerror", onMessageError);
|
|
44
|
+
port.removeEventListener("error", onError);
|
|
45
|
+
});
|
|
46
|
+
}), Effect.tapErrorCause(cause => Cause.isInterruptedOnly(cause) ? Effect.unit : Effect.logDebug(cause)), Effect.retry(Schedule.forever), Effect.annotateLogs({
|
|
47
|
+
package: "@effect/platform-browser",
|
|
48
|
+
module: "WorkerRunner"
|
|
49
|
+
}), Effect.interruptible, Effect.forkScoped);
|
|
50
|
+
const send = (message, transfer) => Effect.sync(() => port.postMessage([1, message], {
|
|
51
|
+
transfer: transfer
|
|
52
|
+
}));
|
|
53
|
+
// ready
|
|
54
|
+
port.postMessage([0]);
|
|
55
|
+
return {
|
|
56
|
+
queue,
|
|
57
|
+
send
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
/** @internal */
|
|
63
|
+
export const layerPlatform = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
|
|
64
|
+
/** @internal */
|
|
65
|
+
export const layer = (process, options) => Layer.provide(Runner.layer(process, options), layerPlatform);
|
|
66
|
+
/** @internal */
|
|
67
|
+
export const layerSerialized = (schema, handlers) => Layer.provide(Runner.layerSerialized(schema, handlers), layerPlatform);
|
|
68
|
+
//# sourceMappingURL=workerRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Cause","Effect","Layer","Queue","Schedule","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","shutdown","gen","_","port","self","async","resume","signal","addEventListener","event","ports","succeed","once","queue","unbounded","onMessage","message","data","unsafeOffer","runFork","onMessageError","error","fail","stack","onError","sync","removeEventListener","tapErrorCause","cause","isInterruptedOnly","unit","logDebug","retry","forever","annotateLogs","package","module","interruptible","forkScoped","send","transfer","postMessage","layerPlatform","layer","process","options","provide","layerSerialized","schema","handlers"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@effect/platform-browser",
|
|
3
|
+
"version": "0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49",
|
|
4
|
+
"description": "Unified interfaces for common platform-specific services",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/effect-ts/effect.git"
|
|
9
|
+
},
|
|
10
|
+
"sideEffects": [],
|
|
11
|
+
"peerDependencies": {
|
|
12
|
+
"@effect/platform": "^0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49",
|
|
13
|
+
"effect": "^0.0.0-snapshot-c0ae728e57df2c572ea803e1bb7121088cd67b49"
|
|
14
|
+
},
|
|
15
|
+
"main": "./dist/cjs/index.js",
|
|
16
|
+
"module": "./dist/esm/index.js",
|
|
17
|
+
"types": "./dist/dts/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": "./package.json",
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/dts/index.d.ts",
|
|
22
|
+
"import": "./dist/esm/index.js",
|
|
23
|
+
"default": "./dist/cjs/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./Clipboard": {
|
|
26
|
+
"types": "./dist/dts/Clipboard.d.ts",
|
|
27
|
+
"import": "./dist/esm/Clipboard.js",
|
|
28
|
+
"default": "./dist/cjs/Clipboard.js"
|
|
29
|
+
},
|
|
30
|
+
"./Effectify": {
|
|
31
|
+
"types": "./dist/dts/Effectify.d.ts",
|
|
32
|
+
"import": "./dist/esm/Effectify.js",
|
|
33
|
+
"default": "./dist/cjs/Effectify.js"
|
|
34
|
+
},
|
|
35
|
+
"./Error": {
|
|
36
|
+
"types": "./dist/dts/Error.d.ts",
|
|
37
|
+
"import": "./dist/esm/Error.js",
|
|
38
|
+
"default": "./dist/cjs/Error.js"
|
|
39
|
+
},
|
|
40
|
+
"./HttpClient": {
|
|
41
|
+
"types": "./dist/dts/HttpClient.d.ts",
|
|
42
|
+
"import": "./dist/esm/HttpClient.js",
|
|
43
|
+
"default": "./dist/cjs/HttpClient.js"
|
|
44
|
+
},
|
|
45
|
+
"./KeyValueStore": {
|
|
46
|
+
"types": "./dist/dts/KeyValueStore.d.ts",
|
|
47
|
+
"import": "./dist/esm/KeyValueStore.js",
|
|
48
|
+
"default": "./dist/cjs/KeyValueStore.js"
|
|
49
|
+
},
|
|
50
|
+
"./Path": {
|
|
51
|
+
"types": "./dist/dts/Path.d.ts",
|
|
52
|
+
"import": "./dist/esm/Path.js",
|
|
53
|
+
"default": "./dist/cjs/Path.js"
|
|
54
|
+
},
|
|
55
|
+
"./Runtime": {
|
|
56
|
+
"types": "./dist/dts/Runtime.d.ts",
|
|
57
|
+
"import": "./dist/esm/Runtime.js",
|
|
58
|
+
"default": "./dist/cjs/Runtime.js"
|
|
59
|
+
},
|
|
60
|
+
"./Transferable": {
|
|
61
|
+
"types": "./dist/dts/Transferable.d.ts",
|
|
62
|
+
"import": "./dist/esm/Transferable.js",
|
|
63
|
+
"default": "./dist/cjs/Transferable.js"
|
|
64
|
+
},
|
|
65
|
+
"./Worker": {
|
|
66
|
+
"types": "./dist/dts/Worker.d.ts",
|
|
67
|
+
"import": "./dist/esm/Worker.js",
|
|
68
|
+
"default": "./dist/cjs/Worker.js"
|
|
69
|
+
},
|
|
70
|
+
"./WorkerRunner": {
|
|
71
|
+
"types": "./dist/dts/WorkerRunner.d.ts",
|
|
72
|
+
"import": "./dist/esm/WorkerRunner.js",
|
|
73
|
+
"default": "./dist/cjs/WorkerRunner.js"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"typesVersions": {
|
|
77
|
+
"*": {
|
|
78
|
+
"Clipboard": [
|
|
79
|
+
"./dist/dts/Clipboard.d.ts"
|
|
80
|
+
],
|
|
81
|
+
"Effectify": [
|
|
82
|
+
"./dist/dts/Effectify.d.ts"
|
|
83
|
+
],
|
|
84
|
+
"Error": [
|
|
85
|
+
"./dist/dts/Error.d.ts"
|
|
86
|
+
],
|
|
87
|
+
"HttpClient": [
|
|
88
|
+
"./dist/dts/HttpClient.d.ts"
|
|
89
|
+
],
|
|
90
|
+
"KeyValueStore": [
|
|
91
|
+
"./dist/dts/KeyValueStore.d.ts"
|
|
92
|
+
],
|
|
93
|
+
"Path": [
|
|
94
|
+
"./dist/dts/Path.d.ts"
|
|
95
|
+
],
|
|
96
|
+
"Runtime": [
|
|
97
|
+
"./dist/dts/Runtime.d.ts"
|
|
98
|
+
],
|
|
99
|
+
"Transferable": [
|
|
100
|
+
"./dist/dts/Transferable.d.ts"
|
|
101
|
+
],
|
|
102
|
+
"Worker": [
|
|
103
|
+
"./dist/dts/Worker.d.ts"
|
|
104
|
+
],
|
|
105
|
+
"WorkerRunner": [
|
|
106
|
+
"./dist/dts/WorkerRunner.d.ts"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
package/src/Clipboard.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { PlatformError } from "@effect/platform/Error"
|
|
6
|
+
import type { Tag } from "effect/Context"
|
|
7
|
+
import type * as Effect from "effect/Effect"
|
|
8
|
+
import type * as Layer from "effect/Layer"
|
|
9
|
+
import * as internal from "./internal/clipboard.js"
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category interface
|
|
14
|
+
*/
|
|
15
|
+
export interface Clipboard {
|
|
16
|
+
readonly read: Effect.Effect<ClipboardItems, PlatformError>
|
|
17
|
+
readonly readString: Effect.Effect<string, PlatformError>
|
|
18
|
+
readonly write: (items: ClipboardItems) => Effect.Effect<void, PlatformError>
|
|
19
|
+
readonly writeString: (text: string) => Effect.Effect<void, PlatformError>
|
|
20
|
+
readonly writeBlob: (blob: Blob) => Effect.Effect<void, PlatformError>
|
|
21
|
+
readonly clear: Effect.Effect<void, PlatformError>
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
* @category constructor
|
|
27
|
+
*/
|
|
28
|
+
export const make: (
|
|
29
|
+
impl: Omit<Clipboard, "clear" | "writeBlob">
|
|
30
|
+
) => Clipboard = internal.make
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
* @category tag
|
|
35
|
+
*/
|
|
36
|
+
export const Clipboard: Tag<Clipboard, Clipboard> = internal.tag
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A layer that directly interfaces with the navigator.clipboard api
|
|
40
|
+
*
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
* @category layers
|
|
43
|
+
*/
|
|
44
|
+
export const layer: Layer.Layer<Clipboard> = internal.layer
|
package/src/Effectify.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export type {
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
Effectify,
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
EffectifyError
|
|
14
|
+
} from "@effect/platform/Effectify"
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category constructor
|
|
20
|
+
*/
|
|
21
|
+
effectify
|
|
22
|
+
} from "@effect/platform/Effectify"
|