UNPKG

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