Skip to content

Commit

Permalink
[core] GraphQL: Handle text and email types as strings
Browse files Browse the repository at this point in the history
  • Loading branch information
rexxars authored and saasen committed Feb 27, 2020
1 parent 6c5181a commit e4a3183
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 14 deletions.
29 changes: 16 additions & 13 deletions packages/@sanity/core/src/actions/graphql/v2/generateTypeFilters.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ const createBooleanFilters = require('./filters/booleanFilters')
const createDatetimeFilters = require('./filters/datetimeFilters')
const createDateFilters = require('./filters/dateFilters')

const typeAliases = {
Text: 'String',
Email: 'String'
}

const filterCreators = {
ID: createIdFilters,
String: createStringFilters,
Expand Down Expand Up @@ -48,25 +53,14 @@ function createObjectTypeFilters(objectTypes) {
return {
name: `${objectType.name}Filter`,
kind: 'InputObject',
fields: objectType.fields
.filter(field => field.type !== 'JSON' && field.kind !== 'List')
.map(field => ({
fieldName: field.fieldName,
type: `${field.type}Filter`
}))
fields: createFieldFilters(objectType)
}
})
}

function createDocumentTypeFilters(documentTypes) {
return documentTypes.map(documentType => {
const fields = documentType.fields
.filter(field => field.type !== 'JSON' && field.kind !== 'List')
.map(field => ({
fieldName: field.fieldName,
type: `${field.type}Filter`
}))
.concat(getDocumentFilters())
const fields = createFieldFilters(documentType).concat(getDocumentFilters())
return {
name: `${documentType.name}Filter`,
kind: 'InputObject',
Expand All @@ -75,6 +69,15 @@ function createDocumentTypeFilters(documentTypes) {
})
}

function createFieldFilters(objectType) {
return objectType.fields
.filter(field => field.type !== 'JSON' && field.kind !== 'List')
.map(field => ({
fieldName: field.fieldName,
type: `${typeAliases[field.type] || field.type}Filter`
}))
}

function getDocumentFilters() {
return [
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
const builtInTypes = ['ID', 'String', 'Url', 'Float', 'Integer', 'Boolean', 'Datetime', 'Date']
const builtInTypes = [
'Boolean',
'Date',
'Datetime',
'Email',
'Float',
'ID',
'Integer',
'String',
'Text',
'Url'
]

const builtInSortingEnum = {
name: 'SortOrder',
Expand Down

0 comments on commit e4a3183

Please sign in to comment.