Skip to content

Commit d7df0b8

Browse files
committed
refactor: treeshakable kind enum
1 parent d59c725 commit d7df0b8

File tree

2 files changed

+70
-69
lines changed

2 files changed

+70
-69
lines changed

src/language/kinds.ts

Lines changed: 5 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,8 @@
1+
import * as kinds_ from './kinds_.js'; // eslint-disable-line
2+
3+
export * as Kind from './kinds_.js';
4+
15
/**
26
* The set of allowed kind values for AST nodes.
37
*/
4-
enum Kind {
5-
/** Name */
6-
NAME = 'Name',
7-
8-
/** Document */
9-
DOCUMENT = 'Document',
10-
OPERATION_DEFINITION = 'OperationDefinition',
11-
VARIABLE_DEFINITION = 'VariableDefinition',
12-
SELECTION_SET = 'SelectionSet',
13-
FIELD = 'Field',
14-
ARGUMENT = 'Argument',
15-
FRAGMENT_ARGUMENT = 'FragmentArgument',
16-
17-
/** Fragments */
18-
FRAGMENT_SPREAD = 'FragmentSpread',
19-
INLINE_FRAGMENT = 'InlineFragment',
20-
FRAGMENT_DEFINITION = 'FragmentDefinition',
21-
22-
/** Values */
23-
VARIABLE = 'Variable',
24-
INT = 'IntValue',
25-
FLOAT = 'FloatValue',
26-
STRING = 'StringValue',
27-
BOOLEAN = 'BooleanValue',
28-
NULL = 'NullValue',
29-
ENUM = 'EnumValue',
30-
LIST = 'ListValue',
31-
OBJECT = 'ObjectValue',
32-
OBJECT_FIELD = 'ObjectField',
33-
34-
/** Directives */
35-
DIRECTIVE = 'Directive',
36-
37-
/** Types */
38-
NAMED_TYPE = 'NamedType',
39-
LIST_TYPE = 'ListType',
40-
NON_NULL_TYPE = 'NonNullType',
41-
42-
/** Type System Definitions */
43-
SCHEMA_DEFINITION = 'SchemaDefinition',
44-
OPERATION_TYPE_DEFINITION = 'OperationTypeDefinition',
45-
46-
/** Type Definitions */
47-
SCALAR_TYPE_DEFINITION = 'ScalarTypeDefinition',
48-
OBJECT_TYPE_DEFINITION = 'ObjectTypeDefinition',
49-
FIELD_DEFINITION = 'FieldDefinition',
50-
INPUT_VALUE_DEFINITION = 'InputValueDefinition',
51-
INTERFACE_TYPE_DEFINITION = 'InterfaceTypeDefinition',
52-
UNION_TYPE_DEFINITION = 'UnionTypeDefinition',
53-
ENUM_TYPE_DEFINITION = 'EnumTypeDefinition',
54-
ENUM_VALUE_DEFINITION = 'EnumValueDefinition',
55-
INPUT_OBJECT_TYPE_DEFINITION = 'InputObjectTypeDefinition',
56-
57-
/** Directive Definitions */
58-
DIRECTIVE_DEFINITION = 'DirectiveDefinition',
59-
60-
/** Type System Extensions */
61-
SCHEMA_EXTENSION = 'SchemaExtension',
62-
63-
/** Type Extensions */
64-
SCALAR_TYPE_EXTENSION = 'ScalarTypeExtension',
65-
OBJECT_TYPE_EXTENSION = 'ObjectTypeExtension',
66-
INTERFACE_TYPE_EXTENSION = 'InterfaceTypeExtension',
67-
UNION_TYPE_EXTENSION = 'UnionTypeExtension',
68-
ENUM_TYPE_EXTENSION = 'EnumTypeExtension',
69-
INPUT_OBJECT_TYPE_EXTENSION = 'InputObjectTypeExtension',
70-
}
71-
72-
export { Kind };
8+
export type Kind = (typeof kinds_)[keyof typeof kinds_];

src/language/kinds_.ts

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/** Name */
2+
export const NAME = 'Name';
3+
4+
/** Document */
5+
export const DOCUMENT = 'Document';
6+
export const OPERATION_DEFINITION = 'OperationDefinition';
7+
export const VARIABLE_DEFINITION = 'VariableDefinition';
8+
export const SELECTION_SET = 'SelectionSet';
9+
export const FIELD = 'Field';
10+
export const ARGUMENT = 'Argument';
11+
export const FRAGMENT_ARGUMENT = 'FragmentArgument';
12+
13+
/** Fragments */
14+
export const FRAGMENT_SPREAD = 'FragmentSpread';
15+
export const INLINE_FRAGMENT = 'InlineFragment';
16+
export const FRAGMENT_DEFINITION = 'FragmentDefinition';
17+
18+
/** Values */
19+
export const VARIABLE = 'Variable';
20+
export const INT = 'IntValue';
21+
export const FLOAT = 'FloatValue';
22+
export const STRING = 'StringValue';
23+
export const BOOLEAN = 'BooleanValue';
24+
export const NULL = 'NullValue';
25+
export const ENUM = 'EnumValue';
26+
export const LIST = 'ListValue';
27+
export const OBJECT = 'ObjectValue';
28+
export const OBJECT_FIELD = 'ObjectField';
29+
30+
/** Directives */
31+
export const DIRECTIVE = 'Directive';
32+
33+
/** Types */
34+
export const NAMED_TYPE = 'NamedType';
35+
export const LIST_TYPE = 'ListType';
36+
export const NON_NULL_TYPE = 'NonNullType';
37+
38+
/** Type System Definitions */
39+
export const SCHEMA_DEFINITION = 'SchemaDefinition';
40+
export const OPERATION_TYPE_DEFINITION = 'OperationTypeDefinition';
41+
42+
/** Type Definitions */
43+
export const SCALAR_TYPE_DEFINITION = 'ScalarTypeDefinition';
44+
export const OBJECT_TYPE_DEFINITION = 'ObjectTypeDefinition';
45+
export const FIELD_DEFINITION = 'FieldDefinition';
46+
export const INPUT_VALUE_DEFINITION = 'InputValueDefinition';
47+
export const INTERFACE_TYPE_DEFINITION = 'InterfaceTypeDefinition';
48+
export const UNION_TYPE_DEFINITION = 'UnionTypeDefinition';
49+
export const ENUM_TYPE_DEFINITION = 'EnumTypeDefinition';
50+
export const ENUM_VALUE_DEFINITION = 'EnumValueDefinition';
51+
export const INPUT_OBJECT_TYPE_DEFINITION = 'InputObjectTypeDefinition';
52+
53+
/** Directive Definitions */
54+
export const DIRECTIVE_DEFINITION = 'DirectiveDefinition';
55+
56+
/** Type System Extensions */
57+
export const SCHEMA_EXTENSION = 'SchemaExtension';
58+
59+
/** Type Extensions */
60+
export const SCALAR_TYPE_EXTENSION = 'ScalarTypeExtension';
61+
export const OBJECT_TYPE_EXTENSION = 'ObjectTypeExtension';
62+
export const INTERFACE_TYPE_EXTENSION = 'InterfaceTypeExtension';
63+
export const UNION_TYPE_EXTENSION = 'UnionTypeExtension';
64+
export const ENUM_TYPE_EXTENSION = 'EnumTypeExtension';
65+
export const INPUT_OBJECT_TYPE_EXTENSION = 'InputObjectTypeExtension';

0 commit comments

Comments
 (0)