@payloadcms/graphql 3.28.0-internal.b3cf0a3 → 3.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schema/buildMutationInputType.js +17 -17
- package/dist/schema/buildMutationInputType.js.map +1 -1
- package/dist/schema/buildObjectType.d.ts +1 -1
- package/dist/schema/buildObjectType.d.ts.map +1 -1
- package/dist/schema/buildObjectType.js +12 -780
- package/dist/schema/buildObjectType.js.map +1 -1
- package/dist/schema/buildPoliciesType.js +1 -1
- package/dist/schema/buildPoliciesType.js.map +1 -1
- package/dist/schema/fieldToSchemaMap.d.ts +80 -0
- package/dist/schema/fieldToSchemaMap.d.ts.map +1 -0
- package/dist/schema/fieldToSchemaMap.js +828 -0
- package/dist/schema/fieldToSchemaMap.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig, GraphQLType } from 'graphql'\nimport type {\n ArrayField,\n BlocksField,\n CheckboxField,\n CodeField,\n CollapsibleField,\n DateField,\n EmailField,\n Field,\n GraphQLInfo,\n GroupField,\n JoinField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RichTextAdapter,\n RichTextField,\n RowField,\n SanitizedConfig,\n SelectField,\n TabsField,\n TextareaField,\n TextField,\n UploadField,\n} from 'payload'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInt,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { combineQueries, createDataloaderCacheKey, MissingEditorProp, toWords } from 'payload'\nimport { tabHasName } from 'payload/shared'\n\nimport type { Context } from '../resolvers/types.js'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport { combineParentName } from '../utilities/combineParentName.js'\nimport { formatName } from '../utilities/formatName.js'\nimport { formatOptions } from '../utilities/formatOptions.js'\nimport { isFieldNullable } from './isFieldNullable.js'\nimport { withNullableType } from './withNullableType.js'\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentIsLocalized?: boolean\n parentName: string\n}\n\nexport function buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: Args): GraphQLObjectType {\n const fieldToSchemaMap = {\n array: (objectTypeConfig: ObjectTypeConfig, field: ArrayField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.arrayTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.arrayTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n const arrayType = new GraphQLList(\n new GraphQLNonNull(graphqlResult.types.arrayTypes[interfaceName]),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType({ type: arrayType, field, parentIsLocalized }) },\n }\n },\n blocks: (objectTypeConfig: ObjectTypeConfig, field: BlocksField) => {\n const blockTypes: GraphQLObjectType<any, any>[] = (\n field.blockReferences ?? field.blocks\n ).reduce((acc, _block) => {\n const blockSlug = typeof _block === 'string' ? _block : _block.slug\n if (!graphqlResult.types.blockTypes[blockSlug]) {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const interfaceName =\n block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true)\n\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: [\n ...block.fields,\n {\n name: 'blockType',\n type: 'text',\n },\n ],\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.blockTypes[block.slug] = objectType\n }\n }\n\n if (graphqlResult.types.blockTypes[blockSlug]) {\n acc.push(graphqlResult.types.blockTypes[blockSlug])\n }\n\n return acc\n }, [])\n\n if (blockTypes.length === 0) {\n return objectTypeConfig\n }\n\n const fullName = combineParentName(parentName, toWords(field.name, true))\n\n const type = new GraphQLList(\n new GraphQLNonNull(\n new GraphQLUnionType({\n name: fullName,\n resolveType: (data) => graphqlResult.types.blockTypes[data.blockType].name,\n types: blockTypes,\n }),\n ),\n )\n\n return {\n ...objectTypeConfig,\n [field.name]: { type: withNullableType({ type, field, parentIsLocalized }) },\n }\n },\n checkbox: (objectTypeConfig: ObjectTypeConfig, field: CheckboxField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLBoolean, field, forceNullable, parentIsLocalized }),\n },\n }),\n code: (objectTypeConfig: ObjectTypeConfig, field: CodeField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n collapsible: (objectTypeConfig: ObjectTypeConfig, field: CollapsibleField) =>\n field.fields.reduce((objectTypeConfigWithCollapsibleFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithCollapsibleFields, subField)\n }\n return objectTypeConfigWithCollapsibleFields\n }, objectTypeConfig),\n date: (objectTypeConfig: ObjectTypeConfig, field: DateField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: DateTimeResolver, field, forceNullable, parentIsLocalized }),\n },\n }),\n email: (objectTypeConfig: ObjectTypeConfig, field: EmailField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: EmailAddressResolver,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n group: (objectTypeConfig: ObjectTypeConfig, field: GroupField) => {\n const interfaceName =\n field?.interfaceName || combineParentName(parentName, toWords(field.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: field.fields,\n forceNullable: isFieldNullable({ field, forceNullable, parentIsLocalized }),\n graphqlResult,\n parentIsLocalized: field.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve: (parent, args, context: Context) => {\n return {\n ...parent[field.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n },\n join: (objectTypeConfig: ObjectTypeConfig, field: JoinField) => {\n const joinName = combineParentName(parentName, toWords(field.name, true))\n\n const joinType = {\n type: new GraphQLObjectType({\n name: joinName,\n fields: {\n docs: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : new GraphQLList(graphqlResult.collections[field.collection].graphQL.type),\n },\n hasNextPage: { type: GraphQLBoolean },\n },\n }),\n args: {\n limit: {\n type: GraphQLInt,\n },\n page: {\n type: GraphQLInt,\n },\n sort: {\n type: GraphQLString,\n },\n where: {\n type: Array.isArray(field.collection)\n ? GraphQLJSON\n : graphqlResult.collections[field.collection].graphQL.whereInputType,\n },\n },\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const { collection } = field\n const { limit, page, sort, where } = args\n const { req } = context\n\n const fullWhere = combineQueries(where, {\n [field.on]: { equals: parent._id ?? parent.id },\n })\n\n if (Array.isArray(collection)) {\n throw new Error('GraphQL with array of join.field.collection is not implemented')\n }\n\n return await req.payload.find({\n collection,\n depth: 0,\n fallbackLocale: req.fallbackLocale,\n limit,\n locale: req.locale,\n overrideAccess: false,\n page,\n req,\n sort,\n where: fullWhere,\n })\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: joinType,\n }\n },\n json: (objectTypeConfig: ObjectTypeConfig, field: JSONField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n },\n }),\n number: (objectTypeConfig: ObjectTypeConfig, field: NumberField) => {\n const type = field?.name === 'id' ? GraphQLInt : GraphQLFloat\n return {\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: field?.hasMany === true ? new GraphQLList(type) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }\n },\n point: (objectTypeConfig: ObjectTypeConfig, field: PointField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: new GraphQLList(new GraphQLNonNull(GraphQLFloat)),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n radio: (objectTypeConfig: ObjectTypeConfig, field: RadioField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: new GraphQLEnumType({\n name: combineParentName(parentName, field.name),\n values: formatOptions(field),\n }),\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n relationship: (objectTypeConfig: ObjectTypeConfig, field: RelationshipField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n const graphQLCollections = config.collections.filter(\n (collectionConfig) => collectionConfig.graphQL !== false,\n )\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n // Only pass collections that are GraphQL enabled\n const types = relationTo\n .filter((relation) =>\n graphQLCollections.some((collection) => collection.slug === relation),\n )\n .map((relation) => graphqlResult.collections[relation]?.graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo])\n .filter((relation) => graphQLCollections.some((collection) => collection.slug === relation))\n .some((relation) => graphqlResult.collections[relation].config.versions?.drafts)\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n const isValidGraphQLCollection = isRelatedToManyCollections\n ? graphQLCollections.some((collection) => collectionSlug.includes(collection.slug))\n : graphQLCollections.some((collection) => collectionSlug === collection.slug)\n\n if (isValidGraphQLCollection) {\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: collectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n if (\n graphQLCollections.some((collection) => collection.slug === relatedCollectionSlug)\n ) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug as string,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n richText: (objectTypeConfig: ObjectTypeConfig, field: RichTextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLJSON, field, forceNullable, parentIsLocalized }),\n args: {\n depth: {\n type: GraphQLInt,\n },\n },\n async resolve(parent, args, context: Context) {\n let depth = config.defaultDepth\n if (typeof args.depth !== 'undefined') {\n depth = args.depth\n }\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const editor: RichTextAdapter = field?.editor\n\n // RichText fields have their own depth argument in GraphQL.\n // This is why the populationPromise (which populates richtext fields like uploads and relationships)\n // is run here again, with the provided depth.\n // In the graphql find.ts resolver, the depth is then hard-coded to 0.\n // Effectively, this means that the populationPromise for GraphQL is only run here, and not in the find.ts resolver / normal population promise.\n if (editor?.graphQLPopulationPromises) {\n const fieldPromises = []\n const populationPromises = []\n const populateDepth =\n field?.maxDepth !== undefined && field?.maxDepth < depth ? field?.maxDepth : depth\n\n editor?.graphQLPopulationPromises({\n context,\n depth: populateDepth,\n draft: args.draft,\n field,\n fieldPromises,\n findMany: false,\n flattenLocales: false,\n overrideAccess: false,\n parentIsLocalized,\n populationPromises,\n req: context.req,\n showHiddenFields: false,\n siblingDoc: parent,\n })\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n }\n\n return parent[field.name]\n },\n },\n }),\n row: (objectTypeConfig: ObjectTypeConfig, field: RowField) =>\n field.fields.reduce((objectTypeConfigWithRowFields, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(objectTypeConfigWithRowFields, subField)\n }\n return objectTypeConfigWithRowFields\n }, objectTypeConfig),\n select: (objectTypeConfig: ObjectTypeConfig, field: SelectField) => {\n const fullName = combineParentName(parentName, field.name)\n\n let type: GraphQLType = new GraphQLEnumType({\n name: fullName,\n values: formatOptions(field),\n })\n\n type = field.hasMany ? new GraphQLList(new GraphQLNonNull(type)) : type\n type = withNullableType({ type, field, forceNullable, parentIsLocalized })\n\n return {\n ...objectTypeConfig,\n [field.name]: { type },\n }\n },\n tabs: (objectTypeConfig: ObjectTypeConfig, field: TabsField) =>\n field.tabs.reduce((tabSchema, tab) => {\n if (tabHasName(tab)) {\n const interfaceName =\n tab?.interfaceName || combineParentName(parentName, toWords(tab.name, true))\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n const objectType = buildObjectType({\n name: interfaceName,\n config,\n fields: tab.fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized: tab.localized || parentIsLocalized,\n parentName: interfaceName,\n })\n\n if (Object.keys(objectType.getFields()).length) {\n graphqlResult.types.groupTypes[interfaceName] = objectType\n }\n }\n\n if (!graphqlResult.types.groupTypes[interfaceName]) {\n return tabSchema\n }\n\n return {\n ...tabSchema,\n [tab.name]: {\n type: graphqlResult.types.groupTypes[interfaceName],\n resolve(parent, args, context: Context) {\n return {\n ...parent[tab.name],\n _id: parent._id ?? parent.id,\n }\n },\n },\n }\n }\n\n return {\n ...tabSchema,\n ...tab.fields.reduce((subFieldSchema, subField) => {\n const addSubField = fieldToSchemaMap[subField.type]\n if (addSubField) {\n return addSubField(subFieldSchema, subField)\n }\n return subFieldSchema\n }, tabSchema),\n }\n }, objectTypeConfig),\n text: (objectTypeConfig: ObjectTypeConfig, field: TextField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({\n type: field.hasMany === true ? new GraphQLList(GraphQLString) : GraphQLString,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n },\n }),\n textarea: (objectTypeConfig: ObjectTypeConfig, field: TextareaField) => ({\n ...objectTypeConfig,\n [field.name]: {\n type: withNullableType({ type: GraphQLString, field, forceNullable, parentIsLocalized }),\n },\n }),\n upload: (objectTypeConfig: ObjectTypeConfig, field: UploadField) => {\n const { relationTo } = field\n const isRelatedToManyCollections = Array.isArray(relationTo)\n const hasManyValues = field.hasMany\n const relationshipName = combineParentName(parentName, toWords(field.name, true))\n\n let type\n let relationToType = null\n\n if (Array.isArray(relationTo)) {\n relationToType = new GraphQLEnumType({\n name: `${relationshipName}_RelationTo`,\n values: relationTo.reduce(\n (relations, relation) => ({\n ...relations,\n [formatName(relation)]: {\n value: relation,\n },\n }),\n {},\n ),\n })\n\n const types = relationTo.map((relation) => graphqlResult.collections[relation].graphQL.type)\n\n type = new GraphQLObjectType({\n name: `${relationshipName}_Relationship`,\n fields: {\n relationTo: {\n type: relationToType,\n },\n value: {\n type: new GraphQLUnionType({\n name: relationshipName,\n resolveType(data) {\n return graphqlResult.collections[data.collection].graphQL.type.name\n },\n types,\n }),\n },\n },\n })\n } else {\n ;({ type } = graphqlResult.collections[relationTo].graphQL)\n }\n\n // If the relationshipType is undefined at this point,\n // it can be assumed that this blockType can have a relationship\n // to itself. Therefore, we set the relationshipType equal to the blockType\n // that is currently being created.\n\n type = type || newlyCreatedBlockType\n\n const relationshipArgs: {\n draft?: unknown\n fallbackLocale?: unknown\n limit?: unknown\n locale?: unknown\n page?: unknown\n where?: unknown\n } = {}\n\n const relationsUseDrafts = (Array.isArray(relationTo) ? relationTo : [relationTo]).some(\n (relation) => graphqlResult.collections[relation].config.versions?.drafts,\n )\n\n if (relationsUseDrafts) {\n relationshipArgs.draft = {\n type: GraphQLBoolean,\n }\n }\n\n if (config.localization) {\n relationshipArgs.locale = {\n type: graphqlResult.types.localeInputType,\n }\n\n relationshipArgs.fallbackLocale = {\n type: graphqlResult.types.fallbackLocaleInputType,\n }\n }\n\n const relationship = {\n type: withNullableType({\n type: hasManyValues ? new GraphQLList(new GraphQLNonNull(type)) : type,\n field,\n forceNullable,\n parentIsLocalized,\n }),\n args: relationshipArgs,\n extensions: {\n complexity:\n typeof field?.graphQL?.complexity === 'number' ? field.graphQL.complexity : 10,\n },\n async resolve(parent, args, context: Context) {\n const value = parent[field.name]\n const locale = args.locale || context.req.locale\n const fallbackLocale = args.fallbackLocale || context.req.fallbackLocale\n let relatedCollectionSlug = field.relationTo\n const draft = Boolean(args.draft ?? context.req.query?.draft)\n\n if (hasManyValues) {\n const results = []\n const resultPromises = []\n\n const createPopulationPromise = async (relatedDoc, i) => {\n let id = relatedDoc\n let collectionSlug = field.relationTo\n\n if (isRelatedToManyCollections) {\n collectionSlug = relatedDoc.relationTo\n id = relatedDoc.value\n }\n\n const result = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (result) {\n if (isRelatedToManyCollections) {\n results[i] = {\n relationTo: collectionSlug,\n value: {\n ...result,\n collection: collectionSlug,\n },\n }\n } else {\n results[i] = result\n }\n }\n }\n\n if (value) {\n value.forEach((relatedDoc, i) => {\n resultPromises.push(createPopulationPromise(relatedDoc, i))\n })\n }\n\n await Promise.all(resultPromises)\n return results\n }\n\n let id = value\n if (isRelatedToManyCollections && value) {\n id = value.value\n relatedCollectionSlug = value.relationTo\n }\n\n if (id) {\n const relatedDocument = await context.req.payloadDataLoader.load(\n createDataloaderCacheKey({\n collectionSlug: relatedCollectionSlug,\n currentDepth: 0,\n depth: 0,\n docID: id,\n draft,\n fallbackLocale,\n locale,\n overrideAccess: false,\n showHiddenFields: false,\n transactionID: context.req.transactionID,\n }),\n )\n\n if (relatedDocument) {\n if (isRelatedToManyCollections) {\n return {\n relationTo: relatedCollectionSlug,\n value: {\n ...relatedDocument,\n collection: relatedCollectionSlug,\n },\n }\n }\n\n return relatedDocument\n }\n\n return null\n }\n\n return null\n },\n }\n\n return {\n ...objectTypeConfig,\n [field.name]: relationship,\n }\n },\n }\n\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema(objectTypeConfig, field),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInt","GraphQLList","GraphQLNonNull","GraphQLObjectType","GraphQLString","GraphQLUnionType","DateTimeResolver","EmailAddressResolver","combineQueries","createDataloaderCacheKey","MissingEditorProp","toWords","tabHasName","GraphQLJSON","combineParentName","formatName","formatOptions","isFieldNullable","withNullableType","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentIsLocalized","parentName","fieldToSchemaMap","array","objectTypeConfig","field","interfaceName","types","arrayTypes","objectType","localized","Object","keys","getFields","length","arrayType","type","blocks","blockTypes","blockReferences","reduce","acc","_block","blockSlug","slug","block","find","b","graphQL","singularName","push","fullName","resolveType","data","blockType","checkbox","code","collapsible","objectTypeConfigWithCollapsibleFields","subField","addSubField","date","email","group","groupTypes","resolve","parent","args","context","_id","id","join","joinName","joinType","docs","Array","isArray","collection","collections","hasNextPage","limit","page","sort","where","whereInputType","extensions","complexity","req","fullWhere","on","equals","Error","payload","depth","fallbackLocale","locale","overrideAccess","json","number","hasMany","point","radio","values","relationship","relationTo","isRelatedToManyCollections","hasManyValues","relationshipName","relationToType","graphQLCollections","filter","collectionConfig","relation","some","relations","value","map","newlyCreatedBlockType","relationshipArgs","relationsUseDrafts","versions","drafts","draft","localization","localeInputType","fallbackLocaleInputType","relatedCollectionSlug","Boolean","query","results","resultPromises","createPopulationPromise","relatedDoc","i","collectionSlug","isValidGraphQLCollection","includes","result","payloadDataLoader","load","currentDepth","docID","showHiddenFields","transactionID","forEach","Promise","all","relatedDocument","richText","defaultDepth","editor","graphQLPopulationPromises","fieldPromises","populationPromises","populateDepth","maxDepth","undefined","findMany","flattenLocales","siblingDoc","row","objectTypeConfigWithRowFields","select","tabs","tabSchema","tab","subFieldSchema","text","textarea","upload","objectSchema","fieldSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/buildObjectType.ts"],"sourcesContent":["import type { GraphQLFieldConfig } from 'graphql'\nimport type { Field, GraphQLInfo, SanitizedConfig } from 'payload'\n\nimport { GraphQLObjectType } from 'graphql'\n\nimport { fieldToSchemaMap } from './fieldToSchemaMap.js'\n\nexport type ObjectTypeConfig = {\n [path: string]: GraphQLFieldConfig<any, any, any>\n}\n\ntype Args = {\n baseFields?: ObjectTypeConfig\n config: SanitizedConfig\n fields: Field[]\n forceNullable?: boolean\n graphqlResult: GraphQLInfo\n name: string\n parentIsLocalized?: boolean\n parentName: string\n}\n\nexport function buildObjectType({\n name,\n baseFields = {},\n config,\n fields,\n forceNullable,\n graphqlResult,\n parentIsLocalized,\n parentName,\n}: Args): GraphQLObjectType {\n const objectSchema = {\n name,\n fields: () =>\n fields.reduce((objectTypeConfig, field) => {\n const fieldSchema = fieldToSchemaMap[field.type]\n\n if (typeof fieldSchema !== 'function') {\n return objectTypeConfig\n }\n\n return {\n ...objectTypeConfig,\n ...fieldSchema({\n config,\n field,\n forceNullable,\n graphqlResult,\n newlyCreatedBlockType,\n objectTypeConfig,\n parentIsLocalized,\n parentName,\n }),\n }\n }, baseFields),\n }\n\n const newlyCreatedBlockType = new GraphQLObjectType(objectSchema)\n\n return newlyCreatedBlockType\n}\n"],"names":["GraphQLObjectType","fieldToSchemaMap","buildObjectType","name","baseFields","config","fields","forceNullable","graphqlResult","parentIsLocalized","parentName","objectSchema","reduce","objectTypeConfig","field","fieldSchema","type","newlyCreatedBlockType"],"mappings":"AAGA,SAASA,iBAAiB,QAAQ,UAAS;AAE3C,SAASC,gBAAgB,QAAQ,wBAAuB;AAiBxD,OAAO,SAASC,gBAAgB,EAC9BC,IAAI,EACJC,aAAa,CAAC,CAAC,EACfC,MAAM,EACNC,MAAM,EACNC,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBC,UAAU,EACL;IACL,MAAMC,eAAe;QACnBR;QACAG,QAAQ,IACNA,OAAOM,MAAM,CAAC,CAACC,kBAAkBC;gBAC/B,MAAMC,cAAcd,gBAAgB,CAACa,MAAME,IAAI,CAAC;gBAEhD,IAAI,OAAOD,gBAAgB,YAAY;oBACrC,OAAOF;gBACT;gBAEA,OAAO;oBACL,GAAGA,gBAAgB;oBACnB,GAAGE,YAAY;wBACbV;wBACAS;wBACAP;wBACAC;wBACAS;wBACAJ;wBACAJ;wBACAC;oBACF,EAAE;gBACJ;YACF,GAAGN;IACP;IAEA,MAAMa,wBAAwB,IAAIjB,kBAAkBW;IAEpD,OAAOM;AACT"}
|
|
@@ -38,7 +38,7 @@ const buildFields = (label, fieldsToBuild)=>fieldsToBuild.reduce((builtFields, f
|
|
|
38
38
|
}
|
|
39
39
|
return {
|
|
40
40
|
...builtFields,
|
|
41
|
-
[field.name]: {
|
|
41
|
+
[formatName(field.name)]: {
|
|
42
42
|
type: new GraphQLObjectType({
|
|
43
43
|
name: `${label}_${fieldName}`,
|
|
44
44
|
fields: objectTypeFields
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/buildPoliciesType.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Field,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { GraphQLBoolean, GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport { toWords } from 'payload'\n\nimport { GraphQLJSONObject } from '../packages/graphql-type-json/index.js'\nimport { formatName } from '../utilities/formatName.js'\n\ntype OperationType = 'create' | 'delete' | 'read' | 'readVersions' | 'unlock' | 'update'\n\ntype AccessScopes = 'docAccess' | undefined\n\ntype ObjectTypeFields = {\n [key in 'fields' | OperationType]?: { type: GraphQLObjectType }\n}\n\nconst buildFields = (label, fieldsToBuild) =>\n fieldsToBuild.reduce((builtFields, field) => {\n const includeField = !field.hidden && field.type !== 'ui'\n if (includeField) {\n if (field.name) {\n const fieldName = formatName(field.name)\n\n const objectTypeFields: ObjectTypeFields = ['create', 'read', 'update', 'delete'].reduce(\n (operations, operation) => {\n const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1)\n\n return {\n ...operations,\n [operation]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_${capitalizedOperation}`,\n fields: {\n permission: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n },\n }),\n },\n }\n },\n {},\n )\n\n if (field.fields) {\n objectTypeFields.fields = {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_Fields`,\n fields: buildFields(`${label}_${fieldName}`, field.fields),\n }),\n }\n }\n\n return {\n ...builtFields,\n [field.name]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}`,\n fields: objectTypeFields,\n }),\n },\n }\n }\n\n if (!field.name && field.fields) {\n const subFields = buildFields(label, field.fields)\n\n return {\n ...builtFields,\n ...subFields,\n }\n }\n\n if (field.type === 'tabs') {\n return field.tabs.reduce(\n (fieldsWithTabFields, tab) => {\n return {\n ...fieldsWithTabFields,\n ...buildFields(label, tab.fields),\n }\n },\n { ...builtFields },\n )\n }\n }\n return builtFields\n }, {})\n\ntype BuildEntityPolicy = {\n entityFields: Field[]\n name: string\n operations: OperationType[]\n scope: AccessScopes\n}\nexport const buildEntityPolicy = (args: BuildEntityPolicy) => {\n const { name, entityFields, operations, scope } = args\n\n const fieldsTypeName = toWords(`${name}-${scope || ''}-Fields`, true)\n const fields = {\n fields: {\n type: new GraphQLObjectType({\n name: fieldsTypeName,\n fields: buildFields(fieldsTypeName, entityFields),\n }),\n },\n }\n\n operations.forEach((operation) => {\n const operationTypeName = toWords(`${name}-${operation}-${scope || 'Access'}`, true)\n\n fields[operation] = {\n type: new GraphQLObjectType({\n name: operationTypeName,\n fields: {\n permission: { type: new GraphQLNonNull(GraphQLBoolean) },\n where: { type: GraphQLJSONObject },\n },\n }),\n }\n })\n\n return fields\n}\n\ntype BuildPolicyType = {\n scope?: AccessScopes\n typeSuffix?: string\n} & (\n | {\n entity: CollectionConfig\n type: 'collection'\n }\n | {\n entity: GlobalConfig\n type: 'global'\n }\n)\nexport function buildPolicyType(args: BuildPolicyType): GraphQLObjectType {\n const { type, entity, scope, typeSuffix } = args\n const { slug, fields, graphQL, versions } = entity\n\n let operations = []\n\n if (graphQL === false) {\n return null\n }\n\n if (type === 'collection') {\n operations = ['create', 'read', 'update', 'delete']\n\n if (\n entity.auth &&\n typeof entity.auth === 'object' &&\n typeof entity.auth.maxLoginAttempts !== 'undefined' &&\n entity.auth.maxLoginAttempts !== 0\n ) {\n operations.push('unlock')\n }\n\n if (versions) {\n operations.push('readVersions')\n }\n\n const collectionTypeName = formatName(`${slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: collectionTypeName,\n fields: buildEntityPolicy({\n name: slug,\n entityFields: fields,\n operations,\n scope,\n }),\n })\n }\n\n // else create global type\n operations = ['read', 'update']\n\n if (entity.versions) {\n operations.push('readVersions')\n }\n\n const globalTypeName = formatName(`${global?.graphQL?.name || slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: globalTypeName,\n fields: buildEntityPolicy({\n name: entity.graphQL ? entity?.graphQL?.name || slug : slug,\n entityFields: entity.fields,\n operations,\n scope,\n }),\n })\n}\n\nexport function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType {\n const fields = {\n canAccessAdmin: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n }\n\n Object.values(config.collections).forEach((collection: SanitizedCollectionConfig) => {\n if (collection.graphQL === false) {\n return\n }\n const collectionPolicyType = buildPolicyType({\n type: 'collection',\n entity: collection,\n typeSuffix: 'Access',\n })\n\n fields[formatName(collection.slug)] = {\n type: collectionPolicyType,\n }\n })\n\n Object.values(config.globals).forEach((global: SanitizedGlobalConfig) => {\n if (global.graphQL === false) {\n return\n }\n const globalPolicyType = buildPolicyType({\n type: 'global',\n entity: global,\n typeSuffix: 'Access',\n })\n\n fields[formatName(global.slug)] = {\n type: globalPolicyType,\n }\n })\n\n return new GraphQLObjectType({\n name: 'Access',\n fields,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLNonNull","GraphQLObjectType","toWords","GraphQLJSONObject","formatName","buildFields","label","fieldsToBuild","reduce","builtFields","field","includeField","hidden","type","name","fieldName","objectTypeFields","operations","operation","capitalizedOperation","charAt","toUpperCase","slice","fields","permission","subFields","tabs","fieldsWithTabFields","tab","buildEntityPolicy","args","entityFields","scope","fieldsTypeName","forEach","operationTypeName","where","buildPolicyType","entity","typeSuffix","slug","graphQL","versions","auth","maxLoginAttempts","push","collectionTypeName","globalTypeName","global","buildPoliciesType","config","canAccessAdmin","Object","values","collections","collection","collectionPolicyType","globals","globalPolicyType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/buildPoliciesType.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Field,\n GlobalConfig,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { GraphQLBoolean, GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport { toWords } from 'payload'\n\nimport { GraphQLJSONObject } from '../packages/graphql-type-json/index.js'\nimport { formatName } from '../utilities/formatName.js'\n\ntype OperationType = 'create' | 'delete' | 'read' | 'readVersions' | 'unlock' | 'update'\n\ntype AccessScopes = 'docAccess' | undefined\n\ntype ObjectTypeFields = {\n [key in 'fields' | OperationType]?: { type: GraphQLObjectType }\n}\n\nconst buildFields = (label, fieldsToBuild) =>\n fieldsToBuild.reduce((builtFields, field) => {\n const includeField = !field.hidden && field.type !== 'ui'\n if (includeField) {\n if (field.name) {\n const fieldName = formatName(field.name)\n\n const objectTypeFields: ObjectTypeFields = ['create', 'read', 'update', 'delete'].reduce(\n (operations, operation) => {\n const capitalizedOperation = operation.charAt(0).toUpperCase() + operation.slice(1)\n\n return {\n ...operations,\n [operation]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_${capitalizedOperation}`,\n fields: {\n permission: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n },\n }),\n },\n }\n },\n {},\n )\n\n if (field.fields) {\n objectTypeFields.fields = {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}_Fields`,\n fields: buildFields(`${label}_${fieldName}`, field.fields),\n }),\n }\n }\n\n return {\n ...builtFields,\n [formatName(field.name)]: {\n type: new GraphQLObjectType({\n name: `${label}_${fieldName}`,\n fields: objectTypeFields,\n }),\n },\n }\n }\n\n if (!field.name && field.fields) {\n const subFields = buildFields(label, field.fields)\n\n return {\n ...builtFields,\n ...subFields,\n }\n }\n\n if (field.type === 'tabs') {\n return field.tabs.reduce(\n (fieldsWithTabFields, tab) => {\n return {\n ...fieldsWithTabFields,\n ...buildFields(label, tab.fields),\n }\n },\n { ...builtFields },\n )\n }\n }\n return builtFields\n }, {})\n\ntype BuildEntityPolicy = {\n entityFields: Field[]\n name: string\n operations: OperationType[]\n scope: AccessScopes\n}\nexport const buildEntityPolicy = (args: BuildEntityPolicy) => {\n const { name, entityFields, operations, scope } = args\n\n const fieldsTypeName = toWords(`${name}-${scope || ''}-Fields`, true)\n const fields = {\n fields: {\n type: new GraphQLObjectType({\n name: fieldsTypeName,\n fields: buildFields(fieldsTypeName, entityFields),\n }),\n },\n }\n\n operations.forEach((operation) => {\n const operationTypeName = toWords(`${name}-${operation}-${scope || 'Access'}`, true)\n\n fields[operation] = {\n type: new GraphQLObjectType({\n name: operationTypeName,\n fields: {\n permission: { type: new GraphQLNonNull(GraphQLBoolean) },\n where: { type: GraphQLJSONObject },\n },\n }),\n }\n })\n\n return fields\n}\n\ntype BuildPolicyType = {\n scope?: AccessScopes\n typeSuffix?: string\n} & (\n | {\n entity: CollectionConfig\n type: 'collection'\n }\n | {\n entity: GlobalConfig\n type: 'global'\n }\n)\nexport function buildPolicyType(args: BuildPolicyType): GraphQLObjectType {\n const { type, entity, scope, typeSuffix } = args\n const { slug, fields, graphQL, versions } = entity\n\n let operations = []\n\n if (graphQL === false) {\n return null\n }\n\n if (type === 'collection') {\n operations = ['create', 'read', 'update', 'delete']\n\n if (\n entity.auth &&\n typeof entity.auth === 'object' &&\n typeof entity.auth.maxLoginAttempts !== 'undefined' &&\n entity.auth.maxLoginAttempts !== 0\n ) {\n operations.push('unlock')\n }\n\n if (versions) {\n operations.push('readVersions')\n }\n\n const collectionTypeName = formatName(`${slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: collectionTypeName,\n fields: buildEntityPolicy({\n name: slug,\n entityFields: fields,\n operations,\n scope,\n }),\n })\n }\n\n // else create global type\n operations = ['read', 'update']\n\n if (entity.versions) {\n operations.push('readVersions')\n }\n\n const globalTypeName = formatName(`${global?.graphQL?.name || slug}${typeSuffix || ''}`)\n\n return new GraphQLObjectType({\n name: globalTypeName,\n fields: buildEntityPolicy({\n name: entity.graphQL ? entity?.graphQL?.name || slug : slug,\n entityFields: entity.fields,\n operations,\n scope,\n }),\n })\n}\n\nexport function buildPoliciesType(config: SanitizedConfig): GraphQLObjectType {\n const fields = {\n canAccessAdmin: {\n type: new GraphQLNonNull(GraphQLBoolean),\n },\n }\n\n Object.values(config.collections).forEach((collection: SanitizedCollectionConfig) => {\n if (collection.graphQL === false) {\n return\n }\n const collectionPolicyType = buildPolicyType({\n type: 'collection',\n entity: collection,\n typeSuffix: 'Access',\n })\n\n fields[formatName(collection.slug)] = {\n type: collectionPolicyType,\n }\n })\n\n Object.values(config.globals).forEach((global: SanitizedGlobalConfig) => {\n if (global.graphQL === false) {\n return\n }\n const globalPolicyType = buildPolicyType({\n type: 'global',\n entity: global,\n typeSuffix: 'Access',\n })\n\n fields[formatName(global.slug)] = {\n type: globalPolicyType,\n }\n })\n\n return new GraphQLObjectType({\n name: 'Access',\n fields,\n })\n}\n"],"names":["GraphQLBoolean","GraphQLNonNull","GraphQLObjectType","toWords","GraphQLJSONObject","formatName","buildFields","label","fieldsToBuild","reduce","builtFields","field","includeField","hidden","type","name","fieldName","objectTypeFields","operations","operation","capitalizedOperation","charAt","toUpperCase","slice","fields","permission","subFields","tabs","fieldsWithTabFields","tab","buildEntityPolicy","args","entityFields","scope","fieldsTypeName","forEach","operationTypeName","where","buildPolicyType","entity","typeSuffix","slug","graphQL","versions","auth","maxLoginAttempts","push","collectionTypeName","globalTypeName","global","buildPoliciesType","config","canAccessAdmin","Object","values","collections","collection","collectionPolicyType","globals","globalPolicyType"],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ArrayField, BlocksField, CheckboxField, CodeField, CollapsibleField, DateField, EmailField, GraphQLInfo, GroupField, JoinField, JSONField, NumberField, PointField, RadioField, RelationshipField, RichTextField, RowField, SanitizedConfig, SelectField, TabsField, TextareaField, TextField, UploadField } from 'payload';
|
|
2
|
+
import { GraphQLObjectType } from 'graphql';
|
|
3
|
+
import { type ObjectTypeConfig } from './buildObjectType.js';
|
|
4
|
+
type SharedArgs = {
|
|
5
|
+
config: SanitizedConfig;
|
|
6
|
+
forceNullable?: boolean;
|
|
7
|
+
graphqlResult: GraphQLInfo;
|
|
8
|
+
newlyCreatedBlockType: GraphQLObjectType;
|
|
9
|
+
objectTypeConfig: ObjectTypeConfig;
|
|
10
|
+
parentIsLocalized?: boolean;
|
|
11
|
+
parentName: string;
|
|
12
|
+
};
|
|
13
|
+
type FieldToSchemaMap = {
|
|
14
|
+
array: (args: {
|
|
15
|
+
field: ArrayField;
|
|
16
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
17
|
+
blocks: (args: {
|
|
18
|
+
field: BlocksField;
|
|
19
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
20
|
+
checkbox: (args: {
|
|
21
|
+
field: CheckboxField;
|
|
22
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
23
|
+
code: (args: {
|
|
24
|
+
field: CodeField;
|
|
25
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
26
|
+
collapsible: (args: {
|
|
27
|
+
field: CollapsibleField;
|
|
28
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
29
|
+
date: (args: {
|
|
30
|
+
field: DateField;
|
|
31
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
32
|
+
email: (args: {
|
|
33
|
+
field: EmailField;
|
|
34
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
35
|
+
group: (args: {
|
|
36
|
+
field: GroupField;
|
|
37
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
38
|
+
join: (args: {
|
|
39
|
+
field: JoinField;
|
|
40
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
41
|
+
json: (args: {
|
|
42
|
+
field: JSONField;
|
|
43
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
44
|
+
number: (args: {
|
|
45
|
+
field: NumberField;
|
|
46
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
47
|
+
point: (args: {
|
|
48
|
+
field: PointField;
|
|
49
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
50
|
+
radio: (args: {
|
|
51
|
+
field: RadioField;
|
|
52
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
53
|
+
relationship: (args: {
|
|
54
|
+
field: RelationshipField;
|
|
55
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
56
|
+
richText: (args: {
|
|
57
|
+
field: RichTextField;
|
|
58
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
59
|
+
row: (args: {
|
|
60
|
+
field: RowField;
|
|
61
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
62
|
+
select: (args: {
|
|
63
|
+
field: SelectField;
|
|
64
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
65
|
+
tabs: (args: {
|
|
66
|
+
field: TabsField;
|
|
67
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
68
|
+
text: (args: {
|
|
69
|
+
field: TextField;
|
|
70
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
71
|
+
textarea: (args: {
|
|
72
|
+
field: TextareaField;
|
|
73
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
74
|
+
upload: (args: {
|
|
75
|
+
field: UploadField;
|
|
76
|
+
} & SharedArgs) => ObjectTypeConfig;
|
|
77
|
+
};
|
|
78
|
+
export declare const fieldToSchemaMap: FieldToSchemaMap;
|
|
79
|
+
export {};
|
|
80
|
+
//# sourceMappingURL=fieldToSchemaMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldToSchemaMap.d.ts","sourceRoot":"","sources":["../../src/schema/fieldToSchemaMap.ts"],"names":[],"mappings":"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"}
|