Skip to content

Commit

Permalink
feat(TypeComposer): add method isFieldNonNull
Browse files Browse the repository at this point in the history
  • Loading branch information
nodkz committed Apr 27, 2018
1 parent 5478dd4 commit 8867567
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/TypeComposer.d.ts
Expand Up @@ -212,6 +212,8 @@ export class TypeComposer<TContext> {

public getFieldTC(fieldName: string): TypeComposer<TContext>;

public isFieldNonNull(fieldName: string): boolean;

public makeFieldNonNull(fieldNameOrArray: string | string[]): TypeComposer<TContext>;

public makeFieldNullable(fieldNameOrArray: string | string[]): TypeComposer<TContext>;
Expand Down
4 changes: 4 additions & 0 deletions src/TypeComposer.js
Expand Up @@ -629,6 +629,10 @@ export class TypeComposer<TContext> {
return this.constructor.schemaComposer.TypeComposer.createTemp(fieldType);
}

isFieldNonNull(fieldName: string): boolean {
return this.getFieldType(fieldName) instanceof GraphQLNonNull;
}

makeFieldNonNull(fieldNameOrArray: string | Array<string>): TypeComposer<TContext> {
const fieldNames = Array.isArray(fieldNameOrArray) ? fieldNameOrArray : [fieldNameOrArray];
fieldNames.forEach(fieldName => {
Expand Down
7 changes: 7 additions & 0 deletions src/__tests__/TypeComposer-test.js
Expand Up @@ -261,6 +261,13 @@ describe('TypeComposer', () => {
});
});

it('isFieldNonNull()', () => {
tc.setField('fieldNN', 'String');
expect(tc.isFieldNonNull('fieldNN')).toBe(false);
tc.setField('fieldNN', 'String!');
expect(tc.isFieldNonNull('fieldNN')).toBe(true);
});

it('makeFieldNonNull()', () => {
tc.setField('fieldNN', 'String');
expect(tc.getFieldType('fieldNN')).toBe(GraphQLString);
Expand Down

0 comments on commit 8867567

Please sign in to comment.