@schema-hub/zod-graphql-query-builder 0.0.4 → 0.0.6
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 +2 -2
- package/readme.md +8 -8
- package/zod-graphql-query-builder/builder.d.ts +2 -2
- package/zod-graphql-query-builder/builder.d.ts.map +1 -1
- package/zod-graphql-query-builder/builder.js +18 -5
- package/zod-graphql-query-builder/builder.js.map +1 -1
- package/zod-graphql-query-builder/entry-point.d.ts +2 -2
- package/zod-graphql-query-builder/entry-point.d.ts.map +1 -1
- package/zod-graphql-query-builder/query-schema.d.ts +8 -3
- 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
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"description": "Transforms Zod schemas into GraphQL queries",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "^
|
|
8
|
+
"node": "^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.6"
|
|
31
31
|
}
|
package/readme.md
CHANGED
|
@@ -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
|
|
@@ -184,9 +184,9 @@ const mySchema = z
|
|
|
184
184
|
.object({
|
|
185
185
|
foo: graphqlFieldOptions(z.string(), {
|
|
186
186
|
parameters: {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
anyParameterAssignedToPlainValue: 'plain-string',
|
|
188
|
+
anyParameterAssignedToEnumValue: enumValue('foo'),
|
|
189
|
+
anyParameterReferencingAVariable: variablePlaceholder('$var')
|
|
190
190
|
}
|
|
191
191
|
})
|
|
192
192
|
})
|
|
@@ -197,5 +197,5 @@ const mutation = buildGraphqlMutation(mySchema, { variableDefinitions: { $var: '
|
|
|
197
197
|
**Built mutation:**
|
|
198
198
|
|
|
199
199
|
```graphql
|
|
200
|
-
mutation ($var: String!) { foo(
|
|
200
|
+
mutation ($var: String!) { foo(anyParameterAssignedToPlainValue: "plain-string", anyParameterAssignedToEnumValue: foo, anyParameterReferencingAVariable: $var) }
|
|
201
201
|
```
|
|
@@ -12,8 +12,8 @@ export type OperationOptions = {
|
|
|
12
12
|
};
|
|
13
13
|
export type QueryBuilder = {
|
|
14
14
|
registerFieldOptions: <Schema extends FieldSchema>(schema: Schema, options: GraphqlFieldOptions) => ZodLazy<Schema>;
|
|
15
|
-
buildQuery:
|
|
16
|
-
buildMutation:
|
|
15
|
+
buildQuery: (schema: QuerySchema, options?: OperationOptions) => string;
|
|
16
|
+
buildMutation: (schema: QuerySchema, options?: OperationOptions) => string;
|
|
17
17
|
};
|
|
18
18
|
export declare function createQueryBuilder(): QueryBuilder;
|
|
19
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,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../source/zod-graphql-query-builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,OAAO,EAA+B,MAAM,KAAK,CAAC;AACpG,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,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACxE,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,MAAM,CAAC;CAC9E,CAAC;AA+CF,wBAAgB,kBAAkB,IAAI,YAAY,CA4KjD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z, ZodArray, ZodDiscriminatedUnion } from 'zod';
|
|
2
|
-
import { isFragmentsSchema, isObjectOrListSchema, isStrictObjectSchema, isUnionOrListSchema, unwrapFieldSchema } from './query-schema.js';
|
|
1
|
+
import { z, ZodArray, ZodDiscriminatedUnion, ZodUndefined } from 'zod';
|
|
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);
|
|
@@ -105,6 +112,9 @@ export function createQueryBuilder() {
|
|
|
105
112
|
function serializeFieldSchema(fieldName, fieldSchema) {
|
|
106
113
|
const fieldSelector = serializedFieldSelector(fieldName, fieldSchema);
|
|
107
114
|
const unwrappedSchema = unwrapFieldSchema(fieldSchema);
|
|
115
|
+
if (unwrappedSchema instanceof ZodUndefined) {
|
|
116
|
+
return { serializedValue: '', referencedVariables: new Set() };
|
|
117
|
+
}
|
|
108
118
|
if (isObjectOrListSchema(unwrappedSchema)) {
|
|
109
119
|
const objectSchema = getObjectSchema(unwrappedSchema);
|
|
110
120
|
if (objectSchema !== null) {
|
|
@@ -119,13 +129,16 @@ export function createQueryBuilder() {
|
|
|
119
129
|
}
|
|
120
130
|
return fieldSelector;
|
|
121
131
|
}
|
|
132
|
+
// eslint-disable-next-line max-statements -- no idea right now to make this smaller
|
|
122
133
|
function buildDocument(documentType, schema, options) {
|
|
123
134
|
let referencedVariables = new Set();
|
|
124
135
|
const { variableDefinitions = {}, operationName = '' } = options;
|
|
125
136
|
const bodyEntries = [];
|
|
126
137
|
for (const [fieldName, fieldSchema] of Object.entries(schema.shape)) {
|
|
127
138
|
const serializedField = serializeFieldSchema(fieldName, fieldSchema);
|
|
128
|
-
|
|
139
|
+
if (serializedField.serializedValue.length > 0) {
|
|
140
|
+
bodyEntries.push(serializedField.serializedValue);
|
|
141
|
+
}
|
|
129
142
|
referencedVariables = new Set([
|
|
130
143
|
...referencedVariables,
|
|
131
144
|
...serializedField.referencedVariables
|
|
@@ -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;
|
|
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,YAAY,EAAE,MAAM,KAAK,CAAC;AACpG,OAAO,EAMH,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EAKnB,iBAAiB,EACjB,sBAAsB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,4BAA4B,EAA4B,MAAM,0BAA0B,CAAC;AAElG,SAAS,iBAAiB,CAAC,KAAa;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,KAAK,GAAG,CAAC;AACvB,CAAC;AAqBD,SAAS,qBAAqB,CAC1B,SAAwD,EACxD,MAA6B;IAE7B,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC1B,SAAwD,EACxD,MAAiD;IAEjD,MAAM,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1C,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACrE,IAAI,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACpC,OAAO,sBAAsB,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAA0B;IAC/C,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CACnB,MAAyB;IAEzB,IAAI,MAAM,YAAY,qBAAqB,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QAC7B,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,qBAAqB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAoC,CAAC;IAE7E,SAAS,wBAAwB,CAAC,MAAmB;QACjD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,CAAC,GAAG,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAEtF,KAAK,MAAM,aAAa,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAE7D,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC;YACxB,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,SAAS,uBAAuB,CAAC,SAAiB,EAAE,WAAwB;QACxE,MAAM,YAAY,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAE9C,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,QAAQ,EAAE,CAAC;QAEtF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACnE,OAAO;gBACH,eAAe,EAAE,GAAG,YAAY,GAAG,uBAAuB,CAAC,eAAe,EAAE;gBAC5E,mBAAmB,EAAE,uBAAuB,CAAC,mBAAmB;aACnE,CAAC;QACN,CAAC;QAED,OAAO;YACH,eAAe,EAAE,YAAY;YAC7B,mBAAmB,EAAE,IAAI,GAAG,EAAE;SACjC,CAAC;IACN,CAAC;IAED,SAAS,qBAAqB,CAAC,YAA4C;QACvE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,OAAO,EAAE,CAAC;YAC7C,gFAAgF;YAChF,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrE,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAChG,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACH,eAAe,EAAE,MAAM,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACvD,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,SAAS,kBAAkB,CACvB,YAAsE;QAEtE,IAAI,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,MAAM,mBAAmB,GAAa,EAAE,CAAC;QAEzC,KAAK,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;YACjE,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnG,mBAAmB,CAAC,IAAI,CAAC,UAAU,YAAY,GAAG,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO;YACH,eAAe,EAAE,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACzD,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,SAAS,gCAAgC,CACrC,aAAqC,EACrC,SAAiC;QAEjC,OAAO;YACH,eAAe,EAAE,GAAG,aAAa,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,EAAE;YAC/E,mBAAmB,EAAE,IAAI,GAAG,CAAC;gBACzB,GAAG,aAAa,CAAC,mBAAmB;gBACpC,GAAG,SAAS,CAAC,mBAAmB;aACnC,CAAC;SACL,CAAC;IACN,CAAC;IAED,wFAAwF;IACxF,SAAS,oBAAoB,CACzB,SAAiB,EACjB,WAAwB;QAExB,MAAM,aAAa,GAAG,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEvD,IAAI,eAAe,YAAY,YAAY,EAAE,CAAC;YAC1C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QACnE,CAAC;QAED,IAAI,oBAAoB,CAAC,eAAe,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;YAEtD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBACxB,OAAO,gCAAgC,CAAC,aAAa,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;YAChG,CAAC;QACL,CAAC;QAED,IAAI,mBAAmB,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YACpD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,gCAAgC,CACnC,aAAa,EACb,kBAAkB,CACd,WAAW,CAAC,UAAiF,CAChG,CACJ,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,oFAAoF;IACpF,SAAS,aAAa,CAClB,YAAkC,EAClC,MAAmB,EACnB,OAAyB;QAEzB,IAAI,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC5C,MAAM,EAAE,mBAAmB,GAAG,EAAE,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACjE,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAErE,IAAI,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YACtD,CAAC;YACD,mBAAmB,GAAG,IAAI,GAAG,CAAC;gBAC1B,GAAG,mBAAmB;gBACtB,GAAG,eAAe,CAAC,mBAAmB;aACzC,CAAC,CAAC;QACP,CAAC;QAED,+BAA+B,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QAC1E,MAAM,sBAAsB,GAAG,iBAAiB,CAC5C,GAAG,aAAa,GAAG,4BAA4B,CAAC,mBAAmB,CAAC,EAAE,CACzE,CAAC;QAEF,OAAO,GAAG,YAAY,IAAI,sBAAsB,KAAK,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACpF,CAAC;IAED,OAAO;QACH,oBAAoB,CAChB,MAAc,EACd,OAA4B;YAE5B,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,OAAO,MAAM,CAAC;YAClB,CAAC,CAAoB,CAAC;YACtB,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAErD,OAAO,iBAAiB,CAAC;QAC7B,CAAC;QAED,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE;YAC3B,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE;YAC9B,OAAO,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -2,8 +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:
|
|
6
|
-
export declare const buildGraphqlMutation:
|
|
5
|
+
export declare const buildGraphqlQuery: (schema: import("./query-schema.js").QuerySchema, options?: import("./builder.js").OperationOptions) => string;
|
|
6
|
+
export declare const buildGraphqlMutation: (schema: import("./query-schema.js").QuerySchema, options?: import("./builder.js").OperationOptions) => string;
|
|
7
7
|
export { enumValue } from './values/enum.js';
|
|
8
8
|
export { variablePlaceholder } from './values/variable-placeholder.js';
|
|
9
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,gHAAqB,CAAC;AACpD,eAAO,MAAM,oBAAoB,gHAAwB,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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ZodArray, type ZodBoolean, ZodDiscriminatedUnion, ZodEffects, ZodLazy, type ZodLiteral, type ZodNull, ZodNullable, type ZodNumber, ZodObject, type ZodRawShape, type ZodString, ZodTuple, type ZodTypeAny } from 'zod';
|
|
1
|
+
import { ZodArray, type ZodBoolean, ZodDiscriminatedUnion, ZodEffects, ZodLazy, type ZodLiteral, type ZodNull, ZodNullable, type ZodNumber, ZodObject, type ZodRawShape, type ZodReadonly, type ZodString, ZodTuple, type ZodTypeAny, type ZodUndefined } from 'zod';
|
|
2
2
|
export interface StrictObjectSchema<Shape extends ZodRawShape> extends Omit<ZodObject<Shape, 'strict'>, 'deepPartial' | 'keyof'> {
|
|
3
3
|
}
|
|
4
4
|
export declare function isStrictObjectSchema(schema: unknown): schema is StrictObjectSchema<FieldShape>;
|
|
5
5
|
interface EffectSchema<Schema extends ZodTypeAny> extends ZodEffects<Schema> {
|
|
6
6
|
}
|
|
7
7
|
type LiteralSchema = ZodLiteral<null> | ZodLiteral<number> | ZodLiteral<string>;
|
|
8
|
-
type PrimitiveSchema = LiteralSchema | ZodBoolean | ZodNull | ZodNumber | ZodString;
|
|
8
|
+
type PrimitiveSchema = LiteralSchema | ZodBoolean | ZodNull | ZodNumber | ZodString | ZodUndefined;
|
|
9
9
|
export type FragmentTypeName = boolean | number | string | null;
|
|
10
10
|
export declare type FragmentUnionOptionSchema = ZodObject<FieldShape & {
|
|
11
11
|
__typename: PrimitiveSchema;
|
|
@@ -14,8 +14,13 @@ export type FieldShape = {
|
|
|
14
14
|
readonly [FieldName: string]: FieldSchema;
|
|
15
15
|
};
|
|
16
16
|
export type NonWrappedFieldSchema = PrimitiveSchema | StrictObjectSchema<FieldShape> | ZodArray<FieldSchema> | ZodDiscriminatedUnion<'__typename', FragmentUnionOptionSchema[]> | ZodTuple<[FieldSchema, ...FieldSchema[]]>;
|
|
17
|
-
export type WrappedFieldSchema = EffectSchema<FieldSchema> | ZodLazy<FieldSchema> | ZodNullable<FieldSchema>;
|
|
17
|
+
export type WrappedFieldSchema = EffectSchema<FieldSchema> | ZodLazy<FieldSchema> | ZodNullable<FieldSchema> | ZodReadonly<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,
|
|
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,WAAW,EAChB,KAAK,SAAS,EACd,QAAQ,EACR,KAAK,UAAU,EACf,KAAK,YAAY,EACpB,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,GAAG,YAAY,CAAC;AAEnG,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,GACxB,YAAY,CAAC,WAAW,CAAC,GACzB,OAAO,CAAC,WAAW,CAAC,GACpB,WAAW,CAAC,WAAW,CAAC,GACxB,WAAW,CAAC,WAAW,CAAC,CAAC;AAC/B,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,
|
|
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,EAIT,QAAQ,EAGX,MAAM,KAAK,CAAC;AAMb,MAAM,UAAU,oBAAoB,CAAC,MAAe;IAChD,OAAO,MAAM,YAAY,SAAS,CAAC;AACvC,CAAC;AAgCD,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"}
|