effect 4.0.0-beta.105 → 4.0.0-beta.107
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/dist/Channel.d.ts +26 -0
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +47 -0
- package/dist/Channel.js.map +1 -1
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +35 -3
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +41 -8
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +13 -1
- package/dist/Duration.js.map +1 -1
- package/dist/Fiber.d.ts +1 -1
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Function.d.ts +26 -0
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +36 -0
- package/dist/Function.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +34 -17
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Schema.d.ts +32 -84
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +58 -54
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +2 -17
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +39 -28
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -7
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +15 -4
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +1 -1
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Stream.d.ts +10 -0
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -23
- package/dist/Stream.js.map +1 -1
- package/dist/TxQueue.js +1 -1
- package/dist/TxQueue.js.map +1 -1
- package/dist/internal/effect.js +2 -4
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/executionPlan.js +3 -2
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/rcRef.js +18 -13
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +32 -16
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toArbitrary.d.ts +1 -4
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -1
- package/dist/internal/schema/toArbitrary.js +0 -74
- package/dist/internal/schema/toArbitrary.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +18 -4
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +45 -43
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/testing/TestSchema.js +2 -2
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +128 -128
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +23 -11
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +4 -3
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +38 -13
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +6 -3
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +2 -1
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +20 -1
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +26 -2
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +23 -0
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +23 -4
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +2 -2
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +3 -3
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +4 -3
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +14 -5
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +6 -5
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +14 -12
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +3 -3
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +2 -3
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +4 -4
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +3 -2
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +7 -1
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +2 -0
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +4 -12
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/headers.js +16 -2
- package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/multipart.js +23 -8
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +1 -1
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +8 -0
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +5 -0
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +9 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +15 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +20 -16
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +11 -12
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/package.json +1 -1
- package/src/Channel.ts +58 -0
- package/src/Config.ts +3 -3
- package/src/ConfigProvider.ts +43 -8
- package/src/Duration.ts +12 -1
- package/src/Fiber.ts +1 -1
- package/src/Function.ts +37 -0
- package/src/JsonSchema.ts +43 -42
- package/src/Schema.ts +68 -146
- package/src/SchemaAST.ts +50 -30
- package/src/SchemaRepresentation.ts +44 -7
- package/src/ScopedRef.ts +3 -1
- package/src/Stream.ts +12 -30
- package/src/TxQueue.ts +1 -1
- package/src/internal/effect.ts +3 -6
- package/src/internal/executionPlan.ts +3 -2
- package/src/internal/rcRef.ts +24 -16
- package/src/internal/schema/fromJsonSchemaDocument.ts +36 -18
- package/src/internal/schema/toArbitrary.ts +0 -72
- package/src/internal/schema/toJsonSchemaDocument.ts +24 -4
- package/src/internal/schema/toRepresentation.ts +66 -48
- package/src/testing/TestSchema.ts +2 -2
- package/src/unstable/ai/McpServer.ts +23 -11
- package/src/unstable/ai/Prompt.ts +37 -15
- package/src/unstable/cli/Argument.ts +6 -3
- package/src/unstable/cli/CliError.ts +28 -2
- package/src/unstable/cli/Command.ts +44 -4
- package/src/unstable/cluster/Entity.ts +7 -2
- package/src/unstable/cluster/EntityProxy.ts +12 -5
- package/src/unstable/cluster/Sharding.ts +29 -17
- package/src/unstable/eventlog/EventLogEncryption.ts +15 -16
- package/src/unstable/eventlog/EventLogMessage.ts +2 -3
- package/src/unstable/eventlog/EventLogRemote.ts +4 -4
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +8 -3
- package/src/unstable/http/Multipart.ts +4 -13
- package/src/unstable/http/MultipartParser/internal/headers.ts +16 -387
- package/src/unstable/http/MultipartParser/internal/multipart.ts +25 -8
- package/src/unstable/httpapi/OpenApi.ts +4 -1
- package/src/unstable/process/ChildProcess.ts +8 -0
- package/src/unstable/rpc/RpcClient.ts +5 -0
- package/src/unstable/sql/Migrator.ts +22 -9
- package/src/unstable/sql/SqlResolver.ts +28 -20
- package/src/unstable/workers/Worker.ts +13 -14
|
@@ -134,7 +134,8 @@ export const ordered = <Req extends Schema.Constraint, Res extends Schema.Constr
|
|
|
134
134
|
key: transactionKey,
|
|
135
135
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
136
136
|
const [inputs, encodedEntries] = yield* partitionRequests(entries, options.Request)
|
|
137
|
-
|
|
137
|
+
if (!Arr.isArrayNonEmpty(inputs)) return
|
|
138
|
+
const results = yield* options.execute(inputs).pipe(
|
|
138
139
|
Effect.provideContext(entries[0].context)
|
|
139
140
|
)
|
|
140
141
|
if (results.length !== inputs.length) {
|
|
@@ -190,8 +191,9 @@ export const grouped = <Req extends Schema.Constraint, Res extends Schema.Constr
|
|
|
190
191
|
key: transactionKey,
|
|
191
192
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
192
193
|
const [inputs] = yield* partitionRequests(entries, options.Request)
|
|
194
|
+
if (!Arr.isArrayNonEmpty(inputs)) return
|
|
193
195
|
const resultMap = MutableHashMap.empty<K, Arr.NonEmptyArray<Res["Type"]>>()
|
|
194
|
-
const results = yield* options.execute(inputs
|
|
196
|
+
const results = yield* options.execute(inputs).pipe(
|
|
195
197
|
Effect.provideContext(entries[0].context)
|
|
196
198
|
)
|
|
197
199
|
const decodedResults = yield* decodeResults(results).pipe(
|
|
@@ -258,7 +260,8 @@ export const findById = <Id extends Schema.Constraint, Res extends Schema.Constr
|
|
|
258
260
|
key: transactionKey,
|
|
259
261
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
260
262
|
const [inputs, idMap] = yield* partitionRequestsById(entries, options.Id)
|
|
261
|
-
|
|
263
|
+
if (!Arr.isArrayNonEmpty(inputs)) return
|
|
264
|
+
const results = yield* options.execute(inputs).pipe(
|
|
262
265
|
Effect.provideContext(entries[0].context)
|
|
263
266
|
)
|
|
264
267
|
const decodedResults = yield* decodeResults(results).pipe(
|
|
@@ -311,7 +314,8 @@ const void_ = <Req extends Schema.Constraint, _, E, R>(
|
|
|
311
314
|
key: transactionKey,
|
|
312
315
|
resolver: Effect.fnUntraced(function*(entries) {
|
|
313
316
|
const [inputs] = yield* partitionRequests(entries, options.Request)
|
|
314
|
-
|
|
317
|
+
if (!Arr.isArrayNonEmpty(inputs)) return
|
|
318
|
+
yield* options.execute(inputs).pipe(
|
|
315
319
|
Effect.provideContext(entries[0].context)
|
|
316
320
|
)
|
|
317
321
|
for (let i = 0; i < entries.length; i++) {
|
|
@@ -366,35 +370,39 @@ const partitionRequestsById = function*<In, A, E, R, InE>(
|
|
|
366
370
|
const len = requests.length
|
|
367
371
|
const inputs = Arr.empty<InE>()
|
|
368
372
|
const byIdMap = MutableHashMap.empty<In, Request.Entry<SqlRequest<In, A, E, R>>>()
|
|
369
|
-
let entry!: Request.Entry<SqlRequest<In, A, E, R>>
|
|
370
|
-
const encode = Schema.encodeEffect(schema)
|
|
371
|
-
const handle = Effect.matchCauseEager({
|
|
372
|
-
onFailure(cause: Cause.Cause<Schema.SchemaError>) {
|
|
373
|
-
entry.completeUnsafe(Exit.failCause(cause))
|
|
374
|
-
},
|
|
375
|
-
onSuccess(value: InE) {
|
|
376
|
-
inputs.push(value)
|
|
377
|
-
}
|
|
378
|
-
})
|
|
379
373
|
|
|
380
374
|
for (let i = 0; i < len; i++) {
|
|
381
|
-
entry = requests[i]
|
|
375
|
+
const entry = requests[i]
|
|
382
376
|
const existing = MutableHashMap.get(byIdMap, entry.request.payload)
|
|
383
377
|
if (Option.isSome(existing)) {
|
|
384
|
-
const
|
|
378
|
+
const previous = existing.value
|
|
385
379
|
MutableHashMap.set(byIdMap, entry.request.payload, {
|
|
386
|
-
...
|
|
380
|
+
...previous,
|
|
387
381
|
completeUnsafe(exit) {
|
|
388
|
-
|
|
389
|
-
|
|
382
|
+
previous.completeUnsafe(exit)
|
|
383
|
+
entry.completeUnsafe(exit)
|
|
390
384
|
}
|
|
391
385
|
})
|
|
392
386
|
} else {
|
|
393
|
-
yield (Effect.provideContext(handle(encode(entry.request.payload)), entry.context) as Effect.Effect<void>)
|
|
394
387
|
MutableHashMap.set(byIdMap, entry.request.payload, entry)
|
|
395
388
|
}
|
|
396
389
|
}
|
|
397
390
|
|
|
391
|
+
const encode = Schema.encodeEffect(schema)
|
|
392
|
+
for (const [, entry] of byIdMap) {
|
|
393
|
+
yield* Effect.provideContext(
|
|
394
|
+
Effect.matchCauseEager(encode(entry.request.payload), {
|
|
395
|
+
onFailure(cause) {
|
|
396
|
+
entry.completeUnsafe(Exit.failCause(cause))
|
|
397
|
+
},
|
|
398
|
+
onSuccess(value) {
|
|
399
|
+
inputs.push(value)
|
|
400
|
+
}
|
|
401
|
+
}),
|
|
402
|
+
entry.context
|
|
403
|
+
)
|
|
404
|
+
}
|
|
405
|
+
|
|
398
406
|
return [inputs, byIdMap] as const
|
|
399
407
|
}
|
|
400
408
|
|
|
@@ -165,6 +165,17 @@ export const makePlatform = <W>() =>
|
|
|
165
165
|
const spawn = (yield* Spawner) as SpawnerFn<W>
|
|
166
166
|
let currentPort: P | undefined
|
|
167
167
|
const buffer: Array<[unknown, ReadonlyArray<unknown> | undefined]> = []
|
|
168
|
+
const sendToPort = (port: P, message: unknown, transfers?: ReadonlyArray<unknown>) =>
|
|
169
|
+
Effect.try({
|
|
170
|
+
try: () => port.postMessage([0, message], transfers as any),
|
|
171
|
+
catch: (cause) =>
|
|
172
|
+
new WorkerError({
|
|
173
|
+
reason: new WorkerSendError({
|
|
174
|
+
message: "Failed to send message to worker",
|
|
175
|
+
cause
|
|
176
|
+
})
|
|
177
|
+
})
|
|
178
|
+
})
|
|
168
179
|
|
|
169
180
|
const run = <A, E, R>(
|
|
170
181
|
handler: (_: O) => Effect.Effect<A, E, R>,
|
|
@@ -209,7 +220,7 @@ export const makePlatform = <W>() =>
|
|
|
209
220
|
currentPort = port
|
|
210
221
|
if (buffer.length > 0) {
|
|
211
222
|
for (const [message, transfers] of buffer) {
|
|
212
|
-
port
|
|
223
|
+
yield* sendToPort(port, message, transfers)
|
|
213
224
|
}
|
|
214
225
|
buffer.length = 0
|
|
215
226
|
}
|
|
@@ -224,19 +235,7 @@ export const makePlatform = <W>() =>
|
|
|
224
235
|
buffer.push([message, transfers])
|
|
225
236
|
return Effect.void
|
|
226
237
|
}
|
|
227
|
-
|
|
228
|
-
currentPort.postMessage([0, message], transfers as any)
|
|
229
|
-
return Effect.void
|
|
230
|
-
} catch (cause) {
|
|
231
|
-
return Effect.fail(
|
|
232
|
-
new WorkerError({
|
|
233
|
-
reason: new WorkerSendError({
|
|
234
|
-
message: "Failed to send message to worker",
|
|
235
|
-
cause
|
|
236
|
-
})
|
|
237
|
-
})
|
|
238
|
-
)
|
|
239
|
-
}
|
|
238
|
+
return sendToPort(currentPort, message, transfers)
|
|
240
239
|
})
|
|
241
240
|
|
|
242
241
|
return { run, send }
|