UNPKG

2.33 kBJavaScriptView Raw
1import { RenameTypes, RenameRootTypes, RenameObjectFields, RenameRootFields, RenameInputObjectFields, RenameInterfaceFields, TransformEnumValues } from '@graphql-tools/wrap';
2import { applySchemaTransforms, applyRequestTransforms, applyResultTransforms } from '@graphql-tools/utils';
3import { camelCase, capitalCase, constantCase, dotCase, headerCase, noCase, paramCase, pascalCase, pathCase, sentenceCase, snakeCase } from 'change-case';
4import { upperCase } from 'upper-case';
5import { lowerCase } from 'lower-case';
6
7const NAMING_CONVENTIONS = {
8 camelCase,
9 capitalCase,
10 constantCase,
11 dotCase,
12 headerCase,
13 noCase,
14 paramCase,
15 pascalCase,
16 pathCase,
17 sentenceCase,
18 snakeCase,
19 upperCase,
20 lowerCase,
21};
22class NamingConventionTransform {
23 constructor(options) {
24 this.transforms = [];
25 if (options.config.typeNames) {
26 const namingConventionFn = NAMING_CONVENTIONS[options.config.typeNames];
27 this.transforms.push(new RenameTypes(typeName => namingConventionFn(typeName)), new RenameRootTypes(typeName => namingConventionFn(typeName)));
28 }
29 if (options.config.fieldNames) {
30 const namingConventionFn = NAMING_CONVENTIONS[options.config.fieldNames];
31 this.transforms.push(new RenameObjectFields((_, fieldName) => namingConventionFn(fieldName)), new RenameRootFields((_, fieldName) => namingConventionFn(fieldName)), new RenameInputObjectFields((_, fieldName) => namingConventionFn(fieldName)), new RenameInterfaceFields((_, fieldName) => namingConventionFn(fieldName)));
32 }
33 if (options.config.enumValues) {
34 const namingConventionFn = NAMING_CONVENTIONS[options.config.enumValues];
35 this.transforms.push(new TransformEnumValues((typeName, externalValue, enumValueConfig) => [
36 namingConventionFn(externalValue),
37 enumValueConfig,
38 ]));
39 }
40 }
41 transformSchema(schema) {
42 return applySchemaTransforms(schema, this.transforms);
43 }
44 transformRequest(request) {
45 return applyRequestTransforms(request, this.transforms);
46 }
47 transformResult(result) {
48 return applyResultTransforms(result, this.transforms);
49 }
50}
51
52export default NamingConventionTransform;
53//# sourceMappingURL=index.esm.js.map