@coding-blocks/jsonapi-server
Version:
A config driven NodeJS framework implementing json:api
26 lines (21 loc) • 775 B
JavaScript
const writeArgs = module.exports = { }
const graphQl = require('graphql')
const jsonApi = require('../..')
const joiConverter = require('./joiConverter.js')
writeArgs.generate = (resource, allWriteTypes) => {
const args = {
id: { type: graphQl.GraphQLString }
}
const resourceConfig = jsonApi._resources[resource]
Object.keys(resourceConfig.attributes).forEach(attribute => {
if ((attribute === 'id') || (attribute === 'type') || (attribute === 'meta')) return
const joiScheme = resourceConfig.attributes[attribute]
if (joiScheme._settings && joiScheme._settings.__as) return
args[attribute] = {
type: joiConverter.shallowInput(joiScheme, allWriteTypes),
description: joiScheme._description
}
})
return args
}