@vertikalx/vtx-backend-client 1.0.0-dev.0 → 1.0.0-dev.10

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.
Files changed (87) hide show
  1. package/package.json +3 -2
  2. package/src/api/api-call-headers.d.ts +16 -0
  3. package/src/api/api-call-headers.js +20 -0
  4. package/src/api/api-call-headers.js.map +1 -0
  5. package/src/api/backend-response.d.ts +4 -0
  6. package/src/api/backend-response.js +3 -0
  7. package/src/api/backend-response.js.map +1 -0
  8. package/src/api/vtx-apikey-api.d.ts +6 -0
  9. package/src/api/vtx-apikey-api.js +19 -0
  10. package/src/api/vtx-apikey-api.js.map +1 -0
  11. package/src/api/vtx-base-api.d.ts +14 -0
  12. package/src/api/vtx-base-api.js +248 -0
  13. package/src/api/vtx-base-api.js.map +1 -0
  14. package/src/api/vtx-mobile-api.d.ts +6 -0
  15. package/src/api/vtx-mobile-api.js +27 -0
  16. package/src/api/vtx-mobile-api.js.map +1 -0
  17. package/src/api/vtx-web-browser-api.d.ts +7 -0
  18. package/src/api/vtx-web-browser-api.js +36 -0
  19. package/src/api/vtx-web-browser-api.js.map +1 -0
  20. package/src/api/vtx-web-server-api.d.ts +7 -0
  21. package/src/api/vtx-web-server-api.js +33 -0
  22. package/src/api/vtx-web-server-api.js.map +1 -0
  23. package/src/client/index.js.map +1 -0
  24. package/src/client/runtime/batcher.js.map +1 -0
  25. package/src/client/runtime/createClient.js.map +1 -0
  26. package/src/client/runtime/error.js.map +1 -0
  27. package/src/client/runtime/fetcher.js.map +1 -0
  28. package/src/client/runtime/generateGraphqlOperation.js.map +1 -0
  29. package/src/client/runtime/index.js.map +1 -0
  30. package/src/client/runtime/linkTypeMap.js.map +1 -0
  31. package/src/client/runtime/typeSelection.js.map +1 -0
  32. package/src/client/runtime/types.js.map +1 -0
  33. package/{schema.d.ts → src/client/schema.d.ts} +53 -0
  34. package/{schema.graphql → src/client/schema.graphql} +25 -0
  35. package/{schema.js → src/client/schema.js} +8 -1
  36. package/src/client/schema.js.map +1 -0
  37. package/{types.d.ts → src/client/types.d.ts} +31 -0
  38. package/{types.js → src/client/types.js} +91 -10
  39. package/src/client/types.js.map +1 -0
  40. package/src/index.d.ts +8 -0
  41. package/src/index.js +25 -0
  42. package/src/index.js.map +1 -0
  43. package/tsconfig.lib.tsbuildinfo +1 -1
  44. package/index.js.map +0 -1
  45. package/index.ts +0 -65
  46. package/runtime/batcher.js.map +0 -1
  47. package/runtime/batcher.ts +0 -275
  48. package/runtime/createClient.js.map +0 -1
  49. package/runtime/createClient.ts +0 -68
  50. package/runtime/error.js.map +0 -1
  51. package/runtime/error.ts +0 -29
  52. package/runtime/fetcher.js.map +0 -1
  53. package/runtime/fetcher.ts +0 -97
  54. package/runtime/generateGraphqlOperation.js.map +0 -1
  55. package/runtime/generateGraphqlOperation.ts +0 -225
  56. package/runtime/index.js.map +0 -1
  57. package/runtime/index.ts +0 -13
  58. package/runtime/linkTypeMap.js.map +0 -1
  59. package/runtime/linkTypeMap.ts +0 -156
  60. package/runtime/typeSelection.js.map +0 -1
  61. package/runtime/typeSelection.ts +0 -95
  62. package/runtime/types.js.map +0 -1
  63. package/runtime/types.ts +0 -69
  64. package/schema.js.map +0 -1
  65. package/schema.ts +0 -420
  66. package/types.js.map +0 -1
  67. package/types.ts +0 -515
  68. /package/{index.d.ts → src/client/index.d.ts} +0 -0
  69. /package/{index.js → src/client/index.js} +0 -0
  70. /package/{runtime → src/client/runtime}/batcher.d.ts +0 -0
  71. /package/{runtime → src/client/runtime}/batcher.js +0 -0
  72. /package/{runtime → src/client/runtime}/createClient.d.ts +0 -0
  73. /package/{runtime → src/client/runtime}/createClient.js +0 -0
  74. /package/{runtime → src/client/runtime}/error.d.ts +0 -0
  75. /package/{runtime → src/client/runtime}/error.js +0 -0
  76. /package/{runtime → src/client/runtime}/fetcher.d.ts +0 -0
  77. /package/{runtime → src/client/runtime}/fetcher.js +0 -0
  78. /package/{runtime → src/client/runtime}/generateGraphqlOperation.d.ts +0 -0
  79. /package/{runtime → src/client/runtime}/generateGraphqlOperation.js +0 -0
  80. /package/{runtime → src/client/runtime}/index.d.ts +0 -0
  81. /package/{runtime → src/client/runtime}/index.js +0 -0
  82. /package/{runtime → src/client/runtime}/linkTypeMap.d.ts +0 -0
  83. /package/{runtime → src/client/runtime}/linkTypeMap.js +0 -0
  84. /package/{runtime → src/client/runtime}/typeSelection.d.ts +0 -0
  85. /package/{runtime → src/client/runtime}/typeSelection.js +0 -0
  86. /package/{runtime → src/client/runtime}/types.d.ts +0 -0
  87. /package/{runtime → src/client/runtime}/types.js +0 -0
@@ -1,68 +0,0 @@
1
- // @ts-nocheck
2
-
3
- import { type BatchOptions, createFetcher } from './fetcher'
4
- import type { ExecutionResult, LinkedType } from './types'
5
- import {
6
- generateGraphqlOperation,
7
- type GraphqlOperation,
8
- } from './generateGraphqlOperation'
9
-
10
- export type Headers =
11
- | HeadersInit
12
- | (() => HeadersInit)
13
- | (() => Promise<HeadersInit>)
14
-
15
- export type BaseFetcher = (
16
- operation: GraphqlOperation | GraphqlOperation[],
17
- ) => Promise<ExecutionResult | ExecutionResult[]>
18
-
19
- export type ClientOptions = Omit<RequestInit, 'body' | 'headers'> & {
20
- url?: string
21
- batch?: BatchOptions | boolean
22
- fetcher?: BaseFetcher
23
- fetch?: Function
24
- headers?: Headers
25
- }
26
-
27
- export const createClient = ({
28
- queryRoot,
29
- mutationRoot,
30
- subscriptionRoot,
31
- ...options
32
- }: ClientOptions & {
33
- queryRoot?: LinkedType
34
- mutationRoot?: LinkedType
35
- subscriptionRoot?: LinkedType
36
- }) => {
37
- const fetcher = createFetcher(options)
38
- const client: {
39
- query?: Function
40
- mutation?: Function
41
- } = {}
42
-
43
- if (queryRoot) {
44
- client.query = (request: any) => {
45
- if (!queryRoot) throw new Error('queryRoot argument is missing')
46
-
47
- const resultPromise = fetcher(
48
- generateGraphqlOperation('query', queryRoot, request),
49
- )
50
-
51
- return resultPromise
52
- }
53
- }
54
- if (mutationRoot) {
55
- client.mutation = (request: any) => {
56
- if (!mutationRoot)
57
- throw new Error('mutationRoot argument is missing')
58
-
59
- const resultPromise = fetcher(
60
- generateGraphqlOperation('mutation', mutationRoot, request),
61
- )
62
-
63
- return resultPromise
64
- }
65
- }
66
-
67
- return client as any
68
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/error.ts"],"names":[],"mappings":";;;AACA,MAAa,UAAW,SAAQ,KAAK;IAMjC,YAAY,MAAa,EAAE,IAAS;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,EAAE,CAAA;QACR,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,GAAG,eAAe,CAAA;QAC7B,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,CAAA;QAZlB,WAAM,GAAwB,EAAE,CAAA;QAa5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;CACJ;AAjBD,gCAiBC"}
package/runtime/error.ts DELETED
@@ -1,29 +0,0 @@
1
- // @ts-nocheck
2
- export class GenqlError extends Error {
3
- errors: Array<GraphqlError> = []
4
- /**
5
- * Partial data returned by the server
6
- */
7
- data?: any
8
- constructor(errors: any[], data: any) {
9
- let message = Array.isArray(errors)
10
- ? errors.map((x) => x?.message || '').join('\n')
11
- : ''
12
- if (!message) {
13
- message = 'GraphQL error'
14
- }
15
- super(message)
16
- this.errors = errors
17
- this.data = data
18
- }
19
- }
20
-
21
- interface GraphqlError {
22
- message: string
23
- locations?: Array<{
24
- line: number
25
- column: number
26
- }>
27
- path?: string[]
28
- extensions?: Record<string, any>
29
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/fetcher.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- // @ts-nocheck
2
- import { QueryBatcher } from './batcher'
3
-
4
- import type { ClientOptions } from './createClient'
5
- import type { GraphqlOperation } from './generateGraphqlOperation'
6
- import { GenqlError } from './error'
7
-
8
- export interface Fetcher {
9
- (gql: GraphqlOperation): Promise<any>
10
- }
11
-
12
- export type BatchOptions = {
13
- batchInterval?: number // ms
14
- maxBatchSize?: number
15
- }
16
-
17
- const DEFAULT_BATCH_OPTIONS = {
18
- maxBatchSize: 10,
19
- batchInterval: 40,
20
- }
21
-
22
- export const createFetcher = ({
23
- url,
24
- headers = {},
25
- fetcher,
26
- fetch: _fetch,
27
- batch = false,
28
- ...rest
29
- }: ClientOptions): Fetcher => {
30
- if (!url && !fetcher) {
31
- throw new Error('url or fetcher is required')
32
- }
33
-
34
- fetcher = fetcher || (async (body) => {
35
- let headersObject =
36
- typeof headers == 'function' ? await headers() : headers
37
- headersObject = headersObject || {}
38
- if (typeof fetch === 'undefined' && !_fetch) {
39
- throw new Error(
40
- 'Global `fetch` function is not available, pass a fetch polyfill to Genql `createClient`',
41
- )
42
- }
43
- let fetchImpl = _fetch || fetch
44
- const res = await fetchImpl(url!, {
45
- headers: {
46
- 'Content-Type': 'application/json',
47
- ...headersObject,
48
- },
49
- method: 'POST',
50
- body: JSON.stringify(body),
51
- ...rest,
52
- })
53
- if (!res.ok) {
54
- throw new Error(`${res.statusText}: ${await res.text()}`)
55
- }
56
- const json = await res.json()
57
- return json
58
- })
59
-
60
- if (!batch) {
61
- return async (body) => {
62
- const json = await fetcher!(body)
63
- if (Array.isArray(json)) {
64
- return json.map((json) => {
65
- if (json?.errors?.length) {
66
- throw new GenqlError(json.errors || [], json.data)
67
- }
68
- return json.data
69
- })
70
- } else {
71
- if (json?.errors?.length) {
72
- throw new GenqlError(json.errors || [], json.data)
73
- }
74
- return json.data
75
- }
76
- }
77
- }
78
-
79
- const batcher = new QueryBatcher(
80
- async (batchedQuery) => {
81
- // console.log(batchedQuery) // [{ query: 'query{user{age}}', variables: {} }, ...]
82
- const json = await fetcher!(batchedQuery)
83
- return json as any
84
- },
85
- batch === true ? DEFAULT_BATCH_OPTIONS : batch,
86
- )
87
-
88
- return async ({ query, variables }) => {
89
- const json = await batcher.fetch(query, variables)
90
- if (json?.data) {
91
- return json.data
92
- }
93
- throw new Error(
94
- 'Genql batch fetcher returned unexpected result ' + JSON.stringify(json),
95
- )
96
- }
97
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateGraphqlOperation.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/generateGraphqlOperation.ts"],"names":[],"mappings":"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"}
@@ -1,225 +0,0 @@
1
- // @ts-nocheck
2
- import type { LinkedField, LinkedType } from './types'
3
-
4
- export interface Args {
5
- [arg: string]: any | undefined
6
- }
7
-
8
- export interface Fields {
9
- [field: string]: Request
10
- }
11
-
12
- export type Request = boolean | number | Fields
13
-
14
- export interface Variables {
15
- [name: string]: {
16
- value: any
17
- typing: [LinkedType, string]
18
- }
19
- }
20
-
21
- export interface Context {
22
- root: LinkedType
23
- varCounter: number
24
- variables: Variables
25
- fragmentCounter: number
26
- fragments: string[]
27
- }
28
-
29
- export interface GraphqlOperation {
30
- query: string
31
- variables?: { [name: string]: any }
32
- operationName?: string
33
- }
34
-
35
- const parseRequest = (
36
- request: Request | undefined,
37
- ctx: Context,
38
- path: string[],
39
- ): string => {
40
- if (typeof request === 'object' && '__args' in request) {
41
- const args: any = request.__args
42
- let fields: Request | undefined = { ...request }
43
- delete fields.__args
44
- const argNames = Object.keys(args)
45
-
46
- if (argNames.length === 0) {
47
- return parseRequest(fields, ctx, path)
48
- }
49
-
50
- const field = getFieldFromPath(ctx.root, path)
51
-
52
- const argStrings = argNames.map((argName) => {
53
- ctx.varCounter++
54
- const varName = `v${ctx.varCounter}`
55
-
56
- const typing = field.args && field.args[argName] // typeMap used here, .args
57
-
58
- if (!typing) {
59
- throw new Error(
60
- `no typing defined for argument \`${argName}\` in path \`${path.join(
61
- '.',
62
- )}\``,
63
- )
64
- }
65
-
66
- ctx.variables[varName] = {
67
- value: args[argName],
68
- typing,
69
- }
70
-
71
- return `${argName}:$${varName}`
72
- })
73
- return `(${argStrings})${parseRequest(fields, ctx, path)}`
74
- } else if (typeof request === 'object' && Object.keys(request).length > 0) {
75
- const fields = request
76
- const fieldNames = Object.keys(fields).filter((k) => Boolean(fields[k]))
77
-
78
- if (fieldNames.length === 0) {
79
- throw new Error(
80
- `field selection should not be empty: ${path.join('.')}`,
81
- )
82
- }
83
-
84
- const type =
85
- path.length > 0 ? getFieldFromPath(ctx.root, path).type : ctx.root
86
- const scalarFields = type.scalar
87
-
88
- let scalarFieldsFragment: string | undefined
89
-
90
- if (fieldNames.includes('__scalar')) {
91
- const falsyFieldNames = new Set(
92
- Object.keys(fields).filter((k) => !Boolean(fields[k])),
93
- )
94
- if (scalarFields?.length) {
95
- ctx.fragmentCounter++
96
- scalarFieldsFragment = `f${ctx.fragmentCounter}`
97
-
98
- ctx.fragments.push(
99
- `fragment ${scalarFieldsFragment} on ${
100
- type.name
101
- }{${scalarFields
102
- .filter((f) => !falsyFieldNames.has(f))
103
- .join(',')}}`,
104
- )
105
- }
106
- }
107
-
108
- const fieldsSelection = fieldNames
109
- .filter((f) => !['__scalar', '__name'].includes(f))
110
- .map((f) => {
111
- const parsed = parseRequest(fields[f], ctx, [...path, f])
112
-
113
- if (f.startsWith('on_')) {
114
- ctx.fragmentCounter++
115
- const implementationFragment = `f${ctx.fragmentCounter}`
116
-
117
- const typeMatch = f.match(/^on_(.+)/)
118
-
119
- if (!typeMatch || !typeMatch[1])
120
- throw new Error('match failed')
121
-
122
- ctx.fragments.push(
123
- `fragment ${implementationFragment} on ${typeMatch[1]}${parsed}`,
124
- )
125
-
126
- return `...${implementationFragment}`
127
- } else {
128
- return `${f}${parsed}`
129
- }
130
- })
131
- .concat(scalarFieldsFragment ? [`...${scalarFieldsFragment}`] : [])
132
- .join(',')
133
-
134
- return `{${fieldsSelection}}`
135
- } else {
136
- return ''
137
- }
138
- }
139
-
140
- export const generateGraphqlOperation = (
141
- operation: 'query' | 'mutation' | 'subscription',
142
- root: LinkedType,
143
- fields?: Fields,
144
- ): GraphqlOperation => {
145
- const ctx: Context = {
146
- root: root,
147
- varCounter: 0,
148
- variables: {},
149
- fragmentCounter: 0,
150
- fragments: [],
151
- }
152
- const result = parseRequest(fields, ctx, [])
153
-
154
- const varNames = Object.keys(ctx.variables)
155
-
156
- const varsString =
157
- varNames.length > 0
158
- ? `(${varNames.map((v) => {
159
- const variableType = ctx.variables[v].typing[1]
160
- return `$${v}:${variableType}`
161
- })})`
162
- : ''
163
-
164
- const operationName = fields?.__name || ''
165
-
166
- return {
167
- query: [
168
- `${operation} ${operationName}${varsString}${result}`,
169
- ...ctx.fragments,
170
- ].join(','),
171
- variables: Object.keys(ctx.variables).reduce<{ [name: string]: any }>(
172
- (r, v) => {
173
- r[v] = ctx.variables[v].value
174
- return r
175
- },
176
- {},
177
- ),
178
- ...(operationName ? { operationName: operationName.toString() } : {}),
179
- }
180
- }
181
-
182
- export const getFieldFromPath = (
183
- root: LinkedType | undefined,
184
- path: string[],
185
- ) => {
186
- let current: LinkedField | undefined
187
-
188
- if (!root) throw new Error('root type is not provided')
189
-
190
- if (path.length === 0) throw new Error(`path is empty`)
191
-
192
- path.forEach((f) => {
193
- const type = current ? current.type : root
194
-
195
- if (!type.fields)
196
- throw new Error(`type \`${type.name}\` does not have fields`)
197
-
198
- const possibleTypes = Object.keys(type.fields)
199
- .filter((i) => i.startsWith('on_'))
200
- .reduce(
201
- (types, fieldName) => {
202
- const field = type.fields && type.fields[fieldName]
203
- if (field) types.push(field.type)
204
- return types
205
- },
206
- [type],
207
- )
208
-
209
- let field: LinkedField | null = null
210
-
211
- possibleTypes.forEach((type) => {
212
- const found = type.fields && type.fields[f]
213
- if (found) field = found
214
- })
215
-
216
- if (!field)
217
- throw new Error(
218
- `type \`${type.name}\` does not have a field \`${f}\``,
219
- )
220
-
221
- current = field
222
- })
223
-
224
- return current as LinkedField
225
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/index.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAGrB,uEAAqE;AAA5D,oIAAA,wBAAwB,OAAA;AAEjC,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AAEpB,qCAAyC;AAAhC,wGAAA,aAAa,OAAA;AACtB,iCAAoC;AAA3B,mGAAA,UAAU,OAAA;AACN,QAAA,UAAU,GAAG;IACtB,QAAQ,EAAE,IAAI;CACjB,CAAA"}
package/runtime/index.ts DELETED
@@ -1,13 +0,0 @@
1
- // @ts-nocheck
2
- export { createClient } from './createClient'
3
- export type { ClientOptions } from './createClient'
4
- export type { FieldsSelection } from './typeSelection'
5
- export { generateGraphqlOperation } from './generateGraphqlOperation'
6
- export type { GraphqlOperation } from './generateGraphqlOperation'
7
- export { linkTypeMap } from './linkTypeMap'
8
- // export { Observable } from 'zen-observable-ts'
9
- export { createFetcher } from './fetcher'
10
- export { GenqlError } from './error'
11
- export const everything = {
12
- __scalar: true,
13
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkTypeMap.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/linkTypeMap.ts"],"names":[],"mappings":"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"}
@@ -1,156 +0,0 @@
1
- // @ts-nocheck
2
- import type {
3
- CompressedType,
4
- CompressedTypeMap,
5
- LinkedArgMap,
6
- LinkedField,
7
- LinkedType,
8
- LinkedTypeMap,
9
- } from './types'
10
-
11
- export interface PartialLinkedFieldMap {
12
- [field: string]: {
13
- type: string
14
- args?: LinkedArgMap
15
- }
16
- }
17
-
18
- export const linkTypeMap = (
19
- typeMap: CompressedTypeMap<number>,
20
- ): LinkedTypeMap => {
21
- const indexToName: Record<number, string> = Object.assign(
22
- {},
23
- ...Object.keys(typeMap.types).map((k, i) => ({ [i]: k })),
24
- )
25
-
26
- let intermediaryTypeMap = Object.assign(
27
- {},
28
- ...Object.keys(typeMap.types || {}).map(
29
- (k): Record<string, LinkedType> => {
30
- const type: CompressedType = typeMap.types[k]!
31
- const fields = type || {}
32
- return {
33
- [k]: {
34
- name: k,
35
- // type scalar properties
36
- scalar: Object.keys(fields).filter((f) => {
37
- const [type] = fields[f] || []
38
-
39
- const isScalar =
40
- type && typeMap.scalars.includes(type)
41
- if (!isScalar) {
42
- return false
43
- }
44
- const args = fields[f]?.[1]
45
- const argTypes = Object.values(args || {})
46
- .map((x) => x?.[1])
47
- .filter(Boolean)
48
-
49
- const hasRequiredArgs = argTypes.some(
50
- (str) => str && str.endsWith('!'),
51
- )
52
- if (hasRequiredArgs) {
53
- return false
54
- }
55
- return true
56
- }),
57
- // fields with corresponding `type` and `args`
58
- fields: Object.assign(
59
- {},
60
- ...Object.keys(fields).map(
61
- (f): PartialLinkedFieldMap => {
62
- const [typeIndex, args] = fields[f] || []
63
- if (typeIndex == null) {
64
- return {}
65
- }
66
- return {
67
- [f]: {
68
- // replace index with type name
69
- type: indexToName[typeIndex],
70
- args: Object.assign(
71
- {},
72
- ...Object.keys(args || {}).map(
73
- (k) => {
74
- // if argTypeString == argTypeName, argTypeString is missing, need to readd it
75
- if (!args || !args[k]) {
76
- return
77
- }
78
- const [
79
- argTypeName,
80
- argTypeString,
81
- ] = args[k] as any
82
- return {
83
- [k]: [
84
- indexToName[
85
- argTypeName
86
- ],
87
- argTypeString ||
88
- indexToName[
89
- argTypeName
90
- ],
91
- ],
92
- }
93
- },
94
- ),
95
- ),
96
- },
97
- }
98
- },
99
- ),
100
- ),
101
- },
102
- }
103
- },
104
- ),
105
- )
106
- const res = resolveConcreteTypes(intermediaryTypeMap)
107
- return res
108
- }
109
-
110
- // replace typename with concrete type
111
- export const resolveConcreteTypes = (linkedTypeMap: LinkedTypeMap) => {
112
- Object.keys(linkedTypeMap).forEach((typeNameFromKey) => {
113
- const type: LinkedType = linkedTypeMap[typeNameFromKey]!
114
- // type.name = typeNameFromKey
115
- if (!type.fields) {
116
- return
117
- }
118
-
119
- const fields = type.fields
120
-
121
- Object.keys(fields).forEach((f) => {
122
- const field: LinkedField = fields[f]!
123
-
124
- if (field.args) {
125
- const args = field.args
126
- Object.keys(args).forEach((key) => {
127
- const arg = args[key]
128
-
129
- if (arg) {
130
- const [typeName] = arg
131
-
132
- if (typeof typeName === 'string') {
133
- if (!linkedTypeMap[typeName]) {
134
- linkedTypeMap[typeName] = { name: typeName }
135
- }
136
-
137
- arg[0] = linkedTypeMap[typeName]!
138
- }
139
- }
140
- })
141
- }
142
-
143
- const typeName = field.type as LinkedType | string
144
-
145
- if (typeof typeName === 'string') {
146
- if (!linkedTypeMap[typeName]) {
147
- linkedTypeMap[typeName] = { name: typeName }
148
- }
149
-
150
- field.type = linkedTypeMap[typeName]!
151
- }
152
- })
153
- })
154
-
155
- return linkedTypeMap
156
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeSelection.js","sourceRoot":"","sources":["../../../../libs/vtx-backend-client/runtime/typeSelection.ts"],"names":[],"mappings":""}