@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
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createAnalyzerExtension = void 0;
|
|
4
|
-
const effect_1 = require("effect");
|
|
5
|
-
const graphql_1 = require("graphql");
|
|
6
|
-
const extensions_1 = require("./extensions");
|
|
7
|
-
const complexity_1 = require("./server/complexity");
|
|
8
|
-
/**
|
|
9
|
-
* Create an analyzer extension that reports query complexity metrics
|
|
10
|
-
* in the response extensions field.
|
|
11
|
-
*
|
|
12
|
-
* Similar to async-graphql's Analyzer extension, this allows you to
|
|
13
|
-
* monitor the complexity of incoming queries without blocking execution.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Basic usage - reports complexity and depth
|
|
18
|
-
* const analyzer = createAnalyzerExtension()
|
|
19
|
-
*
|
|
20
|
-
* // With all metrics and warnings
|
|
21
|
-
* const analyzer = createAnalyzerExtension({
|
|
22
|
-
* includeFieldCount: true,
|
|
23
|
-
* includeAliasCount: true,
|
|
24
|
-
* thresholds: {
|
|
25
|
-
* depth: 10,
|
|
26
|
-
* complexity: 100,
|
|
27
|
-
* },
|
|
28
|
-
* })
|
|
29
|
-
*
|
|
30
|
-
* // Add to schema builder
|
|
31
|
-
* const builder = GraphQLSchemaBuilder.empty.pipe(
|
|
32
|
-
* extension(analyzer),
|
|
33
|
-
* // ...queries, mutations, etc.
|
|
34
|
-
* )
|
|
35
|
-
*
|
|
36
|
-
* // Response will include:
|
|
37
|
-
* // {
|
|
38
|
-
* // "data": { ... },
|
|
39
|
-
* // "extensions": {
|
|
40
|
-
* // "analyzer": {
|
|
41
|
-
* // "complexity": 42,
|
|
42
|
-
* // "depth": 3
|
|
43
|
-
* // }
|
|
44
|
-
* // }
|
|
45
|
-
* // }
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
const createAnalyzerExtension = (config = {}) => {
|
|
49
|
-
const { includeComplexity = true, includeDepth = true, includeFieldCount = false, includeAliasCount = false, key = "analyzer", thresholds, defaultFieldComplexity = 1, fieldComplexities: configFieldComplexities, } = config;
|
|
50
|
-
return {
|
|
51
|
-
name: "analyzer",
|
|
52
|
-
description: "Reports query complexity metrics in response extensions",
|
|
53
|
-
onExecuteStart: (args) => effect_1.Effect.gen(function* () {
|
|
54
|
-
const ext = yield* extensions_1.ExtensionsService;
|
|
55
|
-
// Find the operation
|
|
56
|
-
const operation = findOperation(args);
|
|
57
|
-
if (!operation) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
// Use config field complexities if provided, otherwise use from args
|
|
61
|
-
const fieldComplexities = configFieldComplexities ?? args.fieldComplexities;
|
|
62
|
-
// Calculate complexity
|
|
63
|
-
const calculator = (0, complexity_1.defaultComplexityCalculator)(defaultFieldComplexity);
|
|
64
|
-
const result = yield* calculator({
|
|
65
|
-
document: args.document,
|
|
66
|
-
operation,
|
|
67
|
-
variables: args.variableValues,
|
|
68
|
-
schema: args.schema,
|
|
69
|
-
fieldComplexities,
|
|
70
|
-
}).pipe(effect_1.Effect.catchAll((error) => effect_1.Effect.logWarning("Analyzer extension: complexity calculation failed", error).pipe(effect_1.Effect.as(null))));
|
|
71
|
-
if (!result) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
// Check thresholds and log warnings
|
|
75
|
-
yield* checkThresholds(result, thresholds);
|
|
76
|
-
// Build output
|
|
77
|
-
const output = {};
|
|
78
|
-
if (includeComplexity) {
|
|
79
|
-
output.complexity = result.complexity;
|
|
80
|
-
}
|
|
81
|
-
if (includeDepth) {
|
|
82
|
-
output.depth = result.depth;
|
|
83
|
-
}
|
|
84
|
-
if (includeFieldCount) {
|
|
85
|
-
output.fieldCount = result.fieldCount;
|
|
86
|
-
}
|
|
87
|
-
if (includeAliasCount) {
|
|
88
|
-
output.aliasCount = result.aliasCount;
|
|
89
|
-
}
|
|
90
|
-
// Add to extensions
|
|
91
|
-
yield* ext.set(key, output);
|
|
92
|
-
}),
|
|
93
|
-
};
|
|
94
|
-
};
|
|
95
|
-
exports.createAnalyzerExtension = createAnalyzerExtension;
|
|
96
|
-
/**
|
|
97
|
-
* Find the operation to analyze from the document
|
|
98
|
-
*/
|
|
99
|
-
function findOperation(args) {
|
|
100
|
-
const operations = args.document.definitions.filter((d) => d.kind === graphql_1.Kind.OPERATION_DEFINITION);
|
|
101
|
-
if (operations.length === 0) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
if (args.operationName) {
|
|
105
|
-
return operations.find((o) => o.name?.value === args.operationName) ?? null;
|
|
106
|
-
}
|
|
107
|
-
return operations[0];
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Check thresholds and log warnings for exceeded values
|
|
111
|
-
*/
|
|
112
|
-
function checkThresholds(result, thresholds) {
|
|
113
|
-
if (!thresholds) {
|
|
114
|
-
return effect_1.Effect.void;
|
|
115
|
-
}
|
|
116
|
-
const warnings = [];
|
|
117
|
-
if (thresholds.depth !== undefined && result.depth > thresholds.depth) {
|
|
118
|
-
warnings.push(`Query depth ${result.depth} exceeds threshold ${thresholds.depth}`);
|
|
119
|
-
}
|
|
120
|
-
if (thresholds.complexity !== undefined && result.complexity > thresholds.complexity) {
|
|
121
|
-
warnings.push(`Query complexity ${result.complexity} exceeds threshold ${thresholds.complexity}`);
|
|
122
|
-
}
|
|
123
|
-
if (thresholds.fieldCount !== undefined && result.fieldCount > thresholds.fieldCount) {
|
|
124
|
-
warnings.push(`Query field count ${result.fieldCount} exceeds threshold ${thresholds.fieldCount}`);
|
|
125
|
-
}
|
|
126
|
-
if (thresholds.aliasCount !== undefined && result.aliasCount > thresholds.aliasCount) {
|
|
127
|
-
warnings.push(`Query alias count ${result.aliasCount} exceeds threshold ${thresholds.aliasCount}`);
|
|
128
|
-
}
|
|
129
|
-
if (warnings.length > 0) {
|
|
130
|
-
return effect_1.Effect.logWarning("Analyzer extension: thresholds exceeded", {
|
|
131
|
-
warnings,
|
|
132
|
-
result,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
return effect_1.Effect.void;
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=analyzer-extension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer-extension.js","sourceRoot":"","sources":["../src/analyzer-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Effect, Layer } from "effect";
|
|
2
|
-
import { GraphQLSchema, type ExecutionResult } from "graphql";
|
|
3
|
-
import { type GraphQLExtension } from "../extensions";
|
|
4
|
-
import type { FieldComplexityMap } from "../server/complexity";
|
|
5
|
-
/**
|
|
6
|
-
* Execute a GraphQL query with a service layer
|
|
7
|
-
*
|
|
8
|
-
* This is the layer-per-request execution model. Build the schema once,
|
|
9
|
-
* then execute each request with its own layer (including request-scoped services).
|
|
10
|
-
*
|
|
11
|
-
* The execution follows these phases:
|
|
12
|
-
* 1. Parse - Convert source string to DocumentNode
|
|
13
|
-
* 2. Validate - Check document against schema
|
|
14
|
-
* 3. Execute - Run resolvers and return result
|
|
15
|
-
*
|
|
16
|
-
* Extensions can hook into each phase via onParse, onValidate, onExecuteStart, onExecuteEnd.
|
|
17
|
-
* Extension data is automatically merged into the response's extensions field.
|
|
18
|
-
*/
|
|
19
|
-
export declare const execute: <R>(schema: GraphQLSchema, layer: Layer.Layer<R>, extensions?: readonly GraphQLExtension<any>[], fieldComplexities?: FieldComplexityMap) => (source: string, variableValues?: Record<string, unknown>, operationName?: string) => Effect.Effect<ExecutionResult, Error>;
|
|
20
|
-
/**
|
|
21
|
-
* Execute a GraphQL query with a service layer (simple version without extensions)
|
|
22
|
-
*
|
|
23
|
-
* @deprecated Use execute() instead, which now supports extensions as an optional parameter
|
|
24
|
-
*/
|
|
25
|
-
export declare const executeSimple: <R>(schema: GraphQLSchema, layer: Layer.Layer<R>) => (source: string, variableValues?: Record<string, unknown>, operationName?: string) => Effect.Effect<ExecutionResult, Error>;
|
|
26
|
-
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/builder/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EACL,aAAa,EAKb,KAAK,eAAe,EAErB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,EACA,QAAQ,aAAa,EACrB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,aAAY,SAAS,gBAAgB,CAAC,GAAG,CAAC,EAAO,EACjD,oBAAmB,kBAA8B,MAGjD,QAAQ,MAAM,EACd,iBAAiB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,gBAAgB,MAAM,KACrB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAiGkC,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,QAAQ,aAAa,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cA3GjE,MAAM,mBACG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBACxB,MAAM,KACrB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAyGb,CAAA"}
|
package/dist/builder/execute.js
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.executeSimple = exports.execute = void 0;
|
|
4
|
-
const effect_1 = require("effect");
|
|
5
|
-
const graphql_1 = require("graphql");
|
|
6
|
-
const extensions_1 = require("../extensions");
|
|
7
|
-
/**
|
|
8
|
-
* Execute a GraphQL query with a service layer
|
|
9
|
-
*
|
|
10
|
-
* This is the layer-per-request execution model. Build the schema once,
|
|
11
|
-
* then execute each request with its own layer (including request-scoped services).
|
|
12
|
-
*
|
|
13
|
-
* The execution follows these phases:
|
|
14
|
-
* 1. Parse - Convert source string to DocumentNode
|
|
15
|
-
* 2. Validate - Check document against schema
|
|
16
|
-
* 3. Execute - Run resolvers and return result
|
|
17
|
-
*
|
|
18
|
-
* Extensions can hook into each phase via onParse, onValidate, onExecuteStart, onExecuteEnd.
|
|
19
|
-
* Extension data is automatically merged into the response's extensions field.
|
|
20
|
-
*/
|
|
21
|
-
const execute = (schema, layer, extensions = [], fieldComplexities = new Map()) => (source, variableValues, operationName) => effect_1.Effect.gen(function* () {
|
|
22
|
-
// Create the ExtensionsService for this request
|
|
23
|
-
const extensionsService = yield* (0, extensions_1.makeExtensionsService)();
|
|
24
|
-
// Create runtime from the provided layer
|
|
25
|
-
const runtime = yield* effect_1.Effect.runtime();
|
|
26
|
-
// Phase 1: Parse
|
|
27
|
-
let document;
|
|
28
|
-
try {
|
|
29
|
-
document = (0, graphql_1.parse)(source);
|
|
30
|
-
}
|
|
31
|
-
catch (parseError) {
|
|
32
|
-
// Parse errors are returned as GraphQL errors, not thrown
|
|
33
|
-
const extensionData = yield* extensionsService.get();
|
|
34
|
-
return {
|
|
35
|
-
errors: [
|
|
36
|
-
parseError instanceof graphql_1.GraphQLError ? parseError : new graphql_1.GraphQLError(String(parseError)),
|
|
37
|
-
],
|
|
38
|
-
extensions: Object.keys(extensionData).length > 0 ? extensionData : undefined,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
// Run onParse hooks
|
|
42
|
-
yield* (0, extensions_1.runParseHooks)(extensions, source, document).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
43
|
-
// Phase 2: Validate
|
|
44
|
-
const validationErrors = (0, graphql_1.validate)(schema, document);
|
|
45
|
-
// Run onValidate hooks
|
|
46
|
-
yield* (0, extensions_1.runValidateHooks)(extensions, document, validationErrors).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
47
|
-
// If validation failed, return errors without executing
|
|
48
|
-
if (validationErrors.length > 0) {
|
|
49
|
-
const extensionData = yield* extensionsService.get();
|
|
50
|
-
return {
|
|
51
|
-
errors: validationErrors,
|
|
52
|
-
extensions: Object.keys(extensionData).length > 0 ? extensionData : undefined,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
// Phase 3: Execute
|
|
56
|
-
const executionArgs = {
|
|
57
|
-
source,
|
|
58
|
-
document,
|
|
59
|
-
variableValues,
|
|
60
|
-
operationName,
|
|
61
|
-
schema,
|
|
62
|
-
fieldComplexities,
|
|
63
|
-
};
|
|
64
|
-
// Run onExecuteStart hooks
|
|
65
|
-
yield* (0, extensions_1.runExecuteStartHooks)(extensions, executionArgs).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
66
|
-
// Execute the GraphQL query
|
|
67
|
-
const executeResult = yield* effect_1.Effect.try({
|
|
68
|
-
try: () => (0, graphql_1.execute)({
|
|
69
|
-
schema,
|
|
70
|
-
document,
|
|
71
|
-
variableValues,
|
|
72
|
-
operationName,
|
|
73
|
-
contextValue: { runtime },
|
|
74
|
-
}),
|
|
75
|
-
catch: (error) => new Error(String(error)),
|
|
76
|
-
});
|
|
77
|
-
// Await result if it's a promise (for subscriptions, it might be)
|
|
78
|
-
const resolvedResult = executeResult && typeof executeResult === "object" && "then" in executeResult
|
|
79
|
-
? yield* effect_1.Effect.promise(() => executeResult)
|
|
80
|
-
: executeResult;
|
|
81
|
-
// Run onExecuteEnd hooks
|
|
82
|
-
yield* (0, extensions_1.runExecuteEndHooks)(extensions, resolvedResult).pipe(effect_1.Effect.provideService(extensions_1.ExtensionsService, extensionsService));
|
|
83
|
-
// Merge extension data into result
|
|
84
|
-
const extensionData = yield* extensionsService.get();
|
|
85
|
-
if (Object.keys(extensionData).length > 0) {
|
|
86
|
-
return {
|
|
87
|
-
...resolvedResult,
|
|
88
|
-
extensions: {
|
|
89
|
-
...resolvedResult.extensions,
|
|
90
|
-
...extensionData,
|
|
91
|
-
},
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
return resolvedResult;
|
|
95
|
-
}).pipe(effect_1.Effect.provide(layer));
|
|
96
|
-
exports.execute = execute;
|
|
97
|
-
/**
|
|
98
|
-
* Execute a GraphQL query with a service layer (simple version without extensions)
|
|
99
|
-
*
|
|
100
|
-
* @deprecated Use execute() instead, which now supports extensions as an optional parameter
|
|
101
|
-
*/
|
|
102
|
-
const executeSimple = (schema, layer) => (0, exports.execute)(schema, layer, []);
|
|
103
|
-
exports.executeSimple = executeSimple;
|
|
104
|
-
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/builder/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { GraphQLFieldConfig } from "graphql";
|
|
2
|
-
import type { FieldRegistration, SubscriptionFieldRegistration, ObjectFieldRegistration, DirectiveRegistration, MiddlewareRegistration } from "./types";
|
|
3
|
-
import { type TypeConversionContext, type InputTypeLookupCache } from "./type-registry";
|
|
4
|
-
/**
|
|
5
|
-
* Context needed for building fields
|
|
6
|
-
*/
|
|
7
|
-
export interface FieldBuilderContext extends TypeConversionContext {
|
|
8
|
-
directiveRegistrations: Map<string, DirectiveRegistration>;
|
|
9
|
-
middlewares: readonly MiddlewareRegistration[];
|
|
10
|
-
inputTypeLookupCache?: InputTypeLookupCache;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Build a GraphQL field config from a field registration (for queries/mutations)
|
|
14
|
-
*/
|
|
15
|
-
export declare function buildField(config: FieldRegistration, ctx: FieldBuilderContext): GraphQLFieldConfig<any, any>;
|
|
16
|
-
/**
|
|
17
|
-
* Build a GraphQL field config for an object field (has parent param)
|
|
18
|
-
*/
|
|
19
|
-
export declare function buildObjectField(config: ObjectFieldRegistration, ctx: FieldBuilderContext): GraphQLFieldConfig<any, any>;
|
|
20
|
-
/**
|
|
21
|
-
* Build a GraphQL subscription field config.
|
|
22
|
-
*
|
|
23
|
-
* Subscriptions in GraphQL have a special structure:
|
|
24
|
-
* - `subscribe` returns an AsyncIterator that yields the "root value" for each event
|
|
25
|
-
* - `resolve` transforms each yielded value into the final result
|
|
26
|
-
*
|
|
27
|
-
* We convert Effect's Stream to an AsyncIterator using a Queue-based approach.
|
|
28
|
-
*/
|
|
29
|
-
export declare function buildSubscriptionField(config: SubscriptionFieldRegistration, ctx: FieldBuilderContext): GraphQLFieldConfig<any, any>;
|
|
30
|
-
//# sourceMappingURL=field-builders.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-builders.d.ts","sourceRoot":"","sources":["../../src/builder/field-builders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EACV,iBAAiB,EACjB,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EAGvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAA;AAExB;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IAC1D,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC9C,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;CAC5C;AAwDD;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,GAAG,EAAE,mBAAmB,GACvB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAuC9B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,mBAAmB,GACvB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAkC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,6BAA6B,EACrC,GAAG,EAAE,mBAAmB,GACvB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CA6D9B"}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildField = buildField;
|
|
4
|
-
exports.buildObjectField = buildObjectField;
|
|
5
|
-
exports.buildSubscriptionField = buildSubscriptionField;
|
|
6
|
-
const effect_1 = require("effect");
|
|
7
|
-
const type_registry_1 = require("./type-registry");
|
|
8
|
-
/**
|
|
9
|
-
* Apply directives to an Effect by wrapping it with directive transformers
|
|
10
|
-
*/
|
|
11
|
-
function applyDirectives(effect, directives, directiveRegistrations) {
|
|
12
|
-
if (!directives)
|
|
13
|
-
return effect;
|
|
14
|
-
let wrapped = effect;
|
|
15
|
-
for (const directiveApp of directives) {
|
|
16
|
-
const directiveReg = directiveRegistrations.get(directiveApp.name);
|
|
17
|
-
if (directiveReg?.apply) {
|
|
18
|
-
wrapped = directiveReg.apply(directiveApp.args ?? {})(wrapped);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return wrapped;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Apply middleware to an Effect by wrapping it with middleware transformers.
|
|
25
|
-
*
|
|
26
|
-
* Middleware executes in "onion" order - first registered middleware is the
|
|
27
|
-
* outermost layer, meaning it runs first before and last after the resolver.
|
|
28
|
-
*
|
|
29
|
-
* Each middleware can optionally specify a `match` predicate to filter which
|
|
30
|
-
* fields it applies to.
|
|
31
|
-
*/
|
|
32
|
-
function applyMiddleware(effect, context, middlewares) {
|
|
33
|
-
if (middlewares.length === 0)
|
|
34
|
-
return effect;
|
|
35
|
-
let wrapped = effect;
|
|
36
|
-
// Apply in reverse order so first registered is outermost
|
|
37
|
-
// (executes first before, last after)
|
|
38
|
-
for (let i = middlewares.length - 1; i >= 0; i--) {
|
|
39
|
-
const middleware = middlewares[i];
|
|
40
|
-
// Check if middleware should apply to this field
|
|
41
|
-
if (middleware.match && !middleware.match(context.info)) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
wrapped = middleware.apply(wrapped, context);
|
|
45
|
-
}
|
|
46
|
-
return wrapped;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Build a GraphQL field config from a field registration (for queries/mutations)
|
|
50
|
-
*/
|
|
51
|
-
function buildField(config, ctx) {
|
|
52
|
-
const fieldConfig = {
|
|
53
|
-
type: (0, type_registry_1.toGraphQLTypeWithRegistry)(config.type, ctx),
|
|
54
|
-
resolve: async (_parent, args, context, info) => {
|
|
55
|
-
// Apply directives first (per-field, explicit)
|
|
56
|
-
let effect = applyDirectives(config.resolve(args), config.directives, ctx.directiveRegistrations);
|
|
57
|
-
// Apply middleware (global/pattern-matched)
|
|
58
|
-
const middlewareContext = { parent: _parent, args, info };
|
|
59
|
-
effect = applyMiddleware(effect, middlewareContext, ctx.middlewares);
|
|
60
|
-
return await effect_1.Runtime.runPromise(context.runtime)(effect);
|
|
61
|
-
},
|
|
62
|
-
};
|
|
63
|
-
if (config.args) {
|
|
64
|
-
fieldConfig.args = (0, type_registry_1.toGraphQLArgsWithRegistry)(config.args, ctx.enumRegistry, ctx.inputRegistry, ctx.inputs, ctx.enums, ctx.inputTypeLookupCache);
|
|
65
|
-
}
|
|
66
|
-
if (config.description) {
|
|
67
|
-
fieldConfig.description = config.description;
|
|
68
|
-
}
|
|
69
|
-
return fieldConfig;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Build a GraphQL field config for an object field (has parent param)
|
|
73
|
-
*/
|
|
74
|
-
function buildObjectField(config, ctx) {
|
|
75
|
-
const fieldConfig = {
|
|
76
|
-
type: (0, type_registry_1.toGraphQLTypeWithRegistry)(config.type, ctx),
|
|
77
|
-
resolve: async (parent, args, context, info) => {
|
|
78
|
-
// Apply directives first (per-field, explicit)
|
|
79
|
-
let effect = applyDirectives(config.resolve(parent, args), config.directives, ctx.directiveRegistrations);
|
|
80
|
-
// Apply middleware (global/pattern-matched)
|
|
81
|
-
const middlewareContext = { parent, args, info };
|
|
82
|
-
effect = applyMiddleware(effect, middlewareContext, ctx.middlewares);
|
|
83
|
-
return await effect_1.Runtime.runPromise(context.runtime)(effect);
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
if (config.args) {
|
|
87
|
-
fieldConfig.args = (0, type_registry_1.toGraphQLArgsWithRegistry)(config.args, ctx.enumRegistry, ctx.inputRegistry, ctx.inputs, ctx.enums, ctx.inputTypeLookupCache);
|
|
88
|
-
}
|
|
89
|
-
if (config.description) {
|
|
90
|
-
fieldConfig.description = config.description;
|
|
91
|
-
}
|
|
92
|
-
return fieldConfig;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Build a GraphQL subscription field config.
|
|
96
|
-
*
|
|
97
|
-
* Subscriptions in GraphQL have a special structure:
|
|
98
|
-
* - `subscribe` returns an AsyncIterator that yields the "root value" for each event
|
|
99
|
-
* - `resolve` transforms each yielded value into the final result
|
|
100
|
-
*
|
|
101
|
-
* We convert Effect's Stream to an AsyncIterator using a Queue-based approach.
|
|
102
|
-
*/
|
|
103
|
-
function buildSubscriptionField(config, ctx) {
|
|
104
|
-
const fieldConfig = {
|
|
105
|
-
type: (0, type_registry_1.toGraphQLTypeWithRegistry)(config.type, ctx),
|
|
106
|
-
// The subscribe function returns an AsyncIterator
|
|
107
|
-
subscribe: async (_parent, args, context, info) => {
|
|
108
|
-
// Get the Stream from the subscribe Effect
|
|
109
|
-
let subscribeEffect = config.subscribe(args);
|
|
110
|
-
// Apply directives to the subscribe effect
|
|
111
|
-
subscribeEffect = applyDirectives(subscribeEffect, config.directives, ctx.directiveRegistrations);
|
|
112
|
-
// Apply middleware to the subscribe effect
|
|
113
|
-
const middlewareContext = { parent: _parent, args, info };
|
|
114
|
-
subscribeEffect = applyMiddleware(subscribeEffect, middlewareContext, ctx.middlewares);
|
|
115
|
-
const stream = await effect_1.Runtime.runPromise(context.runtime)(subscribeEffect);
|
|
116
|
-
// Convert Stream to AsyncIterator using queue-based approach
|
|
117
|
-
return streamToAsyncIterator(stream, context.runtime);
|
|
118
|
-
},
|
|
119
|
-
// The resolve function transforms each yielded value
|
|
120
|
-
// If no custom resolve is provided, return the payload directly
|
|
121
|
-
resolve: config.resolve
|
|
122
|
-
? async (value, args, context, info) => {
|
|
123
|
-
let effect = config.resolve(value, args);
|
|
124
|
-
// Apply middleware to the resolve effect
|
|
125
|
-
const middlewareContext = { parent: value, args, info };
|
|
126
|
-
effect = applyMiddleware(effect, middlewareContext, ctx.middlewares);
|
|
127
|
-
return await effect_1.Runtime.runPromise(context.runtime)(effect);
|
|
128
|
-
}
|
|
129
|
-
: (value) => value,
|
|
130
|
-
};
|
|
131
|
-
if (config.args) {
|
|
132
|
-
fieldConfig.args = (0, type_registry_1.toGraphQLArgsWithRegistry)(config.args, ctx.enumRegistry, ctx.inputRegistry, ctx.inputs, ctx.enums, ctx.inputTypeLookupCache);
|
|
133
|
-
}
|
|
134
|
-
if (config.description) {
|
|
135
|
-
fieldConfig.description = config.description;
|
|
136
|
-
}
|
|
137
|
-
return fieldConfig;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Convert an Effect Stream to an AsyncIterator using a Queue-based approach.
|
|
141
|
-
*
|
|
142
|
-
* This is needed because Stream.toAsyncIterable() requires R = never,
|
|
143
|
-
* but our streams may have service requirements that need to be provided
|
|
144
|
-
* by the runtime context.
|
|
145
|
-
*/
|
|
146
|
-
function streamToAsyncIterator(stream, runtime) {
|
|
147
|
-
// Create the queue synchronously via runSync since unbounded queue creation is synchronous
|
|
148
|
-
let queue;
|
|
149
|
-
let fiber;
|
|
150
|
-
let initialized = false;
|
|
151
|
-
let done = false;
|
|
152
|
-
const initialize = async () => {
|
|
153
|
-
if (initialized)
|
|
154
|
-
return;
|
|
155
|
-
initialized = true;
|
|
156
|
-
queue = await effect_1.Runtime.runPromise(runtime)(effect_1.Queue.unbounded());
|
|
157
|
-
// Fork a fiber to run the stream and push values to the queue
|
|
158
|
-
fiber = effect_1.Runtime.runFork(runtime)(effect_1.Effect.ensuring(effect_1.Stream.runForEach(stream, (value) => effect_1.Queue.offer(queue, effect_1.Option.some(value))),
|
|
159
|
-
// Signal completion by pushing None
|
|
160
|
-
effect_1.Queue.offer(queue, effect_1.Option.none())));
|
|
161
|
-
};
|
|
162
|
-
return {
|
|
163
|
-
[Symbol.asyncIterator]() {
|
|
164
|
-
return this;
|
|
165
|
-
},
|
|
166
|
-
async next() {
|
|
167
|
-
await initialize();
|
|
168
|
-
if (done) {
|
|
169
|
-
return { done: true, value: undefined };
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
const optionValue = await effect_1.Runtime.runPromise(runtime)(effect_1.Queue.take(queue));
|
|
173
|
-
if (effect_1.Option.isNone(optionValue)) {
|
|
174
|
-
done = true;
|
|
175
|
-
return { done: true, value: undefined };
|
|
176
|
-
}
|
|
177
|
-
return { done: false, value: optionValue.value };
|
|
178
|
-
}
|
|
179
|
-
catch (error) {
|
|
180
|
-
done = true;
|
|
181
|
-
throw error;
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
async return() {
|
|
185
|
-
// Cleanup - interrupt the fiber and shutdown the queue
|
|
186
|
-
done = true;
|
|
187
|
-
if (initialized) {
|
|
188
|
-
try {
|
|
189
|
-
await effect_1.Runtime.runPromise(runtime)(effect_1.Fiber.interrupt(fiber));
|
|
190
|
-
await effect_1.Runtime.runPromise(runtime)(effect_1.Queue.shutdown(queue));
|
|
191
|
-
}
|
|
192
|
-
catch {
|
|
193
|
-
// Ignore cleanup errors
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
return { done: true, value: undefined };
|
|
197
|
-
},
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
//# sourceMappingURL=field-builders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-builders.js","sourceRoot":"","sources":["../../src/builder/field-builders.ts"],"names":[],"mappings":"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"}
|
package/dist/builder/index.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { FieldRegistration, TypeRegistration, InterfaceRegistration, EnumRegistration, UnionRegistration, InputTypeRegistration, DirectiveApplication, DirectiveRegistration, MiddlewareContext, MiddlewareRegistration, SubscriptionFieldRegistration, ObjectFieldRegistration, GraphQLEffectContext, TypeRegistries, CacheHint, CacheControlScope, } from "./types";
|
|
2
|
-
export { DirectiveLocation } from "graphql";
|
|
3
|
-
export { GraphQLSchemaBuilder } from "./schema-builder";
|
|
4
|
-
export { objectType, interfaceType, enumType, unionType, inputType, directive, middleware, extension, query, mutation, subscription, field, compose, } from "./pipe-api";
|
|
5
|
-
export { execute } from "./execute";
|
|
6
|
-
export { getSchemaName } from "./type-registry";
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGvD,OAAO,EACL,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,GACR,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/builder/index.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSchemaName = exports.execute = exports.compose = exports.field = exports.subscription = exports.mutation = exports.query = exports.extension = exports.middleware = exports.directive = exports.inputType = exports.unionType = exports.enumType = exports.interfaceType = exports.objectType = exports.GraphQLSchemaBuilder = exports.DirectiveLocation = void 0;
|
|
4
|
-
// Re-export DirectiveLocation for convenience
|
|
5
|
-
var graphql_1 = require("graphql");
|
|
6
|
-
Object.defineProperty(exports, "DirectiveLocation", { enumerable: true, get: function () { return graphql_1.DirectiveLocation; } });
|
|
7
|
-
// Re-export schema builder
|
|
8
|
-
var schema_builder_1 = require("./schema-builder");
|
|
9
|
-
Object.defineProperty(exports, "GraphQLSchemaBuilder", { enumerable: true, get: function () { return schema_builder_1.GraphQLSchemaBuilder; } });
|
|
10
|
-
// Re-export pipe-able API
|
|
11
|
-
var pipe_api_1 = require("./pipe-api");
|
|
12
|
-
Object.defineProperty(exports, "objectType", { enumerable: true, get: function () { return pipe_api_1.objectType; } });
|
|
13
|
-
Object.defineProperty(exports, "interfaceType", { enumerable: true, get: function () { return pipe_api_1.interfaceType; } });
|
|
14
|
-
Object.defineProperty(exports, "enumType", { enumerable: true, get: function () { return pipe_api_1.enumType; } });
|
|
15
|
-
Object.defineProperty(exports, "unionType", { enumerable: true, get: function () { return pipe_api_1.unionType; } });
|
|
16
|
-
Object.defineProperty(exports, "inputType", { enumerable: true, get: function () { return pipe_api_1.inputType; } });
|
|
17
|
-
Object.defineProperty(exports, "directive", { enumerable: true, get: function () { return pipe_api_1.directive; } });
|
|
18
|
-
Object.defineProperty(exports, "middleware", { enumerable: true, get: function () { return pipe_api_1.middleware; } });
|
|
19
|
-
Object.defineProperty(exports, "extension", { enumerable: true, get: function () { return pipe_api_1.extension; } });
|
|
20
|
-
Object.defineProperty(exports, "query", { enumerable: true, get: function () { return pipe_api_1.query; } });
|
|
21
|
-
Object.defineProperty(exports, "mutation", { enumerable: true, get: function () { return pipe_api_1.mutation; } });
|
|
22
|
-
Object.defineProperty(exports, "subscription", { enumerable: true, get: function () { return pipe_api_1.subscription; } });
|
|
23
|
-
Object.defineProperty(exports, "field", { enumerable: true, get: function () { return pipe_api_1.field; } });
|
|
24
|
-
Object.defineProperty(exports, "compose", { enumerable: true, get: function () { return pipe_api_1.compose; } });
|
|
25
|
-
// Re-export execute helper
|
|
26
|
-
var execute_1 = require("./execute");
|
|
27
|
-
Object.defineProperty(exports, "execute", { enumerable: true, get: function () { return execute_1.execute; } });
|
|
28
|
-
// Re-export utilities that may be useful externally
|
|
29
|
-
var type_registry_1 = require("./type-registry");
|
|
30
|
-
Object.defineProperty(exports, "getSchemaName", { enumerable: true, get: function () { return type_registry_1.getSchemaName; } });
|
|
31
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builder/index.ts"],"names":[],"mappings":";;;AAoBA,8CAA8C;AAC9C,mCAA2C;AAAlC,4GAAA,iBAAiB,OAAA;AAE1B,2BAA2B;AAC3B,mDAAuD;AAA9C,sHAAA,oBAAoB,OAAA;AAE7B,0BAA0B;AAC1B,uCAcmB;AAbjB,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,oGAAA,QAAQ,OAAA;AACR,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,qGAAA,SAAS,OAAA;AACT,sGAAA,UAAU,OAAA;AACV,qGAAA,SAAS,OAAA;AACT,iGAAA,KAAK,OAAA;AACL,oGAAA,QAAQ,OAAA;AACR,wGAAA,YAAY,OAAA;AACZ,iGAAA,KAAK,OAAA;AACL,mGAAA,OAAO,OAAA;AAGT,2BAA2B;AAC3B,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAEhB,oDAAoD;AACpD,iDAA+C;AAAtC,8GAAA,aAAa,OAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipe-api.d.ts","sourceRoot":"","sources":["../../src/builder/pipe-api.ts"],"names":[],"mappings":"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"}
|