@luvio/graphql-parser 0.62.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 (42) hide show
  1. package/babel.config.js +1 -0
  2. package/dist/argument-node.d.ts +4 -0
  3. package/dist/ast.d.ts +95 -0
  4. package/dist/constants.d.ts +12 -0
  5. package/dist/directive-node.d.ts +5 -0
  6. package/dist/document.d.ts +3 -0
  7. package/dist/field-node.d.ts +4 -0
  8. package/dist/fragment-spread-node.d.ts +4 -0
  9. package/dist/fragment.d.ts +3 -0
  10. package/dist/inline-fragment-node.d.ts +4 -0
  11. package/dist/luvioGraphqlParser.js +3887 -0
  12. package/dist/main.d.ts +4 -0
  13. package/dist/operation/index.d.ts +3 -0
  14. package/dist/operation/query/index.d.ts +6 -0
  15. package/dist/type-node.d.ts +3 -0
  16. package/dist/value-node.d.ts +4 -0
  17. package/dist/variable-definition.d.ts +4 -0
  18. package/dist/visitor.d.ts +4 -0
  19. package/jest.config.js +8 -0
  20. package/package.json +19 -0
  21. package/rollup.config.js +19 -0
  22. package/scripts/cli.mjs +18 -0
  23. package/src/__tests__/ast.spec.ts +109 -0
  24. package/src/__tests__/main.spec.ts +600 -0
  25. package/src/__tests__/type-node.spec.ts +82 -0
  26. package/src/argument-node.ts +18 -0
  27. package/src/ast.ts +200 -0
  28. package/src/constants.ts +14 -0
  29. package/src/directive-node.ts +36 -0
  30. package/src/document.ts +33 -0
  31. package/src/field-node.ts +72 -0
  32. package/src/fragment-spread-node.ts +28 -0
  33. package/src/fragment.ts +46 -0
  34. package/src/inline-fragment-node.ts +31 -0
  35. package/src/main.ts +58 -0
  36. package/src/operation/index.ts +12 -0
  37. package/src/operation/query/index.ts +78 -0
  38. package/src/type-node.ts +39 -0
  39. package/src/value-node.ts +71 -0
  40. package/src/variable-definition.ts +37 -0
  41. package/src/visitor.ts +62 -0
  42. package/tsconfig.json +9 -0
@@ -0,0 +1 @@
1
+ module.exports = require('../../../babel.config');
@@ -0,0 +1,4 @@
1
+ import { ArgumentNode } from 'graphql/language';
2
+ import { LuvioArgumentNode } from './ast';
3
+ import { TransformState } from './operation/query';
4
+ export declare function transform(node: ArgumentNode, transformState: TransformState): LuvioArgumentNode;
package/dist/ast.d.ts ADDED
@@ -0,0 +1,95 @@
1
+ import { DocumentNode, OperationDefinitionNode, FieldNode, ArgumentNode, IntValueNode, ListValueNode, ObjectValueNode, FloatValueNode, StringValueNode, BooleanValueNode, NullValueNode, EnumValueNode, VariableNode, DirectiveNode, VariableDefinitionNode, NonNullTypeNode, ListTypeNode, NamedTypeNode, FragmentSpreadNode, InlineFragmentNode, FragmentDefinitionNode, DefinitionNode, TypeNode } from 'graphql/language';
2
+ /**
3
+ * Luvio specific custom GraphQL AST
4
+ *
5
+ * - Omit Location
6
+ * - flatten NameNode for easier value access
7
+ * - Add luvioSelections for custom selections
8
+ * - LuvioSelectionCustomFieldNode for fields with custom client side directives
9
+ */
10
+ export interface LuvioDocumentNode extends Omit<DocumentNode, 'loc' | 'definitions'> {
11
+ definitions: LuvioDefinitionNode[];
12
+ }
13
+ export declare type LuvioDefinitionNode = LuvioOperationDefinitionNode | LuvioFragmentDefinitionNode;
14
+ export interface LuvioOperationDefinitionNode extends Omit<OperationDefinitionNode, 'loc' | 'name' | 'variableDefinitions' | 'directives' | 'selectionSet'> {
15
+ name?: string;
16
+ variableDefinitions?: LuvioVariableDefinitionNode[];
17
+ directives?: LuvioDirectiveNode[];
18
+ luvioSelections: LuvioSelectionNode[];
19
+ }
20
+ export interface LuvioVariableDefinitionNode extends Omit<VariableDefinitionNode, 'loc' | 'variable' | 'type' | 'defaultValue' | 'directives'> {
21
+ variable: LuvioVariableNode;
22
+ type: LuvioTypeNode;
23
+ defaultValue?: LuvioValueNode;
24
+ directives?: LuvioDirectiveNode[];
25
+ }
26
+ export interface LuvioVariableNode extends Omit<VariableNode, 'loc' | 'name'> {
27
+ name: string;
28
+ }
29
+ export declare type LuvioSelectionNode = LuvioFieldNode | LuvioFragmentSpreadNode | LuvioInlineFragmentNode;
30
+ export declare type LuvioFieldNode = LuvioSelectionScalarFieldNode | LuvioSelectionObjectFieldNode | LuvioSelectionCustomFieldNode;
31
+ export interface LuvioArgumentNode extends Omit<ArgumentNode, 'loc' | 'name' | 'value'> {
32
+ name: string;
33
+ value: LuvioValueNode;
34
+ }
35
+ export interface LuvioFragmentSpreadNode extends Omit<FragmentSpreadNode, 'loc' | 'name' | 'directives'> {
36
+ name: string;
37
+ directives?: LuvioDirectiveNode[];
38
+ }
39
+ export interface LuvioInlineFragmentNode extends Omit<InlineFragmentNode, 'loc' | 'typeCondition' | 'directives' | 'selectionSet'> {
40
+ typeCondition?: LuvioNamedTypeNode;
41
+ directives?: LuvioDirectiveNode[];
42
+ luvioSelections: LuvioSelectionNode[];
43
+ }
44
+ export interface LuvioFragmentDefinitionNode extends Omit<FragmentDefinitionNode, 'loc' | 'name' | 'variableDefinitions' | 'typeCondition' | 'directives' | 'selectionSet'> {
45
+ name: string;
46
+ variableDefinitions?: LuvioVariableDefinitionNode[];
47
+ typeCondition: LuvioNamedTypeNode;
48
+ directives?: LuvioDirectiveNode[];
49
+ luvioSelections: LuvioSelectionNode[];
50
+ }
51
+ export declare type LuvioValueNode = LuvioVariableNode | IntValueNode | FloatValueNode | StringValueNode | BooleanValueNode | NullValueNode | EnumValueNode | LuvioListValueNode | LuvioObjectValueNode;
52
+ export interface LuvioListValueNode extends Omit<ListValueNode, 'loc' | 'values'> {
53
+ values: LuvioValueNode[];
54
+ }
55
+ export interface LuvioObjectValueNode extends Omit<ObjectValueNode, 'loc' | 'fields'> {
56
+ fields: {
57
+ [name: string]: LuvioValueNode;
58
+ };
59
+ }
60
+ export interface LuvioDirectiveNode extends Omit<DirectiveNode, 'loc' | 'name' | 'arguments'> {
61
+ name: string;
62
+ arguments?: LuvioArgumentNode[];
63
+ }
64
+ export declare type LuvioTypeNode = LuvioNamedTypeNode | LuvioListTypeNode | LuvioNonNullTypeNode;
65
+ export interface LuvioNamedTypeNode extends Omit<NamedTypeNode, 'loc' | 'name'> {
66
+ name: string;
67
+ }
68
+ export interface LuvioListTypeNode extends Omit<ListTypeNode, 'loc' | 'type'> {
69
+ type: LuvioTypeNode;
70
+ }
71
+ export interface LuvioNonNullTypeNode extends Omit<NonNullTypeNode, 'loc' | 'type'> {
72
+ type: LuvioNamedTypeNode | LuvioListTypeNode;
73
+ }
74
+ export interface LuvioSelectionScalarFieldNode extends Omit<FieldNode, 'kind' | 'loc' | 'alias' | 'name' | 'arguments' | 'directives' | 'selectionSet'> {
75
+ kind: 'ScalarFieldSelection';
76
+ alias?: string;
77
+ name: string;
78
+ }
79
+ export interface LuvioSelectionObjectFieldNode extends Omit<FieldNode, 'kind' | 'loc' | 'alias' | 'name' | 'arguments' | 'directives' | 'selectionSet'> {
80
+ kind: 'ObjectFieldSelection';
81
+ alias?: string;
82
+ name: string;
83
+ arguments?: LuvioArgumentNode[];
84
+ directives?: LuvioDirectiveNode[];
85
+ luvioSelections?: LuvioSelectionNode[];
86
+ }
87
+ export interface LuvioSelectionCustomFieldNode extends Omit<LuvioSelectionObjectFieldNode, 'kind'> {
88
+ kind: 'CustomFieldSelection';
89
+ type: string;
90
+ }
91
+ export declare function isOperationDefinitionNode(input: DefinitionNode): input is OperationDefinitionNode;
92
+ export declare function isFragmentDefinitionNode(input: DefinitionNode): input is FragmentDefinitionNode;
93
+ export declare function isNamedTypeNode(input: TypeNode): input is NamedTypeNode;
94
+ export declare function isListTypeNode(input: TypeNode): input is ListTypeNode;
95
+ export declare function isNonNullTypeNode(input: TypeNode): input is NonNullTypeNode;
@@ -0,0 +1,12 @@
1
+ export declare const CUSTOM_DIRECTIVE_CONNECTION = "connection";
2
+ export declare const CUSTOM_DIRECTIVE_RESOURCE = "resource";
3
+ export declare const NODE_KIND_CUSTOM_FIELD_SELECTION = "CustomFieldSelection";
4
+ export declare const NODE_KIND_FIELD = "Field";
5
+ export declare const NODE_KIND_FRAGMENT_SPREAD = "FragmentSpread";
6
+ export declare const NODE_KIND_INLINE_FRAGMENT = "InlineFragment";
7
+ export declare const NODE_KIND_LIST_TYPE = "ListType";
8
+ export declare const NODE_KIND_NAMED_TYPE = "NamedType";
9
+ export declare const NODE_KIND_NON_NULL_TYPE = "NonNullType";
10
+ export declare const NODE_KIND_OBJECT_FIELD_SELECTION = "ObjectFieldSelection";
11
+ export declare const NODE_KIND_SCALAR_FIELD_SELECTION = "ScalarFieldSelection";
12
+ export declare const NODE_TYPE_CONNECTION = "Connection";
@@ -0,0 +1,5 @@
1
+ import { DirectiveNode } from 'graphql/language';
2
+ import { LuvioDirectiveNode } from './ast';
3
+ import { TransformState } from './operation/query';
4
+ export declare function transform(node: DirectiveNode, transformState: TransformState): LuvioDirectiveNode;
5
+ export declare function isCustomDirective(node: DirectiveNode): boolean;
@@ -0,0 +1,3 @@
1
+ import { DocumentNode } from 'graphql/language';
2
+ import { LuvioDocumentNode } from './ast';
3
+ export declare function transform(root: DocumentNode): LuvioDocumentNode;
@@ -0,0 +1,4 @@
1
+ import { FieldNode } from 'graphql/language';
2
+ import { LuvioFieldNode } from './ast';
3
+ import { TransformState } from './operation/query';
4
+ export declare function transform(node: FieldNode, transformState: TransformState): LuvioFieldNode;
@@ -0,0 +1,4 @@
1
+ import { FragmentSpreadNode } from 'graphql/language';
2
+ import { LuvioFragmentSpreadNode } from './ast';
3
+ import { TransformState } from './operation/query';
4
+ export declare function transform(node: FragmentSpreadNode, transformState: TransformState): LuvioFragmentSpreadNode;
@@ -0,0 +1,3 @@
1
+ import { FragmentDefinitionNode } from 'graphql/language';
2
+ import { LuvioFragmentDefinitionNode } from './ast';
3
+ export declare function transform(node: FragmentDefinitionNode): LuvioFragmentDefinitionNode;
@@ -0,0 +1,4 @@
1
+ import { InlineFragmentNode } from 'graphql/language';
2
+ import { LuvioInlineFragmentNode } from './ast';
3
+ import { TransformState } from './operation/query';
4
+ export declare function transform(node: InlineFragmentNode, transformState: TransformState): LuvioInlineFragmentNode;