Comparing version
@@ -171,11 +171,2 @@ import { | ||
} | ||
type mapNames<T extends readonly any[]> = obj<{ | ||
[P in T[number]['name']]: T[number] extends infer Value | ||
? Value extends { | ||
readonly name: P; | ||
} | ||
? obj<Value> | ||
: never | ||
: never; | ||
}>; | ||
type mapScalar< | ||
@@ -197,2 +188,9 @@ Type extends IntrospectionScalarType, | ||
}; | ||
type mapField<T> = T extends IntrospectionField | ||
? { | ||
name: T['name']; | ||
type: T['type']; | ||
args: any; | ||
} | ||
: never; | ||
type mapObject<T extends IntrospectionObjectType> = { | ||
@@ -202,3 +200,11 @@ kind: 'OBJECT'; | ||
interfaces: T['interfaces'][number]['name']; | ||
fields: obj<mapNames<T['fields']>>; | ||
fields: obj<{ | ||
[P in T['fields'][number]['name']]: T['fields'][number] extends infer Field | ||
? Field extends { | ||
readonly name: P; | ||
} | ||
? mapField<Field> | ||
: never | ||
: never; | ||
}>; | ||
}; | ||
@@ -215,3 +221,11 @@ type mapInputObject<T extends IntrospectionInputObjectType> = { | ||
possibleTypes: T['possibleTypes'][number]['name']; | ||
fields: obj<mapNames<T['fields']>>; | ||
fields: obj<{ | ||
[P in T['fields'][number]['name']]: T['fields'][number] extends infer Field | ||
? Field extends { | ||
readonly name: P; | ||
} | ||
? mapField<Field> | ||
: never | ||
: never; | ||
}>; | ||
}; | ||
@@ -970,3 +984,3 @@ type mapUnion<T extends IntrospectionUnionType> = { | ||
fields: { | ||
[key: string]: IntrospectionField; | ||
[key: string]: any; | ||
}; | ||
@@ -973,0 +987,0 @@ }; |
{ | ||
"name": "gql.tada", | ||
"description": "The spec-compliant & magical GraphQL query language engine in the TypeScript type system", | ||
"version": "1.0.2", | ||
"version": "1.0.3-canary-3a06a4cdfc363aaeceba495fee73d7f974a97a14", | ||
"author": "0no.co <hi@0no.co>", | ||
@@ -6,0 +6,0 @@ "source": "./src/index.ts", |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
87250
0.37%1742
0.81%2
100%