@effect-gql/core 0.1.0 → 1.1.0
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/README.md +100 -0
- package/builder/index.cjs +1446 -0
- package/builder/index.cjs.map +1 -0
- package/builder/index.d.cts +260 -0
- package/{dist/builder/pipe-api.d.ts → builder/index.d.ts} +50 -21
- package/builder/index.js +1405 -0
- package/builder/index.js.map +1 -0
- package/index.cjs +3469 -0
- package/index.cjs.map +1 -0
- package/index.d.cts +529 -0
- package/index.d.ts +529 -0
- package/index.js +3292 -0
- package/index.js.map +1 -0
- package/package.json +19 -28
- package/schema-builder-DKvkzU_M.d.cts +965 -0
- package/schema-builder-DKvkzU_M.d.ts +965 -0
- package/server/index.cjs +1579 -0
- package/server/index.cjs.map +1 -0
- package/server/index.d.cts +682 -0
- package/server/index.d.ts +682 -0
- package/server/index.js +1548 -0
- package/server/index.js.map +1 -0
- package/dist/analyzer-extension.d.ts +0 -105
- package/dist/analyzer-extension.d.ts.map +0 -1
- package/dist/analyzer-extension.js +0 -137
- package/dist/analyzer-extension.js.map +0 -1
- package/dist/builder/execute.d.ts +0 -26
- package/dist/builder/execute.d.ts.map +0 -1
- package/dist/builder/execute.js +0 -104
- package/dist/builder/execute.js.map +0 -1
- package/dist/builder/field-builders.d.ts +0 -30
- package/dist/builder/field-builders.d.ts.map +0 -1
- package/dist/builder/field-builders.js +0 -200
- package/dist/builder/field-builders.js.map +0 -1
- package/dist/builder/index.d.ts +0 -7
- package/dist/builder/index.d.ts.map +0 -1
- package/dist/builder/index.js +0 -31
- package/dist/builder/index.js.map +0 -1
- package/dist/builder/pipe-api.d.ts.map +0 -1
- package/dist/builder/pipe-api.js +0 -151
- package/dist/builder/pipe-api.js.map +0 -1
- package/dist/builder/schema-builder.d.ts +0 -301
- package/dist/builder/schema-builder.d.ts.map +0 -1
- package/dist/builder/schema-builder.js +0 -566
- package/dist/builder/schema-builder.js.map +0 -1
- package/dist/builder/type-registry.d.ts +0 -80
- package/dist/builder/type-registry.d.ts.map +0 -1
- package/dist/builder/type-registry.js +0 -505
- package/dist/builder/type-registry.js.map +0 -1
- package/dist/builder/types.d.ts +0 -283
- package/dist/builder/types.d.ts.map +0 -1
- package/dist/builder/types.js +0 -3
- package/dist/builder/types.js.map +0 -1
- package/dist/cli/generate-schema.d.ts +0 -29
- package/dist/cli/generate-schema.d.ts.map +0 -1
- package/dist/cli/generate-schema.js +0 -233
- package/dist/cli/generate-schema.js.map +0 -1
- package/dist/cli/index.d.ts +0 -19
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -24
- package/dist/cli/index.js.map +0 -1
- package/dist/context.d.ts +0 -18
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -11
- package/dist/context.js.map +0 -1
- package/dist/error.d.ts +0 -45
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -29
- package/dist/error.js.map +0 -1
- package/dist/extensions.d.ts +0 -130
- package/dist/extensions.d.ts.map +0 -1
- package/dist/extensions.js +0 -78
- package/dist/extensions.js.map +0 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -47
- package/dist/index.js.map +0 -1
- package/dist/loader.d.ts +0 -169
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -237
- package/dist/loader.js.map +0 -1
- package/dist/resolver-context.d.ts +0 -154
- package/dist/resolver-context.d.ts.map +0 -1
- package/dist/resolver-context.js +0 -184
- package/dist/resolver-context.js.map +0 -1
- package/dist/schema-mapping.d.ts +0 -30
- package/dist/schema-mapping.d.ts.map +0 -1
- package/dist/schema-mapping.js +0 -280
- package/dist/schema-mapping.js.map +0 -1
- package/dist/server/cache-control.d.ts +0 -96
- package/dist/server/cache-control.d.ts.map +0 -1
- package/dist/server/cache-control.js +0 -308
- package/dist/server/cache-control.js.map +0 -1
- package/dist/server/complexity.d.ts +0 -165
- package/dist/server/complexity.d.ts.map +0 -1
- package/dist/server/complexity.js +0 -433
- package/dist/server/complexity.js.map +0 -1
- package/dist/server/config.d.ts +0 -66
- package/dist/server/config.d.ts.map +0 -1
- package/dist/server/config.js +0 -104
- package/dist/server/config.js.map +0 -1
- package/dist/server/graphiql.d.ts +0 -5
- package/dist/server/graphiql.d.ts.map +0 -1
- package/dist/server/graphiql.js +0 -43
- package/dist/server/graphiql.js.map +0 -1
- package/dist/server/index.d.ts +0 -18
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -48
- package/dist/server/index.js.map +0 -1
- package/dist/server/router.d.ts +0 -79
- package/dist/server/router.d.ts.map +0 -1
- package/dist/server/router.js +0 -232
- package/dist/server/router.js.map +0 -1
- package/dist/server/schema-builder-extensions.d.ts +0 -42
- package/dist/server/schema-builder-extensions.d.ts.map +0 -1
- package/dist/server/schema-builder-extensions.js +0 -48
- package/dist/server/schema-builder-extensions.js.map +0 -1
- package/dist/server/sse-adapter.d.ts +0 -64
- package/dist/server/sse-adapter.d.ts.map +0 -1
- package/dist/server/sse-adapter.js +0 -227
- package/dist/server/sse-adapter.js.map +0 -1
- package/dist/server/sse-types.d.ts +0 -192
- package/dist/server/sse-types.d.ts.map +0 -1
- package/dist/server/sse-types.js +0 -63
- package/dist/server/sse-types.js.map +0 -1
- package/dist/server/ws-adapter.d.ts +0 -39
- package/dist/server/ws-adapter.d.ts.map +0 -1
- package/dist/server/ws-adapter.js +0 -247
- package/dist/server/ws-adapter.js.map +0 -1
- package/dist/server/ws-types.d.ts +0 -169
- package/dist/server/ws-types.d.ts.map +0 -1
- package/dist/server/ws-types.js +0 -11
- package/dist/server/ws-types.js.map +0 -1
- package/dist/server/ws-utils.d.ts +0 -42
- package/dist/server/ws-utils.d.ts.map +0 -1
- package/dist/server/ws-utils.js +0 -99
- package/dist/server/ws-utils.js.map +0 -1
- package/src/analyzer-extension.ts +0 -254
- package/src/builder/execute.ts +0 -153
- package/src/builder/field-builders.ts +0 -322
- package/src/builder/index.ts +0 -48
- package/src/builder/pipe-api.ts +0 -312
- package/src/builder/schema-builder.ts +0 -970
- package/src/builder/type-registry.ts +0 -670
- package/src/builder/types.ts +0 -305
- package/src/context.ts +0 -23
- package/src/error.ts +0 -32
- package/src/extensions.ts +0 -240
- package/src/index.ts +0 -32
- package/src/loader.ts +0 -363
- package/src/resolver-context.ts +0 -253
- package/src/schema-mapping.ts +0 -307
- package/src/server/cache-control.ts +0 -590
- package/src/server/complexity.ts +0 -774
- package/src/server/config.ts +0 -174
- package/src/server/graphiql.ts +0 -38
- package/src/server/index.ts +0 -96
- package/src/server/router.ts +0 -432
- package/src/server/schema-builder-extensions.ts +0 -51
- package/src/server/sse-adapter.ts +0 -327
- package/src/server/sse-types.ts +0 -234
- package/src/server/ws-adapter.ts +0 -355
- package/src/server/ws-types.ts +0 -192
- package/src/server/ws-utils.ts +0 -136
package/dist/server/graphiql.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.graphiqlHtml = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Generate HTML for GraphiQL IDE, loading dependencies from CDN
|
|
6
|
-
*/
|
|
7
|
-
const graphiqlHtml = (endpoint) => `<!DOCTYPE html>
|
|
8
|
-
<html lang="en">
|
|
9
|
-
<head>
|
|
10
|
-
<meta charset="utf-8" />
|
|
11
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
-
<title>GraphiQL</title>
|
|
13
|
-
<link
|
|
14
|
-
rel="stylesheet"
|
|
15
|
-
href="https://unpkg.com/graphiql@3/graphiql.min.css"
|
|
16
|
-
/>
|
|
17
|
-
</head>
|
|
18
|
-
<body style="margin: 0; overflow: hidden;">
|
|
19
|
-
<div id="graphiql" style="height: 100vh;"></div>
|
|
20
|
-
<script
|
|
21
|
-
crossorigin
|
|
22
|
-
src="https://unpkg.com/react@18/umd/react.production.min.js"
|
|
23
|
-
></script>
|
|
24
|
-
<script
|
|
25
|
-
crossorigin
|
|
26
|
-
src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"
|
|
27
|
-
></script>
|
|
28
|
-
<script
|
|
29
|
-
crossorigin
|
|
30
|
-
src="https://unpkg.com/graphiql@3/graphiql.min.js"
|
|
31
|
-
></script>
|
|
32
|
-
<script>
|
|
33
|
-
const fetcher = GraphiQL.createFetcher({
|
|
34
|
-
url: ${JSON.stringify(endpoint)},
|
|
35
|
-
});
|
|
36
|
-
ReactDOM.createRoot(document.getElementById('graphiql')).render(
|
|
37
|
-
React.createElement(GraphiQL, { fetcher })
|
|
38
|
-
);
|
|
39
|
-
</script>
|
|
40
|
-
</body>
|
|
41
|
-
</html>`;
|
|
42
|
-
exports.graphiqlHtml = graphiqlHtml;
|
|
43
|
-
//# sourceMappingURL=graphiql.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphiql.js","sourceRoot":"","sources":["../../src/server/graphiql.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;eA2B3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;;;;QAO/B,CAAA;AAlCK,QAAA,YAAY,gBAkCjB"}
|
package/dist/server/index.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export type { GraphiQLConfig, GraphQLRouterConfig, GraphQLRouterConfigInput } from "./config";
|
|
2
|
-
export { defaultConfig, normalizeConfig, GraphQLRouterConfigFromEnv } from "./config";
|
|
3
|
-
export { graphiqlHtml } from "./graphiql";
|
|
4
|
-
export { makeGraphQLRouter, defaultErrorHandler, type MakeGraphQLRouterOptions, type ErrorHandler, } from "./router";
|
|
5
|
-
export { toRouter } from "./schema-builder-extensions";
|
|
6
|
-
export type { ComplexityConfig, ComplexityResult, ComplexityAnalysisInfo, ComplexityExceededInfo, ComplexityCalculator, FieldComplexity, FieldComplexityMap, } from "./complexity";
|
|
7
|
-
export { ComplexityLimitExceededError, ComplexityAnalysisError, validateComplexity, defaultComplexityCalculator, depthOnlyCalculator, combineCalculators, ComplexityConfigFromEnv, } from "./complexity";
|
|
8
|
-
export type { CacheHintMap, CachePolicy, CacheControlConfig, CachePolicyAnalysisInfo, } from "./cache-control";
|
|
9
|
-
export { computeCachePolicy, computeCachePolicyFromQuery, toCacheControlHeader, CacheControlConfigFromEnv, } from "./cache-control";
|
|
10
|
-
export type { EffectWebSocket, CloseEvent, ConnectionContext, GraphQLWSOptions, GraphQLWSConfig, SubscribeMessage, CompleteMessage, } from "./ws-types";
|
|
11
|
-
export { WebSocketError } from "./ws-types";
|
|
12
|
-
export { makeGraphQLWSHandler } from "./ws-adapter";
|
|
13
|
-
export type { WsWebSocket } from "./ws-utils";
|
|
14
|
-
export { toEffectWebSocketFromWs, WS_CLOSED } from "./ws-utils";
|
|
15
|
-
export type { EffectSSE, SSEEvent, SSEEventType, SSESubscriptionRequest, SSEConnectionContext, GraphQLSSEOptions, GraphQLSSEConfig, SSESubscriptionResult, } from "./sse-types";
|
|
16
|
-
export { SSEError, SSE_HEADERS, formatNextEvent, formatErrorEvent, formatCompleteEvent, formatSSEMessage, } from "./sse-types";
|
|
17
|
-
export { makeSSESubscriptionStream, makeGraphQLSSEHandler } from "./sse-adapter";
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAE7F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,GAClB,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAGtD,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAGrB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAA;AAGxB,YAAY,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAG/D,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,QAAQ,EACR,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/server/index.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeGraphQLSSEHandler = exports.makeSSESubscriptionStream = exports.formatSSEMessage = exports.formatCompleteEvent = exports.formatErrorEvent = exports.formatNextEvent = exports.SSE_HEADERS = exports.SSEError = exports.WS_CLOSED = exports.toEffectWebSocketFromWs = exports.makeGraphQLWSHandler = exports.WebSocketError = exports.CacheControlConfigFromEnv = exports.toCacheControlHeader = exports.computeCachePolicyFromQuery = exports.computeCachePolicy = exports.ComplexityConfigFromEnv = exports.combineCalculators = exports.depthOnlyCalculator = exports.defaultComplexityCalculator = exports.validateComplexity = exports.ComplexityAnalysisError = exports.ComplexityLimitExceededError = exports.toRouter = exports.defaultErrorHandler = exports.makeGraphQLRouter = exports.graphiqlHtml = exports.GraphQLRouterConfigFromEnv = exports.normalizeConfig = exports.defaultConfig = void 0;
|
|
4
|
-
var config_1 = require("./config");
|
|
5
|
-
Object.defineProperty(exports, "defaultConfig", { enumerable: true, get: function () { return config_1.defaultConfig; } });
|
|
6
|
-
Object.defineProperty(exports, "normalizeConfig", { enumerable: true, get: function () { return config_1.normalizeConfig; } });
|
|
7
|
-
Object.defineProperty(exports, "GraphQLRouterConfigFromEnv", { enumerable: true, get: function () { return config_1.GraphQLRouterConfigFromEnv; } });
|
|
8
|
-
// GraphiQL HTML generator
|
|
9
|
-
var graphiql_1 = require("./graphiql");
|
|
10
|
-
Object.defineProperty(exports, "graphiqlHtml", { enumerable: true, get: function () { return graphiql_1.graphiqlHtml; } });
|
|
11
|
-
// Router factory
|
|
12
|
-
var router_1 = require("./router");
|
|
13
|
-
Object.defineProperty(exports, "makeGraphQLRouter", { enumerable: true, get: function () { return router_1.makeGraphQLRouter; } });
|
|
14
|
-
Object.defineProperty(exports, "defaultErrorHandler", { enumerable: true, get: function () { return router_1.defaultErrorHandler; } });
|
|
15
|
-
// Schema builder extension
|
|
16
|
-
var schema_builder_extensions_1 = require("./schema-builder-extensions");
|
|
17
|
-
Object.defineProperty(exports, "toRouter", { enumerable: true, get: function () { return schema_builder_extensions_1.toRouter; } });
|
|
18
|
-
var complexity_1 = require("./complexity");
|
|
19
|
-
Object.defineProperty(exports, "ComplexityLimitExceededError", { enumerable: true, get: function () { return complexity_1.ComplexityLimitExceededError; } });
|
|
20
|
-
Object.defineProperty(exports, "ComplexityAnalysisError", { enumerable: true, get: function () { return complexity_1.ComplexityAnalysisError; } });
|
|
21
|
-
Object.defineProperty(exports, "validateComplexity", { enumerable: true, get: function () { return complexity_1.validateComplexity; } });
|
|
22
|
-
Object.defineProperty(exports, "defaultComplexityCalculator", { enumerable: true, get: function () { return complexity_1.defaultComplexityCalculator; } });
|
|
23
|
-
Object.defineProperty(exports, "depthOnlyCalculator", { enumerable: true, get: function () { return complexity_1.depthOnlyCalculator; } });
|
|
24
|
-
Object.defineProperty(exports, "combineCalculators", { enumerable: true, get: function () { return complexity_1.combineCalculators; } });
|
|
25
|
-
Object.defineProperty(exports, "ComplexityConfigFromEnv", { enumerable: true, get: function () { return complexity_1.ComplexityConfigFromEnv; } });
|
|
26
|
-
var cache_control_1 = require("./cache-control");
|
|
27
|
-
Object.defineProperty(exports, "computeCachePolicy", { enumerable: true, get: function () { return cache_control_1.computeCachePolicy; } });
|
|
28
|
-
Object.defineProperty(exports, "computeCachePolicyFromQuery", { enumerable: true, get: function () { return cache_control_1.computeCachePolicyFromQuery; } });
|
|
29
|
-
Object.defineProperty(exports, "toCacheControlHeader", { enumerable: true, get: function () { return cache_control_1.toCacheControlHeader; } });
|
|
30
|
-
Object.defineProperty(exports, "CacheControlConfigFromEnv", { enumerable: true, get: function () { return cache_control_1.CacheControlConfigFromEnv; } });
|
|
31
|
-
var ws_types_1 = require("./ws-types");
|
|
32
|
-
Object.defineProperty(exports, "WebSocketError", { enumerable: true, get: function () { return ws_types_1.WebSocketError; } });
|
|
33
|
-
var ws_adapter_1 = require("./ws-adapter");
|
|
34
|
-
Object.defineProperty(exports, "makeGraphQLWSHandler", { enumerable: true, get: function () { return ws_adapter_1.makeGraphQLWSHandler; } });
|
|
35
|
-
var ws_utils_1 = require("./ws-utils");
|
|
36
|
-
Object.defineProperty(exports, "toEffectWebSocketFromWs", { enumerable: true, get: function () { return ws_utils_1.toEffectWebSocketFromWs; } });
|
|
37
|
-
Object.defineProperty(exports, "WS_CLOSED", { enumerable: true, get: function () { return ws_utils_1.WS_CLOSED; } });
|
|
38
|
-
var sse_types_1 = require("./sse-types");
|
|
39
|
-
Object.defineProperty(exports, "SSEError", { enumerable: true, get: function () { return sse_types_1.SSEError; } });
|
|
40
|
-
Object.defineProperty(exports, "SSE_HEADERS", { enumerable: true, get: function () { return sse_types_1.SSE_HEADERS; } });
|
|
41
|
-
Object.defineProperty(exports, "formatNextEvent", { enumerable: true, get: function () { return sse_types_1.formatNextEvent; } });
|
|
42
|
-
Object.defineProperty(exports, "formatErrorEvent", { enumerable: true, get: function () { return sse_types_1.formatErrorEvent; } });
|
|
43
|
-
Object.defineProperty(exports, "formatCompleteEvent", { enumerable: true, get: function () { return sse_types_1.formatCompleteEvent; } });
|
|
44
|
-
Object.defineProperty(exports, "formatSSEMessage", { enumerable: true, get: function () { return sse_types_1.formatSSEMessage; } });
|
|
45
|
-
var sse_adapter_1 = require("./sse-adapter");
|
|
46
|
-
Object.defineProperty(exports, "makeSSESubscriptionStream", { enumerable: true, get: function () { return sse_adapter_1.makeSSESubscriptionStream; } });
|
|
47
|
-
Object.defineProperty(exports, "makeGraphQLSSEHandler", { enumerable: true, get: function () { return sse_adapter_1.makeGraphQLSSEHandler; } });
|
|
48
|
-
//# sourceMappingURL=index.js.map
|
package/dist/server/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;AAGA,mCAAqF;AAA5E,uGAAA,aAAa,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,oHAAA,0BAA0B,OAAA;AAEnE,0BAA0B;AAC1B,uCAAyC;AAAhC,wGAAA,YAAY,OAAA;AAErB,iBAAiB;AACjB,mCAKiB;AAJf,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AAKrB,2BAA2B;AAC3B,yEAAsD;AAA7C,qHAAA,QAAQ,OAAA;AAajB,2CAQqB;AAPnB,0HAAA,4BAA4B,OAAA;AAC5B,qHAAA,uBAAuB,OAAA;AACvB,gHAAA,kBAAkB,OAAA;AAClB,yHAAA,2BAA2B,OAAA;AAC3B,iHAAA,mBAAmB,OAAA;AACnB,gHAAA,kBAAkB,OAAA;AAClB,qHAAA,uBAAuB,OAAA;AAWzB,iDAKwB;AAJtB,mHAAA,kBAAkB,OAAA;AAClB,4HAAA,2BAA2B,OAAA;AAC3B,qHAAA,oBAAoB,OAAA;AACpB,0HAAA,yBAAyB,OAAA;AAc3B,uCAA2C;AAAlC,0GAAA,cAAc,OAAA;AAEvB,2CAAmD;AAA1C,kHAAA,oBAAoB,OAAA;AAI7B,uCAA+D;AAAtD,mHAAA,uBAAuB,OAAA;AAAE,qGAAA,SAAS,OAAA;AAc3C,yCAOoB;AANlB,qGAAA,QAAQ,OAAA;AACR,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,6GAAA,gBAAgB,OAAA;AAChB,gHAAA,mBAAmB,OAAA;AACnB,6GAAA,gBAAgB,OAAA;AAGlB,6CAAgF;AAAvE,wHAAA,yBAAyB,OAAA;AAAE,oHAAA,qBAAqB,OAAA"}
|
package/dist/server/router.d.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { HttpRouter, HttpServerResponse } from "@effect/platform";
|
|
2
|
-
import { Cause, Effect, Layer } from "effect";
|
|
3
|
-
import { GraphQLSchema } from "graphql";
|
|
4
|
-
import { type GraphQLRouterConfigInput } from "./config";
|
|
5
|
-
import { type FieldComplexityMap } from "./complexity";
|
|
6
|
-
import { type CacheHintMap } from "./cache-control";
|
|
7
|
-
import { type GraphQLExtension } from "../extensions";
|
|
8
|
-
/**
|
|
9
|
-
* Error handler function type for handling uncaught errors during GraphQL execution.
|
|
10
|
-
* Receives the error cause and should return an HTTP response.
|
|
11
|
-
*/
|
|
12
|
-
export type ErrorHandler = (cause: Cause.Cause<unknown>) => Effect.Effect<HttpServerResponse.HttpServerResponse, never, never>;
|
|
13
|
-
/**
|
|
14
|
-
* Default error handler that returns a 500 Internal Server Error.
|
|
15
|
-
* In non-production environments, it logs the full error for debugging.
|
|
16
|
-
*/
|
|
17
|
-
export declare const defaultErrorHandler: ErrorHandler;
|
|
18
|
-
/**
|
|
19
|
-
* Options for makeGraphQLRouter
|
|
20
|
-
*/
|
|
21
|
-
export interface MakeGraphQLRouterOptions extends GraphQLRouterConfigInput {
|
|
22
|
-
/**
|
|
23
|
-
* Field complexity definitions from the schema builder.
|
|
24
|
-
* If using toRouter(), this is automatically extracted from the builder.
|
|
25
|
-
* If using makeGraphQLRouter() directly, call builder.getFieldComplexities().
|
|
26
|
-
*/
|
|
27
|
-
readonly fieldComplexities?: FieldComplexityMap;
|
|
28
|
-
/**
|
|
29
|
-
* Cache hint definitions from the schema builder.
|
|
30
|
-
* If using toRouter(), this is automatically extracted from the builder.
|
|
31
|
-
* If using makeGraphQLRouter() directly, call builder.getCacheHints().
|
|
32
|
-
*/
|
|
33
|
-
readonly cacheHints?: CacheHintMap;
|
|
34
|
-
/**
|
|
35
|
-
* GraphQL extensions for lifecycle hooks.
|
|
36
|
-
* If using toRouter(), this is automatically extracted from the builder.
|
|
37
|
-
* If using makeGraphQLRouter() directly, call builder.getExtensions().
|
|
38
|
-
*/
|
|
39
|
-
readonly extensions?: readonly GraphQLExtension<any>[];
|
|
40
|
-
/**
|
|
41
|
-
* Custom error handler for uncaught errors during GraphQL execution.
|
|
42
|
-
* Receives the error cause and should return an HTTP response.
|
|
43
|
-
* Defaults to returning a 500 Internal Server Error with a generic message.
|
|
44
|
-
*/
|
|
45
|
-
readonly errorHandler?: ErrorHandler;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Create an HttpRouter configured for GraphQL
|
|
49
|
-
*
|
|
50
|
-
* The router handles:
|
|
51
|
-
* - POST requests to the GraphQL endpoint
|
|
52
|
-
* - GET requests to the GraphiQL UI (if enabled)
|
|
53
|
-
* - Query complexity validation (if configured)
|
|
54
|
-
* - Extension lifecycle hooks (onParse, onValidate, onExecuteStart, onExecuteEnd)
|
|
55
|
-
*
|
|
56
|
-
* @param schema - The GraphQL schema
|
|
57
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
58
|
-
* @param options - Optional configuration for paths, GraphiQL, complexity, and extensions
|
|
59
|
-
* @returns An HttpRouter that can be composed with other routes
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* ```typescript
|
|
63
|
-
* const router = makeGraphQLRouter(schema, Layer.empty, {
|
|
64
|
-
* path: "/graphql",
|
|
65
|
-
* graphiql: { path: "/graphiql" },
|
|
66
|
-
* complexity: { maxDepth: 10, maxComplexity: 1000 },
|
|
67
|
-
* fieldComplexities: builder.getFieldComplexities(),
|
|
68
|
-
* extensions: builder.getExtensions()
|
|
69
|
-
* })
|
|
70
|
-
*
|
|
71
|
-
* // Compose with other routes
|
|
72
|
-
* const app = HttpRouter.empty.pipe(
|
|
73
|
-
* HttpRouter.get("/health", HttpServerResponse.json({ status: "ok" })),
|
|
74
|
-
* HttpRouter.concat(router)
|
|
75
|
-
* )
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export declare const makeGraphQLRouter: <R>(schema: GraphQLSchema, layer: Layer.Layer<R>, options?: MakeGraphQLRouterOptions) => HttpRouter.HttpRouter<never, never>;
|
|
79
|
-
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAE,KAAK,EAAW,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtD,OAAO,EACL,aAAa,EASd,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAA;AACrB,OAAO,EAA4C,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7F,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAA;AAEtB;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KACxB,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAEvE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAiB/B,CAAA;AA8LH;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,wBAAwB;IACxE;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAA;IAE/C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAA;IAElC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAA;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EACjC,QAAQ,aAAa,EACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,UAAS,wBAA6B,KACrC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAgHpC,CAAA"}
|
package/dist/server/router.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.makeGraphQLRouter = exports.defaultErrorHandler = void 0;
|
|
4
|
-
const platform_1 = require("@effect/platform");
|
|
5
|
-
const effect_1 = require("effect");
|
|
6
|
-
const graphql_1 = require("graphql");
|
|
7
|
-
const graphiql_1 = require("./graphiql");
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
const complexity_1 = require("./complexity");
|
|
10
|
-
const cache_control_1 = require("./cache-control");
|
|
11
|
-
const extensions_1 = require("../extensions");
|
|
12
|
-
/**
|
|
13
|
-
* Default error handler that returns a 500 Internal Server Error.
|
|
14
|
-
* In non-production environments, it logs the full error for debugging.
|
|
15
|
-
*/
|
|
16
|
-
const defaultErrorHandler = (cause) => (process.env.NODE_ENV !== "production"
|
|
17
|
-
? effect_1.Effect.logError("GraphQL error", cause)
|
|
18
|
-
: effect_1.Effect.void).pipe(effect_1.Effect.andThen(platform_1.HttpServerResponse.json({
|
|
19
|
-
errors: [
|
|
20
|
-
{
|
|
21
|
-
message: "An error occurred processing your request",
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
}, { status: 500 }).pipe(effect_1.Effect.orDie)));
|
|
25
|
-
exports.defaultErrorHandler = defaultErrorHandler;
|
|
26
|
-
/**
|
|
27
|
-
* Parse a GraphQL query string into a DocumentNode.
|
|
28
|
-
* Returns the document or an error response if parsing fails.
|
|
29
|
-
*/
|
|
30
|
-
const parseGraphQLQuery = (query, extensionsService) => effect_1.Effect.gen(function* () {
|
|
31
|
-
try {
|
|
32
|
-
const document = (0, graphql_1.parse)(query);
|
|
33
|
-
return { ok: true, document };
|
|
34
|
-
}
|
|
35
|
-
catch (parseError) {
|
|
36
|
-
const extensionData = yield* extensionsService.get();
|
|
37
|
-
const response = yield* platform_1.HttpServerResponse.json({
|
|
38
|
-
errors: [{ message: String(parseError) }],
|
|
39
|
-
extensions: Object.keys(extensionData).length > 0 ? extensionData : undefined,
|
|
40
|
-
}).pipe(effect_1.Effect.orDie);
|
|
41
|
-
return { ok: false, response };
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
/**
|
|
45
|
-
* Run complexity validation if configured.
|
|
46
|
-
* Logs warnings for analysis errors but doesn't block execution.
|
|
47
|
-
*/
|
|
48
|
-
const runComplexityValidation = (body, schema, fieldComplexities, complexityConfig) => {
|
|
49
|
-
if (!complexityConfig) {
|
|
50
|
-
return effect_1.Effect.void;
|
|
51
|
-
}
|
|
52
|
-
return (0, complexity_1.validateComplexity)(body.query, body.operationName, body.variables, schema, fieldComplexities, complexityConfig).pipe(effect_1.Effect.catchTag("ComplexityLimitExceededError", (error) => effect_1.Effect.fail(error)), effect_1.Effect.catchTag("ComplexityAnalysisError", (error) => effect_1.Effect.logWarning("Complexity analysis failed", error)));
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Execute a GraphQL query and handle async results.
|
|
56
|
-
*/
|
|
57
|
-
const executeGraphQLQuery = (schema, document, variables, operationName, runtime) => effect_1.Effect.gen(function* () {
|
|
58
|
-
const executeResult = yield* effect_1.Effect.try({
|
|
59
|
-
try: () => (0, graphql_1.execute)({
|
|
60
|
-
schema,
|
|
61
|
-
document,
|
|
62
|
-
variableValues: variables,
|
|
63
|
-
operationName,
|
|
64
|
-
contextValue: { runtime },
|
|
65
|
-
}),
|
|
66
|
-
catch: (error) => new Error(String(error)),
|
|
67
|
-
});
|
|
68
|
-
// Await result if it's a promise
|
|
69
|
-
if (executeResult && typeof executeResult === "object" && "then" in executeResult) {
|
|
70
|
-
return yield* effect_1.Effect.promise(() => executeResult);
|
|
71
|
-
}
|
|
72
|
-
return executeResult;
|
|
73
|
-
});
|
|
74
|
-
/**
|
|
75
|
-
* Compute cache control header for the response if applicable.
|
|
76
|
-
*/
|
|
77
|
-
const computeCacheControlHeader = (document, operationName, schema, cacheHints, cacheControlConfig) => effect_1.Effect.gen(function* () {
|
|
78
|
-
if (cacheControlConfig?.enabled === false ||
|
|
79
|
-
cacheControlConfig?.calculateHttpHeaders === false) {
|
|
80
|
-
return undefined;
|
|
81
|
-
}
|
|
82
|
-
// Find the operation from the document
|
|
83
|
-
const operations = document.definitions.filter((d) => d.kind === graphql_1.Kind.OPERATION_DEFINITION);
|
|
84
|
-
const operation = operationName
|
|
85
|
-
? operations.find((o) => o.name?.value === operationName)
|
|
86
|
-
: operations[0];
|
|
87
|
-
if (!operation || operation.operation === "mutation") {
|
|
88
|
-
// Mutations should not be cached
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
const cachePolicy = yield* (0, cache_control_1.computeCachePolicy)({
|
|
92
|
-
document,
|
|
93
|
-
operation,
|
|
94
|
-
schema,
|
|
95
|
-
cacheHints,
|
|
96
|
-
config: cacheControlConfig ?? {},
|
|
97
|
-
});
|
|
98
|
-
return (0, cache_control_1.toCacheControlHeader)(cachePolicy);
|
|
99
|
-
});
|
|
100
|
-
/**
|
|
101
|
-
* Build the final GraphQL response with extensions merged in.
|
|
102
|
-
*/
|
|
103
|
-
const buildGraphQLResponse = (result, extensionData, cacheControlHeader) => {
|
|
104
|
-
const finalResult = Object.keys(extensionData).length > 0
|
|
105
|
-
? {
|
|
106
|
-
...result,
|
|
107
|
-
extensions: {
|
|
108
|
-
...result.extensions,
|
|
109
|
-
...extensionData,
|
|
110
|
-
},
|
|
111
|
-
}
|
|
112
|
-
: result;
|
|
113
|
-
const responseHeaders = cacheControlHeader ? { "cache-control": cacheControlHeader } : undefined;
|
|
114
|
-
return platform_1.HttpServerResponse.json(finalResult, { headers: responseHeaders }).pipe(effect_1.Effect.orDie);
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Handle complexity limit exceeded error, returning appropriate response.
|
|
118
|
-
*/
|
|
119
|
-
const handleComplexityError = (error) => platform_1.HttpServerResponse.json({
|
|
120
|
-
errors: [
|
|
121
|
-
{
|
|
122
|
-
message: error.message,
|
|
123
|
-
extensions: {
|
|
124
|
-
code: "COMPLEXITY_LIMIT_EXCEEDED",
|
|
125
|
-
limitType: error.limitType,
|
|
126
|
-
limit: error.limit,
|
|
127
|
-
actual: error.actual,
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
}, { status: 400 }).pipe(effect_1.Effect.orDie);
|
|
132
|
-
/**
|
|
133
|
-
* Create an HttpRouter configured for GraphQL
|
|
134
|
-
*
|
|
135
|
-
* The router handles:
|
|
136
|
-
* - POST requests to the GraphQL endpoint
|
|
137
|
-
* - GET requests to the GraphiQL UI (if enabled)
|
|
138
|
-
* - Query complexity validation (if configured)
|
|
139
|
-
* - Extension lifecycle hooks (onParse, onValidate, onExecuteStart, onExecuteEnd)
|
|
140
|
-
*
|
|
141
|
-
* @param schema - The GraphQL schema
|
|
142
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
143
|
-
* @param options - Optional configuration for paths, GraphiQL, complexity, and extensions
|
|
144
|
-
* @returns An HttpRouter that can be composed with other routes
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
* ```typescript
|
|
148
|
-
* const router = makeGraphQLRouter(schema, Layer.empty, {
|
|
149
|
-
* path: "/graphql",
|
|
150
|
-
* graphiql: { path: "/graphiql" },
|
|
151
|
-
* complexity: { maxDepth: 10, maxComplexity: 1000 },
|
|
152
|
-
* fieldComplexities: builder.getFieldComplexities(),
|
|
153
|
-
* extensions: builder.getExtensions()
|
|
154
|
-
* })
|
|
155
|
-
*
|
|
156
|
-
* // Compose with other routes
|
|
157
|
-
* const app = HttpRouter.empty.pipe(
|
|
158
|
-
* HttpRouter.get("/health", HttpServerResponse.json({ status: "ok" })),
|
|
159
|
-
* HttpRouter.concat(router)
|
|
160
|
-
* )
|
|
161
|
-
* ```
|
|
162
|
-
*/
|
|
163
|
-
const makeGraphQLRouter = (schema, layer, options = {}) => {
|
|
164
|
-
const resolvedConfig = (0, config_1.normalizeConfig)(options);
|
|
165
|
-
const fieldComplexities = options.fieldComplexities ?? new Map();
|
|
166
|
-
const cacheHints = options.cacheHints ?? new Map();
|
|
167
|
-
const extensions = options.extensions ?? [];
|
|
168
|
-
const errorHandler = options.errorHandler ?? exports.defaultErrorHandler;
|
|
169
|
-
// GraphQL POST handler
|
|
170
|
-
const graphqlHandler = effect_1.Effect.gen(function* () {
|
|
171
|
-
const extensionsService = yield* (0, extensions_1.makeExtensionsService)();
|
|
172
|
-
const runtime = yield* effect_1.Effect.runtime();
|
|
173
|
-
// Parse request body
|
|
174
|
-
const request = yield* platform_1.HttpServerRequest.HttpServerRequest;
|
|
175
|
-
const body = yield* request.json;
|
|
176
|
-
// Phase 1: Parse
|
|
177
|
-
const parseResult = yield* parseGraphQLQuery(body.query, extensionsService);
|
|
178
|
-
if (!parseResult.ok) {
|
|
179
|
-
return parseResult.response;
|
|
180
|
-
}
|
|
181
|
-
const document = parseResult.document;
|
|
182
|
-
yield* (0, extensions_1.runParseHooks)(extensions, body.query, document).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
183
|
-
// Phase 2: Validate
|
|
184
|
-
const validationRules = resolvedConfig.introspection
|
|
185
|
-
? undefined
|
|
186
|
-
: [...graphql_1.specifiedRules, graphql_1.NoSchemaIntrospectionCustomRule];
|
|
187
|
-
const validationErrors = (0, graphql_1.validate)(schema, document, validationRules);
|
|
188
|
-
yield* (0, extensions_1.runValidateHooks)(extensions, document, validationErrors).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
189
|
-
if (validationErrors.length > 0) {
|
|
190
|
-
const extensionData = yield* extensionsService.get();
|
|
191
|
-
return yield* platform_1.HttpServerResponse.json({
|
|
192
|
-
errors: validationErrors.map((e) => ({
|
|
193
|
-
message: e.message,
|
|
194
|
-
locations: e.locations,
|
|
195
|
-
path: e.path,
|
|
196
|
-
})),
|
|
197
|
-
extensions: Object.keys(extensionData).length > 0 ? extensionData : undefined,
|
|
198
|
-
}, { status: 400 });
|
|
199
|
-
}
|
|
200
|
-
// Complexity validation
|
|
201
|
-
yield* runComplexityValidation(body, schema, fieldComplexities, resolvedConfig.complexity);
|
|
202
|
-
// Phase 3: Execute
|
|
203
|
-
yield* (0, extensions_1.runExecuteStartHooks)(extensions, {
|
|
204
|
-
source: body.query,
|
|
205
|
-
document,
|
|
206
|
-
variableValues: body.variables,
|
|
207
|
-
operationName: body.operationName,
|
|
208
|
-
schema,
|
|
209
|
-
fieldComplexities,
|
|
210
|
-
}).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
211
|
-
const result = yield* executeGraphQLQuery(schema, document, body.variables, body.operationName, runtime);
|
|
212
|
-
yield* (0, extensions_1.runExecuteEndHooks)(extensions, result).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
213
|
-
// Build response
|
|
214
|
-
const extensionData = yield* extensionsService.get();
|
|
215
|
-
const cacheControlHeader = yield* computeCacheControlHeader(document, body.operationName, schema, cacheHints, resolvedConfig.cacheControl);
|
|
216
|
-
return yield* buildGraphQLResponse(result, extensionData, cacheControlHeader);
|
|
217
|
-
}).pipe(effect_1.Effect.provide(layer), effect_1.Effect.catchAll((error) => {
|
|
218
|
-
if (error instanceof complexity_1.ComplexityLimitExceededError) {
|
|
219
|
-
return handleComplexityError(error);
|
|
220
|
-
}
|
|
221
|
-
return effect_1.Effect.fail(error);
|
|
222
|
-
}), effect_1.Effect.catchAllCause(errorHandler));
|
|
223
|
-
// Build router
|
|
224
|
-
let router = platform_1.HttpRouter.empty.pipe(platform_1.HttpRouter.post(resolvedConfig.path, graphqlHandler));
|
|
225
|
-
if (resolvedConfig.graphiql) {
|
|
226
|
-
const { path, endpoint } = resolvedConfig.graphiql;
|
|
227
|
-
router = router.pipe(platform_1.HttpRouter.get(path, platform_1.HttpServerResponse.html((0, graphiql_1.graphiqlHtml)(endpoint))));
|
|
228
|
-
}
|
|
229
|
-
return router;
|
|
230
|
-
};
|
|
231
|
-
exports.makeGraphQLRouter = makeGraphQLRouter;
|
|
232
|
-
//# sourceMappingURL=router.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/server/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Layer } from "effect";
|
|
2
|
-
import { HttpRouter } from "@effect/platform";
|
|
3
|
-
import { GraphQLSchemaBuilder } from "../builder/schema-builder";
|
|
4
|
-
import { type MakeGraphQLRouterOptions } from "./router";
|
|
5
|
-
/**
|
|
6
|
-
* Convert a GraphQLSchemaBuilder to an HttpRouter.
|
|
7
|
-
*
|
|
8
|
-
* This bridges the GraphQL schema builder with the @effect/platform HTTP server.
|
|
9
|
-
* Field complexities and cache hints are automatically extracted from the builder.
|
|
10
|
-
*
|
|
11
|
-
* @param builder - The GraphQL schema builder
|
|
12
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
13
|
-
* @param options - Optional configuration for paths, GraphiQL, complexity, and caching
|
|
14
|
-
* @returns An HttpRouter that can be composed with other routes
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* import { GraphQLSchemaBuilder, query, toRouter } from "@effect-gql/core"
|
|
19
|
-
* import { Layer, Effect } from "effect"
|
|
20
|
-
* import * as S from "effect/Schema"
|
|
21
|
-
*
|
|
22
|
-
* const builder = GraphQLSchemaBuilder.empty.pipe(
|
|
23
|
-
* query("hello", { type: S.String, resolve: () => Effect.succeed("world") })
|
|
24
|
-
* )
|
|
25
|
-
*
|
|
26
|
-
* // Basic usage
|
|
27
|
-
* const router = toRouter(builder, Layer.empty, { graphiql: true })
|
|
28
|
-
*
|
|
29
|
-
* // With complexity limiting
|
|
30
|
-
* const routerWithLimits = toRouter(builder, Layer.empty, {
|
|
31
|
-
* graphiql: true,
|
|
32
|
-
* complexity: { maxDepth: 10, maxComplexity: 1000 }
|
|
33
|
-
* })
|
|
34
|
-
*
|
|
35
|
-
* // With cache control
|
|
36
|
-
* const routerWithCaching = toRouter(builder, Layer.empty, {
|
|
37
|
-
* cacheControl: { enabled: true, defaultMaxAge: 0 }
|
|
38
|
-
* })
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare const toRouter: <R, R2>(builder: GraphQLSchemaBuilder<R>, layer: Layer.Layer<R2>, options?: Omit<MakeGraphQLRouterOptions, "fieldComplexities" | "cacheHints">) => HttpRouter.HttpRouter<never, never>;
|
|
42
|
-
//# sourceMappingURL=schema-builder-extensions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder-extensions.d.ts","sourceRoot":"","sources":["../../src/server/schema-builder-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,EAAE,EAC5B,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAChC,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EACtB,UAAU,IAAI,CAAC,wBAAwB,EAAE,mBAAmB,GAAG,YAAY,CAAC,KAC3E,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAKpC,CAAA"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toRouter = void 0;
|
|
4
|
-
const router_1 = require("./router");
|
|
5
|
-
/**
|
|
6
|
-
* Convert a GraphQLSchemaBuilder to an HttpRouter.
|
|
7
|
-
*
|
|
8
|
-
* This bridges the GraphQL schema builder with the @effect/platform HTTP server.
|
|
9
|
-
* Field complexities and cache hints are automatically extracted from the builder.
|
|
10
|
-
*
|
|
11
|
-
* @param builder - The GraphQL schema builder
|
|
12
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
13
|
-
* @param options - Optional configuration for paths, GraphiQL, complexity, and caching
|
|
14
|
-
* @returns An HttpRouter that can be composed with other routes
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* import { GraphQLSchemaBuilder, query, toRouter } from "@effect-gql/core"
|
|
19
|
-
* import { Layer, Effect } from "effect"
|
|
20
|
-
* import * as S from "effect/Schema"
|
|
21
|
-
*
|
|
22
|
-
* const builder = GraphQLSchemaBuilder.empty.pipe(
|
|
23
|
-
* query("hello", { type: S.String, resolve: () => Effect.succeed("world") })
|
|
24
|
-
* )
|
|
25
|
-
*
|
|
26
|
-
* // Basic usage
|
|
27
|
-
* const router = toRouter(builder, Layer.empty, { graphiql: true })
|
|
28
|
-
*
|
|
29
|
-
* // With complexity limiting
|
|
30
|
-
* const routerWithLimits = toRouter(builder, Layer.empty, {
|
|
31
|
-
* graphiql: true,
|
|
32
|
-
* complexity: { maxDepth: 10, maxComplexity: 1000 }
|
|
33
|
-
* })
|
|
34
|
-
*
|
|
35
|
-
* // With cache control
|
|
36
|
-
* const routerWithCaching = toRouter(builder, Layer.empty, {
|
|
37
|
-
* cacheControl: { enabled: true, defaultMaxAge: 0 }
|
|
38
|
-
* })
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
const toRouter = (builder, layer, options) => {
|
|
42
|
-
const schema = builder.buildSchema();
|
|
43
|
-
const fieldComplexities = builder.getFieldComplexities();
|
|
44
|
-
const cacheHints = builder.getCacheHints();
|
|
45
|
-
return (0, router_1.makeGraphQLRouter)(schema, layer, { ...options, fieldComplexities, cacheHints });
|
|
46
|
-
};
|
|
47
|
-
exports.toRouter = toRouter;
|
|
48
|
-
//# sourceMappingURL=schema-builder-extensions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder-extensions.js","sourceRoot":"","sources":["../../src/server/schema-builder-extensions.ts"],"names":[],"mappings":";;;AAGA,qCAA2E;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACI,MAAM,QAAQ,GAAG,CACtB,OAAgC,EAChC,KAAsB,EACtB,OAA4E,EACvC,EAAE;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACpC,MAAM,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAA;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAA;IAC1C,OAAO,IAAA,0BAAiB,EAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAA;AACxF,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Layer, Stream } from "effect";
|
|
2
|
-
import { GraphQLSchema } from "graphql";
|
|
3
|
-
import { SSEError, type GraphQLSSEOptions, type SSESubscriptionRequest, type SSEEvent } from "./sse-types";
|
|
4
|
-
/**
|
|
5
|
-
* Create a subscription event stream for SSE.
|
|
6
|
-
*
|
|
7
|
-
* This function handles the GraphQL subscription lifecycle:
|
|
8
|
-
* 1. Parse and validate the query
|
|
9
|
-
* 2. Check complexity limits if configured
|
|
10
|
-
* 3. Execute the subscription
|
|
11
|
-
* 4. Stream results as SSE events
|
|
12
|
-
*
|
|
13
|
-
* @param schema - The GraphQL schema with subscription definitions
|
|
14
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
15
|
-
* @param request - The subscription request (query, variables, operationName)
|
|
16
|
-
* @param headers - HTTP headers from the request (for auth)
|
|
17
|
-
* @param options - Optional lifecycle hooks and configuration
|
|
18
|
-
* @returns A Stream of SSE events to send to the client
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const eventStream = makeSSESubscriptionStream(
|
|
23
|
-
* schema,
|
|
24
|
-
* serviceLayer,
|
|
25
|
-
* { query: "subscription { tick { count } }" },
|
|
26
|
-
* new Headers(),
|
|
27
|
-
* { onConnect: (req, headers) => Effect.succeed({ user: "alice" }) }
|
|
28
|
-
* )
|
|
29
|
-
*
|
|
30
|
-
* // In platform-specific code, consume and send events:
|
|
31
|
-
* Stream.runForEach(eventStream, (event) =>
|
|
32
|
-
* Effect.sync(() => res.write(formatSSEMessage(event)))
|
|
33
|
-
* )
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export declare const makeSSESubscriptionStream: <R>(schema: GraphQLSchema, layer: Layer.Layer<R>, request: SSESubscriptionRequest, headers: Headers, options?: GraphQLSSEOptions<R>) => Stream.Stream<SSEEvent, SSEError>;
|
|
37
|
-
/**
|
|
38
|
-
* Create an SSE subscription handler that can be used with platform-specific servers.
|
|
39
|
-
*
|
|
40
|
-
* This is a higher-level API that returns a handler function. The handler
|
|
41
|
-
* takes a request and headers, and returns a Stream of SSE events.
|
|
42
|
-
*
|
|
43
|
-
* @param schema - The GraphQL schema with subscription definitions
|
|
44
|
-
* @param layer - Effect layer providing services required by resolvers
|
|
45
|
-
* @param options - Optional lifecycle hooks and configuration
|
|
46
|
-
* @returns A handler function for SSE subscription requests
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* const handler = makeGraphQLSSEHandler(schema, serviceLayer, {
|
|
51
|
-
* onConnect: (request, headers) => Effect.gen(function* () {
|
|
52
|
-
* const token = headers.get("authorization")
|
|
53
|
-
* const user = yield* AuthService.validateToken(token)
|
|
54
|
-
* return { user }
|
|
55
|
-
* }),
|
|
56
|
-
* })
|
|
57
|
-
*
|
|
58
|
-
* // In platform-specific code:
|
|
59
|
-
* const events = handler(request, headers)
|
|
60
|
-
* // Stream events to client...
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export declare const makeGraphQLSSEHandler: <R>(schema: GraphQLSchema, layer: Layer.Layer<R>, options?: GraphQLSSEOptions<R>) => ((request: SSESubscriptionRequest, headers: Headers) => Stream.Stream<SSEEvent, SSEError>);
|
|
64
|
-
//# sourceMappingURL=sse-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-adapter.d.ts","sourceRoot":"","sources":["../../src/server/sse-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EACL,aAAa,EASd,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,QAAQ,EACR,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EAId,MAAM,aAAa,CAAA;AAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,EACzC,QAAQ,aAAa,EACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,SAAS,sBAAsB,EAC/B,SAAS,OAAO,EAChB,UAAU,iBAAiB,CAAC,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CA8NlC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,EACrC,QAAQ,aAAa,EACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,UAAU,iBAAiB,CAAC,CAAC,CAAC,KAC7B,CAAC,CAAC,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAE3F,CAAA"}
|