@effect/platform-browser 4.0.0-beta.98 → 4.0.0-rc.108

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 (137) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/README.md +14 -1
  4. package/ai-docs/README.md +44 -0
  5. package/ai-docs/package.json +36 -0
  6. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  7. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  8. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  9. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  10. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  11. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  12. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  13. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  15. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  16. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  17. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  18. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  19. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  20. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  21. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  22. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  23. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  24. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  25. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  26. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  27. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  28. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  29. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  30. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  31. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  32. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  33. package/ai-docs/src/03_stream/index.md +4 -0
  34. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  35. package/ai-docs/src/04_integration/index.md +5 -0
  36. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  37. package/ai-docs/src/05_batching/index.md +3 -0
  38. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  39. package/ai-docs/src/06_schedule/index.md +3 -0
  40. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  41. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  42. package/ai-docs/src/07_datetime/index.md +5 -0
  43. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  44. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  45. package/ai-docs/src/08_observability/index.md +7 -0
  46. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  47. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  48. package/ai-docs/src/09_testing/index.md +1 -0
  49. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  50. package/ai-docs/src/10_predicate/index.md +9 -0
  51. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  52. package/ai-docs/src/50_http-client/index.md +3 -0
  53. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  57. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  59. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  62. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  63. package/ai-docs/src/51_http-server/index.md +3 -0
  64. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  65. package/ai-docs/src/60_child-process/index.md +3 -0
  66. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  67. package/ai-docs/src/70_cli/index.md +5 -0
  68. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  69. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  70. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  71. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  72. package/ai-docs/src/71_ai/index.md +5 -0
  73. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  74. package/ai-docs/src/80_cluster/index.md +4 -0
  75. package/ai-docs/src/index.md +10 -0
  76. package/ai-docs/tsconfig.json +24 -0
  77. package/dist/BrowserCrypto.d.ts +1 -1
  78. package/dist/BrowserCrypto.d.ts.map +1 -1
  79. package/dist/BrowserCrypto.js +4 -2
  80. package/dist/BrowserCrypto.js.map +1 -1
  81. package/dist/BrowserHttpClient.d.ts +5 -5
  82. package/dist/BrowserHttpClient.d.ts.map +1 -1
  83. package/dist/BrowserHttpClient.js +12 -7
  84. package/dist/BrowserHttpClient.js.map +1 -1
  85. package/dist/BrowserKeyValueStore.d.ts.map +1 -1
  86. package/dist/BrowserKeyValueStore.js +38 -9
  87. package/dist/BrowserKeyValueStore.js.map +1 -1
  88. package/dist/BrowserPersistence.js.map +1 -1
  89. package/dist/BrowserRuntime.d.ts +3 -3
  90. package/dist/BrowserRuntime.js +1 -1
  91. package/dist/BrowserRuntime.js.map +1 -1
  92. package/dist/BrowserSocket.js.map +1 -1
  93. package/dist/BrowserStream.d.ts +2 -2
  94. package/dist/BrowserStream.js +2 -2
  95. package/dist/BrowserStream.js.map +1 -1
  96. package/dist/BrowserWorker.js.map +1 -1
  97. package/dist/BrowserWorkerRunner.d.ts.map +1 -1
  98. package/dist/BrowserWorkerRunner.js +2 -1
  99. package/dist/BrowserWorkerRunner.js.map +1 -1
  100. package/dist/Clipboard.d.ts +1 -1
  101. package/dist/Clipboard.js.map +1 -1
  102. package/dist/Geolocation.d.ts +1 -1
  103. package/dist/Geolocation.js.map +1 -1
  104. package/dist/IndexedDb.d.ts +3 -3
  105. package/dist/IndexedDb.d.ts.map +1 -1
  106. package/dist/IndexedDb.js +2 -2
  107. package/dist/IndexedDb.js.map +1 -1
  108. package/dist/IndexedDbDatabase.d.ts +3 -3
  109. package/dist/IndexedDbDatabase.d.ts.map +1 -1
  110. package/dist/IndexedDbDatabase.js +13 -7
  111. package/dist/IndexedDbDatabase.js.map +1 -1
  112. package/dist/IndexedDbQueryBuilder.d.ts +9 -9
  113. package/dist/IndexedDbQueryBuilder.d.ts.map +1 -1
  114. package/dist/IndexedDbQueryBuilder.js +38 -13
  115. package/dist/IndexedDbQueryBuilder.js.map +1 -1
  116. package/dist/IndexedDbTable.d.ts +9 -9
  117. package/dist/IndexedDbTable.js.map +1 -1
  118. package/dist/IndexedDbVersion.d.ts +4 -4
  119. package/dist/IndexedDbVersion.js.map +1 -1
  120. package/dist/Permissions.d.ts +1 -1
  121. package/dist/Permissions.js.map +1 -1
  122. package/dist/index.js.map +1 -1
  123. package/package.json +12 -13
  124. package/src/BrowserCrypto.ts +4 -2
  125. package/src/BrowserHttpClient.ts +11 -7
  126. package/src/BrowserKeyValueStore.ts +50 -8
  127. package/src/BrowserRuntime.ts +3 -3
  128. package/src/BrowserStream.ts +2 -2
  129. package/src/BrowserWorkerRunner.ts +2 -1
  130. package/src/Clipboard.ts +1 -1
  131. package/src/Geolocation.ts +1 -1
  132. package/src/IndexedDb.ts +3 -3
  133. package/src/IndexedDbDatabase.ts +15 -9
  134. package/src/IndexedDbQueryBuilder.ts +64 -21
  135. package/src/IndexedDbTable.ts +9 -9
  136. package/src/IndexedDbVersion.ts +4 -4
  137. package/src/Permissions.ts +1 -1
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @title Stateful chat sessions
3
+ *
4
+ * The AI `Chat` module maintains conversation history automatically. Build
5
+ * AI agents or chat assistants.
6
+ */
7
+ import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai"
8
+ import { Config, Context, DateTime, Effect, Layer, Ref, Schema } from "effect"
9
+ import { AiError, Chat, Prompt, Tool, Toolkit } from "effect/unstable/ai"
10
+ import { FetchHttpClient } from "effect/unstable/http"
11
+
12
+ // ---------------------------------------------------------------------------
13
+ // Provider setup
14
+ // ---------------------------------------------------------------------------
15
+
16
+ const OpenAiClientLayer = OpenAiClient.layerConfig({
17
+ apiKey: Config.redacted("OPENAI_API_KEY")
18
+ }).pipe(Layer.provide(FetchHttpClient.layer))
19
+
20
+ // ---------------------------------------------------------------------------
21
+ // Tools for the agentic loop
22
+ // ---------------------------------------------------------------------------
23
+
24
+ const Tools = Toolkit.make(Tool.make("getCurrentTime", {
25
+ description: "Get the current time in ISO format",
26
+ parameters: Schema.Struct({
27
+ id: Schema.String
28
+ }),
29
+ success: Schema.String
30
+ }))
31
+
32
+ const ToolsLayer = Tools.toLayer(Effect.gen(function*() {
33
+ yield* Effect.logDebug("Initializing tools...")
34
+ return Tools.of({
35
+ getCurrentTime: Effect.fn("Tools.getCurrentTime")(function*(_) {
36
+ const now = yield* DateTime.now
37
+ return DateTime.formatIso(now)
38
+ })
39
+ })
40
+ }))
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // Service that wraps Chat for a domain use-case
44
+ // ---------------------------------------------------------------------------
45
+
46
+ export class AiAssistantError extends Schema.TaggedError<AiAssistantError>()("AiAssistantError", {
47
+ reason: AiError.AiErrorReason
48
+ }) {
49
+ static fromAiError(error: AiError.AiError) {
50
+ return new AiAssistantError({ reason: error.reason })
51
+ }
52
+ }
53
+
54
+ export class AiAssistant extends Context.Service<AiAssistant, {
55
+ // Send a message while maintaining conversation history across turns.
56
+ chat(message: string): Effect.Effect<string, AiAssistantError>
57
+ // Ask a question and use an agentic loop with tool calls to answer it.
58
+ agent(question: string): Effect.Effect<string, AiAssistantError>
59
+ }>()("acme/AiAssistant") {
60
+ static readonly layer = Layer.effect(
61
+ AiAssistant,
62
+ Effect.gen(function*() {
63
+ // Choose the model you want to use for the chat sessions.
64
+ const modelLayer = yield* OpenAiLanguageModel.model("gpt-5.2").captureRequirements
65
+
66
+ // ---------------------------------------------------------------------------
67
+ // 1. Chat.empty — basic multi-turn conversation
68
+ // ---------------------------------------------------------------------------
69
+
70
+ // Create a new chat session with `Chat.empty` or `Chat.fromPrompt`. The
71
+ // session maintains conversation history automatically, so you can focus on
72
+ // the current turn without having to manage context.
73
+ const newSession = yield* Chat.fromPrompt(Prompt.empty.pipe(
74
+ Prompt.setSystem("You are a helpful assistant that answers questions.")
75
+ ))
76
+
77
+ // You can also create a chat using a json export.
78
+ const json = yield* newSession.exportJson
79
+ const session = yield* Chat.fromJson(json)
80
+
81
+ const chat = Effect.fn("AiAssistant.chat")(
82
+ function*(message: string) {
83
+ // Create a new turn in the conversation by passing the user's message
84
+ // to `session.generateText`.
85
+ const response = yield* session.generateText({ prompt: message }).pipe(
86
+ // Provide the model layer to use.
87
+ // You could potentially use different models for different turns,
88
+ // or even switch models in the middle of a conversation.
89
+ Effect.provide(modelLayer)
90
+ )
91
+
92
+ // You can inspect the accumulated history at any point through the
93
+ // `history` ref on the chat instance.
94
+ const history = yield* Ref.get(session.history)
95
+ yield* Effect.logInfo(
96
+ `Conversation has ${history.content.length} messages`
97
+ )
98
+
99
+ return response.text
100
+ },
101
+ Effect.mapError((error) => AiAssistantError.fromAiError(error))
102
+ )
103
+
104
+ // ---------------------------------------------------------------------------
105
+ // 2. Create agentic loops with tools
106
+ // ---------------------------------------------------------------------------
107
+
108
+ const tools = yield* Tools
109
+ const agent = Effect.fn("AiAssistant.agent")(
110
+ function*(question: string) {
111
+ // We start the agent with a system prompt and the user question. The
112
+ // agent can then call tools in a loop until it decides to return a
113
+ // final answer.
114
+ const session = yield* Chat.fromPrompt([
115
+ { role: "system", content: "You are an assistant that can use tools to answer questions." },
116
+ { role: "user", content: question }
117
+ ])
118
+
119
+ while (true) {
120
+ const response = yield* session.generateText({
121
+ prompt: [], // No additional prompt — the model has full access to the conversation history
122
+ toolkit: tools // Provide the tools to the model
123
+ }).pipe(
124
+ // Provide the model layer to use.
125
+ // You could potentially use different models for different turns,
126
+ // or even switch models in the middle of a conversation.
127
+ Effect.provide(modelLayer)
128
+ )
129
+ if (response.toolCalls.length > 0) {
130
+ // If the model called any tools, execute them and the Chat module
131
+ // will automatically add the tool results to the conversation
132
+ // history before the next turn.
133
+ continue
134
+ }
135
+ // If there are no tool calls, the model has returned a final answer
136
+ // and we can exit the loop.
137
+ return response.text
138
+ }
139
+ },
140
+ // Remap AI errors to our domain-specific error type, but die on
141
+ // unexpected errors.
142
+ Effect.catchTag(
143
+ "AiError",
144
+ (error) => Effect.fail(AiAssistantError.fromAiError(error)),
145
+ (e) => Effect.die(e)
146
+ )
147
+ )
148
+
149
+ return AiAssistant.of({
150
+ chat,
151
+ agent
152
+ })
153
+ })
154
+ ).pipe(
155
+ // Provide the OpenAI client and tools layers to the AiAssistant service.
156
+ Layer.provide([OpenAiClientLayer, ToolsLayer])
157
+ )
158
+ }
@@ -0,0 +1,9 @@
1
+ import { Schema } from "effect"
2
+
3
+ export class LaunchPlan extends Schema.Class<LaunchPlan>("LaunchPlan")({
4
+ audience: Schema.Literals(["developers", "operators", "platform teams"]),
5
+ channels: Schema.Array(Schema.String),
6
+ launchDate: Schema.String,
7
+ summary: Schema.String,
8
+ keyRisks: Schema.Array(Schema.String)
9
+ }) {}
@@ -0,0 +1,5 @@
1
+ ## Working with AI modules
2
+
3
+ Effect's AI modules provide a provider-agnostic interface for language models.
4
+ You can generate text, decode structured objects with `Schema` and stream partial
5
+ responses.
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @title Defining cluster entities
3
+ *
4
+ * Define distributed entity RPCs and run them in a cluster.
5
+ */
6
+ import { NodeClusterSocket, NodeRuntime } from "@effect/platform-node"
7
+ import { Effect, Layer, Ref, Schema } from "effect"
8
+ import { ClusterSchema, Entity, TestRunner } from "effect/unstable/cluster"
9
+ import { Rpc } from "effect/unstable/rpc"
10
+ import type { SqlClient } from "effect/unstable/sql"
11
+
12
+ export const Increment = Rpc.make("Increment", {
13
+ payload: { amount: Schema.Int },
14
+ success: Schema.Int
15
+ })
16
+
17
+ export const GetCount = Rpc.make("GetCount", {
18
+ success: Schema.Int
19
+ })
20
+ // If you want GetCount messages to be persisted, you can annotate the RPC
21
+ // schema with `ClusterSchema.Persisted`.
22
+ //
23
+ // By default, messages are volatile and only sent over a network.
24
+ .annotate(ClusterSchema.Persisted, true)
25
+
26
+ // `Entity.make` takes an array of Rpc definitions
27
+ export const Counter = Entity.make("Counter", [Increment, GetCount])
28
+
29
+ // Entity handlers can keep in-memory state while the entity is active.
30
+ // `maxIdleTime` controls passivation: if the entity is idle long enough, it is
31
+ // stopped and later recreated on demand.
32
+ export const CounterEntityLayer = Counter.toLayer(
33
+ Effect.gen(function*() {
34
+ const count = yield* Ref.make(0)
35
+
36
+ return Counter.of({
37
+ Increment: ({ payload }) => Ref.updateAndGet(count, (current) => current + payload.amount),
38
+ GetCount: () =>
39
+ Ref.get(count).pipe(
40
+ // Add Rpc.fork to allow the GetCount handler to run concurrently with
41
+ // Increment handlers.
42
+ //
43
+ // This opts-out of the default behavior where all handlers for a
44
+ // given entity run sequentially.
45
+ Rpc.fork
46
+ )
47
+ })
48
+ }),
49
+ { maxIdleTime: "5 minutes" }
50
+ )
51
+
52
+ // If you ever need to access an entity client, you can use the `client`
53
+ // property on the entity definition.
54
+ export const useCounter = Effect.gen(function*() {
55
+ const clientFor = yield* Counter.client
56
+ const counter = clientFor("counter-123")
57
+
58
+ const afterIncrement = yield* counter.Increment({ amount: 1 })
59
+ const currentCount = yield* counter.GetCount()
60
+
61
+ console.log(`Count after increment: ${afterIncrement}, current count: ${currentCount}`)
62
+ })
63
+
64
+ // `SingleRunner.layer` is useful for local development / tests where you still
65
+ // want the cluster entity runtime model.
66
+ declare const SqlClientLayer: Layer.Layer<SqlClient.SqlClient>
67
+
68
+ // Create the cluster layer using `NodeClusterSocket.layer`
69
+ const ClusterLayer = NodeClusterSocket.layer().pipe(
70
+ Layer.provide(SqlClientLayer)
71
+ )
72
+
73
+ // You can also use `TestRunner.layer` to run your entities in a single process,
74
+ // without any network communication and in-memory storage. This is useful for testing and
75
+ // development.
76
+ const ClusterLayerTest = TestRunner.layer
77
+
78
+ // Merge all your entity layers together and provide the cluster layer to run
79
+ // them in a cluster.
80
+ const EntitiesLayer = Layer.mergeAll(
81
+ CounterEntityLayer
82
+ )
83
+
84
+ const ProductionLayer = EntitiesLayer.pipe(
85
+ Layer.provide(ClusterLayer)
86
+ )
87
+
88
+ export const TestLayer = EntitiesLayer.pipe(
89
+ // For testing, we can use `Layer.provideMerge` to tests can access storage
90
+ // and other cluster services directly.
91
+ Layer.provideMerge(ClusterLayerTest)
92
+ )
93
+
94
+ // Finally, run your app with the entities layer.
95
+ Layer.launch(ProductionLayer).pipe(
96
+ NodeRuntime.runMain
97
+ )
@@ -0,0 +1,4 @@
1
+ ## Building distributed applications with cluster
2
+
3
+ The cluster modules let you model stateful services as entities and distribute
4
+ them across multiple machines.
@@ -0,0 +1,10 @@
1
+ # Effect library documentation
2
+
3
+ This documentation covers the Effect library and its related packages.
4
+
5
+ When you need to find information about Effect, use this documentation and the
6
+ Effect source code available in your environment. Avoid unrelated copies of
7
+ Effect or external documentation, as they may be outdated or incorrect.
8
+
9
+ **Note**: The examples in this documentation contain comments for illustration
10
+ purposes. In practice, you would not include these comments in your code.
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "extends": "../tsconfig.base.json",
4
+ "include": ["src/**/*.ts", "src/**/*.tsx"],
5
+ "compilerOptions": {
6
+ "rootDir": ".",
7
+ "noEmit": true,
8
+ "declaration": false,
9
+ "declarationMap": false,
10
+ "composite": false,
11
+ "incremental": false,
12
+ "types": ["node"],
13
+ "plugins": [
14
+ {
15
+ "name": "@effect/language-service",
16
+ "namespaceImportPackages": [],
17
+ "diagnosticSeverity": {
18
+ "floatingEffect": "off",
19
+ "preferSchemaOverJson": "off"
20
+ }
21
+ }
22
+ ]
23
+ }
24
+ }
@@ -19,7 +19,7 @@ import * as Layer from "effect/Layer";
19
19
  * Use to override the browser `Crypto` object used by the platform crypto
20
20
  * layer.
21
21
  *
22
- * @category references
22
+ * @category services
23
23
  * @since 1.0.0
24
24
  */
25
25
  export declare const WebCrypto: Context.Reference<Crypto>;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../src/BrowserCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,2BAEpB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CA2ClD,CAAA"}
1
+ {"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../src/BrowserCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,2BAEpB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CA6ClD,CAAA"}
@@ -21,7 +21,7 @@ import * as PlatformError from "effect/PlatformError";
21
21
  * Use to override the browser `Crypto` object used by the platform crypto
22
22
  * layer.
23
23
  *
24
- * @category references
24
+ * @category services
25
25
  * @since 1.0.0
26
26
  */
27
27
  export const WebCrypto = /*#__PURE__*/Context.Reference("@effect/platform-browser/Crypto/WebCrypto", {
@@ -56,7 +56,9 @@ export const layer = /*#__PURE__*/Layer.effect(EffectCrypto.Crypto, /*#__PURE__*
56
56
  }
57
57
  const randomBytes = size => {
58
58
  const bytes = new Uint8Array(size);
59
- crypto.getRandomValues(bytes);
59
+ for (let i = 0; i < bytes.length; i += 65_536) {
60
+ crypto.getRandomValues(bytes.subarray(i, i + 65_536));
61
+ }
60
62
  return bytes;
61
63
  };
62
64
  const digest = (algorithm, data) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserCrypto.js","names":["Context","EffectCrypto","Effect","Layer","PlatformError","WebCrypto","Reference","defaultValue","globalThis","crypto","layer","effect","Crypto","gen","die","Error","randomBytes","size","bytes","Uint8Array","getRandomValues","digest","algorithm","data","subtle","fail","systemError","module","method","_tag","description","map","tryPromise","try","catch","cause","buffer","make"],"sources":["../src/BrowserCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,YAAY,MAAM,eAAe;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,aAAa,MAAM,sBAAsB;AAErD;;;;;;;;;;;AAWA,OAAO,MAAMC,SAAS,gBAAGL,OAAO,CAACM,SAAS,CAAS,2CAA2C,EAAE;EAC9FC,YAAY,EAAEA,CAAA,KAAMC,UAAU,CAACC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMC,KAAK,gBAAqCP,KAAK,CAACQ,MAAM,CACjEV,YAAY,CAACW,MAAM,eACnBV,MAAM,CAACW,GAAG,CAAC,aAAS;EAClB,MAAMJ,MAAM,GAAG,OAAOJ,SAAS;EAC/B,IAAI,CAACI,MAAM,EAAE;IACX,OAAO,OAAOP,MAAM,CAACY,GAAG,CAAC,IAAIC,KAAK,CAAC,iCAAiC,CAAC,CAAC;EACxE;EACA,MAAMC,WAAW,GAAIC,IAAY,IAAgB;IAC/C,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,IAAI,CAAC;IAClCR,MAAM,CAACW,eAAe,CAACF,KAAK,CAAC;IAC7B,OAAOA,KAAK;EACd,CAAC;EAED,MAAMG,MAAM,GAAkCA,CAACC,SAAS,EAAEC,IAAI,KAAI;IAChE,IAAI,OAAOd,MAAM,CAACe,MAAM,CAACH,MAAM,KAAK,UAAU,EAAE;MAC9C,OAAOnB,MAAM,CAACuB,IAAI,CAACrB,aAAa,CAACsB,WAAW,CAAC;QAC3CC,MAAM,EAAE,QAAQ;QAChBC,MAAM,EAAE,QAAQ;QAChBC,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE;OACd,CAAC,CAAC;IACL;IACA,OAAO5B,MAAM,CAAC6B,GAAG,CACf7B,MAAM,CAAC8B,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMxB,MAAM,CAACe,MAAM,CAACH,MAAM,CAACC,SAAS,EAAE,IAAIH,UAAU,CAACI,IAAI,CAAC,CAAC;MAChEW,KAAK,EAAGC,KAAK,IACX/B,aAAa,CAACsB,WAAW,CAAC;QACxBC,MAAM,EAAE,QAAQ;QAChBC,MAAM,EAAE,QAAQ;QAChBC,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,0BAA0B;QACvCK;OACD;KACJ,CAAC,EACDC,MAAM,IAAK,IAAIjB,UAAU,CAACiB,MAAM,CAAC,CACnC;EACH,CAAC;EAED,OAAOnC,YAAY,CAACoC,IAAI,CAAC;IACvBrB,WAAW;IACXK;GACD,CAAC;AACJ,CAAC,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"BrowserCrypto.js","names":[],"sources":["../src/BrowserCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAK,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe;AAC7C,OAAO,KAAK,MAAM,MAAM,eAAe;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc;AACrC,OAAO,KAAK,aAAa,MAAM,sBAAsB;AAErD;;;;;;;;;;;AAWA,OAAO,MAAM,SAAS,gBAAG,OAAO,CAAC,SAAS,CAAS,2CAA2C,EAAE;EAC9F,YAAY,EAAE,MAAM,UAAU,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAM,KAAK,gBAAqC,KAAK,CAAC,MAAM,CACjE,YAAY,CAAC,MAAM,eACnB,MAAM,CAAC,GAAG,CAAC,aAAS;EAClB,MAAM,MAAM,GAAG,OAAO,SAAS;EAC/B,IAAI,CAAC,MAAM,EAAE;IACX,OAAO,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;EACxE;EACA,MAAM,WAAW,GAAI,IAAY,IAAgB;IAC/C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE;MAC7C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;IACvD;IACA,OAAO,KAAK;EACd,CAAC;EAED,MAAM,MAAM,GAAkC,CAAC,SAAS,EAAE,IAAI,KAAI;IAChE,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;MAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3C,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE;OACd,CAAC,CAAC;IACL;IACA,OAAO,MAAM,CAAC,GAAG,CACf,MAAM,CAAC,UAAU,CAAC;MAChB,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;MAChE,KAAK,EAAG,KAAK,IACX,aAAa,CAAC,WAAW,CAAC;QACxB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0BAA0B;QACvC;OACD;KACJ,CAAC,EACD,MAAM,IAAK,IAAI,UAAU,CAAC,MAAM,CAAC,CACnC;EACH,CAAC;EAED,OAAO,YAAY,CAAC,IAAI,CAAC;IACvB,WAAW;IACX;GACD,CAAC;AACJ,CAAC,CAAC,CACH","ignoreList":[]}
@@ -7,14 +7,14 @@ export {
7
7
  /**
8
8
  * Context reference for the `fetch` implementation used by the fetch-based HTTP client.
9
9
  *
10
- * @category fetch
10
+ * @category services
11
11
  * @since 4.0.0
12
12
  */
13
13
  Fetch,
14
14
  /**
15
15
  * Layer that provides an `HttpClient` implementation backed by the configured `Fetch` function.
16
16
  *
17
- * @category fetch
17
+ * @category layers
18
18
  * @since 4.0.0
19
19
  */
20
20
  layer as layerFetch,
@@ -26,7 +26,7 @@ layer as layerFetch,
26
26
  * Use to provide default credentials, cache, redirect, integrity, or other
27
27
  * fetch options for browser HTTP requests.
28
28
  *
29
- * @category fetch
29
+ * @category services
30
30
  * @since 4.0.0
31
31
  */
32
32
  RequestInit } from "effect/unstable/http/FetchHttpClient";
@@ -48,14 +48,14 @@ export type XHRResponseType = "arraybuffer" | "text";
48
48
  * @see {@link XHRResponseType} for the allowed response body modes
49
49
  * @see {@link withXHRArrayBuffer} for scoping XHR response handling to `ArrayBuffer`
50
50
  *
51
- * @category references
51
+ * @category services
52
52
  * @since 4.0.0
53
53
  */
54
54
  export declare const CurrentXHRResponseType: Context.Reference<XHRResponseType>;
55
55
  /**
56
56
  * Runs an effect with `CurrentXHRResponseType` set to `"arraybuffer"` so the XHR HTTP client receives response bodies as `ArrayBuffer` values.
57
57
  *
58
- * @category references
58
+ * @category providing services
59
59
  * @since 4.0.0
60
60
  */
61
61
  export declare const withXHRArrayBuffer: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserHttpClient.d.ts","sourceRoot":"","sources":["../src/BrowserHttpClient.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAQ1C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAY7D,OAAO;AACL;;;;;GAKG;AACH,KAAK;AACL;;;;;GAKG;AACH,KAAK,IAAI,UAAU;AACnB;;;;;;;;;;GAUG;AACH,WAAW,EACZ,MAAM,sCAAsC,CAAA;AAM7C;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAGrE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAKrB,CAAA;;AAEH;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAG4B;CAAG;AA4SnE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAElE,CAAA"}
1
+ {"version":3,"file":"BrowserHttpClient.d.ts","sourceRoot":"","sources":["../src/BrowserHttpClient.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAQ1C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAY7D,OAAO;AACL;;;;;GAKG;AACH,KAAK;AACL;;;;;GAKG;AACH,KAAK,IAAI,UAAU;AACnB;;;;;;;;;;GAUG;AACH,WAAW,EACZ,MAAM,sCAAsC,CAAA;AAM7C;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAGrE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAKrB,CAAA;;AAEH;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAG4B;CAAG;AAgTnE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAElE,CAAA"}
@@ -24,8 +24,8 @@ import * as HttpClient from "effect/unstable/http/HttpClient";
24
24
  import * as HttpClientError from "effect/unstable/http/HttpClientError";
25
25
  import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
26
26
  import * as HttpIncomingMessage from "effect/unstable/http/HttpIncomingMessage";
27
+ import * as HeaderParser from "effect/unstable/http/MultipartParser/HeadersParser";
27
28
  import * as UrlParams from "effect/unstable/http/UrlParams";
28
- import * as HeaderParser from "multipasta/HeadersParser";
29
29
  // =============================================================================
30
30
  // Fetch
31
31
  // =============================================================================
@@ -33,14 +33,14 @@ export {
33
33
  /**
34
34
  * Context reference for the `fetch` implementation used by the fetch-based HTTP client.
35
35
  *
36
- * @category fetch
36
+ * @category services
37
37
  * @since 4.0.0
38
38
  */
39
39
  Fetch,
40
40
  /**
41
41
  * Layer that provides an `HttpClient` implementation backed by the configured `Fetch` function.
42
42
  *
43
- * @category fetch
43
+ * @category layers
44
44
  * @since 4.0.0
45
45
  */
46
46
  layer as layerFetch,
@@ -52,7 +52,7 @@ layer as layerFetch,
52
52
  * Use to provide default credentials, cache, redirect, integrity, or other
53
53
  * fetch options for browser HTTP requests.
54
54
  *
55
- * @category fetch
55
+ * @category services
56
56
  * @since 4.0.0
57
57
  */
58
58
  RequestInit } from "effect/unstable/http/FetchHttpClient";
@@ -67,7 +67,7 @@ RequestInit } from "effect/unstable/http/FetchHttpClient";
67
67
  * @see {@link XHRResponseType} for the allowed response body modes
68
68
  * @see {@link withXHRArrayBuffer} for scoping XHR response handling to `ArrayBuffer`
69
69
  *
70
- * @category references
70
+ * @category services
71
71
  * @since 4.0.0
72
72
  */
73
73
  export const CurrentXHRResponseType = /*#__PURE__*/Context.Reference("@effect/platform-browser/BrowserHttpClient/CurrentXHRResponseType", {
@@ -76,7 +76,7 @@ export const CurrentXHRResponseType = /*#__PURE__*/Context.Reference("@effect/pl
76
76
  /**
77
77
  * Runs an effect with `CurrentXHRResponseType` set to `"arraybuffer"` so the XHR HTTP client receives response bodies as `ArrayBuffer` values.
78
78
  *
79
- * @category references
79
+ * @category providing services
80
80
  * @since 4.0.0
81
81
  */
82
82
  export const withXHRArrayBuffer = self => Effect.provideService(self, CurrentXHRResponseType, "arraybuffer");
@@ -310,7 +310,12 @@ class ClientResponseImpl extends IncomingMessageImpl {
310
310
  return this.source.status;
311
311
  }
312
312
  get formData() {
313
- return Effect.die("Not implemented");
313
+ return Effect.flatMap(this.arrayBuffer, body => Effect.tryPromise({
314
+ try: () => new globalThis.Response(body, {
315
+ headers: this.headers
316
+ }).formData(),
317
+ catch: this.onError
318
+ }));
314
319
  }
315
320
  toString() {
316
321
  return `ClientResponse(${this.status})`;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserHttpClient.js","names":["Cause","Context","Effect","Inspectable","Option","pipeArguments","Queue","Stream","Cookies","Headers","HttpClient","HttpClientError","HttpClientResponse","HttpIncomingMessage","UrlParams","HeaderParser","Fetch","layer","layerFetch","RequestInit","CurrentXHRResponseType","Reference","defaultValue","withXHRArrayBuffer","self","provideService","XMLHttpRequest","Service","makeXhrRequest","globalThis","makeXmlHttpRequest","make","request","url","signal","fiber","suspend","xhr","getOrElse","context","addEventListener","abort","onreadystatechange","once","open","method","toString","responseType","getRef","Object","entries","headers","forEach","k","v","setRequestHeader","andThen","sendBody","callback","resume","sent","onChange","readyState","succeed","ClientResponseImpl","onerror","_event","fail","reason","TransportError","cause","statusText","void","body","_tag","sync","send","formData","matchEffect","runFold","stream","Uint8Array","acc","chunk","next","length","set","onFailure","EncodeError","onSuccess","encoder","TextEncoder","IncomingMessageImpl","Class","TypeId","source","onError","constructor","_rawHeaderString","getAllResponseHeaders","_rawHeaders","_headers","empty","parser","result","encode","undefined","parsed","fromInput","cachedCookies","cookies","fromSetCookie","remoteAddress","none","_textEffect","text","responseText","onReadyStateChange","removeEventListener","pipe","cached","runSync","json","flatMap","try","JSON","parse","catch","urlParamsBody","URLSearchParams","queue","offset","encoded","slice","offerUnsafe","endUnsafe","failCauseUnsafe","_arrayBufferEffect","arrayBuffer","response","map","arr","byteLength","buffer","byteOffset","DecodeError","status","die","toJSON","inspect","_id","arguments","layerXMLHttpRequest","layerMergedContext"],"sources":["../src/BrowserHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BrowserHttpClient.js","names":[],"sources":["../src/BrowserHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserKeyValueStore.d.ts","sourceRoot":"","sources":["../src/BrowserKeyValueStore.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAEtE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAExE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,aAAc;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CA8D1D,CAAA"}
1
+ {"version":3,"file":"BrowserKeyValueStore.d.ts","sourceRoot":"","sources":["../src/BrowserKeyValueStore.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAEtE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAExE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,aAAc;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAiE1D,CAAA"}
@@ -59,11 +59,10 @@ export const layerIndexedDb = options => Layer.effect(KeyValueStore.KeyValueStor
59
59
  const db = yield* Effect.acquireRelease(openDatabase(options?.database ?? "effect_key_value_store"), db => Effect.sync(() => db.close())).pipe(Effect.orDie);
60
60
  return KeyValueStore.make({
61
61
  clear: Effect.suspend(() => {
62
- const store = getKvsEntriesStore(db, "readwrite");
63
- return idbRequest({
62
+ return idbWriteRequest(db, {
64
63
  method: "clear",
65
64
  message: "Failed to clear backing store"
66
- }, () => store.clear());
65
+ }, store => store.clear());
67
66
  }),
68
67
  get: key => Effect.map(Effect.suspend(() => {
69
68
  const store = getKvsEntriesStore(db, "readonly");
@@ -82,12 +81,11 @@ export const layerIndexedDb = options => Layer.effect(KeyValueStore.KeyValueStor
82
81
  }, () => store.get(key));
83
82
  }), found => found?.value && found.value instanceof Uint8Array ? found.value : undefined),
84
83
  set: (key, value) => Effect.asVoid(Effect.suspend(() => {
85
- const store = getKvsEntriesStore(db, "readwrite");
86
- return idbRequest({
84
+ return idbWriteRequest(db, {
87
85
  method: "set",
88
86
  message: "Failed to set value in backing store",
89
87
  key
90
- }, () => store.put({
88
+ }, store => store.put({
91
89
  key,
92
90
  value
93
91
  }));
@@ -100,12 +98,11 @@ export const layerIndexedDb = options => Layer.effect(KeyValueStore.KeyValueStor
100
98
  }, () => store.count());
101
99
  }),
102
100
  remove: key => Effect.asVoid(Effect.suspend(() => {
103
- const store = getKvsEntriesStore(db, "readwrite");
104
- return idbRequest({
101
+ return idbWriteRequest(db, {
105
102
  method: "remove",
106
103
  message: "Failed to remove value from backing store",
107
104
  key
108
- }, () => store.delete(key));
105
+ }, store => store.delete(key));
109
106
  }))
110
107
  });
111
108
  }));
@@ -147,6 +144,38 @@ const idbRequest = (failArgs, evaluate) => Effect.callback(resume => {
147
144
  cause: request.error
148
145
  })));
149
146
  });
147
+ const idbWriteRequest = (db, failArgs, evaluate) => Effect.callback(resume => {
148
+ const transaction = db.transaction(entriesStoreName, "readwrite");
149
+ const request = evaluate(transaction.objectStore(entriesStoreName));
150
+ let result;
151
+ let done = false;
152
+ const fail = cause => {
153
+ if (done) return;
154
+ done = true;
155
+ resume(Effect.fail(new KeyValueStore.KeyValueStoreError({
156
+ ...failArgs,
157
+ cause
158
+ })));
159
+ };
160
+ if (request.readyState === "done") {
161
+ result = request.result;
162
+ } else {
163
+ request.onsuccess = () => {
164
+ result = request.result;
165
+ };
166
+ request.onerror = () => fail(request.error);
167
+ }
168
+ transaction.oncomplete = () => {
169
+ if (done) return;
170
+ done = true;
171
+ resume(Effect.succeed(result));
172
+ };
173
+ transaction.onerror = () => fail(transaction.error);
174
+ transaction.onabort = () => fail(transaction.error);
175
+ return Effect.sync(() => {
176
+ if (!done) transaction.abort();
177
+ });
178
+ });
150
179
  const getKvsEntriesStore = (db, mode) => {
151
180
  const transaction = db.transaction(entriesStoreName, mode);
152
181
  return transaction.objectStore(entriesStoreName);