diff --git a/src/rules/fields_are_camel_cased.js b/src/rules/fields_are_camel_cased.js index e99ba76..8375fac 100644 --- a/src/rules/fields_are_camel_cased.js +++ b/src/rules/fields_are_camel_cased.js @@ -1,12 +1,12 @@ import { ValidationError } from '../validation_error'; -import { camelCase } from 'lodash'; + +const camelCaseTest = RegExp('^[a-z][a-zA-Z0-9]*$'); export function FieldsAreCamelCased(context) { return { FieldDefinition(node, key, parent, path, ancestors) { const fieldName = node.name.value; - const camelCased = camelCase(fieldName); - if (camelCased !== fieldName) { + if (!camelCaseTest.test(fieldName)) { const parentName = ancestors[ancestors.length - 1].name.value; context.reportError( new ValidationError( diff --git a/src/rules/input_object_values_are_camel_cased.js b/src/rules/input_object_values_are_camel_cased.js index 46ad1cd..f1af55a 100644 --- a/src/rules/input_object_values_are_camel_cased.js +++ b/src/rules/input_object_values_are_camel_cased.js @@ -1,5 +1,6 @@ import { ValidationError } from '../validation_error'; -import { camelCase } from 'lodash'; + +const camelCaseTest = RegExp('^[a-z][a-zA-Z0-9]*$'); export function InputObjectValuesAreCamelCased(context) { return { @@ -8,8 +9,7 @@ export function InputObjectValuesAreCamelCased(context) { const parentNode = ancestors[ancestors.length - 1]; const fieldName = node.name.value; - const camelCased = camelCase(fieldName); - if (camelCased !== fieldName) { + if (!camelCaseTest.test(fieldName)) { const inputObjectName = parentNode.name.value; context.reportError( new ValidationError( diff --git a/test/rules/fields_are_camel_cased.js b/test/rules/fields_are_camel_cased.js index 42c4633..26868c2 100644 --- a/test/rules/fields_are_camel_cased.js +++ b/test/rules/fields_are_camel_cased.js @@ -13,6 +13,9 @@ describe('FieldsAreCamelCased rule', () => { # Valid thisIsValid: String + # Valid + thisIDIsValid: String + # Invalid ThisIsInvalid: String } @@ -23,6 +26,9 @@ describe('FieldsAreCamelCased rule', () => { # Valid thisIsValid: String + + # Valid + thisIDIsValid: String } `, [ @@ -32,11 +38,11 @@ describe('FieldsAreCamelCased rule', () => { }, { message: 'The field `A.ThisIsInvalid` is not camel cased.', - locations: [{ line: 10, column: 9 }], + locations: [{ line: 13, column: 9 }], }, { message: 'The field `Something.invalid_name` is not camel cased.', - locations: [{ line: 15, column: 9 }], + locations: [{ line: 18, column: 9 }], }, ] ); diff --git a/test/rules/input_object_values_are_camel_cased.js b/test/rules/input_object_values_are_camel_cased.js index 5649e6d..5692835 100644 --- a/test/rules/input_object_values_are_camel_cased.js +++ b/test/rules/input_object_values_are_camel_cased.js @@ -9,6 +9,7 @@ describe('InputObjectValuesAreCamelCased rule', () => { input User { user_name: String + userID: String withDescription: String } `,