@vertikalx/vtx-backend-client 3.0.1-dev-max.0 → 3.0.1-dev-max.2

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 (95) hide show
  1. package/package.json +1 -1
  2. package/src/api/api-call-headers.d.ts +12 -0
  3. package/src/api/api-call-headers.js +16 -0
  4. package/src/api/api-call-headers.js.map +1 -0
  5. package/src/api/backend-response.d.ts +10 -0
  6. package/src/api/backend-response.js +3 -0
  7. package/src/api/backend-response.js.map +1 -0
  8. package/src/api/domains.d.ts +4 -0
  9. package/src/api/domains.js +8 -0
  10. package/src/api/domains.js.map +1 -0
  11. package/src/api/response-builder.d.ts +4 -0
  12. package/src/api/response-builder.js +123 -0
  13. package/src/api/response-builder.js.map +1 -0
  14. package/src/api/types.d.ts +2 -0
  15. package/src/api/types.js +3 -0
  16. package/src/api/types.js.map +1 -0
  17. package/src/api/vtx-apikey-api.d.ts +6 -0
  18. package/src/api/vtx-apikey-api.js +19 -0
  19. package/src/api/vtx-apikey-api.js.map +1 -0
  20. package/src/api/vtx-base-api.d.ts +349 -0
  21. package/src/api/vtx-base-api.js +836 -0
  22. package/src/api/vtx-base-api.js.map +1 -0
  23. package/src/api/vtx-mobile-api.d.ts +11 -0
  24. package/src/api/vtx-mobile-api.js +28 -0
  25. package/src/api/vtx-mobile-api.js.map +1 -0
  26. package/src/api/vtx-web-browser-api.d.ts +7 -0
  27. package/src/api/vtx-web-browser-api.js +37 -0
  28. package/src/api/vtx-web-browser-api.js.map +1 -0
  29. package/src/api/vtx-web-server-api.d.ts +7 -0
  30. package/src/api/vtx-web-server-api.js +34 -0
  31. package/src/api/vtx-web-server-api.js.map +1 -0
  32. package/src/client/index.d.ts +25 -0
  33. package/src/client/index.js +44 -0
  34. package/src/client/index.js.map +1 -0
  35. package/src/client/runtime/batcher.d.ts +36 -0
  36. package/src/client/runtime/batcher.js +123 -0
  37. package/src/client/runtime/batcher.js.map +1 -0
  38. package/src/client/runtime/createClient.d.ts +17 -0
  39. package/src/client/runtime/createClient.js +28 -0
  40. package/src/client/runtime/createClient.js.map +1 -0
  41. package/src/client/runtime/error.d.ts +15 -0
  42. package/src/client/runtime/error.js +19 -0
  43. package/src/client/runtime/error.js.map +1 -0
  44. package/src/client/runtime/fetcher.d.ts +10 -0
  45. package/src/client/runtime/fetcher.js +68 -0
  46. package/src/client/runtime/fetcher.js.map +1 -0
  47. package/src/client/runtime/generateGraphqlOperation.d.ts +30 -0
  48. package/src/client/runtime/generateGraphqlOperation.js +134 -0
  49. package/src/client/runtime/generateGraphqlOperation.js.map +1 -0
  50. package/src/client/runtime/index.d.ts +11 -0
  51. package/src/client/runtime/index.js +17 -0
  52. package/src/client/runtime/index.js.map +1 -0
  53. package/src/client/runtime/linkTypeMap.d.ts +9 -0
  54. package/src/client/runtime/linkTypeMap.js +95 -0
  55. package/src/client/runtime/linkTypeMap.js.map +1 -0
  56. package/src/client/runtime/typeSelection.d.ts +28 -0
  57. package/src/client/runtime/typeSelection.js +3 -0
  58. package/src/client/runtime/typeSelection.js.map +1 -0
  59. package/src/client/runtime/types.d.ts +55 -0
  60. package/src/client/runtime/types.js +3 -0
  61. package/src/client/runtime/types.js.map +1 -0
  62. package/src/client/schema.d.ts +7646 -0
  63. package/src/client/schema.js +1654 -0
  64. package/src/client/schema.js.map +1 -0
  65. package/src/client/types.d.ts +4041 -0
  66. package/src/client/{types.ts → types.js} +5 -2
  67. package/src/client/types.js.map +1 -0
  68. package/src/generated/graphql.d.ts +13696 -0
  69. package/src/generated/graphql.js +5830 -0
  70. package/src/generated/graphql.js.map +1 -0
  71. package/src/{index.ts → index.d.ts} +2 -5
  72. package/src/index.js +31 -0
  73. package/src/index.js.map +1 -0
  74. package/src/api/api-call-headers.ts +0 -35
  75. package/src/api/backend-response.ts +0 -14
  76. package/src/api/domains.ts +0 -6
  77. package/src/api/response-builder.ts +0 -165
  78. package/src/api/types.ts +0 -9
  79. package/src/api/vtx-apikey-api.ts +0 -23
  80. package/src/api/vtx-base-api.ts +0 -2253
  81. package/src/api/vtx-mobile-api.ts +0 -43
  82. package/src/api/vtx-web-browser-api.ts +0 -46
  83. package/src/api/vtx-web-server-api.ts +0 -41
  84. package/src/client/index.ts +0 -65
  85. package/src/client/runtime/batcher.ts +0 -275
  86. package/src/client/runtime/createClient.ts +0 -68
  87. package/src/client/runtime/error.ts +0 -29
  88. package/src/client/runtime/fetcher.ts +0 -97
  89. package/src/client/runtime/generateGraphqlOperation.ts +0 -225
  90. package/src/client/runtime/index.ts +0 -13
  91. package/src/client/runtime/linkTypeMap.ts +0 -156
  92. package/src/client/runtime/typeSelection.ts +0 -95
  93. package/src/client/runtime/types.ts +0 -69
  94. package/src/client/schema.ts +0 -8329
  95. package/src/generated/graphql.ts +0 -12445
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFetcher = void 0;
4
+ const batcher_1 = require("./batcher");
5
+ const error_1 = require("./error");
6
+ const DEFAULT_BATCH_OPTIONS = {
7
+ maxBatchSize: 10,
8
+ batchInterval: 40,
9
+ };
10
+ const createFetcher = ({ url, headers = {}, fetcher, fetch: _fetch, batch = false, ...rest }) => {
11
+ if (!url && !fetcher) {
12
+ throw new Error('url or fetcher is required');
13
+ }
14
+ fetcher = fetcher || (async (body) => {
15
+ let headersObject = typeof headers == 'function' ? await headers() : headers;
16
+ headersObject = headersObject || {};
17
+ if (typeof fetch === 'undefined' && !_fetch) {
18
+ throw new Error('Global `fetch` function is not available, pass a fetch polyfill to Genql `createClient`');
19
+ }
20
+ let fetchImpl = _fetch || fetch;
21
+ const res = await fetchImpl(url, {
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ ...headersObject,
25
+ },
26
+ method: 'POST',
27
+ body: JSON.stringify(body),
28
+ ...rest,
29
+ });
30
+ if (!res.ok) {
31
+ throw new Error(`${res.statusText}: ${await res.text()}`);
32
+ }
33
+ const json = await res.json();
34
+ return json;
35
+ });
36
+ if (!batch) {
37
+ return async (body) => {
38
+ const json = await fetcher(body);
39
+ if (Array.isArray(json)) {
40
+ return json.map((json) => {
41
+ if (json?.errors?.length) {
42
+ throw new error_1.GenqlError(json.errors || [], json.data);
43
+ }
44
+ return json.data;
45
+ });
46
+ }
47
+ else {
48
+ if (json?.errors?.length) {
49
+ throw new error_1.GenqlError(json.errors || [], json.data);
50
+ }
51
+ return json.data;
52
+ }
53
+ };
54
+ }
55
+ const batcher = new batcher_1.QueryBatcher(async (batchedQuery) => {
56
+ const json = await fetcher(batchedQuery);
57
+ return json;
58
+ }, batch === true ? DEFAULT_BATCH_OPTIONS : batch);
59
+ return async ({ query, variables }) => {
60
+ const json = await batcher.fetch(query, variables);
61
+ if (json?.data) {
62
+ return json.data;
63
+ }
64
+ throw new Error('Genql batch fetcher returned unexpected result ' + JSON.stringify(json));
65
+ };
66
+ };
67
+ exports.createFetcher = createFetcher;
68
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["fetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { LinkedField, LinkedType } from './types';
2
+ export interface Args {
3
+ [arg: string]: any | undefined;
4
+ }
5
+ export interface Fields {
6
+ [field: string]: Request;
7
+ }
8
+ export type Request = boolean | number | Fields;
9
+ export interface Variables {
10
+ [name: string]: {
11
+ value: any;
12
+ typing: [LinkedType, string];
13
+ };
14
+ }
15
+ export interface Context {
16
+ root: LinkedType;
17
+ varCounter: number;
18
+ variables: Variables;
19
+ fragmentCounter: number;
20
+ fragments: string[];
21
+ }
22
+ export interface GraphqlOperation {
23
+ query: string;
24
+ variables?: {
25
+ [name: string]: any;
26
+ };
27
+ operationName?: string;
28
+ }
29
+ export declare const generateGraphqlOperation: (operation: "query" | "mutation" | "subscription", root: LinkedType, fields?: Fields) => GraphqlOperation;
30
+ export declare const getFieldFromPath: (root: LinkedType | undefined, path: string[]) => LinkedField;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFieldFromPath = exports.generateGraphqlOperation = void 0;
4
+ const parseRequest = (request, ctx, path) => {
5
+ if (typeof request === 'object' && '__args' in request) {
6
+ const args = request.__args;
7
+ let fields = { ...request };
8
+ delete fields.__args;
9
+ const argNames = Object.keys(args);
10
+ if (argNames.length === 0) {
11
+ return parseRequest(fields, ctx, path);
12
+ }
13
+ const field = (0, exports.getFieldFromPath)(ctx.root, path);
14
+ const argStrings = argNames.map((argName) => {
15
+ ctx.varCounter++;
16
+ const varName = `v${ctx.varCounter}`;
17
+ const typing = field.args && field.args[argName];
18
+ if (!typing) {
19
+ throw new Error(`no typing defined for argument \`${argName}\` in path \`${path.join('.')}\``);
20
+ }
21
+ ctx.variables[varName] = {
22
+ value: args[argName],
23
+ typing,
24
+ };
25
+ return `${argName}:$${varName}`;
26
+ });
27
+ return `(${argStrings})${parseRequest(fields, ctx, path)}`;
28
+ }
29
+ else if (typeof request === 'object' && Object.keys(request).length > 0) {
30
+ const fields = request;
31
+ const fieldNames = Object.keys(fields).filter((k) => Boolean(fields[k]));
32
+ if (fieldNames.length === 0) {
33
+ throw new Error(`field selection should not be empty: ${path.join('.')}`);
34
+ }
35
+ const type = path.length > 0 ? (0, exports.getFieldFromPath)(ctx.root, path).type : ctx.root;
36
+ const scalarFields = type.scalar;
37
+ let scalarFieldsFragment;
38
+ if (fieldNames.includes('__scalar')) {
39
+ const falsyFieldNames = new Set(Object.keys(fields).filter((k) => !Boolean(fields[k])));
40
+ if (scalarFields?.length) {
41
+ ctx.fragmentCounter++;
42
+ scalarFieldsFragment = `f${ctx.fragmentCounter}`;
43
+ ctx.fragments.push(`fragment ${scalarFieldsFragment} on ${type.name}{${scalarFields
44
+ .filter((f) => !falsyFieldNames.has(f))
45
+ .join(',')}}`);
46
+ }
47
+ }
48
+ const fieldsSelection = fieldNames
49
+ .filter((f) => !['__scalar', '__name'].includes(f))
50
+ .map((f) => {
51
+ const parsed = parseRequest(fields[f], ctx, [...path, f]);
52
+ if (f.startsWith('on_')) {
53
+ ctx.fragmentCounter++;
54
+ const implementationFragment = `f${ctx.fragmentCounter}`;
55
+ const typeMatch = f.match(/^on_(.+)/);
56
+ if (!typeMatch || !typeMatch[1])
57
+ throw new Error('match failed');
58
+ ctx.fragments.push(`fragment ${implementationFragment} on ${typeMatch[1]}${parsed}`);
59
+ return `...${implementationFragment}`;
60
+ }
61
+ else {
62
+ return `${f}${parsed}`;
63
+ }
64
+ })
65
+ .concat(scalarFieldsFragment ? [`...${scalarFieldsFragment}`] : [])
66
+ .join(',');
67
+ return `{${fieldsSelection}}`;
68
+ }
69
+ else {
70
+ return '';
71
+ }
72
+ };
73
+ const generateGraphqlOperation = (operation, root, fields) => {
74
+ const ctx = {
75
+ root: root,
76
+ varCounter: 0,
77
+ variables: {},
78
+ fragmentCounter: 0,
79
+ fragments: [],
80
+ };
81
+ const result = parseRequest(fields, ctx, []);
82
+ const varNames = Object.keys(ctx.variables);
83
+ const varsString = varNames.length > 0
84
+ ? `(${varNames.map((v) => {
85
+ const variableType = ctx.variables[v].typing[1];
86
+ return `$${v}:${variableType}`;
87
+ })})`
88
+ : '';
89
+ const operationName = fields?.__name || '';
90
+ return {
91
+ query: [
92
+ `${operation} ${operationName}${varsString}${result}`,
93
+ ...ctx.fragments,
94
+ ].join(','),
95
+ variables: Object.keys(ctx.variables).reduce((r, v) => {
96
+ r[v] = ctx.variables[v].value;
97
+ return r;
98
+ }, {}),
99
+ ...(operationName ? { operationName: operationName.toString() } : {}),
100
+ };
101
+ };
102
+ exports.generateGraphqlOperation = generateGraphqlOperation;
103
+ const getFieldFromPath = (root, path) => {
104
+ let current;
105
+ if (!root)
106
+ throw new Error('root type is not provided');
107
+ if (path.length === 0)
108
+ throw new Error(`path is empty`);
109
+ path.forEach((f) => {
110
+ const type = current ? current.type : root;
111
+ if (!type.fields)
112
+ throw new Error(`type \`${type.name}\` does not have fields`);
113
+ const possibleTypes = Object.keys(type.fields)
114
+ .filter((i) => i.startsWith('on_'))
115
+ .reduce((types, fieldName) => {
116
+ const field = type.fields && type.fields[fieldName];
117
+ if (field)
118
+ types.push(field.type);
119
+ return types;
120
+ }, [type]);
121
+ let field = null;
122
+ possibleTypes.forEach((type) => {
123
+ const found = type.fields && type.fields[f];
124
+ if (found)
125
+ field = found;
126
+ });
127
+ if (!field)
128
+ throw new Error(`type \`${type.name}\` does not have a field \`${f}\``);
129
+ current = field;
130
+ });
131
+ return current;
132
+ };
133
+ exports.getFieldFromPath = getFieldFromPath;
134
+ //# sourceMappingURL=generateGraphqlOperation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateGraphqlOperation.js","sourceRoot":"","sources":["generateGraphqlOperation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { createClient } from './createClient';
2
+ export type { ClientOptions } from './createClient';
3
+ export type { FieldsSelection } from './typeSelection';
4
+ export { generateGraphqlOperation } from './generateGraphqlOperation';
5
+ export type { GraphqlOperation } from './generateGraphqlOperation';
6
+ export { linkTypeMap } from './linkTypeMap';
7
+ export { createFetcher } from './fetcher';
8
+ export { GenqlError } from './error';
9
+ export declare const everything: {
10
+ __scalar: boolean;
11
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.everything = exports.GenqlError = exports.createFetcher = exports.linkTypeMap = exports.generateGraphqlOperation = exports.createClient = void 0;
4
+ var createClient_1 = require("./createClient");
5
+ Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return createClient_1.createClient; } });
6
+ var generateGraphqlOperation_1 = require("./generateGraphqlOperation");
7
+ Object.defineProperty(exports, "generateGraphqlOperation", { enumerable: true, get: function () { return generateGraphqlOperation_1.generateGraphqlOperation; } });
8
+ var linkTypeMap_1 = require("./linkTypeMap");
9
+ Object.defineProperty(exports, "linkTypeMap", { enumerable: true, get: function () { return linkTypeMap_1.linkTypeMap; } });
10
+ var fetcher_1 = require("./fetcher");
11
+ Object.defineProperty(exports, "createFetcher", { enumerable: true, get: function () { return fetcher_1.createFetcher; } });
12
+ var error_1 = require("./error");
13
+ Object.defineProperty(exports, "GenqlError", { enumerable: true, get: function () { return error_1.GenqlError; } });
14
+ exports.everything = {
15
+ __scalar: true,
16
+ };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["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"}
@@ -0,0 +1,9 @@
1
+ import type { CompressedTypeMap, LinkedArgMap, LinkedTypeMap } from './types';
2
+ export interface PartialLinkedFieldMap {
3
+ [field: string]: {
4
+ type: string;
5
+ args?: LinkedArgMap;
6
+ };
7
+ }
8
+ export declare const linkTypeMap: (typeMap: CompressedTypeMap<number>) => LinkedTypeMap;
9
+ export declare const resolveConcreteTypes: (linkedTypeMap: LinkedTypeMap) => LinkedTypeMap;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveConcreteTypes = exports.linkTypeMap = void 0;
4
+ const linkTypeMap = (typeMap) => {
5
+ const indexToName = Object.assign({}, ...Object.keys(typeMap.types).map((k, i) => ({ [i]: k })));
6
+ let intermediaryTypeMap = Object.assign({}, ...Object.keys(typeMap.types || {}).map((k) => {
7
+ const type = typeMap.types[k];
8
+ const fields = type || {};
9
+ return {
10
+ [k]: {
11
+ name: k,
12
+ scalar: Object.keys(fields).filter((f) => {
13
+ const [type] = fields[f] || [];
14
+ const isScalar = type && typeMap.scalars.includes(type);
15
+ if (!isScalar) {
16
+ return false;
17
+ }
18
+ const args = fields[f]?.[1];
19
+ const argTypes = Object.values(args || {})
20
+ .map((x) => x?.[1])
21
+ .filter(Boolean);
22
+ const hasRequiredArgs = argTypes.some((str) => str && str.endsWith('!'));
23
+ if (hasRequiredArgs) {
24
+ return false;
25
+ }
26
+ return true;
27
+ }),
28
+ fields: Object.assign({}, ...Object.keys(fields).map((f) => {
29
+ const [typeIndex, args] = fields[f] || [];
30
+ if (typeIndex == null) {
31
+ return {};
32
+ }
33
+ return {
34
+ [f]: {
35
+ type: indexToName[typeIndex],
36
+ args: Object.assign({}, ...Object.keys(args || {}).map((k) => {
37
+ if (!args || !args[k]) {
38
+ return;
39
+ }
40
+ const [argTypeName, argTypeString,] = args[k];
41
+ return {
42
+ [k]: [
43
+ indexToName[argTypeName],
44
+ argTypeString ||
45
+ indexToName[argTypeName],
46
+ ],
47
+ };
48
+ })),
49
+ },
50
+ };
51
+ })),
52
+ },
53
+ };
54
+ }));
55
+ const res = (0, exports.resolveConcreteTypes)(intermediaryTypeMap);
56
+ return res;
57
+ };
58
+ exports.linkTypeMap = linkTypeMap;
59
+ const resolveConcreteTypes = (linkedTypeMap) => {
60
+ Object.keys(linkedTypeMap).forEach((typeNameFromKey) => {
61
+ const type = linkedTypeMap[typeNameFromKey];
62
+ if (!type.fields) {
63
+ return;
64
+ }
65
+ const fields = type.fields;
66
+ Object.keys(fields).forEach((f) => {
67
+ const field = fields[f];
68
+ if (field.args) {
69
+ const args = field.args;
70
+ Object.keys(args).forEach((key) => {
71
+ const arg = args[key];
72
+ if (arg) {
73
+ const [typeName] = arg;
74
+ if (typeof typeName === 'string') {
75
+ if (!linkedTypeMap[typeName]) {
76
+ linkedTypeMap[typeName] = { name: typeName };
77
+ }
78
+ arg[0] = linkedTypeMap[typeName];
79
+ }
80
+ }
81
+ });
82
+ }
83
+ const typeName = field.type;
84
+ if (typeof typeName === 'string') {
85
+ if (!linkedTypeMap[typeName]) {
86
+ linkedTypeMap[typeName] = { name: typeName };
87
+ }
88
+ field.type = linkedTypeMap[typeName];
89
+ }
90
+ });
91
+ });
92
+ return linkedTypeMap;
93
+ };
94
+ exports.resolveConcreteTypes = resolveConcreteTypes;
95
+ //# sourceMappingURL=linkTypeMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkTypeMap.js","sourceRoot":"","sources":["linkTypeMap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type FieldsSelection<SRC extends Anify<DST> | undefined, DST> = {
2
+ scalar: SRC;
3
+ union: Handle__isUnion<SRC, DST>;
4
+ object: HandleObject<SRC, DST>;
5
+ array: SRC extends Nil ? never : SRC extends Array<infer T | null> ? Array<FieldsSelection<T, DST>> : never;
6
+ __scalar: Handle__scalar<SRC, DST>;
7
+ never: never;
8
+ }[DST extends Nil ? 'never' : DST extends false | 0 ? 'never' : SRC extends Scalar ? 'scalar' : SRC extends any[] ? 'array' : SRC extends {
9
+ __isUnion?: any;
10
+ } ? 'union' : DST extends {
11
+ __scalar?: any;
12
+ } ? '__scalar' : DST extends {} ? 'object' : 'never'];
13
+ type HandleObject<SRC extends Anify<DST>, DST> = DST extends boolean ? SRC : SRC extends Nil ? never : Pick<{
14
+ [Key in keyof SRC]: Key extends keyof DST ? FieldsSelection<SRC[Key], NonNullable<DST[Key]>> : SRC[Key];
15
+ }, Exclude<keyof DST, FieldsToRemove>>;
16
+ type Handle__scalar<SRC extends Anify<DST>, DST> = SRC extends Nil ? never : Pick<{
17
+ [Key in keyof SRC]: Key extends keyof DST ? FieldsSelection<SRC[Key], DST[Key]> : SRC[Key];
18
+ }, {
19
+ [Key in keyof SRC]: SRC[Key] extends Nil ? never : Key extends FieldsToRemove ? never : SRC[Key] extends Scalar ? Key : Key extends keyof DST ? Key : never;
20
+ }[keyof SRC]>;
21
+ type Handle__isUnion<SRC extends Anify<DST>, DST> = SRC extends Nil ? never : Omit<SRC, FieldsToRemove>;
22
+ type Scalar = string | number | Date | boolean | null | undefined;
23
+ type Anify<T> = {
24
+ [P in keyof T]?: any;
25
+ };
26
+ type FieldsToRemove = '__isUnion' | '__scalar' | '__name' | '__args';
27
+ type Nil = undefined | null;
28
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=typeSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeSelection.js","sourceRoot":"","sources":["typeSelection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ export interface ExecutionResult<TData = {
2
+ [key: string]: any;
3
+ }> {
4
+ errors?: Array<Error>;
5
+ data?: TData | null;
6
+ }
7
+ export interface ArgMap<keyType = number> {
8
+ [arg: string]: [keyType, string] | [keyType] | undefined;
9
+ }
10
+ export type CompressedField<keyType = number> = [
11
+ type: keyType,
12
+ args?: ArgMap<keyType>
13
+ ];
14
+ export interface CompressedFieldMap<keyType = number> {
15
+ [field: string]: CompressedField<keyType> | undefined;
16
+ }
17
+ export type CompressedType<keyType = number> = CompressedFieldMap<keyType>;
18
+ export interface CompressedTypeMap<keyType = number> {
19
+ scalars: Array<keyType>;
20
+ types: {
21
+ [type: string]: CompressedType<keyType> | undefined;
22
+ };
23
+ }
24
+ export type Field<keyType = number> = {
25
+ type: keyType;
26
+ args?: ArgMap<keyType>;
27
+ };
28
+ export interface FieldMap<keyType = number> {
29
+ [field: string]: Field<keyType> | undefined;
30
+ }
31
+ export type Type<keyType = number> = FieldMap<keyType>;
32
+ export interface TypeMap<keyType = number> {
33
+ scalars: Array<keyType>;
34
+ types: {
35
+ [type: string]: Type<keyType> | undefined;
36
+ };
37
+ }
38
+ export interface LinkedArgMap {
39
+ [arg: string]: [LinkedType, string] | undefined;
40
+ }
41
+ export interface LinkedField {
42
+ type: LinkedType;
43
+ args?: LinkedArgMap;
44
+ }
45
+ export interface LinkedFieldMap {
46
+ [field: string]: LinkedField | undefined;
47
+ }
48
+ export interface LinkedType {
49
+ name: string;
50
+ fields?: LinkedFieldMap;
51
+ scalar?: string[];
52
+ }
53
+ export interface LinkedTypeMap {
54
+ [type: string]: LinkedType | undefined;
55
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}