24 lines
656 B
JavaScript
Raw Normal View History

'use strict';
const { enumType } = require('nexus');
const { set } = require('lodash/fp');
2022-01-21 15:32:44 +01:00
const { toGraphQLName } = require('@strapi/utils');
/**
* Build a Nexus enum type from a Strapi enum attribute
* @param {object} definition - The definition of the enum
* @param {string[]} definition.enum - The params of the enum
2021-09-23 17:25:25 +02:00
* @param {string} name - The name of the enum
* @return {NexusEnumTypeDef}
*/
2021-09-23 17:25:25 +02:00
const buildEnumTypeDefinition = (definition, name) => {
return enumType({
name,
2022-01-21 15:32:44 +01:00
members: definition.enum.reduce((acc, value) => set(toGraphQLName(value), value, acc), {}),
});
};
module.exports = () => ({
buildEnumTypeDefinition,
});