mad-data-parser 0.0.2-beta.2 → 0.0.2-beta.3
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/mad-data-parser-0.0.2-beta.3.tgz +0 -0
- package/package.json +3 -1
- package/parser/parseJsonPaths.d.ts +10 -2
- package/parser/parseJsonPaths.d.ts.map +1 -1
- package/parser/parseJsonPaths.js +103 -59
- package/parser/parseJsonPaths.js.map +1 -1
- package/utils/graphql/index.d.ts +2 -2
- package/utils/graphql/index.d.ts.map +1 -1
- package/utils/graphql/index.js +2 -1
- package/utils/graphql/index.js.map +1 -1
- package/utils/graphql-tag/collocated/gql.d.ts +47 -0
- package/utils/graphql-tag/collocated/gql.d.ts.map +1 -0
- package/utils/graphql-tag/collocated/gql.js +132 -0
- package/utils/graphql-tag/collocated/gql.js.map +1 -0
- package/utils/graphql-tag/collocated/guards.d.ts +4 -0
- package/utils/graphql-tag/collocated/guards.d.ts.map +1 -0
- package/utils/graphql-tag/collocated/guards.js +13 -0
- package/utils/graphql-tag/collocated/guards.js.map +1 -0
- package/utils/graphql-tag/collocated/stringifyDocument.d.ts +2 -0
- package/utils/graphql-tag/collocated/stringifyDocument.d.ts.map +1 -0
- package/utils/graphql-tag/collocated/stringifyDocument.js +38 -0
- package/utils/graphql-tag/collocated/stringifyDocument.js.map +1 -0
- package/utils/graphql-tag/collocated/types.d.ts +19 -0
- package/utils/graphql-tag/collocated/types.d.ts.map +1 -0
- package/utils/graphql-tag/collocated/types.js +2 -0
- package/utils/graphql-tag/collocated/types.js.map +1 -0
- package/utils/graphql-tag/index.d.ts +5 -0
- package/utils/graphql-tag/index.d.ts.map +1 -0
- package/utils/graphql-tag/index.js +4 -0
- package/utils/graphql-tag/index.js.map +1 -0
- package/version.txt +1 -1
- package/mad-data-parser-0.0.2-beta.2.tgz +0 -0
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mad-data-parser",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "index.d.ts",
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
"author": "",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
|
+
"@graphql-tools/utils": "~10.9.1",
|
|
13
|
+
"@graphql-typed-document-node/core": "^3.1.0",
|
|
12
14
|
"@types/jsonpath": "~0.2.4",
|
|
13
15
|
"bumpp": "~10.3.1",
|
|
14
16
|
"fast-glob": "~3.3.2",
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { GraphQLObjectType } from "graphql";
|
|
2
2
|
import * as JSONPath from '../utils/jsonPath';
|
|
3
|
-
|
|
3
|
+
import type { CollocatedFragment } from "../utils/graphql-tag";
|
|
4
|
+
export interface FilterCondition extends Pick<CollocatedFragment, 'requiredVars'> {
|
|
5
|
+
filter: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ParseJsonPathsOptions {
|
|
8
|
+
fragmentName?: string;
|
|
9
|
+
filterConditions?: Record<string, FilterCondition>;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseJsonPaths(jsonPaths: Array<JSONPath.ASTNode[]>, rootType: GraphQLObjectType, options: ParseJsonPathsOptions): CollocatedFragment<Record<string, any>, Record<string, any>>;
|
|
4
12
|
//# sourceMappingURL=parseJsonPaths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseJsonPaths.d.ts","sourceRoot":"","sources":["../../src/parser/parseJsonPaths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseJsonPaths.d.ts","sourceRoot":"","sources":["../../src/parser/parseJsonPaths.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,iBAAiB,EAAqI,MAAM,SAAS,CAAA;AAIjM,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAQ7D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC;IAC/E,MAAM,EAAC,MAAM,CAAA;CAEd;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACnD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAC,qBAAqB,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAsD5L"}
|
package/parser/parseJsonPaths.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { getNamedType,
|
|
1
|
+
import { getNamedType, isObjectType, isUnionType, print } from "graphql";
|
|
2
|
+
import { gql, toGraphqlQueryDefs } from "../utils/graphql-tag";
|
|
2
3
|
import { createFieldNode, createInlineFragment, findFieldNode, isPrimitiveType } from "../utils/graphql";
|
|
3
4
|
import { Kind } from "graphql";
|
|
4
5
|
import * as JSONPath from '../utils/jsonPath';
|
|
6
|
+
import { memoize1 } from "@graphql-tools/utils";
|
|
5
7
|
const typeNameFieldNode = createFieldNode('__typename');
|
|
6
|
-
export function parseJsonPaths(jsonPaths, rootType,
|
|
7
|
-
fragmentName = fragmentName ?? `autoGen${rootType.name}`;
|
|
8
|
+
export function parseJsonPaths(jsonPaths, rootType, options) {
|
|
9
|
+
const fragmentName = options.fragmentName ?? `autoGen${rootType.name}`;
|
|
10
|
+
const { processStackItems } = createItemProcessors(options.filterConditions ?? {});
|
|
8
11
|
const rootFragment = {
|
|
9
12
|
kind: Kind.FRAGMENT_DEFINITION,
|
|
10
13
|
typeCondition: { kind: Kind.NAMED_TYPE, name: { kind: Kind.NAME, value: rootType.name } },
|
|
@@ -14,6 +17,7 @@ export function parseJsonPaths(jsonPaths, rootType, fragmentName) {
|
|
|
14
17
|
selections: [typeNameFieldNode],
|
|
15
18
|
},
|
|
16
19
|
};
|
|
20
|
+
let requiredVars = {};
|
|
17
21
|
const doc = {
|
|
18
22
|
kind: Kind.DOCUMENT,
|
|
19
23
|
definitions: [rootFragment],
|
|
@@ -27,6 +31,7 @@ export function parseJsonPaths(jsonPaths, rootType, fragmentName) {
|
|
|
27
31
|
Identifier(node) {
|
|
28
32
|
const stackItems = stack[stack.length - 1];
|
|
29
33
|
const passStackItems = processStackItems(stackItems, { fieldName: node.expression.value, value: undefined, condition: undefined });
|
|
34
|
+
requiredVars = passStackItems.reduce((acc, item) => Object.assign(acc, item.requiredVars ?? {}), requiredVars);
|
|
30
35
|
stack.push(passStackItems);
|
|
31
36
|
return;
|
|
32
37
|
},
|
|
@@ -38,6 +43,7 @@ export function parseJsonPaths(jsonPaths, rootType, fragmentName) {
|
|
|
38
43
|
const condition = matches?.groups?.condition;
|
|
39
44
|
const value = matches?.groups?.value;
|
|
40
45
|
const passStackItems = processStackItems(stackItems, { fieldName, value, condition });
|
|
46
|
+
requiredVars = passStackItems.reduce((acc, item) => Object.assign(acc, item.requiredVars ?? {}), requiredVars);
|
|
41
47
|
stack.push(passStackItems);
|
|
42
48
|
return;
|
|
43
49
|
},
|
|
@@ -48,69 +54,107 @@ export function parseJsonPaths(jsonPaths, rootType, fragmentName) {
|
|
|
48
54
|
}
|
|
49
55
|
};
|
|
50
56
|
JSONPath.visit(jsonPaths, visitor);
|
|
51
|
-
return
|
|
57
|
+
return {
|
|
58
|
+
fragment: doc,
|
|
59
|
+
name: fragmentName,
|
|
60
|
+
requiredVars: requiredVars,
|
|
61
|
+
};
|
|
52
62
|
}
|
|
53
63
|
function needProcess(node) {
|
|
54
64
|
return JSONPath.isRootNode(node) || JSONPath.isIdentifierNode(node) || JSONPath.isFilterExpressionNode(node);
|
|
55
65
|
}
|
|
56
|
-
function
|
|
57
|
-
const
|
|
58
|
-
stackItems
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const appendFieldType = type.getFields()[fieldName]?.type;
|
|
79
|
-
if (!appendFieldType) {
|
|
80
|
-
if (fieldName === '__typename') {
|
|
81
|
-
passStackItems.push(fragmentStackItem);
|
|
66
|
+
function createItemProcessors(filterConditions) {
|
|
67
|
+
const filterConditionMap = Object.fromEntries(Object.entries(filterConditions).map(([key, value]) => [key, Array.isArray(value) ? value : [value]]));
|
|
68
|
+
function processStackItems(stackItems, { fieldName, value, condition }) {
|
|
69
|
+
const passStackItems = [];
|
|
70
|
+
stackItems.forEach(stackItem => {
|
|
71
|
+
const parentType = stackItem.type;
|
|
72
|
+
if (isPrimitiveType(parentType)) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const selSet = stackItem.selectionSet;
|
|
76
|
+
if (isUnionType(parentType)) {
|
|
77
|
+
const filterField = (type) => fieldName === '__typename' ? type.name === value : Boolean(type.getFields()[fieldName]);
|
|
78
|
+
const filter = condition && !condition.includes('!')
|
|
79
|
+
? (type) => filterField(type)
|
|
80
|
+
: (type) => !filterField(type);
|
|
81
|
+
const possibleTypes = parentType.getTypes().filter(filter);
|
|
82
|
+
possibleTypes.forEach(type => {
|
|
83
|
+
let inlineFragment = selSet.selections.find(selection => selection.kind === Kind.INLINE_FRAGMENT
|
|
84
|
+
&& (selection.typeCondition?.name.value === type.name));
|
|
85
|
+
if (!inlineFragment) {
|
|
86
|
+
inlineFragment = createInlineFragment(type, '__typename');
|
|
87
|
+
selSet.selections.push(inlineFragment);
|
|
82
88
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
const fragmentStackItem = { type: type, selectionSet: inlineFragment.selectionSet, parent: stackItem };
|
|
90
|
+
const appendFieldType = type.getFields()[fieldName]?.type;
|
|
91
|
+
if (!appendFieldType) {
|
|
92
|
+
if (fieldName === '__typename') {
|
|
93
|
+
passStackItems.push(fragmentStackItem);
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const newStackItem = processGraphqlObjectType(fragmentStackItem, appendFieldType, fieldName);
|
|
98
|
+
passStackItems.push(newStackItem);
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const parentObjectType = isObjectType(parentType) ? parentType : stackItem.parent?.type;
|
|
103
|
+
if (!parentObjectType)
|
|
104
|
+
return;
|
|
105
|
+
const field = parentObjectType.getFields()[fieldName];
|
|
106
|
+
if (!field) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const newStackItem = processGraphqlObjectType(stackItem, field.type, fieldName);
|
|
110
|
+
passStackItems.push(newStackItem);
|
|
111
|
+
});
|
|
112
|
+
return passStackItems;
|
|
113
|
+
}
|
|
114
|
+
function processGraphqlObjectType(stackItem, fieldType, fieldName) {
|
|
115
|
+
const selSet = stackItem.selectionSet;
|
|
116
|
+
if (!selSet) {
|
|
117
|
+
throw new Error('Selection set not found');
|
|
89
118
|
}
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
if (!
|
|
95
|
-
|
|
119
|
+
const realFieldType = getNamedType(fieldType);
|
|
120
|
+
const subFieldsSelections = [isPrimitiveType(realFieldType) ? undefined : typeNameFieldNode].filter(Boolean);
|
|
121
|
+
let fieldNode = findFieldNode(selSet, fieldName);
|
|
122
|
+
let requiredVars = undefined;
|
|
123
|
+
if (!fieldNode) {
|
|
124
|
+
const filterData = buildFilterData(realFieldType);
|
|
125
|
+
const filterArgs = filterData?.arguments;
|
|
126
|
+
requiredVars = filterData?.requiredVars;
|
|
127
|
+
fieldNode = createFieldNode(fieldName, subFieldsSelections.map(selection => selection.name.value), filterArgs);
|
|
128
|
+
selSet.selections.push(fieldNode);
|
|
96
129
|
}
|
|
97
|
-
|
|
98
|
-
passStackItems.push(newStackItem);
|
|
99
|
-
});
|
|
100
|
-
return passStackItems;
|
|
101
|
-
}
|
|
102
|
-
function processGraphqlObjectType(stackItem, fieldType, fieldName) {
|
|
103
|
-
const selSet = stackItem.selectionSet;
|
|
104
|
-
if (!selSet) {
|
|
105
|
-
throw new Error('Selection set not found');
|
|
106
|
-
}
|
|
107
|
-
const realFieldType = getNamedType(fieldType);
|
|
108
|
-
const subFieldsSelections = [isPrimitiveType(realFieldType) ? undefined : typeNameFieldNode].filter(Boolean);
|
|
109
|
-
let fieldNode = findFieldNode(selSet, fieldName);
|
|
110
|
-
if (!fieldNode) {
|
|
111
|
-
fieldNode = createFieldNode(fieldName, subFieldsSelections.map(selection => selection.name.value));
|
|
112
|
-
selSet.selections.push(fieldNode);
|
|
130
|
+
return { type: realFieldType, selectionSet: fieldNode.selectionSet, parent: stackItem, requiredVars };
|
|
113
131
|
}
|
|
114
|
-
|
|
132
|
+
const buildFilterData = memoize1((type) => {
|
|
133
|
+
const typename = getNamedType(type).name;
|
|
134
|
+
const filterCondition = filterConditions[typename];
|
|
135
|
+
if (!filterCondition)
|
|
136
|
+
return undefined;
|
|
137
|
+
const filter = filterCondition.filter;
|
|
138
|
+
const requiredVars = filterCondition.requiredVars ?? {};
|
|
139
|
+
if (!filter) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
const varsDefs = Object.values(toGraphqlQueryDefs(requiredVars)).join('\n');
|
|
143
|
+
const query = gql `
|
|
144
|
+
query qry${typename}(${varsDefs}) {
|
|
145
|
+
fetch${typename}(${filter}){
|
|
146
|
+
__typename
|
|
147
|
+
}
|
|
148
|
+
}`;
|
|
149
|
+
const definition = query.definitions[0];
|
|
150
|
+
// const variables = Object.fromEntries(definition.variableDefinitions?.map(v => [v.variable.name.value, v.type]) ?? [])
|
|
151
|
+
// console.log(JSON.stringify(variables, null, 2))
|
|
152
|
+
const firstField = definition.selectionSet.selections[0];
|
|
153
|
+
const argNodes = firstField.arguments;
|
|
154
|
+
if (!argNodes)
|
|
155
|
+
return undefined;
|
|
156
|
+
return { arguments: argNodes, requiredVars };
|
|
157
|
+
});
|
|
158
|
+
return { processStackItems };
|
|
115
159
|
}
|
|
116
160
|
//# sourceMappingURL=parseJsonPaths.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseJsonPaths.js","sourceRoot":"","sources":["../../src/parser/parseJsonPaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"parseJsonPaths.js","sourceRoot":"","sources":["../../src/parser/parseJsonPaths.ts"],"names":[],"mappings":"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"}
|
package/utils/graphql/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { GraphQLOutputType, SelectionSetNode, FieldNode, InlineFragmentNode, GraphQLNamedOutputType } from "graphql";
|
|
1
|
+
import type { GraphQLOutputType, SelectionSetNode, FieldNode, InlineFragmentNode, GraphQLNamedOutputType, ArgumentNode } from "graphql";
|
|
2
2
|
export declare function isPrimitiveType(type: GraphQLOutputType): boolean;
|
|
3
3
|
export declare function findFieldNode(selectionSet: SelectionSetNode, fieldName: string): FieldNode | undefined;
|
|
4
|
-
export declare function createFieldNode(fieldName: string, children?: string[]): FieldNode;
|
|
4
|
+
export declare function createFieldNode(fieldName: string, children?: string[], args?: ArgumentNode[]): FieldNode;
|
|
5
5
|
export declare function createFieldSelectionSet(outputType: GraphQLNamedOutputType, fieldName?: string): SelectionSetNode;
|
|
6
6
|
export declare function createInlineFragment(outputType: GraphQLNamedOutputType, fieldName: string): InlineFragmentNode;
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/graphql/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,EAAiB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/graphql/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,sBAAsB,EAAiB,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtJ,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAGhE;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,GAAE,SAAS,GAAC,SAAS,CAEnG;AAGD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,GAAE,SAAS,CAcvG;AAID,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,sBAAsB,EAAE,SAAS,CAAC,EAAE,MAAM,GAAE,gBAAgB,CAU/G;AAGD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,GAAE,kBAAkB,CAM7G"}
|
package/utils/graphql/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export function isPrimitiveType(type) {
|
|
|
6
6
|
export function findFieldNode(selectionSet, fieldName) {
|
|
7
7
|
return selectionSet?.selections.find(selection => selection.kind === Kind.FIELD && selection.name.value === fieldName);
|
|
8
8
|
}
|
|
9
|
-
export function createFieldNode(fieldName, children) {
|
|
9
|
+
export function createFieldNode(fieldName, children, args) {
|
|
10
10
|
let selectionSet = undefined;
|
|
11
11
|
if (children?.length) {
|
|
12
12
|
selectionSet = {
|
|
@@ -16,6 +16,7 @@ export function createFieldNode(fieldName, children) {
|
|
|
16
16
|
}
|
|
17
17
|
return {
|
|
18
18
|
kind: Kind.FIELD,
|
|
19
|
+
arguments: args,
|
|
19
20
|
name: { kind: Kind.NAME, value: fieldName },
|
|
20
21
|
selectionSet
|
|
21
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAItE,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAA8B,EAAE,SAAiB;IAC7E,OAAO,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAwB,CAAA;AAC/I,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAItE,MAAM,UAAU,eAAe,CAAC,IAAuB;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAA8B,EAAE,SAAiB;IAC7E,OAAO,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAwB,CAAA;AAC/I,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAmB,EAAE,IAAqB;IAC3F,IAAI,YAAY,GAA+B,SAAS,CAAA;IACxD,IAAG,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,aAAa;YACxB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;IAC9B,CAAC;IACD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,KAAK;QAChB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;QAC3C,YAAY;KACb,CAAA;AACH,CAAC;AAID,MAAM,UAAU,uBAAuB,CAAC,UAAkC,EAAE,SAAkB;IAC5F,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,IAAI,CAAC,aAAa;QACxB,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAoB;KACxE,CAAA;IAE5B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,EAAE,CAAC;QAC9I,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,MAAM,UAAU,oBAAoB,CAAC,UAAkC,EAAE,SAAiB;IACxF,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,eAAe;QAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE;QAC3F,YAAY,EAAE,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC;KAChC,CAAA;AAChC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { TypedDocumentNode } from "@graphql-typed-document-node/core";
|
|
2
|
+
import type { DocumentNode } from "graphql";
|
|
3
|
+
import type { CollocatedFragment, AnyVariables } from "./types";
|
|
4
|
+
type InterpolDocNode = TypedDocumentNode | DocumentNode;
|
|
5
|
+
type InterpolationsArray = Array<string | InterpolDocNode | CollocatedFragment | Record<string, InterpolDocNode> | string[] | InterpolDocNode[] | CollocatedFragment[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Extends @urql/gql gql`tag` template string to accept a list of fragments or a collocatedFragments
|
|
8
|
+
*/
|
|
9
|
+
export declare function gql<Data = any, Variables extends AnyVariables = AnyVariables>(strings: TemplateStringsArray, ...interpolations: InterpolationsArray): TypedDocumentNode<Data, Variables>;
|
|
10
|
+
export declare function gql<Data = any, Variables extends AnyVariables = AnyVariables>(string: string): TypedDocumentNode<Data, Variables>;
|
|
11
|
+
type SpreadFragmentsDefinition = CollocatedFragment | TypedDocumentNode | DocumentNode | string | Record<string, TypedDocumentNode | DocumentNode>;
|
|
12
|
+
/**
|
|
13
|
+
* Receive a DocumentNode with fragment definitions or a CollocatedFragment and return his name
|
|
14
|
+
* Also accept string and return string
|
|
15
|
+
*/
|
|
16
|
+
export declare function extractFragmentNames(nodes: SpreadFragmentsDefinition | SpreadFragmentsDefinition[]): string[];
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* Convert a SpreadFragmentsDefinition to an array of ['...fragName', '...frag2Name']
|
|
20
|
+
* use with gql`` template string as
|
|
21
|
+
*
|
|
22
|
+
* @see {@link gql}
|
|
23
|
+
*
|
|
24
|
+
* example:
|
|
25
|
+
* import * as fragDef from 'somewhere.gql'
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
* gql`
|
|
30
|
+
* fragment MyFrag on MyGraphqlType {
|
|
31
|
+
* ${spreadFragments(fragDef)} # spread all fragments from fragDef, removing fragments that not match with match
|
|
32
|
+
* }
|
|
33
|
+
* ${ fragDef } # it will add all fragments from fragDef
|
|
34
|
+
* `
|
|
35
|
+
*
|
|
36
|
+
* @param { SpreadFragmentsDefinition} nodes
|
|
37
|
+
* @param { (x : string) => boolean } match # by default it will ignore fragments that starts with '_' or it is equals to 'default' name
|
|
38
|
+
*
|
|
39
|
+
* @return string
|
|
40
|
+
*/
|
|
41
|
+
export declare function spreadFragments(nodes: SpreadFragmentsDefinition | SpreadFragmentsDefinition[], match?: (x: string) => boolean): string[];
|
|
42
|
+
export declare function extractFragmentVarsDefs(validColFragments: Pick<CollocatedFragment, 'requiredVars'> | Pick<CollocatedFragment, 'requiredVars'>[], searchRequiredVarsDebug?: string[]): Record<string, string>;
|
|
43
|
+
export declare function toGraphqlQueryDefs<T extends Pick<CollocatedFragment, 'requiredVars'>>(varDefs: T | T[]): Record<string, string>;
|
|
44
|
+
export declare function toGraphqlQueryDefs(varDefs: Record<string, string>): Record<string, string>;
|
|
45
|
+
export declare function extractFragmentVarsDefaults(validColFragments: CollocatedFragment | CollocatedFragment[]): Record<string, any>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=gql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/gql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,SAAS,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,KAAK,eAAe,GAAG,iBAAiB,GAAG,YAAY,CAAA;AACvD,KAAK,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,eAAe,GAAG,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,kBAAkB,EAAE,CAAC,CAAA;AACvK;;GAEG;AACH,wBAAgB,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,SAAS,SAAS,YAAY,GAAG,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AACzL,wBAAgB,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,SAAS,SAAS,YAAY,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AA2ClI,KAAK,yBAAyB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,YAAY,CAAC,CAAA;AAClJ;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB,EAAE,GAAG,MAAM,EAAE,CAmB7G;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,yBAAyB,GAAG,yBAAyB,EAAE,EAAE,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAsD,GACzK,MAAM,EAAE,CAEV;AAKD,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAE,EAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ5M;AAGD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAChI,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAoB3F,wBAAgB,2BAA2B,CAAC,iBAAiB,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAuB7H"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { Kind } from "graphql";
|
|
2
|
+
import { gql as originalGql } from "graphql-tag";
|
|
3
|
+
import { stringifyDocument } from "./stringifyDocument";
|
|
4
|
+
import { isCollocatedFragment } from "../../../utils/graphql-tag/collocated/guards";
|
|
5
|
+
export function gql(parts, ...interpolations) {
|
|
6
|
+
const callOrigGql = ((literals, ...args) => {
|
|
7
|
+
try {
|
|
8
|
+
// @eslint:ignore
|
|
9
|
+
return originalGql(literals, ...args);
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
console.error(e);
|
|
13
|
+
throw e;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
if (Array.isArray(parts)) {
|
|
17
|
+
const newInterpolations = interpolations.map((sInter) => {
|
|
18
|
+
if (typeof sInter === 'string')
|
|
19
|
+
return sInter;
|
|
20
|
+
if (isCollocatedFragment(sInter))
|
|
21
|
+
return sInter.fragment;
|
|
22
|
+
if ('kind' in sInter)
|
|
23
|
+
return sInter;
|
|
24
|
+
if ('default' in sInter)
|
|
25
|
+
return sInter.default;
|
|
26
|
+
const values = Object.values(sInter);
|
|
27
|
+
let ret = '';
|
|
28
|
+
for (let i = 0; i < values.length; i++) {
|
|
29
|
+
let vVal = isCollocatedFragment(values[i]) ? values[i].fragment : values[i];
|
|
30
|
+
if (!(typeof vVal === 'string'))
|
|
31
|
+
vVal = stringifyDocument(vVal);
|
|
32
|
+
ret = [ret, vVal].filter(x => x.length > 0).join('\n');
|
|
33
|
+
}
|
|
34
|
+
return ret;
|
|
35
|
+
});
|
|
36
|
+
return callOrigGql(parts, ...newInterpolations);
|
|
37
|
+
}
|
|
38
|
+
return callOrigGql(parts);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Receive a DocumentNode with fragment definitions or a CollocatedFragment and return his name
|
|
42
|
+
* Also accept string and return string
|
|
43
|
+
*/
|
|
44
|
+
export function extractFragmentNames(nodes) {
|
|
45
|
+
if (typeof nodes === 'object' && !Array.isArray(nodes)) {
|
|
46
|
+
if (!('kind' in nodes) && !isCollocatedFragment(nodes))
|
|
47
|
+
nodes = (Object.values(nodes));
|
|
48
|
+
}
|
|
49
|
+
// ensure all nodes are array of SpreadFragmentsDefinition without Record
|
|
50
|
+
const spreadAry = [nodes || []].flat(1);
|
|
51
|
+
const names = (spreadAry).map((n) => {
|
|
52
|
+
if (typeof n === 'string')
|
|
53
|
+
return n;
|
|
54
|
+
if (isCollocatedFragment(n))
|
|
55
|
+
return n.name;
|
|
56
|
+
return n.definitions
|
|
57
|
+
.filter(x => x.kind === Kind.FRAGMENT_DEFINITION)
|
|
58
|
+
.map((fragDef) => fragDef.name.value);
|
|
59
|
+
}).flat(1);
|
|
60
|
+
return [...new Set(names)]; // ensure unique names
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
* Convert a SpreadFragmentsDefinition to an array of ['...fragName', '...frag2Name']
|
|
65
|
+
* use with gql`` template string as
|
|
66
|
+
*
|
|
67
|
+
* @see {@link gql}
|
|
68
|
+
*
|
|
69
|
+
* example:
|
|
70
|
+
* import * as fragDef from 'somewhere.gql'
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
* gql`
|
|
75
|
+
* fragment MyFrag on MyGraphqlType {
|
|
76
|
+
* ${spreadFragments(fragDef)} # spread all fragments from fragDef, removing fragments that not match with match
|
|
77
|
+
* }
|
|
78
|
+
* ${ fragDef } # it will add all fragments from fragDef
|
|
79
|
+
* `
|
|
80
|
+
*
|
|
81
|
+
* @param { SpreadFragmentsDefinition} nodes
|
|
82
|
+
* @param { (x : string) => boolean } match # by default it will ignore fragments that starts with '_' or it is equals to 'default' name
|
|
83
|
+
*
|
|
84
|
+
* @return string
|
|
85
|
+
*/
|
|
86
|
+
export function spreadFragments(nodes, match = x => !(x.startsWith('_') || x === 'default')) {
|
|
87
|
+
return extractFragmentNames(nodes).filter(match).map(x => `... ${x}`);
|
|
88
|
+
}
|
|
89
|
+
export function extractFragmentVarsDefs(validColFragments, searchRequiredVarsDebug) {
|
|
90
|
+
return ([validColFragments]).flat(1).reduce((acc, next) => {
|
|
91
|
+
if (searchRequiredVarsDebug && Object.keys(next.requiredVars ?? {}).some(x => searchRequiredVarsDebug.includes(x))) {
|
|
92
|
+
console.warn('Found: requiredVars in CollocatedFragment', next.name ?? JSON.stringify(next), next.requiredVars);
|
|
93
|
+
}
|
|
94
|
+
Object.assign(acc, next.requiredVars || {});
|
|
95
|
+
return acc;
|
|
96
|
+
}, {});
|
|
97
|
+
}
|
|
98
|
+
export function toGraphqlQueryDefs(varDefs) {
|
|
99
|
+
if (Array.isArray(varDefs)) {
|
|
100
|
+
varDefs = extractFragmentVarsDefs(varDefs);
|
|
101
|
+
}
|
|
102
|
+
else if (isCollocatedFragment(varDefs)) {
|
|
103
|
+
varDefs = extractFragmentVarsDefs(varDefs);
|
|
104
|
+
}
|
|
105
|
+
// Record<string, string>
|
|
106
|
+
return Object.fromEntries(Object.entries(varDefs || {}).map(([key, value]) => {
|
|
107
|
+
const newValue = value.startsWith(`\$${key}:`) ? value : `\$${key}: ${value}`;
|
|
108
|
+
return [key, newValue];
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
export function extractFragmentVarsDefaults(validColFragments) {
|
|
112
|
+
const fnConvert = function (type, value) {
|
|
113
|
+
const map = {
|
|
114
|
+
Boolean: (val) => !['false', '0', ''].includes(val),
|
|
115
|
+
Int: (val) => Number.parseInt(val),
|
|
116
|
+
Float: (val) => Number.parseFloat(val),
|
|
117
|
+
default: (val) => val,
|
|
118
|
+
};
|
|
119
|
+
return (map[type ?? 'default'])?.(value);
|
|
120
|
+
};
|
|
121
|
+
return [validColFragments].flat(1).reduce((acc, next) => {
|
|
122
|
+
const varsWithDefaults = Object.fromEntries(Object.entries(next.requiredVars ?? {}).filter(([_key, value]) => value.includes('=')).map(([key, value]) => {
|
|
123
|
+
let [_type, _value] = value.split('=');
|
|
124
|
+
_type = _type.replace(/\s+/, '').replace('!', '');
|
|
125
|
+
const _newValue = fnConvert(_type, _value);
|
|
126
|
+
return [key, _newValue];
|
|
127
|
+
}));
|
|
128
|
+
Object.assign(acc, varsWithDefaults || {});
|
|
129
|
+
return acc;
|
|
130
|
+
}, {});
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/gql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CollocatedFragment, GraphqlDataObject } from "./types";
|
|
2
|
+
export declare function isGraphqlDataObject(value: unknown): value is GraphqlDataObject;
|
|
3
|
+
export declare function isCollocatedFragment(value: unknown): value is CollocatedFragment;
|
|
4
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAErE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAGD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAQhF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function isGraphqlDataObject(value) {
|
|
2
|
+
return typeof value === 'object' && !!value && ('__typename' in value) && typeof value.__typename === 'string';
|
|
3
|
+
}
|
|
4
|
+
export function isCollocatedFragment(value) {
|
|
5
|
+
if (typeof value === 'object' && !!value) {
|
|
6
|
+
const colFrag = value;
|
|
7
|
+
const hasName = 'name' in colFrag && typeof colFrag.name === 'string';
|
|
8
|
+
const hasFragment = 'fragment' in colFrag && colFrag.fragment && 'definitions' in colFrag.fragment;
|
|
9
|
+
return hasName && hasFragment;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=guards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.js","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/guards.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAA;AAChH,CAAC;AAGD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,KAA2B,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAA;QACrE,MAAM,WAAW,GAAG,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAA;QAClG,OAAO,OAAO,IAAI,WAAW,CAAA;IAC/B,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyDocument.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/stringifyDocument.ts"],"names":[],"mappings":"AAaA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAyBnD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { print } from "graphql";
|
|
2
|
+
var SOURCE_NAME = 'gql';
|
|
3
|
+
var GRAPHQL_STRING_RE = /("{3}[\s\S]*"{3}|"(?:\\.|[^"])*")/g;
|
|
4
|
+
var REPLACE_CHAR_RE = /(?:#[^\n\r]+)?(?:[\r\n]+|$)/g;
|
|
5
|
+
var replaceOutsideStrings = (str, idx) => idx % 2 === 0 ? str.replace(REPLACE_CHAR_RE, '\n') : str;
|
|
6
|
+
var prints = new WeakMap();
|
|
7
|
+
var docs = new WeakMap();
|
|
8
|
+
/** Sanitizes a GraphQL document string by replacing comments and redundant newlines in it. */
|
|
9
|
+
const sanitizeDocument = (node) => node.split(GRAPHQL_STRING_RE).map(replaceOutsideStrings).join('').trim();
|
|
10
|
+
export function stringifyDocument(node) {
|
|
11
|
+
var printed;
|
|
12
|
+
if (typeof node === 'string') {
|
|
13
|
+
printed = sanitizeDocument(node);
|
|
14
|
+
}
|
|
15
|
+
else if (node.loc && docs.get(node.__key) === node) {
|
|
16
|
+
printed = node.loc.source.body;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
printed = prints.get(node) || sanitizeDocument(print(node));
|
|
20
|
+
prints.set(node, printed);
|
|
21
|
+
}
|
|
22
|
+
if (typeof node !== 'string' && !node.loc) {
|
|
23
|
+
node.loc = {
|
|
24
|
+
start: 0,
|
|
25
|
+
end: printed.length,
|
|
26
|
+
source: {
|
|
27
|
+
body: printed,
|
|
28
|
+
name: SOURCE_NAME,
|
|
29
|
+
locationOffset: {
|
|
30
|
+
line: 1,
|
|
31
|
+
column: 1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return printed;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=stringifyDocument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stringifyDocument.js","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/stringifyDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,iBAAiB,GAAG,oCAAoC,CAAC;AAC7D,IAAI,eAAe,GAAG,8BAA8B,CAAC;AACrD,IAAI,qBAAqB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACnH,IAAI,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AAC3B,IAAI,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;AAEzB,8FAA8F;AAC9F,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAE5H,MAAM,UAAU,iBAAiB,CAAC,IAAS;IACzC,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG;YACT,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,OAAO,CAAC,MAAM;YACnB,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,WAAW;gBACjB,cAAc,EAAE;oBACd,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;iBACV;aACF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TypedDocumentNode } from "@graphql-typed-document-node/core";
|
|
2
|
+
export type AnyVariables = Record<string, any>;
|
|
3
|
+
export interface CollocatedFragment<T extends Record<string, any> = Record<string, any>, Variables extends Record<string, any> = Record<string, any>> {
|
|
4
|
+
fragment: TypedDocumentNode<T, Variables>;
|
|
5
|
+
name: string;
|
|
6
|
+
requiredVars?: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export type Stage = 'DRAFT' | 'PUBLISHED';
|
|
9
|
+
export interface GraphqlDataObject {
|
|
10
|
+
__typename?: string;
|
|
11
|
+
id?: string;
|
|
12
|
+
stage?: Stage;
|
|
13
|
+
}
|
|
14
|
+
export interface SplitableDataObject {
|
|
15
|
+
typename: string;
|
|
16
|
+
id: string;
|
|
17
|
+
stage: Stage;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAI9C,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAClJ,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACtC;AAGD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,WAAW,CAAA;AAEzC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AACD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,KAAK,CAAA;CACb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/utils/graphql-tag/collocated/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { gql, spreadFragments, extractFragmentNames, toGraphqlQueryDefs, extractFragmentVarsDefs, extractFragmentVarsDefaults } from "./collocated/gql";
|
|
2
|
+
export type { CollocatedFragment, AnyVariables } from "./collocated/types";
|
|
3
|
+
export { isCollocatedFragment } from "./collocated/guards";
|
|
4
|
+
export { stringifyDocument } from "./collocated/stringifyDocument";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/graphql-tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AACvJ,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { gql, spreadFragments, extractFragmentNames, toGraphqlQueryDefs, extractFragmentVarsDefs, extractFragmentVarsDefaults } from "./collocated/gql";
|
|
2
|
+
export { isCollocatedFragment } from "./collocated/guards";
|
|
3
|
+
export { stringifyDocument } from "./collocated/stringifyDocument";
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/graphql-tag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAA;AAEvJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
|
package/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.2-beta.
|
|
1
|
+
0.0.2-beta.3
|
|
Binary file
|