@schema-hub/zod-graphql-query-builder 0.0.3 → 0.0.5
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/package.json +3 -3
- package/readme.md +79 -8
- package/zod-graphql-query-builder/builder.d.ts +4 -3
- package/zod-graphql-query-builder/builder.d.ts.map +1 -1
- package/zod-graphql-query-builder/builder.js +30 -17
- package/zod-graphql-query-builder/builder.js.map +1 -1
- package/zod-graphql-query-builder/entry-point.d.ts +2 -1
- package/zod-graphql-query-builder/entry-point.d.ts.map +1 -1
- package/zod-graphql-query-builder/entry-point.js +1 -0
- package/zod-graphql-query-builder/entry-point.js.map +1 -1
- package/zod-graphql-query-builder/query-schema.d.ts +5 -0
- package/zod-graphql-query-builder/query-schema.d.ts.map +1 -1
- package/zod-graphql-query-builder/query-schema.js +19 -3
- package/zod-graphql-query-builder/query-schema.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Mathias Schreck <schreck.mathias@gmail.com>",
|
|
3
3
|
"dependencies": {
|
|
4
|
-
"graphql": "16.
|
|
4
|
+
"graphql": "16.9.0"
|
|
5
5
|
},
|
|
6
6
|
"description": "Transforms Zod schemas into GraphQL queries",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "^20"
|
|
8
|
+
"node": "^20 || ^22"
|
|
9
9
|
},
|
|
10
10
|
"keywords": [
|
|
11
11
|
"graphql",
|
|
@@ -27,5 +27,5 @@
|
|
|
27
27
|
},
|
|
28
28
|
"type": "module",
|
|
29
29
|
"types": "zod-graphql-query-builder/entry-point.d.ts",
|
|
30
|
-
"version": "0.0.
|
|
30
|
+
"version": "0.0.5"
|
|
31
31
|
}
|
package/readme.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# zod-graphql-query-builder
|
|
2
2
|
|
|
3
|
-
This library transforms a [`zod`](https://github.com/colinhacks/zod) schema into a GraphQL query.
|
|
3
|
+
This library transforms a [`zod`](https://github.com/colinhacks/zod) schema into a GraphQL query or mutation.
|
|
4
4
|
|
|
5
5
|
## Example
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ import { buildGraphqlQuery } from '@schema-hub/zod-graphql-query-builder';
|
|
|
44
44
|
import { z } from 'zod';
|
|
45
45
|
|
|
46
46
|
const mySchema = z.object({ foo: z.string() }).strict();
|
|
47
|
-
const query = buildGraphqlQuery(mySchema, {
|
|
47
|
+
const query = buildGraphqlQuery(mySchema, { operationName: 'MyQuery' });
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
**Built query:**
|
|
@@ -68,7 +68,7 @@ const query = buildGraphqlQuery(mySchema);
|
|
|
68
68
|
**Built query:**
|
|
69
69
|
|
|
70
70
|
```graphql
|
|
71
|
-
query
|
|
71
|
+
query { foo: bar }
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
### Defining Field Arguments / Parameters
|
|
@@ -88,9 +88,9 @@ const mySchema = z
|
|
|
88
88
|
.object({
|
|
89
89
|
foo: graphqlFieldOptions(z.string(), {
|
|
90
90
|
parameters: {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
anyParameterAssignedToPlainValue: 'plain-string',
|
|
92
|
+
anyParameterAssignedToEnumValue: enumValue('foo'),
|
|
93
|
+
anyParameterReferencingAVariable: variablePlaceholder('$var')
|
|
94
94
|
}
|
|
95
95
|
})
|
|
96
96
|
})
|
|
@@ -101,7 +101,7 @@ const query = buildGraphqlQuery(mySchema, { variableDefinitions: { $var: 'String
|
|
|
101
101
|
**Built query:**
|
|
102
102
|
|
|
103
103
|
```graphql
|
|
104
|
-
query ($var: String!) { foo(
|
|
104
|
+
query ($var: String!) { foo(anyParameterAssignedToPlainValue: "plain-string", anyParameterAssignedToEnumValue: foo, anyParameterReferencingAVariable: $var) }
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
### Defining Fragments
|
|
@@ -126,5 +126,76 @@ const query = buildGraphqlQuery(mySchema);
|
|
|
126
126
|
**Built query:**
|
|
127
127
|
|
|
128
128
|
```graphql
|
|
129
|
-
query { foo
|
|
129
|
+
query { foo { ... on A { __typename, valueA }, ... on B { __typename, valueB } } }
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Mutations
|
|
133
|
+
|
|
134
|
+
### Basic Mutation
|
|
135
|
+
|
|
136
|
+
**Input:**
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
import { buildGraphqlMutation } from '@schema-hub/zod-graphql-query-builder';
|
|
140
|
+
import { z } from 'zod';
|
|
141
|
+
|
|
142
|
+
const mySchema = z.object({ foo: z.string() }).strict();
|
|
143
|
+
const mutation = buildGraphqlMutation(mySchema);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Built mutation:**
|
|
147
|
+
|
|
148
|
+
```graphql
|
|
149
|
+
mutation { foo }
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Mutation with Name
|
|
153
|
+
|
|
154
|
+
**Input:**
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
import { buildGraphqlMutation } from '@schema-hub/zod-graphql-query-builder';
|
|
158
|
+
import { z } from 'zod';
|
|
159
|
+
|
|
160
|
+
const mySchema = z.object({ foo: z.string() }).strict();
|
|
161
|
+
const mutation = buildGraphqlMutation(mySchema, { operationName: 'MyMutation' });
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Built mutation:**
|
|
165
|
+
|
|
166
|
+
```graphql
|
|
167
|
+
mutation MyMutation { foo }
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Mutation with Variables
|
|
171
|
+
|
|
172
|
+
**Input:**
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
import {
|
|
176
|
+
buildGraphqlMutation,
|
|
177
|
+
enumValue,
|
|
178
|
+
graphqlFieldOptions,
|
|
179
|
+
variablePlaceholder
|
|
180
|
+
} from '@schema-hub/zod-graphql-query-builder';
|
|
181
|
+
import { z } from 'zod';
|
|
182
|
+
|
|
183
|
+
const mySchema = z
|
|
184
|
+
.object({
|
|
185
|
+
foo: graphqlFieldOptions(z.string(), {
|
|
186
|
+
parameters: {
|
|
187
|
+
anyParameterAssignedToPlainValue: 'plain-string',
|
|
188
|
+
anyParameterAssignedToEnumValue: enumValue('foo'),
|
|
189
|
+
anyParameterReferencingAVariable: variablePlaceholder('$var')
|
|
190
|
+
}
|
|
191
|
+
})
|
|
192
|
+
})
|
|
193
|
+
.strict();
|
|
194
|
+
const mutation = buildGraphqlMutation(mySchema, { variableDefinitions: { $var: 'String!' } });
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Built mutation:**
|
|
198
|
+
|
|
199
|
+
```graphql
|
|
200
|
+
mutation ($var: String!) { foo(anyParameterAssignedToPlainValue: "plain-string", anyParameterAssignedToEnumValue: foo, anyParameterReferencingAVariable: $var) }
|
|
130
201
|
```
|
|
@@ -6,13 +6,14 @@ type GraphqlFieldOptions = {
|
|
|
6
6
|
aliasFor?: string;
|
|
7
7
|
parameters?: Record<string, GraphqlValue>;
|
|
8
8
|
};
|
|
9
|
-
export type
|
|
10
|
-
|
|
9
|
+
export type OperationOptions = {
|
|
10
|
+
operationName?: string | undefined;
|
|
11
11
|
variableDefinitions?: VariableDefinitions | undefined;
|
|
12
12
|
};
|
|
13
13
|
export type QueryBuilder = {
|
|
14
14
|
registerFieldOptions: <Schema extends FieldSchema>(schema: Schema, options: GraphqlFieldOptions) => ZodLazy<Schema>;
|
|
15
|
-
buildQuery: <Schema extends QuerySchema>(schema: Schema, options?:
|
|
15
|
+
buildQuery: <Schema extends QuerySchema>(schema: Schema, options?: OperationOptions) => string;
|
|
16
|
+
buildMutation: <Schema extends QuerySchema>(schema: Schema, options?: OperationOptions) => string;
|
|
16
17
|
};
|
|
17
18
|
export declare function createQueryBuilder(): QueryBuilder;
|
|
18
19
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,OAAO,EAAiB,MAAM,KAAK,CAAC;AACtF,OAAO,EACH,KAAK,WAAW,EAUhB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,OAAO,EAAiB,MAAM,KAAK,CAAC;AACtF,OAAO,EACH,KAAK,WAAW,EAUhB,KAAK,WAAW,EAKnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAgC,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AASlG,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,oBAAoB,EAAE,CAAC,MAAM,SAAS,WAAW,EAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,mBAAmB,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,MAAM,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC/F,aAAa,EAAE,CAAC,MAAM,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;CACrG,CAAC;AA+CF,wBAAgB,kBAAkB,IAAI,YAAY,CAqKjD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z, ZodArray, ZodDiscriminatedUnion } from 'zod';
|
|
2
|
-
import { isFragmentsSchema, isObjectOrListSchema, isStrictObjectSchema, isUnionOrListSchema, unwrapFieldSchema } from './query-schema.js';
|
|
2
|
+
import { isFragmentsSchema, isObjectOrListSchema, isStrictObjectSchema, isUnionOrListSchema, unwrapFieldSchema, unwrapFieldSchemaChain } from './query-schema.js';
|
|
3
3
|
import { normalizeParameterList } from './values/parameter-list.js';
|
|
4
4
|
import { ensureValidVariableCorrelations } from './variable-correlations.js';
|
|
5
5
|
import { serializeVariableDefinitions } from './variable-definition.js';
|
|
@@ -45,8 +45,15 @@ function getUnionSchema(schema) {
|
|
|
45
45
|
export function createQueryBuilder() {
|
|
46
46
|
const fieldOptionsRegistry = new WeakMap();
|
|
47
47
|
function getFieldOptionsForSchema(schema) {
|
|
48
|
-
const
|
|
49
|
-
|
|
48
|
+
const unwrappingResult = unwrapFieldSchemaChain(schema);
|
|
49
|
+
const queue = [...unwrappingResult.wrapperElements, unwrappingResult.unwrappedSchema];
|
|
50
|
+
for (const currentSchema of queue) {
|
|
51
|
+
const fieldOptions = fieldOptionsRegistry.get(currentSchema);
|
|
52
|
+
if (fieldOptions !== undefined) {
|
|
53
|
+
return fieldOptions;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return {};
|
|
50
57
|
}
|
|
51
58
|
function serializedFieldSelector(fieldName, fieldSchema) {
|
|
52
59
|
const fieldOptions = getFieldOptionsForSchema(fieldSchema);
|
|
@@ -119,6 +126,22 @@ export function createQueryBuilder() {
|
|
|
119
126
|
}
|
|
120
127
|
return fieldSelector;
|
|
121
128
|
}
|
|
129
|
+
function buildDocument(documentType, schema, options) {
|
|
130
|
+
let referencedVariables = new Set();
|
|
131
|
+
const { variableDefinitions = {}, operationName = '' } = options;
|
|
132
|
+
const bodyEntries = [];
|
|
133
|
+
for (const [fieldName, fieldSchema] of Object.entries(schema.shape)) {
|
|
134
|
+
const serializedField = serializeFieldSchema(fieldName, fieldSchema);
|
|
135
|
+
bodyEntries.push(serializedField.serializedValue);
|
|
136
|
+
referencedVariables = new Set([
|
|
137
|
+
...referencedVariables,
|
|
138
|
+
...serializedField.referencedVariables
|
|
139
|
+
]);
|
|
140
|
+
}
|
|
141
|
+
ensureValidVariableCorrelations(variableDefinitions, referencedVariables);
|
|
142
|
+
const operationNameAndParams = withTrailingSpace(`${operationName}${serializeVariableDefinitions(variableDefinitions)}`);
|
|
143
|
+
return `${documentType} ${operationNameAndParams}{ ${bodyEntries.join(', ')} }`;
|
|
144
|
+
}
|
|
122
145
|
return {
|
|
123
146
|
registerFieldOptions(schema, options) {
|
|
124
147
|
const newSchemaInstance = z.lazy(() => {
|
|
@@ -128,20 +151,10 @@ export function createQueryBuilder() {
|
|
|
128
151
|
return newSchemaInstance;
|
|
129
152
|
},
|
|
130
153
|
buildQuery(schema, options = {}) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const serializedField = serializeFieldSchema(fieldName, fieldSchema);
|
|
136
|
-
bodyEntries.push(serializedField.serializedValue);
|
|
137
|
-
referencedVariables = new Set([
|
|
138
|
-
...referencedVariables,
|
|
139
|
-
...serializedField.referencedVariables
|
|
140
|
-
]);
|
|
141
|
-
}
|
|
142
|
-
ensureValidVariableCorrelations(variableDefinitions, referencedVariables);
|
|
143
|
-
const queryNameAndParams = withTrailingSpace(`${queryName}${serializeVariableDefinitions(variableDefinitions)}`);
|
|
144
|
-
return `query ${queryNameAndParams}{ ${bodyEntries.join(', ')} }`;
|
|
154
|
+
return buildDocument('query', schema, options);
|
|
155
|
+
},
|
|
156
|
+
buildMutation(schema, options = {}) {
|
|
157
|
+
return buildDocument('mutation', schema, options);
|
|
145
158
|
}
|
|
146
159
|
};
|
|
147
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAA+B,MAAM,KAAK,CAAC;AACtF,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EAKnB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ export declare const graphqlFieldOptions: <Schema extends import("./query-schema
|
|
|
2
2
|
aliasFor?: string;
|
|
3
3
|
parameters?: Record<string, import("./values/value.js").GraphqlValue>;
|
|
4
4
|
}) => import("zod").ZodLazy<Schema>;
|
|
5
|
-
export declare const buildGraphqlQuery: <Schema extends import("./query-schema.js").QuerySchema>(schema: Schema, options?: import("./builder.js").
|
|
5
|
+
export declare const buildGraphqlQuery: <Schema extends import("./query-schema.js").QuerySchema>(schema: Schema, options?: import("./builder.js").OperationOptions) => string;
|
|
6
|
+
export declare const buildGraphqlMutation: <Schema extends import("./query-schema.js").QuerySchema>(schema: Schema, options?: import("./builder.js").OperationOptions) => string;
|
|
6
7
|
export { enumValue } from './values/enum.js';
|
|
7
8
|
export { variablePlaceholder } from './values/variable-placeholder.js';
|
|
8
9
|
export type { QuerySchema } from './query-schema.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-point.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/entry-point.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;mCAA+B,CAAC;AAChE,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"entry-point.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/entry-point.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;mCAA+B,CAAC;AAChE,eAAO,MAAM,iBAAiB,uIAAqB,CAAC;AACpD,eAAO,MAAM,oBAAoB,uIAAwB,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { createQueryBuilder } from './builder.js';
|
|
|
2
2
|
const builder = createQueryBuilder();
|
|
3
3
|
export const graphqlFieldOptions = builder.registerFieldOptions;
|
|
4
4
|
export const buildGraphqlQuery = builder.buildQuery;
|
|
5
|
+
export const buildGraphqlMutation = builder.buildMutation;
|
|
5
6
|
export { enumValue } from './values/enum.js';
|
|
6
7
|
export { variablePlaceholder } from './values/variable-placeholder.js';
|
|
7
8
|
//# sourceMappingURL=entry-point.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/entry-point.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -16,6 +16,11 @@ export type FieldShape = {
|
|
|
16
16
|
export type NonWrappedFieldSchema = PrimitiveSchema | StrictObjectSchema<FieldShape> | ZodArray<FieldSchema> | ZodDiscriminatedUnion<'__typename', FragmentUnionOptionSchema[]> | ZodTuple<[FieldSchema, ...FieldSchema[]]>;
|
|
17
17
|
export type WrappedFieldSchema = EffectSchema<FieldSchema> | ZodLazy<FieldSchema> | ZodNullable<FieldSchema>;
|
|
18
18
|
export type FieldSchema = NonWrappedFieldSchema | WrappedFieldSchema;
|
|
19
|
+
type UnwrappedChainResult = {
|
|
20
|
+
unwrappedSchema: NonWrappedFieldSchema;
|
|
21
|
+
wrapperElements: WrappedFieldSchema[];
|
|
22
|
+
};
|
|
23
|
+
export declare function unwrapFieldSchemaChain(parent: FieldSchema): UnwrappedChainResult;
|
|
19
24
|
export declare function unwrapFieldSchema(parent: FieldSchema): NonWrappedFieldSchema;
|
|
20
25
|
type QueryShape = Record<string, FieldSchema>;
|
|
21
26
|
export type QuerySchema = StrictObjectSchema<QueryShape>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-schema.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/query-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,KAAK,UAAU,EACf,qBAAqB,EACrB,UAAU,EACV,OAAO,EACP,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,WAAW,EACX,KAAK,SAAS,EACd,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,UAAU,EAClB,MAAM,KAAK,CAAC;AAGb,MAAM,WAAW,kBAAkB,CAAC,KAAK,SAAS,WAAW,CACzD,SAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;CAAG;AAExE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAE9F;AAGD,UAAU,YAAY,CAAC,MAAM,SAAS,UAAU,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;CAAG;AAE/E,KAAK,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAChF,KAAK,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhE,MAAM,CAAC,OAAO,MAAM,yBAAyB,GAAG,SAAS,CACnD,UAAU,GACV;IACE,UAAU,EAAE,eAAe,CAAC;CAC/B,EACD,QAAQ,CACX,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC;CAAE,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAC3B,eAAe,GACf,kBAAkB,CAAC,UAAU,CAAC,GAC9B,QAAQ,CAAC,WAAW,CAAC,GACrB,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,EAAE,CAAC,GAChE,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAC7G,MAAM,MAAM,WAAW,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAMrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,qBAAqB,
|
|
1
|
+
{"version":3,"file":"query-schema.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/query-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,KAAK,UAAU,EACf,qBAAqB,EACrB,UAAU,EACV,OAAO,EACP,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,WAAW,EACX,KAAK,SAAS,EACd,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,UAAU,EAClB,MAAM,KAAK,CAAC;AAGb,MAAM,WAAW,kBAAkB,CAAC,KAAK,SAAS,WAAW,CACzD,SAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;CAAG;AAExE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAE9F;AAGD,UAAU,YAAY,CAAC,MAAM,SAAS,UAAU,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;CAAG;AAE/E,KAAK,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAChF,KAAK,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpF,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhE,MAAM,CAAC,OAAO,MAAM,yBAAyB,GAAG,SAAS,CACnD,UAAU,GACV;IACE,UAAU,EAAE,eAAe,CAAC;CAC/B,EACD,QAAQ,CACX,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC;CAAE,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAC3B,eAAe,GACf,kBAAkB,CAAC,UAAU,CAAC,GAC9B,QAAQ,CAAC,WAAW,CAAC,GACrB,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,EAAE,CAAC,GAChE,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAC7G,MAAM,MAAM,WAAW,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAMrE,KAAK,oBAAoB,GAAG;IACxB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACzC,CAAC;AAiCF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,oBAAoB,CAEhF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,qBAAqB,CAG5E;AAED,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC9C,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GACxB,kBAAkB,CAAC,UAAU,CAAC,GAC9B,QAAQ,CAAC,WAAW,CAAC,GACrB,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AAEhD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,kBAAkB,CAEtF;AAED,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAE/F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,eAAe,CAEhF;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AAEpH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,IAAI,iBAAiB,CAEpF"}
|
|
@@ -5,8 +5,14 @@ export function isStrictObjectSchema(schema) {
|
|
|
5
5
|
function isWrappedFieldSchema(schema) {
|
|
6
6
|
return schema instanceof ZodLazy || schema instanceof ZodEffects || schema instanceof ZodNullable;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
function recursiveUnwrapFieldSchemaChain(parent, currentChain) {
|
|
9
9
|
let unwrapped = parent;
|
|
10
|
+
if (!isWrappedFieldSchema(parent)) {
|
|
11
|
+
return {
|
|
12
|
+
unwrappedSchema: parent,
|
|
13
|
+
wrapperElements: currentChain
|
|
14
|
+
};
|
|
15
|
+
}
|
|
10
16
|
if (parent instanceof ZodLazy) {
|
|
11
17
|
unwrapped = parent.schema;
|
|
12
18
|
}
|
|
@@ -17,9 +23,19 @@ export function unwrapFieldSchema(parent) {
|
|
|
17
23
|
unwrapped = parent.unwrap();
|
|
18
24
|
}
|
|
19
25
|
if (isWrappedFieldSchema(unwrapped)) {
|
|
20
|
-
return
|
|
26
|
+
return recursiveUnwrapFieldSchemaChain(unwrapped, [...currentChain, parent]);
|
|
21
27
|
}
|
|
22
|
-
return
|
|
28
|
+
return {
|
|
29
|
+
unwrappedSchema: unwrapped,
|
|
30
|
+
wrapperElements: [...currentChain, parent]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function unwrapFieldSchemaChain(parent) {
|
|
34
|
+
return recursiveUnwrapFieldSchemaChain(parent, []);
|
|
35
|
+
}
|
|
36
|
+
export function unwrapFieldSchema(parent) {
|
|
37
|
+
const result = unwrapFieldSchemaChain(parent);
|
|
38
|
+
return result.unwrappedSchema;
|
|
23
39
|
}
|
|
24
40
|
export function isObjectOrListSchema(schema) {
|
|
25
41
|
return isStrictObjectSchema(schema) || schema instanceof ZodArray || schema instanceof ZodTuple;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-schema.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/query-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EAER,qBAAqB,EACrB,UAAU,EACV,OAAO,EAGP,WAAW,EAEX,SAAS,EAGT,QAAQ,EAEX,MAAM,KAAK,CAAC;AAMb,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAChD,OAAO,MAAM,YAAY,SAAS,CAAC;AACvC,CAAC;AA4BD,SAAS,oBAAoB,CAAC,MAAmB;IAC7C,OAAO,MAAM,YAAY,OAAO,IAAI,MAAM,YAAY,UAAU,IAAI,MAAM,YAAY,WAAW,CAAC;AACtG,CAAC;
|
|
1
|
+
{"version":3,"file":"query-schema.js","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/query-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EAER,qBAAqB,EACrB,UAAU,EACV,OAAO,EAGP,WAAW,EAEX,SAAS,EAGT,QAAQ,EAEX,MAAM,KAAK,CAAC;AAMb,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAChD,OAAO,MAAM,YAAY,SAAS,CAAC;AACvC,CAAC;AA4BD,SAAS,oBAAoB,CAAC,MAAmB;IAC7C,OAAO,MAAM,YAAY,OAAO,IAAI,MAAM,YAAY,UAAU,IAAI,MAAM,YAAY,WAAW,CAAC;AACtG,CAAC;AAOD,SAAS,+BAA+B,CACpC,MAAmB,EACnB,YAAkC;IAElC,IAAI,SAAS,GAAgB,MAAM,CAAC;IAEpC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO;YACH,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,YAAY;SAChC,CAAC;IACN,CAAC;IAED,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC5B,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;SAAM,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACtC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;SAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;QACvC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,+BAA+B,CAAC,SAAS,EAAE,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO;QACH,eAAe,EAAE,SAAS;QAC1B,eAAe,EAAE,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC;KAC7C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAmB;IACtD,OAAO,+BAA+B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACjD,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,eAAe,CAAC;AAClC,CAAC;AAUD,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IACpD,OAAO,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,YAAY,QAAQ,IAAI,MAAM,YAAY,QAAQ,CAAC;AACpG,CAAC;AAID,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACjD,OAAO,MAAM,YAAY,qBAAqB,CAAC;AACnD,CAAC;AAID,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACnD,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,YAAY,QAAQ,IAAI,MAAM,YAAY,QAAQ,CAAC;AACjG,CAAC"}
|