grafast 0.1.1-beta.2 → 0.1.1-beta.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/README.md +1 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -2
- package/dist/makeGrafastSchema.d.ts +1 -1
- package/dist/makeGrafastSchema.js +3 -0
- package/dist/steps/index.d.ts +1 -0
- package/dist/steps/index.js +4 -1
- package/dist/steps/polymorphicBranch.d.ts +27 -0
- package/dist/steps/polymorphicBranch.js +65 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -54,8 +54,7 @@ And please give some love to our featured sponsors 🤩:
|
|
|
54
54
|
<td align="center"><a href="https://www.netflix.com/"><img src="https://graphile.org/images/sponsors/Netflix.png" width="90" height="90" alt="Netflix" /><br />Netflix</a> *</td>
|
|
55
55
|
<td align="center"><a href="https://stellate.co/"><img src="https://graphile.org/images/sponsors/Stellate.png" width="90" height="90" alt="Stellate" /><br />Stellate</a> *</td>
|
|
56
56
|
</tr><tr>
|
|
57
|
-
<td align="center"><a href="https://
|
|
58
|
-
<td align="center"><a href="https://microteam.io/"><img src="https://graphile.org/images/sponsors/micro.png" width="90" height="90" alt="We Love Micro" /><br />We Love Micro</a> *</td>
|
|
57
|
+
<td align="center"><a href="https://gosteelhead.com/"><img src="https://graphile.org/images/sponsors/steelhead.svg" width="90" height="90" alt="Steelhead" /><br />Steelhead</a> *</td>
|
|
59
58
|
</tr></table>
|
|
60
59
|
|
|
61
60
|
<em>\* Sponsors the entire Graphile suite</em>
|
package/dist/index.d.ts
CHANGED
|
@@ -16,13 +16,13 @@ import type { $$cacheByOperation, $$hooked, $$queryCache, CacheByOperationEntry,
|
|
|
16
16
|
import { $$bypassGraphQL, $$eventEmitter, $$extensions, $$idempotent, $$verbatim, ArgumentApplyPlanResolver, ArgumentInputPlanResolver, BaseEventMap, BaseGraphQLArguments, BaseGraphQLRootValue, BaseGraphQLVariables, EnumValueApplyPlanResolver, EventCallback, EventMapKey, ExecutionEventEmitter, ExecutionEventMap, ExecutionExtra, FieldArgs, FieldInfo, FieldPlanResolver, GrafastArgumentConfig, GrafastFieldConfig, GrafastFieldConfigArgumentMap, GrafastInputFieldConfig, GrafastPlanJSON, GrafastResultsList, GrafastResultStreamList, GrafastSubscriber, GrafastValuesList, InputObjectFieldApplyPlanResolver, InputObjectFieldInputPlanResolver, InputObjectTypeInputPlanResolver, InputStep, JSONArray, JSONObject, JSONValue, Maybe, NodeIdCodec, NodeIdHandler, OutputPlanForType, PolymorphicData, PromiseOrDirect, ScalarPlanResolver, StepOptimizeOptions, StepStreamOptions, TypedEventEmitter } from "./interfaces.js";
|
|
17
17
|
import { polymorphicWrap } from "./polymorphic.js";
|
|
18
18
|
import { assertExecutableStep, assertListCapableStep, assertModifierStep, BaseStep, ExecutableStep, isExecutableStep, isListCapableStep, isListLikeStep, isModifierStep, isObjectLikeStep, isStreamableStep, ListCapableStep, ListLikeStep, ModifierStep, ObjectLikeStep, PolymorphicStep, StreamableStep, UnbatchedExecutableStep } from "./step.js";
|
|
19
|
-
import { __InputListStep, __InputObjectStep, __InputObjectStepWithDollars, __InputStaticLeafStep, __ItemStep, __ListTransformStep, __TrackedValueStep, __TrackedValueStepWithDollars, __ValueStep, access, AccessStep, ActualKeyByDesiredKey, applyTransforms, ApplyTransformsStep, assertEdgeCapableStep, assertPageInfoCapableStep, connection, ConnectionCapableStep, ConnectionStep, constant, ConstantStep, context, debugPlans, each, EdgeCapableStep, EdgeStep, error, ErrorStep, filter, FilterPlanMemo, first, FirstStep, GraphQLItemHandler, graphqlItemHandler, graphqlResolver, GraphQLResolverStep, groupBy, GroupByPlanMemo, lambda, LambdaStep, last, LastStep, list, listen, ListenStep, ListStep, listTransform, ListTransformItemPlanCallback, ListTransformOptions, ListTransformReduce, LoadedRecordStep, loadMany, LoadManyCallback, loadManyCallback, loadOne, LoadOneCallback, loadOneCallback, LoadOptions, LoadStep, makeDecodeNodeId, node, NodeStep, object, ObjectPlanMeta, ObjectStep, operationPlan, PageInfoCapableStep, partitionByIndex, proxy, ProxyStep, remapKeys, RemapKeysStep, reverse, reverseArray, ReverseStep, setter, SetterCapableStep, SetterStep, specFromNodeId } from "./steps/index.js";
|
|
19
|
+
import { __InputListStep, __InputObjectStep, __InputObjectStepWithDollars, __InputStaticLeafStep, __ItemStep, __ListTransformStep, __TrackedValueStep, __TrackedValueStepWithDollars, __ValueStep, access, AccessStep, ActualKeyByDesiredKey, applyTransforms, ApplyTransformsStep, assertEdgeCapableStep, assertPageInfoCapableStep, connection, ConnectionCapableStep, ConnectionStep, constant, ConstantStep, context, debugPlans, each, EdgeCapableStep, EdgeStep, error, ErrorStep, filter, FilterPlanMemo, first, FirstStep, GraphQLItemHandler, graphqlItemHandler, graphqlResolver, GraphQLResolverStep, groupBy, GroupByPlanMemo, lambda, LambdaStep, last, LastStep, list, listen, ListenStep, ListStep, listTransform, ListTransformItemPlanCallback, ListTransformOptions, ListTransformReduce, LoadedRecordStep, loadMany, LoadManyCallback, loadManyCallback, loadOne, LoadOneCallback, loadOneCallback, LoadOptions, LoadStep, makeDecodeNodeId, node, NodeStep, object, ObjectPlanMeta, ObjectStep, operationPlan, PageInfoCapableStep, partitionByIndex, polymorphicBranch, PolymorphicBranchMatcher, PolymorphicBranchMatchers, PolymorphicBranchStep, proxy, ProxyStep, remapKeys, RemapKeysStep, reverse, reverseArray, ReverseStep, setter, SetterCapableStep, SetterStep, specFromNodeId } from "./steps/index.js";
|
|
20
20
|
import { stringifyPayload } from "./stringifyPayload.js";
|
|
21
21
|
import { stripAnsi } from "./stripAnsi.js";
|
|
22
22
|
import { subscribe } from "./subscribe.js";
|
|
23
23
|
import { arrayOfLength, arraysMatch, getEnumValueConfig, GrafastInputFieldConfigMap, GrafastInputObjectType, GrafastObjectType, inputObjectFieldSpec, InputObjectTypeSpec, isPromiseLike, newGrafastFieldConfigBuilder, newInputObjectTypeBuilder, newObjectTypeBuilder, objectFieldSpec, objectSpec, ObjectTypeFields, ObjectTypeSpec, stepADependsOnStepB, stepAMayDependOnStepB, stepsAreInSamePhase } from "./utils.js";
|
|
24
24
|
export { isAsyncIterable } from "iterall";
|
|
25
|
-
export { __InputListStep, __InputObjectStep, __InputObjectStepWithDollars, __InputStaticLeafStep, __ItemStep, __ListTransformStep, __TrackedValueStep, __TrackedValueStepWithDollars, __ValueStep, $$bypassGraphQL, $$eventEmitter, $$extensions, $$idempotent, $$verbatim, access, AccessStep, ActualKeyByDesiredKey, applyTransforms, ApplyTransformsStep, ArgumentApplyPlanResolver, ArgumentInputPlanResolver, arrayOfLength, arraysMatch, assertEdgeCapableStep, assertExecutableStep, assertListCapableStep, assertModifierStep, assertPageInfoCapableStep, BaseEventMap, BaseGraphQLArguments, BaseGraphQLRootValue, BaseGraphQLVariables, BaseStep, connection, ConnectionCapableStep, ConnectionStep, constant, ConstantStep, context, debugPlans, defer, Deferred, each, EdgeCapableStep, EdgeStep, EnumPlans, EnumValueApplyPlanResolver, error, ErrorStep, EventCallback, EventMapKey, ExecutableStep, execute, ExecutionEventEmitter, ExecutionEventMap, ExecutionExtra, exportAs, exportAsMany, FieldArgs, FieldInfo, FieldPlanResolver, FieldPlans, filter, FilterPlanMemo, first, FirstStep, getEnumValueConfig, grafast, GrafastArgumentConfig, GrafastError, GrafastFieldConfig, GrafastFieldConfigArgumentMap, grafast as grafastGraphql, grafastSync as grafastGraphqlSync, GrafastInputFieldConfig, GrafastInputFieldConfigMap, GrafastInputObjectType, GrafastObjectType, GrafastPlanJSON, GrafastPlans, grafastPrint, GrafastResultsList, GrafastResultStreamList, GrafastSubscriber, grafastSync, GrafastValuesList, GraphQLItemHandler, graphqlItemHandler, graphqlResolver, GraphQLResolverStep, groupBy, GroupByPlanMemo, InputObjectFieldApplyPlanResolver, InputObjectFieldInputPlanResolver, inputObjectFieldSpec, InputObjectPlans, InputObjectTypeInputPlanResolver, InputObjectTypeSpec, InputStep, InterfaceOrUnionPlans, isDev, isExecutableStep, isGrafastError, isListCapableStep, isListLikeStep, isModifierStep, isObjectLikeStep, isPromiseLike, isSafeError, isStreamableStep, JSONArray, JSONObject, JSONValue, lambda, LambdaStep, last, LastStep, list, ListCapableStep, listen, ListenStep, ListLikeStep, ListStep, listTransform, ListTransformItemPlanCallback, ListTransformOptions, ListTransformReduce, LoadedRecordStep, loadMany, LoadManyCallback, loadManyCallback, loadOne, LoadOneCallback, loadOneCallback, LoadOptions, LoadStep, makeDecodeNodeId, makeGrafastSchema, Maybe, ModifierStep, newGrafastFieldConfigBuilder, newInputObjectTypeBuilder, newObjectTypeBuilder, node, NodeIdCodec, NodeIdHandler, NodeStep, noop, object, objectFieldSpec, ObjectLikeStep, ObjectPlanMeta, ObjectPlans, objectSpec, ObjectStep, ObjectTypeFields, ObjectTypeSpec, OperationPlan, operationPlan, OutputPlanForType, PageInfoCapableStep, partitionByIndex, PolymorphicData, PolymorphicStep, polymorphicWrap, PromiseOrDirect, proxy, ProxyStep, remapKeys, RemapKeysStep, reverse, reverseArray, ReverseStep, SafeError, ScalarPlanResolver, ScalarPlans, setter, SetterCapableStep, SetterStep, specFromNodeId, stepADependsOnStepB, stepAMayDependOnStepB, StepOptimizeOptions, stepsAreInSamePhase, StepStreamOptions, StreamableStep, stringifyPayload, stripAnsi, subscribe, TypedEventEmitter, UnbatchedExecutableStep, };
|
|
25
|
+
export { __InputListStep, __InputObjectStep, __InputObjectStepWithDollars, __InputStaticLeafStep, __ItemStep, __ListTransformStep, __TrackedValueStep, __TrackedValueStepWithDollars, __ValueStep, $$bypassGraphQL, $$eventEmitter, $$extensions, $$idempotent, $$verbatim, access, AccessStep, ActualKeyByDesiredKey, applyTransforms, ApplyTransformsStep, ArgumentApplyPlanResolver, ArgumentInputPlanResolver, arrayOfLength, arraysMatch, assertEdgeCapableStep, assertExecutableStep, assertListCapableStep, assertModifierStep, assertPageInfoCapableStep, BaseEventMap, BaseGraphQLArguments, BaseGraphQLRootValue, BaseGraphQLVariables, BaseStep, connection, ConnectionCapableStep, ConnectionStep, constant, ConstantStep, context, debugPlans, defer, Deferred, each, EdgeCapableStep, EdgeStep, EnumPlans, EnumValueApplyPlanResolver, error, ErrorStep, EventCallback, EventMapKey, ExecutableStep, execute, ExecutionEventEmitter, ExecutionEventMap, ExecutionExtra, exportAs, exportAsMany, FieldArgs, FieldInfo, FieldPlanResolver, FieldPlans, filter, FilterPlanMemo, first, FirstStep, getEnumValueConfig, grafast, GrafastArgumentConfig, GrafastError, GrafastFieldConfig, GrafastFieldConfigArgumentMap, grafast as grafastGraphql, grafastSync as grafastGraphqlSync, GrafastInputFieldConfig, GrafastInputFieldConfigMap, GrafastInputObjectType, GrafastObjectType, GrafastPlanJSON, GrafastPlans, grafastPrint, GrafastResultsList, GrafastResultStreamList, GrafastSubscriber, grafastSync, GrafastValuesList, GraphQLItemHandler, graphqlItemHandler, graphqlResolver, GraphQLResolverStep, groupBy, GroupByPlanMemo, InputObjectFieldApplyPlanResolver, InputObjectFieldInputPlanResolver, inputObjectFieldSpec, InputObjectPlans, InputObjectTypeInputPlanResolver, InputObjectTypeSpec, InputStep, InterfaceOrUnionPlans, isDev, isExecutableStep, isGrafastError, isListCapableStep, isListLikeStep, isModifierStep, isObjectLikeStep, isPromiseLike, isSafeError, isStreamableStep, JSONArray, JSONObject, JSONValue, lambda, LambdaStep, last, LastStep, list, ListCapableStep, listen, ListenStep, ListLikeStep, ListStep, listTransform, ListTransformItemPlanCallback, ListTransformOptions, ListTransformReduce, LoadedRecordStep, loadMany, LoadManyCallback, loadManyCallback, loadOne, LoadOneCallback, loadOneCallback, LoadOptions, LoadStep, makeDecodeNodeId, makeGrafastSchema, Maybe, ModifierStep, newGrafastFieldConfigBuilder, newInputObjectTypeBuilder, newObjectTypeBuilder, node, NodeIdCodec, NodeIdHandler, NodeStep, noop, object, objectFieldSpec, ObjectLikeStep, ObjectPlanMeta, ObjectPlans, objectSpec, ObjectStep, ObjectTypeFields, ObjectTypeSpec, OperationPlan, operationPlan, OutputPlanForType, PageInfoCapableStep, partitionByIndex, polymorphicBranch, PolymorphicBranchMatcher, PolymorphicBranchMatchers, PolymorphicBranchStep, PolymorphicData, PolymorphicStep, polymorphicWrap, PromiseOrDirect, proxy, ProxyStep, remapKeys, RemapKeysStep, reverse, reverseArray, ReverseStep, SafeError, ScalarPlanResolver, ScalarPlans, setter, SetterCapableStep, SetterStep, specFromNodeId, stepADependsOnStepB, stepAMayDependOnStepB, StepOptimizeOptions, stepsAreInSamePhase, StepStreamOptions, StreamableStep, stringifyPayload, stripAnsi, subscribe, TypedEventEmitter, UnbatchedExecutableStep, };
|
|
26
26
|
export { hookArgs } from "./args.js";
|
|
27
27
|
export { version } from "./version.js";
|
|
28
28
|
/** @deprecated Renamed to 'applyTransforms' */
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GraphQLItemHandler = exports.grafastSync = exports.grafastPrint = exports.grafastGraphqlSync = exports.grafastGraphql = exports.grafast = exports.getEnumValueConfig = exports.FirstStep = exports.first = exports.filter = exports.exportAsMany = exports.exportAs = exports.execute = exports.ExecutableStep = exports.ErrorStep = exports.error = exports.EdgeStep = exports.each = exports.defer = exports.debugPlans = exports.context = exports.ConstantStep = exports.constant = exports.ConnectionStep = exports.connection = exports.BaseStep = exports.assertPageInfoCapableStep = exports.assertModifierStep = exports.assertListCapableStep = exports.assertExecutableStep = exports.assertEdgeCapableStep = exports.arraysMatch = exports.arrayOfLength = exports.ApplyTransformsStep = exports.applyTransforms = exports.AccessStep = exports.access = exports.$$verbatim = exports.$$idempotent = exports.$$extensions = exports.$$eventEmitter = exports.$$bypassGraphQL = exports.__ValueStep = exports.__TrackedValueStep = exports.__ListTransformStep = exports.__ItemStep = exports.__InputStaticLeafStep = exports.__InputObjectStep = exports.__InputListStep = exports.isAsyncIterable = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
exports.DeepEvalStep = exports.deepEval = exports.version = exports.hookArgs = exports.UnbatchedExecutableStep = exports.subscribe = exports.stripAnsi = exports.stringifyPayload = exports.stepsAreInSamePhase = exports.stepAMayDependOnStepB = exports.stepADependsOnStepB = exports.specFromNodeId = exports.SetterStep = exports.setter = exports.SafeError = exports.ReverseStep = exports.reverseArray = exports.reverse = exports.RemapKeysStep = void 0;
|
|
4
|
+
exports.proxy = exports.polymorphicWrap = exports.PolymorphicBranchStep = exports.polymorphicBranch = exports.partitionByIndex = exports.operationPlan = exports.OperationPlan = exports.ObjectStep = exports.objectSpec = exports.objectFieldSpec = exports.object = exports.noop = exports.NodeStep = exports.node = exports.newObjectTypeBuilder = exports.newInputObjectTypeBuilder = exports.newGrafastFieldConfigBuilder = exports.ModifierStep = exports.makeGrafastSchema = exports.makeDecodeNodeId = exports.LoadStep = exports.loadOneCallback = exports.loadOne = exports.loadManyCallback = exports.loadMany = exports.LoadedRecordStep = exports.listTransform = exports.ListStep = exports.ListenStep = exports.listen = exports.list = exports.LastStep = exports.last = exports.LambdaStep = exports.lambda = exports.isStreamableStep = exports.isSafeError = exports.isPromiseLike = exports.isObjectLikeStep = exports.isModifierStep = exports.isListLikeStep = exports.isListCapableStep = exports.isGrafastError = exports.isExecutableStep = exports.isDev = exports.inputObjectFieldSpec = exports.groupBy = exports.GraphQLResolverStep = exports.graphqlResolver = exports.graphqlItemHandler = void 0;
|
|
5
|
+
exports.DeepEvalStep = exports.deepEval = exports.version = exports.hookArgs = exports.UnbatchedExecutableStep = exports.subscribe = exports.stripAnsi = exports.stringifyPayload = exports.stepsAreInSamePhase = exports.stepAMayDependOnStepB = exports.stepADependsOnStepB = exports.specFromNodeId = exports.SetterStep = exports.setter = exports.SafeError = exports.ReverseStep = exports.reverseArray = exports.reverse = exports.RemapKeysStep = exports.remapKeys = exports.ProxyStep = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
require("./thereCanBeOnlyOne.js");
|
|
8
8
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
@@ -110,6 +110,8 @@ Object.defineProperty(exports, "object", { enumerable: true, get: function () {
|
|
|
110
110
|
Object.defineProperty(exports, "ObjectStep", { enumerable: true, get: function () { return index_js_1.ObjectStep; } });
|
|
111
111
|
Object.defineProperty(exports, "operationPlan", { enumerable: true, get: function () { return index_js_1.operationPlan; } });
|
|
112
112
|
Object.defineProperty(exports, "partitionByIndex", { enumerable: true, get: function () { return index_js_1.partitionByIndex; } });
|
|
113
|
+
Object.defineProperty(exports, "polymorphicBranch", { enumerable: true, get: function () { return index_js_1.polymorphicBranch; } });
|
|
114
|
+
Object.defineProperty(exports, "PolymorphicBranchStep", { enumerable: true, get: function () { return index_js_1.PolymorphicBranchStep; } });
|
|
113
115
|
Object.defineProperty(exports, "proxy", { enumerable: true, get: function () { return index_js_1.proxy; } });
|
|
114
116
|
Object.defineProperty(exports, "ProxyStep", { enumerable: true, get: function () { return index_js_1.ProxyStep; } });
|
|
115
117
|
Object.defineProperty(exports, "remapKeys", { enumerable: true, get: function () { return index_js_1.remapKeys; } });
|
|
@@ -192,6 +194,8 @@ Object.defineProperty(exports, "isAsyncIterable", { enumerable: true, get: funct
|
|
|
192
194
|
first: index_js_1.first,
|
|
193
195
|
node: index_js_1.node,
|
|
194
196
|
specFromNodeId: index_js_1.specFromNodeId,
|
|
197
|
+
polymorphicBranch: index_js_1.polymorphicBranch,
|
|
198
|
+
PolymorphicBranchStep: index_js_1.PolymorphicBranchStep,
|
|
195
199
|
makeDecodeNodeId: index_js_1.makeDecodeNodeId,
|
|
196
200
|
proxy: index_js_1.proxy,
|
|
197
201
|
applyTransforms: index_js_1.applyTransforms,
|
|
@@ -19,7 +19,7 @@ export type FieldPlans = FieldPlanResolver<any, any, any> | {
|
|
|
19
19
|
* The plans/config for each field of a GraphQL object type.
|
|
20
20
|
*/
|
|
21
21
|
export type ObjectPlans = {
|
|
22
|
-
|
|
22
|
+
__assertStep?: ((step: ExecutableStep) => asserts step is ExecutableStep) | {
|
|
23
23
|
new (...args: any[]): ExecutableStep;
|
|
24
24
|
};
|
|
25
25
|
} & {
|
|
@@ -31,6 +31,9 @@ function makeGrafastSchema(details) {
|
|
|
31
31
|
type.extensions.grafast = { assertStep: fieldSpec };
|
|
32
32
|
continue;
|
|
33
33
|
}
|
|
34
|
+
else if (fieldName.startsWith("__")) {
|
|
35
|
+
throw new Error(`Unsupported field name '${fieldName}'; perhaps you meant '__assertStep'?`);
|
|
36
|
+
}
|
|
34
37
|
const field = fields[fieldName];
|
|
35
38
|
if (!field) {
|
|
36
39
|
console.warn(`'plans' specified configuration for object type '${typeName}' field '${fieldName}', but that field was not present in the type`);
|
package/dist/steps/index.d.ts
CHANGED
|
@@ -35,5 +35,6 @@ export { __ValueStep } from "./__value.js";
|
|
|
35
35
|
export { applyTransforms, ApplyTransformsStep } from "./applyTransforms.js";
|
|
36
36
|
export { GraphQLItemHandler, graphqlItemHandler, graphqlResolver, GraphQLResolverStep, } from "./graphqlResolver.js";
|
|
37
37
|
export { LoadedRecordStep, loadMany, LoadManyCallback, loadManyCallback, loadOne, LoadOneCallback, loadOneCallback, LoadOptions, LoadStep, } from "./load.js";
|
|
38
|
+
export { polymorphicBranch, PolymorphicBranchMatcher, PolymorphicBranchMatchers, PolymorphicBranchStep, } from "./polymorphicBranch.js";
|
|
38
39
|
export { proxy, ProxyStep } from "./proxy.js";
|
|
39
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/steps/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyTransforms = exports.__ValueStep = exports.__TrackedValueStep = exports.__ItemStep = exports.__InputStaticLeafStep = exports.__InputObjectStep = exports.__InputListStep = exports.SetterStep = exports.setter = exports.ReverseStep = exports.reverseArray = exports.reverse = exports.RemapKeysStep = exports.remapKeys = exports.partitionByIndex = exports.ObjectStep = exports.object = exports.specFromNodeId = exports.NodeStep = exports.node = exports.makeDecodeNodeId = exports.listTransform = exports.__ListTransformStep = exports.ListenStep = exports.listen = exports.ListStep = exports.list = exports.LastStep = exports.last = exports.LambdaStep = exports.lambda = exports.groupBy = exports.FirstStep = exports.first = exports.filter = exports.ErrorStep = exports.error = exports.each = exports.ConstantStep = exports.constant = exports.EdgeStep = exports.ConnectionStep = exports.connection = exports.assertPageInfoCapableStep = exports.assertEdgeCapableStep = exports.AccessStep = exports.access = exports.debugPlans = exports.context = exports.operationPlan = void 0;
|
|
4
|
-
exports.ProxyStep = exports.proxy = exports.LoadStep = exports.loadOneCallback = exports.loadOne = exports.loadManyCallback = exports.loadMany = exports.LoadedRecordStep = exports.GraphQLResolverStep = exports.graphqlResolver = exports.graphqlItemHandler = exports.GraphQLItemHandler = exports.ApplyTransformsStep = void 0;
|
|
4
|
+
exports.ProxyStep = exports.proxy = exports.PolymorphicBranchStep = exports.polymorphicBranch = exports.LoadStep = exports.loadOneCallback = exports.loadOne = exports.loadManyCallback = exports.loadMany = exports.LoadedRecordStep = exports.GraphQLResolverStep = exports.graphqlResolver = exports.graphqlItemHandler = exports.GraphQLItemHandler = exports.ApplyTransformsStep = void 0;
|
|
5
5
|
const withGlobalLayerPlan_js_1 = require("../engine/lib/withGlobalLayerPlan.js");
|
|
6
6
|
const global_js_1 = require("../global.js");
|
|
7
7
|
function operationPlan() {
|
|
@@ -111,6 +111,9 @@ Object.defineProperty(exports, "loadManyCallback", { enumerable: true, get: func
|
|
|
111
111
|
Object.defineProperty(exports, "loadOne", { enumerable: true, get: function () { return load_js_1.loadOne; } });
|
|
112
112
|
Object.defineProperty(exports, "loadOneCallback", { enumerable: true, get: function () { return load_js_1.loadOneCallback; } });
|
|
113
113
|
Object.defineProperty(exports, "LoadStep", { enumerable: true, get: function () { return load_js_1.LoadStep; } });
|
|
114
|
+
var polymorphicBranch_js_1 = require("./polymorphicBranch.js");
|
|
115
|
+
Object.defineProperty(exports, "polymorphicBranch", { enumerable: true, get: function () { return polymorphicBranch_js_1.polymorphicBranch; } });
|
|
116
|
+
Object.defineProperty(exports, "PolymorphicBranchStep", { enumerable: true, get: function () { return polymorphicBranch_js_1.PolymorphicBranchStep; } });
|
|
114
117
|
var proxy_js_1 = require("./proxy.js");
|
|
115
118
|
Object.defineProperty(exports, "proxy", { enumerable: true, get: function () { return proxy_js_1.proxy; } });
|
|
116
119
|
Object.defineProperty(exports, "ProxyStep", { enumerable: true, get: function () { return proxy_js_1.ProxyStep; } });
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { GraphQLObjectType } from "graphql";
|
|
2
|
+
import type { ExecutionExtra, GrafastResultsList, GrafastValuesList, PromiseOrDirect } from "../index.js";
|
|
3
|
+
import type { PolymorphicStep } from "../step.js";
|
|
4
|
+
import { ExecutableStep } from "../step.js";
|
|
5
|
+
type StepData<TStep extends ExecutableStep> = TStep extends ExecutableStep<infer U> ? U : any;
|
|
6
|
+
export interface PolymorphicBranchMatchers<TStep extends ExecutableStep> {
|
|
7
|
+
[typeName: string]: PolymorphicBranchMatcher<TStep>;
|
|
8
|
+
}
|
|
9
|
+
export interface PolymorphicBranchMatcher<TStep extends ExecutableStep> {
|
|
10
|
+
match?: (obj: StepData<TStep>) => boolean;
|
|
11
|
+
plan?: ($obj: TStep) => ExecutableStep;
|
|
12
|
+
}
|
|
13
|
+
export declare class PolymorphicBranchStep<TStep extends ExecutableStep> extends ExecutableStep implements PolymorphicStep {
|
|
14
|
+
static $$export: {
|
|
15
|
+
moduleName: string;
|
|
16
|
+
exportName: string;
|
|
17
|
+
};
|
|
18
|
+
isSyncAndSafe: boolean;
|
|
19
|
+
private typeNames;
|
|
20
|
+
private matchers;
|
|
21
|
+
constructor($step: TStep, matchers: PolymorphicBranchMatchers<TStep>);
|
|
22
|
+
planForType(objectType: GraphQLObjectType): ExecutableStep;
|
|
23
|
+
execute(count: number, values: ReadonlyArray<GrafastValuesList<any>>, _extra: ExecutionExtra): PromiseOrDirect<GrafastResultsList<any>>;
|
|
24
|
+
}
|
|
25
|
+
export declare function polymorphicBranch<TStep extends ExecutableStep>($step: TStep, matchers: PolymorphicBranchMatchers<TStep>): PolymorphicBranchStep<TStep>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=polymorphicBranch.d.ts.map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.polymorphicBranch = exports.PolymorphicBranchStep = void 0;
|
|
4
|
+
const index_js_1 = require("../index.js");
|
|
5
|
+
const step_js_1 = require("../step.js");
|
|
6
|
+
const constant_js_1 = require("./constant.js");
|
|
7
|
+
class PolymorphicBranchStep extends step_js_1.ExecutableStep {
|
|
8
|
+
static { this.$$export = {
|
|
9
|
+
moduleName: "grafast",
|
|
10
|
+
exportName: "PolymorphicBranchStep",
|
|
11
|
+
}; }
|
|
12
|
+
constructor($step, matchers) {
|
|
13
|
+
super();
|
|
14
|
+
this.isSyncAndSafe = true;
|
|
15
|
+
this.addDependency($step);
|
|
16
|
+
this.typeNames = Object.keys(matchers);
|
|
17
|
+
this.matchers = Object.fromEntries(Object.entries(matchers).map(([typeName, matcher]) => {
|
|
18
|
+
const fixedMatcher = {
|
|
19
|
+
match: matcher.match ?? ((obj) => obj.__typename === typeName),
|
|
20
|
+
plan: matcher.plan ?? (($obj) => $obj),
|
|
21
|
+
};
|
|
22
|
+
return [typeName, fixedMatcher];
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
planForType(objectType) {
|
|
26
|
+
const matcher = this.matchers[objectType.name];
|
|
27
|
+
const $step = this.getDep(0);
|
|
28
|
+
if (matcher) {
|
|
29
|
+
if (typeof matcher.plan === "function") {
|
|
30
|
+
return matcher.plan($step);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return $step;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
// TODO: should this be an error?
|
|
38
|
+
return (0, constant_js_1.constant)(null);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
execute(count, values, _extra) {
|
|
42
|
+
const results = [];
|
|
43
|
+
const objects = values[0];
|
|
44
|
+
for (let i = 0; i < count; i++) {
|
|
45
|
+
const obj = objects[i];
|
|
46
|
+
let match = null;
|
|
47
|
+
if (obj != null) {
|
|
48
|
+
for (const typeName of this.typeNames) {
|
|
49
|
+
if (this.matchers[typeName].match(obj)) {
|
|
50
|
+
match = typeName;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
results[i] = match !== null ? (0, index_js_1.polymorphicWrap)(match, obj) : null;
|
|
56
|
+
}
|
|
57
|
+
return results;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.PolymorphicBranchStep = PolymorphicBranchStep;
|
|
61
|
+
function polymorphicBranch($step, matchers) {
|
|
62
|
+
return new PolymorphicBranchStep($step, matchers);
|
|
63
|
+
}
|
|
64
|
+
exports.polymorphicBranch = polymorphicBranch;
|
|
65
|
+
//# sourceMappingURL=polymorphicBranch.js.map
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "0.1.1-beta.
|
|
1
|
+
export declare const version = "0.1.1-beta.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "grafast",
|
|
3
|
-
"version": "0.1.1-beta.
|
|
3
|
+
"version": "0.1.1-beta.4",
|
|
4
4
|
"description": "Cutting edge GraphQL planning and execution engine",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -61,14 +61,14 @@
|
|
|
61
61
|
"eventemitter3": "^5.0.1",
|
|
62
62
|
"graphql": "^16.1.0-experimental-stream-defer.6",
|
|
63
63
|
"iterall": "^1.3.0",
|
|
64
|
-
"tamedevil": "^0.0.0-beta.
|
|
64
|
+
"tamedevil": "^0.0.0-beta.4",
|
|
65
65
|
"tslib": "^2.6.2"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"@envelop/core": "^3.0.4",
|
|
69
|
-
"graphile-config": "^0.0.1-beta.
|
|
69
|
+
"graphile-config": "^0.0.1-beta.6",
|
|
70
70
|
"graphql": "^16.1.0-experimental-stream-defer.6",
|
|
71
|
-
"tamedevil": "^0.0.0-beta.
|
|
71
|
+
"tamedevil": "^0.0.0-beta.4"
|
|
72
72
|
},
|
|
73
73
|
"peerDependenciesMeta": {
|
|
74
74
|
"@envelop/core": {
|