@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.
Files changed (126) hide show
  1. package/Clipboard/package.json +6 -0
  2. package/Effectify/package.json +6 -0
  3. package/Error/package.json +6 -0
  4. package/HttpClient/package.json +6 -0
  5. package/KeyValueStore/package.json +6 -0
  6. package/LICENSE +21 -0
  7. package/Path/package.json +6 -0
  8. package/README.md +64 -0
  9. package/Runtime/package.json +6 -0
  10. package/Transferable/package.json +6 -0
  11. package/Worker/package.json +6 -0
  12. package/WorkerRunner/package.json +6 -0
  13. package/dist/cjs/Clipboard.js +54 -0
  14. package/dist/cjs/Clipboard.js.map +1 -0
  15. package/dist/cjs/Effectify.js +13 -0
  16. package/dist/cjs/Effectify.js.map +1 -0
  17. package/dist/cjs/Error.js +25 -0
  18. package/dist/cjs/Error.js.map +1 -0
  19. package/dist/cjs/HttpClient.js +46 -0
  20. package/dist/cjs/HttpClient.js.map +1 -0
  21. package/dist/cjs/KeyValueStore.js +73 -0
  22. package/dist/cjs/KeyValueStore.js.map +1 -0
  23. package/dist/cjs/Path.js +17 -0
  24. package/dist/cjs/Path.js.map +1 -0
  25. package/dist/cjs/Runtime.js +38 -0
  26. package/dist/cjs/Runtime.js.map +1 -0
  27. package/dist/cjs/Transferable.js +17 -0
  28. package/dist/cjs/Transferable.js.map +1 -0
  29. package/dist/cjs/Worker.js +87 -0
  30. package/dist/cjs/Worker.js.map +1 -0
  31. package/dist/cjs/WorkerRunner.js +69 -0
  32. package/dist/cjs/WorkerRunner.js.map +1 -0
  33. package/dist/cjs/index.js +52 -0
  34. package/dist/cjs/index.js.map +1 -0
  35. package/dist/cjs/internal/clipboard.js +88 -0
  36. package/dist/cjs/internal/clipboard.js.map +1 -0
  37. package/dist/cjs/internal/keyValueStore.js +128 -0
  38. package/dist/cjs/internal/keyValueStore.js.map +1 -0
  39. package/dist/cjs/internal/runtime.js +47 -0
  40. package/dist/cjs/internal/runtime.js.map +1 -0
  41. package/dist/cjs/internal/worker.js +89 -0
  42. package/dist/cjs/internal/worker.js.map +1 -0
  43. package/dist/cjs/internal/workerRunner.js +101 -0
  44. package/dist/cjs/internal/workerRunner.js.map +1 -0
  45. package/dist/dts/Clipboard.d.ts +37 -0
  46. package/dist/dts/Clipboard.d.ts.map +1 -0
  47. package/dist/dts/Effectify.d.ts +19 -0
  48. package/dist/dts/Effectify.d.ts.map +1 -0
  49. package/dist/dts/Error.d.ts +31 -0
  50. package/dist/dts/Error.d.ts.map +1 -0
  51. package/dist/dts/HttpClient.d.ts +61 -0
  52. package/dist/dts/HttpClient.d.ts.map +1 -0
  53. package/dist/dts/KeyValueStore.d.ts +19 -0
  54. package/dist/dts/KeyValueStore.d.ts.map +1 -0
  55. package/dist/dts/Path.d.ts +7 -0
  56. package/dist/dts/Path.d.ts.map +1 -0
  57. package/dist/dts/Runtime.d.ts +10 -0
  58. package/dist/dts/Runtime.d.ts.map +1 -0
  59. package/dist/dts/Transferable.d.ts +7 -0
  60. package/dist/dts/Transferable.d.ts.map +1 -0
  61. package/dist/dts/Worker.d.ts +46 -0
  62. package/dist/dts/Worker.d.ts.map +1 -0
  63. package/dist/dts/WorkerRunner.d.ts +30 -0
  64. package/dist/dts/WorkerRunner.d.ts.map +1 -0
  65. package/dist/dts/index.d.ts +51 -0
  66. package/dist/dts/index.d.ts.map +1 -0
  67. package/dist/dts/internal/clipboard.d.ts +2 -0
  68. package/dist/dts/internal/clipboard.d.ts.map +1 -0
  69. package/dist/dts/internal/keyValueStore.d.ts +2 -0
  70. package/dist/dts/internal/keyValueStore.d.ts.map +1 -0
  71. package/dist/dts/internal/runtime.d.ts +2 -0
  72. package/dist/dts/internal/runtime.d.ts.map +1 -0
  73. package/dist/dts/internal/worker.d.ts +2 -0
  74. package/dist/dts/internal/worker.d.ts.map +1 -0
  75. package/dist/dts/internal/workerRunner.d.ts +2 -0
  76. package/dist/dts/internal/workerRunner.d.ts.map +1 -0
  77. package/dist/esm/Clipboard.js +22 -0
  78. package/dist/esm/Clipboard.js.map +1 -0
  79. package/dist/esm/Effectify.js +10 -0
  80. package/dist/esm/Effectify.js.map +1 -0
  81. package/dist/esm/Error.js +20 -0
  82. package/dist/esm/Error.js.map +1 -0
  83. package/dist/esm/HttpClient.js +61 -0
  84. package/dist/esm/HttpClient.js.map +1 -0
  85. package/dist/esm/KeyValueStore.js +25 -0
  86. package/dist/esm/KeyValueStore.js.map +1 -0
  87. package/dist/esm/Path.js +7 -0
  88. package/dist/esm/Path.js.map +1 -0
  89. package/dist/esm/Runtime.js +7 -0
  90. package/dist/esm/Runtime.js.map +1 -0
  91. package/dist/esm/Transferable.js +7 -0
  92. package/dist/esm/Transferable.js.map +1 -0
  93. package/dist/esm/Worker.js +36 -0
  94. package/dist/esm/Worker.js.map +1 -0
  95. package/dist/esm/WorkerRunner.js +21 -0
  96. package/dist/esm/WorkerRunner.js.map +1 -0
  97. package/dist/esm/index.js +51 -0
  98. package/dist/esm/index.js.map +1 -0
  99. package/dist/esm/internal/clipboard.js +56 -0
  100. package/dist/esm/internal/clipboard.js.map +1 -0
  101. package/dist/esm/internal/keyValueStore.js +97 -0
  102. package/dist/esm/internal/keyValueStore.js.map +1 -0
  103. package/dist/esm/internal/runtime.js +15 -0
  104. package/dist/esm/internal/runtime.js.map +1 -0
  105. package/dist/esm/internal/worker.js +58 -0
  106. package/dist/esm/internal/worker.js.map +1 -0
  107. package/dist/esm/internal/workerRunner.js +68 -0
  108. package/dist/esm/internal/workerRunner.js.map +1 -0
  109. package/dist/esm/package.json +4 -0
  110. package/package.json +110 -0
  111. package/src/Clipboard.ts +44 -0
  112. package/src/Effectify.ts +22 -0
  113. package/src/Error.ts +34 -0
  114. package/src/HttpClient.ts +62 -0
  115. package/src/KeyValueStore.ts +27 -0
  116. package/src/Path.ts +7 -0
  117. package/src/Runtime.ts +11 -0
  118. package/src/Transferable.ts +7 -0
  119. package/src/Worker.ts +64 -0
  120. package/src/WorkerRunner.ts +45 -0
  121. package/src/index.ts +59 -0
  122. package/src/internal/clipboard.ts +71 -0
  123. package/src/internal/keyValueStore.ts +130 -0
  124. package/src/internal/runtime.ts +20 -0
  125. package/src/internal/worker.ts +72 -0
  126. 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":"AAAA,SAASA,WAAW,QAAQ,8BAA8B;AAC1D,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAI3C,MAAMC,kBAAkB,gBAAGN,MAAM,CAACO,cAAc,CAACC,EAAE,CAAC;EAClD,CAACR,MAAM,CAACS,oBAAoB,GAAGT,MAAM,CAACS,oBAAoB;EAC1DC,KAAKA,CAAOC,QAA6B;IACvC,OAAOT,MAAM,CAACU,GAAG,CAAC,WAAUC,CAAC;MAC3B,MAAMC,IAAI,GAAG,aAAa,IAAIC,IAAI,GAChCA,IAAI,GACH,OAAOF,CAAC,CAACX,MAAM,CAACc,KAAK,CAA4B,CAACC,MAAM,EAAEC,MAAM,KAAI;QACnEH,IAAI,CAACI,gBAAgB,CAAC,SAAS,EAAE,UAASC,KAAK;UAC7C,MAAMN,IAAI,GAAIM,KAAsB,CAACC,KAAK,CAAC,CAAC,CAAC;UAC7CP,IAAI,CAACJ,KAAK,EAAE;UACZO,MAAM,CAACf,MAAM,CAACoB,OAAO,CAACR,IAAI,CAAC,CAAC;QAC9B,CAAC,EAAE;UAAES,IAAI,EAAE,IAAI;UAAEL;QAAM,CAAE,CAAC;MAC5B,CAAC,CAAC,CAAE;MACN,MAAMM,KAAK,GAAG,OAAOX,CAAC,CAACT,KAAK,CAACqB,SAAS,EAAK,CAAC;MAC5C,OAAOZ,CAAC,CACNX,MAAM,CAACc,KAAK,CAA6BC,MAAM,IAAI;QACjD,SAASS,SAASA,CAACN,KAAmB;UACpC,MAAMO,OAAO,GAAIP,KAAsB,CAACQ,IAAuC;UAC/E,IAAID,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YACpBH,KAAK,CAACK,WAAW,CAACF,OAAO,CAAC,CAAC,CAAC,CAAC;UAC/B,CAAC,MAAM;YACLzB,MAAM,CAAC4B,OAAO,CAACnB,QAAQ,CAAC;UAC1B;QACF;QACA,SAASoB,cAAcA,CAACC,KAAiB;UACvCf,MAAM,CAACf,MAAM,CAAC+B,IAAI,CAAClC,WAAW,CAAC,QAAQ,EAAEiC,KAAK,CAACL,OAAO,EAAEK,KAAK,CAACA,KAAK,EAAEE,KAAK,CAAC,CAAC,CAAC;QAC/E;QACA,SAASC,OAAOA,CAACH,KAAiB;UAChCf,MAAM,CAACf,MAAM,CAAC+B,IAAI,CAAClC,WAAW,CAAC,SAAS,EAAEiC,KAAK,CAACL,OAAO,EAAEK,KAAK,CAACA,KAAK,EAAEE,KAAK,CAAC,CAAC,CAAC;QAChF;QACApB,IAAI,CAACK,gBAAgB,CAAC,SAAS,EAAEO,SAAgB,CAAC;QAClDZ,IAAI,CAACK,gBAAgB,CAAC,cAAc,EAAEY,cAAqB,CAAC;QAC5DjB,IAAI,CAACK,gBAAgB,CAAC,OAAO,EAAEgB,OAAc,CAAC;QAC9C,OAAOjC,MAAM,CAACkC,IAAI,CAAC,MAAK;UACtBtB,IAAI,CAACuB,mBAAmB,CAAC,SAAS,EAAEX,SAAgB,CAAC;UACrDZ,IAAI,CAACuB,mBAAmB,CAAC,cAAc,EAAEN,cAAqB,CAAC;UAC/DjB,IAAI,CAACuB,mBAAmB,CAAC,OAAO,EAAEF,OAAc,CAAC;QACnD,CAAC,CAAC;MACJ,CAAC,CAAC,EACFjC,MAAM,CAACoC,aAAa,CAAEC,KAAK,IAAKtC,KAAK,CAACuC,iBAAiB,CAACD,KAAK,CAAC,GAAGrC,MAAM,CAACuC,IAAI,GAAGvC,MAAM,CAACwC,QAAQ,CAACH,KAAK,CAAC,CAAC,EACtGrC,MAAM,CAACyC,KAAK,CAACtC,QAAQ,CAACuC,OAAO,CAAC,EAC9B1C,MAAM,CAAC2C,YAAY,CAAC;QAClBC,OAAO,EAAE,0BAA0B;QACnCC,MAAM,EAAE;OACT,CAAC,EACF7C,MAAM,CAAC8C,aAAa,EACpB9C,MAAM,CAAC+C,UAAU,CAClB;MACD,MAAMC,IAAI,GAAGA,CAACvB,OAAU,EAAEwB,QAAiC,KACzDjD,MAAM,CAACkC,IAAI,CAAC,MACVtB,IAAI,CAACsC,WAAW,CAAC,CAAC,CAAC,EAAEzB,OAAO,CAAC,EAAE;QAC7BwB,QAAQ,EAAEA;OACX,CAAC,CACH;MACH;MACArC,IAAI,CAACsC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;MACrB,OAAO;QAAE5B,KAAK;QAAE0B;MAAI,CAAE;IACxB,CAAC,CAAC;EACJ;CACD,CAAC;AAEF;AACA,OAAO,MAAMG,aAAa,gBAAGlD,KAAK,CAACmB,OAAO,CAACtB,MAAM,CAACO,cAAc,EAAED,kBAAkB,CAAC;AAErF;AACA,OAAO,MAAMgD,KAAK,GAAGA,CACnBC,OAA+C,EAC/CC,OAAwC,KACDrD,KAAK,CAACsD,OAAO,CAACzD,MAAM,CAACsD,KAAK,CAACC,OAAO,EAAEC,OAAO,CAAC,EAAEH,aAAa,CAAC;AAErG;AACA,OAAO,MAAMK,eAAe,GAAGA,CAM7BC,MAA8B,EAC9BC,QAAkB,KAElBzD,KAAK,CAACsD,OAAO,CAACzD,MAAM,CAAC0D,eAAe,CAACC,MAAM,EAAEC,QAAQ,CAAC,EAAEP,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "type": "module",
3
+ "sideEffects": []
4
+ }
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
+ }
@@ -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
@@ -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"