effect 4.0.2 → 4.0.4
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/AGENTS.md +24 -0
- package/CLAUDE.md +24 -0
- package/ai-docs/package.json +2 -2
- package/ai-docs/src/52_graphql/10_basics.ts +111 -0
- package/ai-docs/src/52_graphql/20_testing.ts +45 -0
- package/ai-docs/src/52_graphql/30_batching.ts +116 -0
- package/ai-docs/src/52_graphql/40_aliased-batching.ts +122 -0
- package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
- package/ai-docs/src/52_graphql/index.md +6 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +12 -3
- package/dist/Context.js.map +1 -1
- package/dist/Crypto.d.ts +33 -5
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +8 -2
- package/dist/Crypto.js.map +1 -1
- package/dist/DateTime.d.ts +9 -6
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +9 -6
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +6 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +27 -8
- package/dist/Duration.js.map +1 -1
- package/dist/FileSystem.d.ts +44 -2
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js.map +1 -1
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +4 -10
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Scheduler.d.ts +9 -0
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +9 -0
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +481 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +362 -4
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +4 -0
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +52 -33
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +38 -17
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +7 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +1 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +22 -11
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +21 -6
- package/dist/Stream.js.map +1 -1
- package/dist/Utils.js +8 -3
- package/dist/Utils.js.map +1 -1
- package/dist/ai/AnthropicStructuredOutput.js +0 -2
- package/dist/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/ai/Chat.d.ts +2 -2
- package/dist/ai/Chat.d.ts.map +1 -1
- package/dist/ai/LanguageModel.d.ts +38 -7
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +25 -7
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpServer.d.ts +61 -0
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +196 -44
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Prompt.d.ts.map +1 -1
- package/dist/ai/Prompt.js +28 -5
- package/dist/ai/Prompt.js.map +1 -1
- package/dist/ai/Response.d.ts +4 -3
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +1 -0
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +27 -0
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +33 -10
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +6 -3
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +3 -3
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +8 -5
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts +5 -4
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Prompt.d.ts +17 -1
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +119 -114
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/ansi.d.ts +0 -1
- package/dist/cli/internal/ansi.d.ts.map +1 -1
- package/dist/cli/internal/ansi.js +20 -3
- package/dist/cli/internal/ansi.js.map +1 -1
- package/dist/cli/internal/completions/powershell.d.ts +2 -0
- package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
- package/dist/cli/internal/completions/powershell.js +273 -0
- package/dist/cli/internal/completions/powershell.js.map +1 -0
- package/dist/cli/internal/completions/zsh.js +3 -2
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts +3 -3
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +21 -18
- package/dist/cli/internal/wizard.js.map +1 -1
- package/dist/cluster/ClusterSchema.d.ts +28 -0
- package/dist/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/cluster/ClusterSchema.js +30 -0
- package/dist/cluster/ClusterSchema.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +56 -26
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/MessageStorage.d.ts +18 -3
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +31 -11
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +8 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +187 -66
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +59 -19
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +84 -55
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +191 -113
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +104 -37
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/encoding/Sse.d.ts +6 -0
- package/dist/encoding/Sse.d.ts.map +1 -1
- package/dist/encoding/Sse.js +62 -70
- package/dist/encoding/Sse.js.map +1 -1
- package/dist/graphql/GraphQL.d.ts +349 -0
- package/dist/graphql/GraphQL.d.ts.map +1 -0
- package/dist/graphql/GraphQL.js +207 -0
- package/dist/graphql/GraphQL.js.map +1 -0
- package/dist/graphql/GraphQLClient.d.ts +562 -0
- package/dist/graphql/GraphQLClient.d.ts.map +1 -0
- package/dist/graphql/GraphQLClient.js +498 -0
- package/dist/graphql/GraphQLClient.js.map +1 -0
- package/dist/graphql/GraphQLClientError.d.ts +445 -0
- package/dist/graphql/GraphQLClientError.d.ts.map +1 -0
- package/dist/graphql/GraphQLClientError.js +479 -0
- package/dist/graphql/GraphQLClientError.js.map +1 -0
- package/dist/graphql/GraphQLGroup.d.ts +118 -0
- package/dist/graphql/GraphQLGroup.d.ts.map +1 -0
- package/dist/graphql/GraphQLGroup.js +109 -0
- package/dist/graphql/GraphQLGroup.js.map +1 -0
- package/dist/graphql/GraphQLMiddleware.d.ts +249 -0
- package/dist/graphql/GraphQLMiddleware.d.ts.map +1 -0
- package/dist/graphql/GraphQLMiddleware.js +130 -0
- package/dist/graphql/GraphQLMiddleware.js.map +1 -0
- package/dist/graphql/GraphQLProtocol.d.ts +731 -0
- package/dist/graphql/GraphQLProtocol.d.ts.map +1 -0
- package/dist/graphql/GraphQLProtocol.js +719 -0
- package/dist/graphql/GraphQLProtocol.js.map +1 -0
- package/dist/graphql/GraphQLResolver.d.ts +453 -0
- package/dist/graphql/GraphQLResolver.d.ts.map +1 -0
- package/dist/graphql/GraphQLResolver.js +552 -0
- package/dist/graphql/GraphQLResolver.js.map +1 -0
- package/dist/graphql/index.d.ts +40 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +41 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/http/FindMyWay/internal/router.js +3 -6
- package/dist/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/http/HttpClient.d.ts +21 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +63 -12
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +14 -7
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +31 -32
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpRouter.d.ts +35 -0
- package/dist/http/HttpRouter.d.ts.map +1 -1
- package/dist/http/HttpRouter.js +35 -0
- package/dist/http/HttpRouter.js.map +1 -1
- package/dist/http/HttpServerResponse.d.ts +8 -6
- package/dist/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/http/HttpServerResponse.js +27 -16
- package/dist/http/HttpServerResponse.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -2
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/Multipart.d.ts.map +1 -1
- package/dist/http/Multipart.js +15 -1
- package/dist/http/Multipart.js.map +1 -1
- package/dist/http-api/HttpApiScalar.d.ts +5 -0
- package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
- package/dist/http-api/HttpApiScalar.js.map +1 -1
- package/dist/internal/dateTime.js +40 -35
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +19 -9
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/graphql.d.ts +2 -0
- package/dist/internal/graphql.d.ts.map +1 -0
- package/dist/internal/graphql.js +195 -0
- package/dist/internal/graphql.js.map +1 -0
- package/dist/internal/graphqlHeaders.d.ts +4 -0
- package/dist/internal/graphqlHeaders.d.ts.map +1 -0
- package/dist/internal/graphqlHeaders.js +11 -0
- package/dist/internal/graphqlHeaders.js.map +1 -0
- package/dist/internal/request.js +20 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/toCodeDocument.js +4 -1
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toJsonSchemaDocument.js +29 -5
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/version.js +1 -1
- package/dist/net/AddressResolver.d.ts +145 -0
- package/dist/net/AddressResolver.d.ts.map +1 -0
- package/dist/net/AddressResolver.js +114 -0
- package/dist/net/AddressResolver.js.map +1 -0
- package/dist/net/Dns.d.ts +596 -0
- package/dist/net/Dns.d.ts.map +1 -0
- package/dist/net/Dns.js +549 -0
- package/dist/net/Dns.js.map +1 -0
- package/dist/net/Host.d.ts +369 -0
- package/dist/net/Host.d.ts.map +1 -0
- package/dist/net/Host.js +397 -0
- package/dist/net/Host.js.map +1 -0
- package/dist/net/IpInterface.d.ts +76 -3
- package/dist/net/IpInterface.d.ts.map +1 -1
- package/dist/net/IpInterface.js +53 -4
- package/dist/net/IpInterface.js.map +1 -1
- package/dist/net/IpNetwork.d.ts +82 -8
- package/dist/net/IpNetwork.d.ts.map +1 -1
- package/dist/net/IpNetwork.js +60 -4
- package/dist/net/IpNetwork.js.map +1 -1
- package/dist/net/NetAddress.d.ts +396 -35
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +358 -34
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/net/index.d.ts +15 -0
- package/dist/net/index.d.ts.map +1 -1
- package/dist/net/index.js +15 -0
- package/dist/net/index.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +15 -21
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/PrometheusMetrics.js +1 -0
- package/dist/observability/PrometheusMetrics.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +32 -3
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +75 -16
- package/dist/persistence/PersistedQueue.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +22 -6
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +12 -5
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +6 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +78 -29
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/socket/DatagramSocket.d.ts +456 -0
- package/dist/socket/DatagramSocket.d.ts.map +1 -0
- package/dist/socket/DatagramSocket.js +535 -0
- package/dist/socket/DatagramSocket.js.map +1 -0
- package/dist/socket/Socket.d.ts +20 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +9 -1
- package/dist/socket/Socket.js.map +1 -1
- package/dist/socket/index.d.ts +5 -0
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +5 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +7 -2
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +7 -1
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +31 -6
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/testing/TestCrypto.d.ts +73 -0
- package/dist/testing/TestCrypto.d.ts.map +1 -0
- package/dist/testing/TestCrypto.js +87 -0
- package/dist/testing/TestCrypto.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts +54 -0
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +108 -50
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +24 -2
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +13 -3
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +6 -3
- package/src/Context.ts +12 -3
- package/src/Crypto.ts +43 -9
- package/src/DateTime.ts +9 -6
- package/src/Duration.ts +36 -16
- package/src/FileSystem.ts +48 -2
- package/src/RequestResolver.ts +4 -10
- package/src/Scheduler.ts +9 -0
- package/src/Schema.ts +677 -5
- package/src/SchemaGetter.ts +47 -35
- package/src/Sink.ts +45 -18
- package/src/Stdio.ts +9 -2
- package/src/Stream.ts +44 -15
- package/src/Utils.ts +8 -5
- package/src/ai/AnthropicStructuredOutput.ts +2 -2
- package/src/ai/Chat.ts +2 -2
- package/src/ai/LanguageModel.ts +96 -24
- package/src/ai/McpServer.ts +288 -94
- package/src/ai/Prompt.ts +24 -10
- package/src/ai/Response.ts +6 -3
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
- package/src/ai/internal/mcpProtocol.ts +3 -0
- package/src/ai/internal/mcpRuntime.ts +2 -0
- package/src/cli/CliOutput.ts +33 -16
- package/src/cli/Command.ts +4 -3
- package/src/cli/Completions.ts +9 -6
- package/src/cli/GlobalFlag.ts +19 -11
- package/src/cli/Prompt.ts +159 -149
- package/src/cli/internal/ansi.ts +26 -3
- package/src/cli/internal/completions/powershell.ts +322 -0
- package/src/cli/internal/completions/zsh.ts +4 -2
- package/src/cli/internal/wizard.ts +34 -26
- package/src/cluster/ClusterSchema.ts +32 -0
- package/src/cluster/ClusterWorkflowEngine.ts +64 -36
- package/src/cluster/MessageStorage.ts +45 -14
- package/src/cluster/Runners.ts +8 -2
- package/src/cluster/Sharding.ts +219 -58
- package/src/cluster/SqlMessageStorage.ts +118 -84
- package/src/cluster/SqlRunnerStorage.ts +224 -128
- package/src/cluster/internal/entityManager.ts +151 -55
- package/src/encoding/Sse.ts +69 -79
- package/src/graphql/GraphQL.ts +494 -0
- package/src/graphql/GraphQLClient.ts +912 -0
- package/src/graphql/GraphQLClientError.ts +542 -0
- package/src/graphql/GraphQLGroup.ts +167 -0
- package/src/graphql/GraphQLMiddleware.ts +253 -0
- package/src/graphql/GraphQLProtocol.ts +1286 -0
- package/src/graphql/GraphQLResolver.ts +1010 -0
- package/src/graphql/index.ts +48 -0
- package/src/http/FindMyWay/internal/router.ts +4 -7
- package/src/http/HttpClient.ts +110 -12
- package/src/http/HttpEffect.ts +11 -5
- package/src/http/HttpMiddleware.ts +33 -34
- package/src/http/HttpRouter.ts +35 -0
- package/src/http/HttpServerResponse.ts +28 -16
- package/src/http/HttpTraceContext.ts +8 -2
- package/src/http/Multipart.ts +17 -1
- package/src/http-api/HttpApiScalar.ts +5 -0
- package/src/internal/dateTime.ts +13 -10
- package/src/internal/effect.ts +22 -15
- package/src/internal/graphql.ts +263 -0
- package/src/internal/graphqlHeaders.ts +11 -0
- package/src/internal/request.ts +31 -3
- package/src/internal/schema/toCodeDocument.ts +7 -1
- package/src/internal/schema/toJsonSchemaDocument.ts +34 -2
- package/src/internal/version.ts +1 -1
- package/src/net/AddressResolver.ts +222 -0
- package/src/net/Dns.ts +1035 -0
- package/src/net/Host.ts +544 -0
- package/src/net/IpInterface.ts +117 -7
- package/src/net/IpNetwork.ts +116 -17
- package/src/net/NetAddress.ts +620 -76
- package/src/net/index.ts +18 -0
- package/src/observability/OtlpMetrics.ts +12 -23
- package/src/observability/PrometheusMetrics.ts +1 -0
- package/src/persistence/PersistedQueue.ts +146 -53
- package/src/rpc/RpcClient.ts +41 -19
- package/src/rpc/RpcServer.ts +115 -40
- package/src/socket/DatagramSocket.ts +919 -0
- package/src/socket/Socket.ts +28 -2
- package/src/socket/index.ts +6 -0
- package/src/sql/Migrator.ts +21 -5
- package/src/sql/SqlClient.ts +39 -15
- package/src/testing/TestCrypto.ts +94 -0
- package/src/testing/index.ts +6 -0
- package/src/workflow/DurableDeferred.ts +160 -47
- package/src/workflow/WorkflowEngine.ts +50 -5
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed GraphQL operations for `GraphQLGroup` and `GraphQLClient.make`,
|
|
3
|
+
* written by hand or generated by `@effect/graphql-generator`.
|
|
4
|
+
*
|
|
5
|
+
* Includes the generator's lenient decoders, {@link otherTypename} and
|
|
6
|
+
* {@link enumLiterals}.
|
|
7
|
+
*
|
|
8
|
+
* @stability experimental
|
|
9
|
+
* @since 4.0.0
|
|
10
|
+
*/
|
|
11
|
+
import * as internal from "../internal/graphql.js";
|
|
12
|
+
import { pipeArguments } from "../Pipeable.js";
|
|
13
|
+
import { hasProperty } from "../Predicate.js";
|
|
14
|
+
import * as Schema from "../Schema.js";
|
|
15
|
+
const TypeId = "~effect/graphql/GraphQL";
|
|
16
|
+
/**
|
|
17
|
+
* Tests whether a value is an {@link Operation}.
|
|
18
|
+
*
|
|
19
|
+
* @stability experimental
|
|
20
|
+
* @category guards
|
|
21
|
+
* @since 4.0.0
|
|
22
|
+
*/
|
|
23
|
+
export const isOperation = u => hasProperty(u, TypeId);
|
|
24
|
+
const Proto = {
|
|
25
|
+
[TypeId]: TypeId,
|
|
26
|
+
pipe() {
|
|
27
|
+
return pipeArguments(this, arguments);
|
|
28
|
+
},
|
|
29
|
+
middleware(middleware) {
|
|
30
|
+
return makeProto({
|
|
31
|
+
...this,
|
|
32
|
+
middlewares: [...this.middlewares, middleware]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
// The middleware type of an operation is phantom and its Schemas are erased to
|
|
37
|
+
// `Schema.Top` here, so the typed constructors below state their operation
|
|
38
|
+
// type with one assertion each.
|
|
39
|
+
const makeProto = fields => Object.assign(Object.create(Proto), fields);
|
|
40
|
+
const makeOperation = kind => (name, options) => makeProto({
|
|
41
|
+
kind,
|
|
42
|
+
name,
|
|
43
|
+
document: typeof options.document === "string" ? options.document : internal.joinTemplate(kind, name, options.document),
|
|
44
|
+
template: typeof options.document === "string" ? undefined : options.document,
|
|
45
|
+
variables: options.variables === undefined ? Schema.Struct({}) : Schema.isSchema(options.variables) ? options.variables : Schema.Struct(options.variables),
|
|
46
|
+
result: options.result,
|
|
47
|
+
middlewares: []
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Defines a query. The client accepts decoded variables and encodes them
|
|
51
|
+
* through their Schema, including custom scalar codecs. `variables` accepts
|
|
52
|
+
* struct fields or a Schema; omit it for an operation without variables.
|
|
53
|
+
* `document` accepts printed text or a {@link DocumentTemplate}, joined once
|
|
54
|
+
* when the operation is defined.
|
|
55
|
+
*
|
|
56
|
+
* **Example** (A query with variables)
|
|
57
|
+
*
|
|
58
|
+
* ```ts import.meta.vitest
|
|
59
|
+
* import { Schema } from "effect"
|
|
60
|
+
* import { GraphQL } from "effect/graphql"
|
|
61
|
+
*
|
|
62
|
+
* const RepoIssues = GraphQL.query("RepoIssues", {
|
|
63
|
+
* document: "query RepoIssues($owner:String!,$name:String!){repository(owner:$owner,name:$name){issues(first:10){nodes{number title}}}}",
|
|
64
|
+
* variables: { owner: Schema.String, name: Schema.String },
|
|
65
|
+
* result: Schema.Struct({
|
|
66
|
+
* repository: Schema.NullOr(Schema.Struct({
|
|
67
|
+
* issues: Schema.Struct({
|
|
68
|
+
* nodes: Schema.NullOr(Schema.Array(Schema.NullOr(Schema.Struct({ number: Schema.Int, title: Schema.String }))))
|
|
69
|
+
* })
|
|
70
|
+
* }))
|
|
71
|
+
* })
|
|
72
|
+
* })
|
|
73
|
+
*
|
|
74
|
+
* RepoIssues.kind // => "query"
|
|
75
|
+
* RepoIssues.name // => "RepoIssues"
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @stability experimental
|
|
79
|
+
* @category constructors
|
|
80
|
+
* @since 4.0.0
|
|
81
|
+
*/
|
|
82
|
+
export const query = /*#__PURE__*/makeOperation("query");
|
|
83
|
+
/**
|
|
84
|
+
* Defines a mutation. Same shape as {@link query}.
|
|
85
|
+
*
|
|
86
|
+
* **Example** (A mutation)
|
|
87
|
+
*
|
|
88
|
+
* ```ts import.meta.vitest
|
|
89
|
+
* import { Schema } from "effect"
|
|
90
|
+
* import { GraphQL } from "effect/graphql"
|
|
91
|
+
*
|
|
92
|
+
* const AddComment = GraphQL.mutation("AddComment", {
|
|
93
|
+
* document: "mutation AddComment($subjectId:ID!,$body:String!){addComment(input:{subjectId:$subjectId,body:$body}){clientMutationId}}",
|
|
94
|
+
* variables: { subjectId: Schema.String, body: Schema.String },
|
|
95
|
+
* result: Schema.Struct({ addComment: Schema.NullOr(Schema.Struct({ clientMutationId: Schema.NullOr(Schema.String) })) })
|
|
96
|
+
* })
|
|
97
|
+
*
|
|
98
|
+
* AddComment.kind // => "mutation"
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @stability experimental
|
|
102
|
+
* @category constructors
|
|
103
|
+
* @since 4.0.0
|
|
104
|
+
*/
|
|
105
|
+
export const mutation = /*#__PURE__*/makeOperation("mutation");
|
|
106
|
+
/**
|
|
107
|
+
* Defines a subscription. The client method for a subscription returns a
|
|
108
|
+
* `Stream` of decoded events instead of an `Effect`.
|
|
109
|
+
*
|
|
110
|
+
* **Example** (A subscription)
|
|
111
|
+
*
|
|
112
|
+
* ```ts import.meta.vitest
|
|
113
|
+
* import { Schema } from "effect"
|
|
114
|
+
* import { GraphQL } from "effect/graphql"
|
|
115
|
+
*
|
|
116
|
+
* const IssueUpdated = GraphQL.subscription("IssueUpdated", {
|
|
117
|
+
* document: "subscription IssueUpdated($id:ID!){issueUpdated(id:$id){title}}",
|
|
118
|
+
* variables: { id: Schema.String },
|
|
119
|
+
* result: Schema.Struct({ issueUpdated: Schema.Struct({ title: Schema.String }) })
|
|
120
|
+
* })
|
|
121
|
+
*
|
|
122
|
+
* IssueUpdated.kind // => "subscription"
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* @stability experimental
|
|
126
|
+
* @category constructors
|
|
127
|
+
* @since 4.0.0
|
|
128
|
+
*/
|
|
129
|
+
export const subscription = /*#__PURE__*/makeOperation("subscription");
|
|
130
|
+
/**
|
|
131
|
+
* The `__typename` Schema for the "every other type" member of a generated
|
|
132
|
+
* union.
|
|
133
|
+
*
|
|
134
|
+
* **Details**
|
|
135
|
+
*
|
|
136
|
+
* The type excludes selected names, allowing `__typename` narrowing. The
|
|
137
|
+
* decoder accepts any other string, including types added by the server
|
|
138
|
+
* later. Selected names are rejected so malformed selected results cannot
|
|
139
|
+
* fall through to the catch-all member.
|
|
140
|
+
*
|
|
141
|
+
* **Example** (The catch-all member of a union)
|
|
142
|
+
*
|
|
143
|
+
* ```ts import.meta.vitest
|
|
144
|
+
* import { Schema } from "effect"
|
|
145
|
+
* import { GraphQL } from "effect/graphql"
|
|
146
|
+
*
|
|
147
|
+
* type Node = "Issue" | "PullRequest" | "Repository"
|
|
148
|
+
*
|
|
149
|
+
* const OtherNode = Schema.Struct({
|
|
150
|
+
* __typename: GraphQL.otherTypename<Node>()(["Issue"]),
|
|
151
|
+
* id: Schema.String
|
|
152
|
+
* })
|
|
153
|
+
*
|
|
154
|
+
* Schema.decodeUnknownSync(OtherNode)({ __typename: "PullRequest", id: "1" }).__typename // => "PullRequest"
|
|
155
|
+
* Schema.decodeUnknownSync(OtherNode)({ __typename: "AddedLater", id: "2" }).__typename // => "AddedLater"
|
|
156
|
+
* Schema.is(OtherNode)({ __typename: "Issue", id: "3" }) // => false
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* @stability experimental
|
|
160
|
+
* @category schemas
|
|
161
|
+
* @since 4.0.0
|
|
162
|
+
*/
|
|
163
|
+
export const otherTypename = () => selected => {
|
|
164
|
+
const rejected = new Set(selected);
|
|
165
|
+
// Type boundary: decoding is lenient by design. The guard passes any string
|
|
166
|
+
// other than the selected names, including names the server adds later, but
|
|
167
|
+
// the type only lists the names known when the code was generated.
|
|
168
|
+
return Schema.refine(name => !rejected.has(name), {
|
|
169
|
+
title: "otherTypename",
|
|
170
|
+
message: `Expected a __typename other than ${selected.map(s => `"${s}"`).join(", ")}`
|
|
171
|
+
})(Schema.String);
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* The Schema for a GraphQL enum in a result position.
|
|
175
|
+
*
|
|
176
|
+
* **Details**
|
|
177
|
+
*
|
|
178
|
+
* It is typed as the declared literals but decodes any string, so a value the
|
|
179
|
+
* server adds later does not fail the whole query. Inputs stay strict: the
|
|
180
|
+
* generator uses `Schema.Literals` for enums in variables and input objects.
|
|
181
|
+
*
|
|
182
|
+
* **Example** (An enum that tolerates new values)
|
|
183
|
+
*
|
|
184
|
+
* ```ts import.meta.vitest
|
|
185
|
+
* import { Schema } from "effect"
|
|
186
|
+
* import { GraphQL } from "effect/graphql"
|
|
187
|
+
*
|
|
188
|
+
* const IssueState = GraphQL.enumLiterals(["OPEN", "CLOSED"])
|
|
189
|
+
*
|
|
190
|
+
* Schema.decodeUnknownSync(IssueState)("OPEN") // => "OPEN"
|
|
191
|
+
* Schema.decodeUnknownSync(IssueState)("MERGED") // => "MERGED"
|
|
192
|
+
* Schema.is(IssueState)(42) // => false
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @stability experimental
|
|
196
|
+
* @category schemas
|
|
197
|
+
* @since 4.0.0
|
|
198
|
+
*/
|
|
199
|
+
export const enumLiterals = literals =>
|
|
200
|
+
// Type boundary: decoding is lenient by design. The guard passes any string,
|
|
201
|
+
// including values the server adds later, but the type only lists the values
|
|
202
|
+
// known when the code was generated.
|
|
203
|
+
Schema.refine(_ => true)(Schema.String).annotate({
|
|
204
|
+
title: `enum(${literals.join(" | ")})`,
|
|
205
|
+
description: `One of ${literals.map(l => `"${l}"`).join(", ")}, or any string the server adds later`
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=GraphQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphQL.js","names":[],"sources":["../../src/graphql/GraphQL.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|