@payloadcms/graphql 3.0.0-beta.4 → 3.0.0-beta.41
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/bin.js +5 -0
- package/dist/bin/generateSchema.d.ts +3 -0
- package/dist/bin/generateSchema.d.ts.map +1 -0
- package/dist/bin/generateSchema.js +10 -0
- package/dist/bin/generateSchema.js.map +1 -0
- package/dist/bin/index.d.ts +2 -0
- package/dist/bin/index.d.ts.map +1 -0
- package/dist/bin/index.js +17 -0
- package/dist/bin/index.js.map +1 -0
- package/dist/exports/utilities.d.ts +2 -0
- package/dist/exports/utilities.d.ts.map +1 -0
- package/dist/exports/utilities.js +3 -0
- package/dist/exports/utilities.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts +51 -0
- package/dist/packages/graphql-query-complexity/QueryComplexity.d.ts.map +1 -0
- package/dist/packages/graphql-query-complexity/QueryComplexity.js +270 -0
- package/dist/packages/graphql-query-complexity/QueryComplexity.js.map +1 -0
- package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts +5 -0
- package/dist/packages/graphql-query-complexity/createComplexityRule.d.ts.map +1 -0
- package/dist/packages/graphql-query-complexity/createComplexityRule.js +8 -0
- package/dist/packages/graphql-query-complexity/createComplexityRule.js.map +1 -0
- package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.d.ts +3 -0
- package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.d.ts.map +1 -0
- package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js +14 -0
- package/dist/packages/graphql-query-complexity/estimators/fieldExtensions/index.js.map +1 -0
- package/dist/packages/graphql-query-complexity/estimators/simple/index.d.ts +5 -0
- package/dist/packages/graphql-query-complexity/estimators/simple/index.d.ts.map +1 -0
- package/dist/packages/graphql-query-complexity/estimators/simple/index.js +8 -0
- package/dist/packages/graphql-query-complexity/estimators/simple/index.js.map +1 -0
- package/dist/packages/graphql-query-complexity/index.d.ts +4 -0
- package/dist/packages/graphql-query-complexity/index.d.ts.map +1 -0
- package/dist/packages/graphql-query-complexity/index.js +5 -0
- package/dist/packages/graphql-query-complexity/index.js.map +1 -0
- package/dist/packages/graphql-type-json/index.d.ts +4 -0
- package/dist/packages/graphql-type-json/index.d.ts.map +1 -0
- package/dist/packages/graphql-type-json/index.js +64 -0
- package/dist/packages/graphql-type-json/index.js.map +1 -0
- package/dist/resolvers/collections/count.d.ts +13 -0
- package/dist/resolvers/collections/count.d.ts.map +1 -0
- package/dist/resolvers/collections/count.js +23 -0
- package/dist/resolvers/collections/count.js.map +1 -0
- package/dist/resolvers/collections/create.d.ts +2 -2
- package/dist/resolvers/collections/create.d.ts.map +1 -1
- package/dist/resolvers/collections/create.js.map +1 -1
- package/dist/resolvers/collections/delete.d.ts +5 -3
- package/dist/resolvers/collections/delete.d.ts.map +1 -1
- package/dist/resolvers/collections/delete.js +7 -4
- package/dist/resolvers/collections/delete.js.map +1 -1
- package/dist/resolvers/collections/docAccess.d.ts +2 -2
- package/dist/resolvers/collections/docAccess.d.ts.map +1 -1
- package/dist/resolvers/collections/docAccess.js.map +1 -1
- package/dist/resolvers/collections/duplicate.d.ts +2 -2
- package/dist/resolvers/collections/duplicate.d.ts.map +1 -1
- package/dist/resolvers/collections/duplicate.js +1 -0
- package/dist/resolvers/collections/duplicate.js.map +1 -1
- package/dist/resolvers/collections/find.d.ts +3 -3
- package/dist/resolvers/collections/find.d.ts.map +1 -1
- package/dist/resolvers/collections/find.js +5 -1
- package/dist/resolvers/collections/find.js.map +1 -1
- package/dist/resolvers/collections/findByID.d.ts +3 -3
- package/dist/resolvers/collections/findByID.d.ts.map +1 -1
- package/dist/resolvers/collections/findByID.js +5 -1
- package/dist/resolvers/collections/findByID.js.map +1 -1
- package/dist/resolvers/collections/findVersionByID.d.ts +3 -4
- package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -1
- package/dist/resolvers/collections/findVersionByID.js +2 -2
- package/dist/resolvers/collections/findVersionByID.js.map +1 -1
- package/dist/resolvers/collections/findVersions.d.ts +4 -3
- package/dist/resolvers/collections/findVersions.d.ts.map +1 -1
- package/dist/resolvers/collections/findVersions.js +7 -4
- package/dist/resolvers/collections/findVersions.js.map +1 -1
- package/dist/resolvers/collections/restoreVersion.d.ts +2 -2
- package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -1
- package/dist/resolvers/collections/restoreVersion.js.map +1 -1
- package/dist/resolvers/collections/update.d.ts +4 -3
- package/dist/resolvers/collections/update.d.ts.map +1 -1
- package/dist/resolvers/collections/update.js +7 -4
- package/dist/resolvers/collections/update.js.map +1 -1
- package/dist/resolvers/globals/docAccess.d.ts +2 -2
- package/dist/resolvers/globals/docAccess.d.ts.map +1 -1
- package/dist/resolvers/globals/docAccess.js.map +1 -1
- package/dist/resolvers/globals/findVersionByID.d.ts +2 -2
- package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -1
- package/dist/resolvers/globals/findVersionByID.js.map +1 -1
- package/dist/resolvers/globals/findVersions.d.ts +2 -2
- package/dist/resolvers/globals/findVersions.d.ts.map +1 -1
- package/dist/resolvers/globals/findVersions.js.map +1 -1
- package/dist/resolvers/globals/restoreVersion.d.ts +2 -2
- package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -1
- package/dist/resolvers/globals/restoreVersion.js.map +1 -1
- package/dist/resolvers/globals/update.d.ts +2 -2
- package/dist/resolvers/globals/update.d.ts.map +1 -1
- package/dist/resolvers/globals/update.js.map +1 -1
- package/dist/resolvers/types.d.ts +2 -2
- package/dist/resolvers/types.d.ts.map +1 -1
- package/dist/resolvers/types.js.map +1 -1
- package/dist/schema/buildMutationInputType.d.ts.map +1 -1
- package/dist/schema/buildMutationInputType.js +2 -2
- package/dist/schema/buildMutationInputType.js.map +1 -1
- package/dist/schema/buildObjectType.d.ts.map +1 -1
- package/dist/schema/buildObjectType.js +60 -37
- 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/buildWhereInputType.d.ts.map +1 -1
- package/dist/schema/buildWhereInputType.js +1 -1
- package/dist/schema/buildWhereInputType.js.map +1 -1
- package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -1
- package/dist/schema/fieldToWhereInputSchemaMap.js +1 -2
- package/dist/schema/fieldToWhereInputSchemaMap.js.map +1 -1
- package/dist/schema/initCollections.d.ts.map +1 -1
- package/dist/schema/initCollections.js +31 -6
- package/dist/schema/initCollections.js.map +1 -1
- package/dist/schema/withOperators.js +1 -1
- package/dist/schema/withOperators.js.map +1 -1
- package/dist/utilities/wrapCustomResolver.d.ts +2 -2
- package/dist/utilities/wrapCustomResolver.d.ts.map +1 -1
- package/dist/utilities/wrapCustomResolver.js.map +1 -1
- package/package.json +24 -19
- package/src/index.ts +0 -126
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/initCollections.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { GraphQLInfo } from 'payload/config'\nimport type { Collection, Field, SanitizedCollectionConfig, SanitizedConfig } from 'payload/types'\n\nimport {\n GraphQLBoolean,\n GraphQLInt,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n} from 'graphql'\nimport { fieldAffectsData } from 'payload/types'\nimport { flattenTopLevelFields, formatNames, toWords } from 'payload/utilities'\nimport { buildVersionCollectionFields } from 'payload/versions'\n\nimport type { ObjectTypeConfig } from './buildObjectType.js'\n\nimport forgotPassword from '../resolvers/auth/forgotPassword.js'\nimport init from '../resolvers/auth/init.js'\nimport login from '../resolvers/auth/login.js'\nimport logout from '../resolvers/auth/logout.js'\nimport me from '../resolvers/auth/me.js'\nimport refresh from '../resolvers/auth/refresh.js'\nimport resetPassword from '../resolvers/auth/resetPassword.js'\nimport unlock from '../resolvers/auth/unlock.js'\nimport verifyEmail from '../resolvers/auth/verifyEmail.js'\nimport createResolver from '../resolvers/collections/create.js'\nimport getDeleteResolver from '../resolvers/collections/delete.js'\nimport { docAccessResolver } from '../resolvers/collections/docAccess.js'\nimport duplicateResolver from '../resolvers/collections/duplicate.js'\nimport findResolver from '../resolvers/collections/find.js'\nimport findByIDResolver from '../resolvers/collections/findByID.js'\nimport findVersionByIDResolver from '../resolvers/collections/findVersionByID.js'\nimport findVersionsResolver from '../resolvers/collections/findVersions.js'\nimport restoreVersionResolver from '../resolvers/collections/restoreVersion.js'\nimport updateResolver from '../resolvers/collections/update.js'\nimport formatName from '../utilities/formatName.js'\nimport { buildMutationInputType, getCollectionIDType } from './buildMutationInputType.js'\nimport buildObjectType from './buildObjectType.js'\nimport buildPaginatedListType from './buildPaginatedListType.js'\nimport { buildPolicyType } from './buildPoliciesType.js'\nimport buildWhereInputType from './buildWhereInputType.js'\n\ntype InitCollectionsGraphQLArgs = {\n config: SanitizedConfig\n graphqlResult: GraphQLInfo\n}\nfunction initCollectionsGraphQL({ config, graphqlResult }: InitCollectionsGraphQLArgs): void {\n Object.keys(graphqlResult.collections).forEach((slug) => {\n const collection: Collection = graphqlResult.collections[slug]\n const {\n config: collectionConfig,\n config: { fields, graphQL = {} as SanitizedCollectionConfig['graphQL'], versions },\n } = collection\n\n if (!graphQL) return\n\n let singularName\n let pluralName\n const fromSlug = formatNames(collection.config.slug)\n if (graphQL.singularName) {\n singularName = toWords(graphQL.singularName, true)\n } else {\n singularName = fromSlug.singular\n }\n if (graphQL.pluralName) {\n pluralName = toWords(graphQL.pluralName, true)\n } else {\n pluralName = fromSlug.plural\n }\n\n // For collections named 'Media' or similar,\n // there is a possibility that the singular name\n // will equal the plural name. Append `all` to the beginning\n // of potential conflicts\n if (singularName === pluralName) {\n pluralName = `all${singularName}`\n }\n\n collection.graphQL = {} as Collection['graphQL']\n\n const hasIDField =\n flattenTopLevelFields(fields).findIndex(\n (field) => fieldAffectsData(field) && field.name === 'id',\n ) > -1\n\n const idType = getCollectionIDType(config.db.defaultIDType, collectionConfig)\n\n const baseFields: ObjectTypeConfig = {}\n\n const whereInputFields = [...fields]\n\n if (!hasIDField) {\n baseFields.id = { type: idType }\n whereInputFields.push({\n name: 'id',\n type: config.db.defaultIDType as 'text',\n })\n }\n\n const forceNullableObjectType = Boolean(versions?.drafts)\n\n collection.graphQL.type = buildObjectType({\n name: singularName,\n baseFields,\n config,\n fields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: singularName,\n })\n\n collection.graphQL.paginatedType = buildPaginatedListType(pluralName, collection.graphQL.type)\n\n collection.graphQL.whereInputType = buildWhereInputType({\n name: singularName,\n fields: whereInputFields,\n parentName: singularName,\n })\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n fields.push({\n name: 'password',\n type: 'text',\n label: 'Password',\n required: true,\n })\n }\n\n const createMutationInputType = buildMutationInputType({\n name: singularName,\n config,\n fields,\n graphqlResult,\n parentName: singularName,\n })\n if (createMutationInputType) {\n collection.graphQL.mutationInputType = new GraphQLNonNull(createMutationInputType)\n }\n\n const updateMutationInputType = buildMutationInputType({\n name: `${singularName}Update`,\n config,\n fields: fields.filter((field) => !(fieldAffectsData(field) && field.name === 'id')),\n forceNullable: true,\n graphqlResult,\n parentName: `${singularName}Update`,\n })\n if (updateMutationInputType) {\n collection.graphQL.updateMutationInputType = new GraphQLNonNull(updateMutationInputType)\n }\n\n graphqlResult.Query.fields[singularName] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: findByIDResolver(collection),\n }\n\n graphqlResult.Query.fields[pluralName] = {\n type: buildPaginatedListType(pluralName, collection.graphQL.type),\n args: {\n draft: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n sort: { type: GraphQLString },\n },\n resolve: findResolver(collection),\n }\n\n graphqlResult.Query.fields[`docAccess${singularName}`] = {\n type: buildPolicyType({\n type: 'collection',\n entity: collectionConfig,\n scope: 'docAccess',\n typeSuffix: 'DocAccess',\n }),\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: docAccessResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`create${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: createResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`update${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n autosave: { type: GraphQLBoolean },\n ...(updateMutationInputType\n ? { data: { type: collection.graphQL.updateMutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: updateResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`delete${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: getDeleteResolver(collection),\n }\n\n if (collectionConfig.disableDuplicate !== true) {\n graphqlResult.Mutation.fields[`duplicate${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: duplicateResolver(collection),\n }\n }\n\n if (collectionConfig.versions) {\n const versionIDType = config.db.defaultIDType === 'text' ? GraphQLString : GraphQLInt\n const versionCollectionFields: Field[] = [\n ...buildVersionCollectionFields(collectionConfig),\n {\n name: 'id',\n type: config.db.defaultIDType as 'text',\n },\n {\n name: 'createdAt',\n type: 'date',\n label: 'Created At',\n },\n {\n name: 'updatedAt',\n type: 'date',\n label: 'Updated At',\n },\n ]\n\n collection.graphQL.versionType = buildObjectType({\n name: `${singularName}Version`,\n config,\n fields: versionCollectionFields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: `${singularName}Version`,\n })\n\n graphqlResult.Query.fields[`version${formatName(singularName)}`] = {\n type: collection.graphQL.versionType,\n args: {\n id: { type: versionIDType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: findVersionByIDResolver(collection),\n }\n graphqlResult.Query.fields[`versions${pluralName}`] = {\n type: buildPaginatedListType(\n `versions${formatName(pluralName)}`,\n collection.graphQL.versionType,\n ),\n args: {\n where: {\n type: buildWhereInputType({\n name: `versions${singularName}`,\n fields: versionCollectionFields,\n parentName: `versions${singularName}`,\n }),\n },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n sort: { type: GraphQLString },\n },\n resolve: findVersionsResolver(collection),\n }\n graphqlResult.Mutation.fields[`restoreVersion${formatName(singularName)}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: versionIDType },\n },\n resolve: restoreVersionResolver(collection),\n }\n }\n\n if (collectionConfig.auth) {\n const authFields: Field[] = collectionConfig.auth.disableLocalStrategy\n ? []\n : [\n {\n name: 'email',\n type: 'email',\n required: true,\n },\n ]\n collection.graphQL.JWT = buildObjectType({\n name: formatName(`${slug}JWT`),\n config,\n fields: [\n ...collectionConfig.fields.filter((field) => fieldAffectsData(field) && field.saveToJWT),\n ...authFields,\n {\n name: 'collection',\n type: 'text',\n required: true,\n },\n ],\n graphqlResult,\n parentName: formatName(`${slug}JWT`),\n })\n\n graphqlResult.Query.fields[`me${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Me`),\n fields: {\n collection: {\n type: GraphQLString,\n },\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n resolve: me(collection),\n }\n\n graphqlResult.Query.fields[`initialized${singularName}`] = {\n type: GraphQLBoolean,\n resolve: init(collection.config.slug),\n }\n\n graphqlResult.Mutation.fields[`refreshToken${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Refreshed${singularName}`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n refreshedToken: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.JWT,\n },\n },\n }),\n args: {\n token: { type: GraphQLString },\n },\n resolve: refresh(collection),\n }\n\n graphqlResult.Mutation.fields[`logout${singularName}`] = {\n type: GraphQLString,\n resolve: logout(collection),\n }\n\n if (!collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.maxLoginAttempts > 0) {\n graphqlResult.Mutation.fields[`unlock${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n email: { type: new GraphQLNonNull(GraphQLString) },\n },\n resolve: unlock(collection),\n }\n }\n\n graphqlResult.Mutation.fields[`login${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}LoginResult`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n args: {\n email: { type: GraphQLString },\n password: { type: GraphQLString },\n },\n resolve: login(collection),\n }\n\n graphqlResult.Mutation.fields[`forgotPassword${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n disableEmail: { type: GraphQLBoolean },\n email: { type: new GraphQLNonNull(GraphQLString) },\n expiration: { type: GraphQLInt },\n },\n resolve: forgotPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`resetPassword${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}ResetPassword`),\n fields: {\n token: { type: GraphQLString },\n user: { type: collection.graphQL.type },\n },\n }),\n args: {\n password: { type: GraphQLString },\n token: { type: GraphQLString },\n },\n resolve: resetPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`verifyEmail${singularName}`] = {\n type: GraphQLBoolean,\n args: {\n token: { type: GraphQLString },\n },\n resolve: verifyEmail(collection),\n }\n }\n }\n })\n}\n\nexport default initCollectionsGraphQL\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLNonNull","GraphQLObjectType","GraphQLString","fieldAffectsData","flattenTopLevelFields","formatNames","toWords","buildVersionCollectionFields","forgotPassword","init","login","logout","me","refresh","resetPassword","unlock","verifyEmail","createResolver","getDeleteResolver","docAccessResolver","duplicateResolver","findResolver","findByIDResolver","findVersionByIDResolver","findVersionsResolver","restoreVersionResolver","updateResolver","formatName","buildMutationInputType","getCollectionIDType","buildObjectType","buildPaginatedListType","buildPolicyType","buildWhereInputType","initCollectionsGraphQL","config","graphqlResult","Object","keys","collections","forEach","slug","collection","collectionConfig","fields","graphQL","versions","singularName","pluralName","fromSlug","singular","plural","hasIDField","findIndex","field","name","idType","db","defaultIDType","baseFields","whereInputFields","id","type","push","forceNullableObjectType","Boolean","drafts","forceNullable","parentName","paginatedType","whereInputType","auth","disableLocalStrategy","label","required","createMutationInputType","mutationInputType","updateMutationInputType","filter","Query","args","draft","localization","fallbackLocale","types","fallbackLocaleInputType","locale","localeInputType","resolve","where","limit","page","sort","entity","scope","typeSuffix","Mutation","data","autosave","disableDuplicate","versionIDType","versionCollectionFields","versionType","authFields","JWT","saveToJWT","exp","token","user","refreshedToken","maxLoginAttempts","email","password","disableEmail","expiration"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/initCollections.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { GraphQLInfo } from 'payload/config'\nimport type { Collection, Field, SanitizedCollectionConfig, SanitizedConfig } from 'payload/types'\n\nimport {\n GraphQLBoolean,\n GraphQLInt,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLString,\n} from 'graphql'\nimport { fieldAffectsData } from 'payload/types'\nimport { flattenTopLevelFields, formatNames, toWords } from 'payload/utilities'\nimport { buildVersionCollectionFields } from 'payload/versions'\n\nimport type { ObjectTypeConfig } from './buildObjectType.js'\n\nimport forgotPassword from '../resolvers/auth/forgotPassword.js'\nimport init from '../resolvers/auth/init.js'\nimport login from '../resolvers/auth/login.js'\nimport logout from '../resolvers/auth/logout.js'\nimport me from '../resolvers/auth/me.js'\nimport refresh from '../resolvers/auth/refresh.js'\nimport resetPassword from '../resolvers/auth/resetPassword.js'\nimport unlock from '../resolvers/auth/unlock.js'\nimport verifyEmail from '../resolvers/auth/verifyEmail.js'\nimport { countResolver } from '../resolvers/collections/count.js'\nimport createResolver from '../resolvers/collections/create.js'\nimport { getDeleteResolver } from '../resolvers/collections/delete.js'\nimport { docAccessResolver } from '../resolvers/collections/docAccess.js'\nimport duplicateResolver from '../resolvers/collections/duplicate.js'\nimport { findResolver } from '../resolvers/collections/find.js'\nimport { findByIDResolver } from '../resolvers/collections/findByID.js'\nimport { findVersionByIDResolver } from '../resolvers/collections/findVersionByID.js'\nimport { findVersionsResolver } from '../resolvers/collections/findVersions.js'\nimport restoreVersionResolver from '../resolvers/collections/restoreVersion.js'\nimport { updateResolver } from '../resolvers/collections/update.js'\nimport formatName from '../utilities/formatName.js'\nimport { buildMutationInputType, getCollectionIDType } from './buildMutationInputType.js'\nimport buildObjectType from './buildObjectType.js'\nimport buildPaginatedListType from './buildPaginatedListType.js'\nimport { buildPolicyType } from './buildPoliciesType.js'\nimport buildWhereInputType from './buildWhereInputType.js'\n\ntype InitCollectionsGraphQLArgs = {\n config: SanitizedConfig\n graphqlResult: GraphQLInfo\n}\nfunction initCollectionsGraphQL({ config, graphqlResult }: InitCollectionsGraphQLArgs): void {\n Object.keys(graphqlResult.collections).forEach((slug) => {\n const collection: Collection = graphqlResult.collections[slug]\n const {\n config: collectionConfig,\n config: { fields, graphQL = {} as SanitizedCollectionConfig['graphQL'], versions },\n } = collection\n\n if (!graphQL) return\n\n let singularName\n let pluralName\n const fromSlug = formatNames(collection.config.slug)\n if (graphQL.singularName) {\n singularName = toWords(graphQL.singularName, true)\n } else {\n singularName = fromSlug.singular\n }\n if (graphQL.pluralName) {\n pluralName = toWords(graphQL.pluralName, true)\n } else {\n pluralName = fromSlug.plural\n }\n\n // For collections named 'Media' or similar,\n // there is a possibility that the singular name\n // will equal the plural name. Append `all` to the beginning\n // of potential conflicts\n if (singularName === pluralName) {\n pluralName = `all${singularName}`\n }\n\n collection.graphQL = {} as Collection['graphQL']\n\n const hasIDField =\n flattenTopLevelFields(fields).findIndex(\n (field) => fieldAffectsData(field) && field.name === 'id',\n ) > -1\n\n const idType = getCollectionIDType(config.db.defaultIDType, collectionConfig)\n\n const baseFields: ObjectTypeConfig = {}\n\n const whereInputFields = [...fields]\n\n if (!hasIDField) {\n baseFields.id = { type: idType }\n whereInputFields.push({\n name: 'id',\n type: config.db.defaultIDType as 'text',\n })\n }\n\n const forceNullableObjectType = Boolean(versions?.drafts)\n\n collection.graphQL.type = buildObjectType({\n name: singularName,\n baseFields,\n config,\n fields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: singularName,\n })\n\n collection.graphQL.paginatedType = buildPaginatedListType(pluralName, collection.graphQL.type)\n\n collection.graphQL.whereInputType = buildWhereInputType({\n name: singularName,\n fields: whereInputFields,\n parentName: singularName,\n })\n\n if (collectionConfig.auth && !collectionConfig.auth.disableLocalStrategy) {\n fields.push({\n name: 'password',\n type: 'text',\n label: 'Password',\n required: true,\n })\n }\n\n const createMutationInputType = buildMutationInputType({\n name: singularName,\n config,\n fields,\n graphqlResult,\n parentName: singularName,\n })\n if (createMutationInputType) {\n collection.graphQL.mutationInputType = new GraphQLNonNull(createMutationInputType)\n }\n\n const updateMutationInputType = buildMutationInputType({\n name: `${singularName}Update`,\n config,\n fields: fields.filter((field) => !(fieldAffectsData(field) && field.name === 'id')),\n forceNullable: true,\n graphqlResult,\n parentName: `${singularName}Update`,\n })\n if (updateMutationInputType) {\n collection.graphQL.updateMutationInputType = new GraphQLNonNull(updateMutationInputType)\n }\n\n graphqlResult.Query.fields[singularName] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: findByIDResolver(collection),\n }\n\n graphqlResult.Query.fields[pluralName] = {\n type: buildPaginatedListType(pluralName, collection.graphQL.type),\n args: {\n draft: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n sort: { type: GraphQLString },\n },\n resolve: findResolver(collection),\n }\n\n graphqlResult.Query.fields[`count${pluralName}`] = {\n type: new GraphQLObjectType({\n name: `count${pluralName}`,\n fields: {\n totalDocs: { type: GraphQLInt },\n },\n }),\n args: {\n draft: { type: GraphQLBoolean },\n where: { type: collection.graphQL.whereInputType },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: countResolver(collection),\n }\n\n graphqlResult.Query.fields[`docAccess${singularName}`] = {\n type: buildPolicyType({\n type: 'collection',\n entity: collectionConfig,\n scope: 'docAccess',\n typeSuffix: 'DocAccess',\n }),\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: docAccessResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`create${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n ...(createMutationInputType\n ? { data: { type: collection.graphQL.mutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: createResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`update${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n autosave: { type: GraphQLBoolean },\n ...(updateMutationInputType\n ? { data: { type: collection.graphQL.updateMutationInputType } }\n : {}),\n draft: { type: GraphQLBoolean },\n ...(config.localization\n ? {\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: updateResolver(collection),\n }\n\n graphqlResult.Mutation.fields[`delete${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: getDeleteResolver(collection),\n }\n\n if (collectionConfig.disableDuplicate !== true) {\n graphqlResult.Mutation.fields[`duplicate${singularName}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: new GraphQLNonNull(idType) },\n },\n resolve: duplicateResolver(collection),\n }\n }\n\n if (collectionConfig.versions) {\n const versionIDType = config.db.defaultIDType === 'text' ? GraphQLString : GraphQLInt\n const versionCollectionFields: Field[] = [\n ...buildVersionCollectionFields(collectionConfig),\n {\n name: 'id',\n type: config.db.defaultIDType as 'text',\n },\n {\n name: 'createdAt',\n type: 'date',\n label: 'Created At',\n },\n {\n name: 'updatedAt',\n type: 'date',\n label: 'Updated At',\n },\n ]\n\n collection.graphQL.versionType = buildObjectType({\n name: `${singularName}Version`,\n config,\n fields: versionCollectionFields,\n forceNullable: forceNullableObjectType,\n graphqlResult,\n parentName: `${singularName}Version`,\n })\n\n graphqlResult.Query.fields[`version${formatName(singularName)}`] = {\n type: collection.graphQL.versionType,\n args: {\n id: { type: versionIDType },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n },\n resolve: findVersionByIDResolver(collection),\n }\n graphqlResult.Query.fields[`versions${pluralName}`] = {\n type: buildPaginatedListType(\n `versions${formatName(pluralName)}`,\n collection.graphQL.versionType,\n ),\n args: {\n where: {\n type: buildWhereInputType({\n name: `versions${singularName}`,\n fields: versionCollectionFields,\n parentName: `versions${singularName}`,\n }),\n },\n ...(config.localization\n ? {\n fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType },\n locale: { type: graphqlResult.types.localeInputType },\n }\n : {}),\n limit: { type: GraphQLInt },\n page: { type: GraphQLInt },\n sort: { type: GraphQLString },\n },\n resolve: findVersionsResolver(collection),\n }\n graphqlResult.Mutation.fields[`restoreVersion${formatName(singularName)}`] = {\n type: collection.graphQL.type,\n args: {\n id: { type: versionIDType },\n },\n resolve: restoreVersionResolver(collection),\n }\n }\n\n if (collectionConfig.auth) {\n const authFields: Field[] = collectionConfig.auth.disableLocalStrategy\n ? []\n : [\n {\n name: 'email',\n type: 'email',\n required: true,\n },\n ]\n collection.graphQL.JWT = buildObjectType({\n name: formatName(`${slug}JWT`),\n config,\n fields: [\n ...collectionConfig.fields.filter((field) => fieldAffectsData(field) && field.saveToJWT),\n ...authFields,\n {\n name: 'collection',\n type: 'text',\n required: true,\n },\n ],\n graphqlResult,\n parentName: formatName(`${slug}JWT`),\n })\n\n graphqlResult.Query.fields[`me${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Me`),\n fields: {\n collection: {\n type: GraphQLString,\n },\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n resolve: me(collection),\n }\n\n graphqlResult.Query.fields[`initialized${singularName}`] = {\n type: GraphQLBoolean,\n resolve: init(collection.config.slug),\n }\n\n graphqlResult.Mutation.fields[`refreshToken${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}Refreshed${singularName}`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n refreshedToken: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.JWT,\n },\n },\n }),\n args: {\n token: { type: GraphQLString },\n },\n resolve: refresh(collection),\n }\n\n graphqlResult.Mutation.fields[`logout${singularName}`] = {\n type: GraphQLString,\n resolve: logout(collection),\n }\n\n if (!collectionConfig.auth.disableLocalStrategy) {\n if (collectionConfig.auth.maxLoginAttempts > 0) {\n graphqlResult.Mutation.fields[`unlock${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n email: { type: new GraphQLNonNull(GraphQLString) },\n },\n resolve: unlock(collection),\n }\n }\n\n graphqlResult.Mutation.fields[`login${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}LoginResult`),\n fields: {\n exp: {\n type: GraphQLInt,\n },\n token: {\n type: GraphQLString,\n },\n user: {\n type: collection.graphQL.type,\n },\n },\n }),\n args: {\n email: { type: GraphQLString },\n password: { type: GraphQLString },\n },\n resolve: login(collection),\n }\n\n graphqlResult.Mutation.fields[`forgotPassword${singularName}`] = {\n type: new GraphQLNonNull(GraphQLBoolean),\n args: {\n disableEmail: { type: GraphQLBoolean },\n email: { type: new GraphQLNonNull(GraphQLString) },\n expiration: { type: GraphQLInt },\n },\n resolve: forgotPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`resetPassword${singularName}`] = {\n type: new GraphQLObjectType({\n name: formatName(`${slug}ResetPassword`),\n fields: {\n token: { type: GraphQLString },\n user: { type: collection.graphQL.type },\n },\n }),\n args: {\n password: { type: GraphQLString },\n token: { type: GraphQLString },\n },\n resolve: resetPassword(collection),\n }\n\n graphqlResult.Mutation.fields[`verifyEmail${singularName}`] = {\n type: GraphQLBoolean,\n args: {\n token: { type: GraphQLString },\n },\n resolve: verifyEmail(collection),\n }\n }\n }\n })\n}\n\nexport default initCollectionsGraphQL\n"],"names":["GraphQLBoolean","GraphQLInt","GraphQLNonNull","GraphQLObjectType","GraphQLString","fieldAffectsData","flattenTopLevelFields","formatNames","toWords","buildVersionCollectionFields","forgotPassword","init","login","logout","me","refresh","resetPassword","unlock","verifyEmail","countResolver","createResolver","getDeleteResolver","docAccessResolver","duplicateResolver","findResolver","findByIDResolver","findVersionByIDResolver","findVersionsResolver","restoreVersionResolver","updateResolver","formatName","buildMutationInputType","getCollectionIDType","buildObjectType","buildPaginatedListType","buildPolicyType","buildWhereInputType","initCollectionsGraphQL","config","graphqlResult","Object","keys","collections","forEach","slug","collection","collectionConfig","fields","graphQL","versions","singularName","pluralName","fromSlug","singular","plural","hasIDField","findIndex","field","name","idType","db","defaultIDType","baseFields","whereInputFields","id","type","push","forceNullableObjectType","Boolean","drafts","forceNullable","parentName","paginatedType","whereInputType","auth","disableLocalStrategy","label","required","createMutationInputType","mutationInputType","updateMutationInputType","filter","Query","args","draft","localization","fallbackLocale","types","fallbackLocaleInputType","locale","localeInputType","resolve","where","limit","page","sort","totalDocs","entity","scope","typeSuffix","Mutation","data","autosave","disableDuplicate","versionIDType","versionCollectionFields","versionType","authFields","JWT","saveToJWT","exp","token","user","refreshedToken","maxLoginAttempts","email","password","disableEmail","expiration"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GraphQLBoolean, GraphQLEnumType, GraphQLFloat, GraphQLInputObjectType, GraphQLInt, GraphQLList, GraphQLString } from 'graphql';
|
|
2
2
|
import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars';
|
|
3
|
-
import { GraphQLJSON } from 'graphql-type-json';
|
|
4
3
|
import { optionIsObject } from 'payload/types';
|
|
4
|
+
import { GraphQLJSON } from '../packages/graphql-type-json/index.js';
|
|
5
5
|
import combineParentName from '../utilities/combineParentName.js';
|
|
6
6
|
import formatName from '../utilities/formatName.js';
|
|
7
7
|
import operators from './operators.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/schema/withOperators.ts"],"sourcesContent":["import type { GraphQLType } from 'graphql'\nimport type { FieldAffectingData, NumberField, RadioField, SelectField } from 'payload/types'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLString,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { GraphQLJSON } from 'graphql-type-json'\nimport { optionIsObject } from 'payload/types'\n\nimport combineParentName from '../utilities/combineParentName.js'\nimport formatName from '../utilities/formatName.js'\nimport operators from './operators.js'\n\ntype staticTypes =\n | 'checkbox'\n | 'code'\n | 'date'\n | 'email'\n | 'json'\n | 'number'\n | 'point'\n | 'relationship'\n | 'richText'\n | 'text'\n | 'textarea'\n | 'upload'\n\ntype dynamicTypes = 'radio' | 'select'\n\nconst GeoJSONObject = new GraphQLInputObjectType({\n name: 'GeoJSONObject',\n fields: {\n type: { type: GraphQLString },\n coordinates: {\n type: GraphQLJSON,\n },\n },\n})\n\ntype DefaultsType = {\n [key in staticTypes]: {\n operators: {\n name: string\n type: ((field: FieldAffectingData, parentName: string) => GraphQLType) | GraphQLType\n }[]\n }\n} & {\n [key in dynamicTypes]: {\n operators: {\n name: string\n type: (field: FieldAffectingData, parentName: string) => GraphQLType\n }[]\n }\n}\n\nconst defaults: DefaultsType = {\n checkbox: {\n operators: [\n ...operators.equality.map((operator) => ({\n name: operator,\n type: GraphQLBoolean,\n })),\n ],\n },\n code: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n date: {\n operators: [\n ...[...operators.equality, ...operators.comparison, 'like'].map((operator) => ({\n name: operator,\n type: DateTimeResolver,\n })),\n ],\n },\n email: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.contains].map((operator) => ({\n name: operator,\n type: EmailAddressResolver,\n })),\n ],\n },\n json: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.geojson].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n number: {\n operators: [\n ...[...operators.equality, ...operators.comparison].map((operator) => ({\n name: operator,\n type: (field: NumberField): GraphQLType => {\n return field?.name === 'id' ? GraphQLInt : GraphQLFloat\n },\n })),\n ],\n },\n point: {\n operators: [\n ...[...operators.equality, ...operators.comparison, ...operators.geo].map((operator) => ({\n name: operator,\n type: new GraphQLList(GraphQLFloat),\n })),\n ...operators.geojson.map((operator) => ({\n name: operator,\n /**\n * @example:\n * within: {\n * type: \"Polygon\",\n * coordinates: [[\n * [0.0, 0.0],\n * [1.0, 1.0],\n * [1.0, 0.0],\n * [0.0, 0.0],\n * ]],\n * }\n * @example\n * intersects: {\n * type: \"Point\",\n * coordinates: [ 0.5, 0.5 ]\n * }\n */\n type: GeoJSONObject,\n })),\n ],\n },\n radio: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: (field: RadioField, parentName): GraphQLType =>\n new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Input`,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n }),\n })),\n ],\n },\n relationship: {\n operators: [\n ...[...operators.equality, ...operators.contains].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n richText: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n select: {\n operators: [\n ...[...operators.equality, ...operators.contains].map((operator) => ({\n name: operator,\n type: (field: SelectField, parentName): GraphQLType =>\n new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Input`,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n }),\n })),\n ],\n },\n text: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.contains].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n textarea: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n upload: {\n operators: [\n ...operators.equality.map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n // array: n/a\n // group: n/a\n // row: n/a\n // collapsible: n/a\n // tabs: n/a\n}\n\nconst listOperators = ['in', 'not_in', 'all']\n\nconst gqlTypeCache: Record<string, GraphQLType> = {}\n\n/**\n * In GraphQL, you can use \"where\" as an argument to filter a collection. Example:\n * { Posts(where: { title: { equals: \"Hello\" } }) { text } }\n * This function defines the operators for a field's condition in the \"where\" argument of the collection (it thus gets called for every field).\n * For example, in the example above, it would control that\n * - \"equals\" is a valid operator for the \"title\" field\n * - the accepted type of the \"equals\" argument has to be a string.\n *\n * @param field the field for which their valid operators inside a \"where\" argument is being defined\n * @param parentName the name of the parent field (if any)\n * @returns all the operators (including their types) which can be used as a condition for a given field inside a where\n */\nexport const withOperators = (\n field: FieldAffectingData,\n parentName: string,\n): GraphQLInputObjectType => {\n if (!defaults?.[field.type]) throw new Error(`Error: ${field.type} has no defaults configured.`)\n\n const name = `${combineParentName(parentName, field.name)}_operator`\n\n // Get the default operators for the field type which are hard-coded above\n const fieldOperators = [...defaults[field.type].operators]\n\n if (!('required' in field) || !field.required) {\n fieldOperators.push({\n name: 'exists',\n type: fieldOperators[0].type,\n })\n }\n\n return new GraphQLInputObjectType({\n name,\n fields: fieldOperators.reduce((objectTypeFields, operator) => {\n // Get the type of the operator. It can be either static, or dynamic (=> a function)\n let gqlType: GraphQLType =\n typeof operator.type === 'function' ? operator.type(field, parentName) : operator.type\n\n // GraphQL does not allow types with duplicate names, so we use this cache to avoid that.\n // Without this, select and radio fields would have the same name, and GraphQL would throw an error\n // This usually only happens if a custom type is returned from the operator.type function\n if (typeof operator.type === 'function' && 'name' in gqlType) {\n if (gqlTypeCache[gqlType.name]) {\n gqlType = gqlTypeCache[gqlType.name]\n } else {\n gqlTypeCache[gqlType.name] = gqlType\n }\n }\n\n if (listOperators.includes(operator.name)) {\n gqlType = new GraphQLList(gqlType)\n } else if (operator.name === 'exists') {\n gqlType = GraphQLBoolean\n }\n\n return {\n ...objectTypeFields,\n [operator.name]: {\n type: gqlType,\n },\n }\n }, {}),\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLString","DateTimeResolver","EmailAddressResolver","GraphQLJSON","optionIsObject","combineParentName","formatName","operators","GeoJSONObject","name","fields","type","coordinates","defaults","checkbox","equality","map","operator","code","partial","date","comparison","email","contains","json","geojson","number","field","point","geo","radio","parentName","values","options","reduce","option","value","relationship","richText","select","text","textarea","upload","listOperators","gqlTypeCache","withOperators","Error","fieldOperators","required","push","objectTypeFields","gqlType","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/schema/withOperators.ts"],"sourcesContent":["import type { GraphQLType } from 'graphql'\nimport type { FieldAffectingData, NumberField, RadioField, SelectField } from 'payload/types'\n\nimport {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLList,\n GraphQLString,\n} from 'graphql'\nimport { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars'\nimport { optionIsObject } from 'payload/types'\n\nimport { GraphQLJSON } from '../packages/graphql-type-json/index.js'\nimport combineParentName from '../utilities/combineParentName.js'\nimport formatName from '../utilities/formatName.js'\nimport operators from './operators.js'\n\ntype staticTypes =\n | 'checkbox'\n | 'code'\n | 'date'\n | 'email'\n | 'json'\n | 'number'\n | 'point'\n | 'relationship'\n | 'richText'\n | 'text'\n | 'textarea'\n | 'upload'\n\ntype dynamicTypes = 'radio' | 'select'\n\nconst GeoJSONObject = new GraphQLInputObjectType({\n name: 'GeoJSONObject',\n fields: {\n type: { type: GraphQLString },\n coordinates: {\n type: GraphQLJSON,\n },\n },\n})\n\ntype DefaultsType = {\n [key in staticTypes]: {\n operators: {\n name: string\n type: ((field: FieldAffectingData, parentName: string) => GraphQLType) | GraphQLType\n }[]\n }\n} & {\n [key in dynamicTypes]: {\n operators: {\n name: string\n type: (field: FieldAffectingData, parentName: string) => GraphQLType\n }[]\n }\n}\n\nconst defaults: DefaultsType = {\n checkbox: {\n operators: [\n ...operators.equality.map((operator) => ({\n name: operator,\n type: GraphQLBoolean,\n })),\n ],\n },\n code: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n date: {\n operators: [\n ...[...operators.equality, ...operators.comparison, 'like'].map((operator) => ({\n name: operator,\n type: DateTimeResolver,\n })),\n ],\n },\n email: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.contains].map((operator) => ({\n name: operator,\n type: EmailAddressResolver,\n })),\n ],\n },\n json: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.geojson].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n number: {\n operators: [\n ...[...operators.equality, ...operators.comparison].map((operator) => ({\n name: operator,\n type: (field: NumberField): GraphQLType => {\n return field?.name === 'id' ? GraphQLInt : GraphQLFloat\n },\n })),\n ],\n },\n point: {\n operators: [\n ...[...operators.equality, ...operators.comparison, ...operators.geo].map((operator) => ({\n name: operator,\n type: new GraphQLList(GraphQLFloat),\n })),\n ...operators.geojson.map((operator) => ({\n name: operator,\n /**\n * @example:\n * within: {\n * type: \"Polygon\",\n * coordinates: [[\n * [0.0, 0.0],\n * [1.0, 1.0],\n * [1.0, 0.0],\n * [0.0, 0.0],\n * ]],\n * }\n * @example\n * intersects: {\n * type: \"Point\",\n * coordinates: [ 0.5, 0.5 ]\n * }\n */\n type: GeoJSONObject,\n })),\n ],\n },\n radio: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: (field: RadioField, parentName): GraphQLType =>\n new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Input`,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n }),\n })),\n ],\n },\n relationship: {\n operators: [\n ...[...operators.equality, ...operators.contains].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n richText: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLJSON,\n })),\n ],\n },\n select: {\n operators: [\n ...[...operators.equality, ...operators.contains].map((operator) => ({\n name: operator,\n type: (field: SelectField, parentName): GraphQLType =>\n new GraphQLEnumType({\n name: `${combineParentName(parentName, field.name)}_Input`,\n values: field.options.reduce((values, option) => {\n if (optionIsObject(option)) {\n return {\n ...values,\n [formatName(option.value)]: {\n value: option.value,\n },\n }\n }\n\n return {\n ...values,\n [formatName(option)]: {\n value: option,\n },\n }\n }, {}),\n }),\n })),\n ],\n },\n text: {\n operators: [\n ...[...operators.equality, ...operators.partial, ...operators.contains].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n textarea: {\n operators: [\n ...[...operators.equality, ...operators.partial].map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n upload: {\n operators: [\n ...operators.equality.map((operator) => ({\n name: operator,\n type: GraphQLString,\n })),\n ],\n },\n // array: n/a\n // group: n/a\n // row: n/a\n // collapsible: n/a\n // tabs: n/a\n}\n\nconst listOperators = ['in', 'not_in', 'all']\n\nconst gqlTypeCache: Record<string, GraphQLType> = {}\n\n/**\n * In GraphQL, you can use \"where\" as an argument to filter a collection. Example:\n * { Posts(where: { title: { equals: \"Hello\" } }) { text } }\n * This function defines the operators for a field's condition in the \"where\" argument of the collection (it thus gets called for every field).\n * For example, in the example above, it would control that\n * - \"equals\" is a valid operator for the \"title\" field\n * - the accepted type of the \"equals\" argument has to be a string.\n *\n * @param field the field for which their valid operators inside a \"where\" argument is being defined\n * @param parentName the name of the parent field (if any)\n * @returns all the operators (including their types) which can be used as a condition for a given field inside a where\n */\nexport const withOperators = (\n field: FieldAffectingData,\n parentName: string,\n): GraphQLInputObjectType => {\n if (!defaults?.[field.type]) throw new Error(`Error: ${field.type} has no defaults configured.`)\n\n const name = `${combineParentName(parentName, field.name)}_operator`\n\n // Get the default operators for the field type which are hard-coded above\n const fieldOperators = [...defaults[field.type].operators]\n\n if (!('required' in field) || !field.required) {\n fieldOperators.push({\n name: 'exists',\n type: fieldOperators[0].type,\n })\n }\n\n return new GraphQLInputObjectType({\n name,\n fields: fieldOperators.reduce((objectTypeFields, operator) => {\n // Get the type of the operator. It can be either static, or dynamic (=> a function)\n let gqlType: GraphQLType =\n typeof operator.type === 'function' ? operator.type(field, parentName) : operator.type\n\n // GraphQL does not allow types with duplicate names, so we use this cache to avoid that.\n // Without this, select and radio fields would have the same name, and GraphQL would throw an error\n // This usually only happens if a custom type is returned from the operator.type function\n if (typeof operator.type === 'function' && 'name' in gqlType) {\n if (gqlTypeCache[gqlType.name]) {\n gqlType = gqlTypeCache[gqlType.name]\n } else {\n gqlTypeCache[gqlType.name] = gqlType\n }\n }\n\n if (listOperators.includes(operator.name)) {\n gqlType = new GraphQLList(gqlType)\n } else if (operator.name === 'exists') {\n gqlType = GraphQLBoolean\n }\n\n return {\n ...objectTypeFields,\n [operator.name]: {\n type: gqlType,\n },\n }\n }, {}),\n })\n}\n"],"names":["GraphQLBoolean","GraphQLEnumType","GraphQLFloat","GraphQLInputObjectType","GraphQLInt","GraphQLList","GraphQLString","DateTimeResolver","EmailAddressResolver","optionIsObject","GraphQLJSON","combineParentName","formatName","operators","GeoJSONObject","name","fields","type","coordinates","defaults","checkbox","equality","map","operator","code","partial","date","comparison","email","contains","json","geojson","number","field","point","geo","radio","parentName","values","options","reduce","option","value","relationship","richText","select","text","textarea","upload","listOperators","gqlTypeCache","withOperators","Error","fieldOperators","required","push","objectTypeFields","gqlType","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ObjMap } from 'graphql/jsutils/ObjMap.js';
|
|
2
2
|
import type { GraphQLFieldConfig } from 'graphql/type/definition.js';
|
|
3
|
-
import type {
|
|
3
|
+
import type { PayloadRequestWithData } from 'payload/types';
|
|
4
4
|
type PayloadContext = {
|
|
5
|
-
req:
|
|
5
|
+
req: PayloadRequestWithData;
|
|
6
6
|
};
|
|
7
7
|
export declare function wrapCustomFields<TSource>(fields: ObjMap<GraphQLFieldConfig<TSource, PayloadContext>>): ObjMap<GraphQLFieldConfig<TSource, PayloadContext>>;
|
|
8
8
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapCustomResolver.d.ts","sourceRoot":"","sources":["../../src/utilities/wrapCustomResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AAC1F,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"wrapCustomResolver.d.ts","sourceRoot":"","sources":["../../src/utilities/wrapCustomResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAI3D,KAAK,cAAc,GAAG;IAAE,GAAG,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAerD,wBAAgB,gBAAgB,CAAC,OAAO,EACtC,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,GAC1D,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAOrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/wrapCustomResolver.ts"],"sourcesContent":["import type { ObjMap } from 'graphql/jsutils/ObjMap.js'\nimport type { GraphQLFieldConfig, GraphQLFieldResolver } from 'graphql/type/definition.js'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/wrapCustomResolver.ts"],"sourcesContent":["import type { ObjMap } from 'graphql/jsutils/ObjMap.js'\nimport type { GraphQLFieldConfig, GraphQLFieldResolver } from 'graphql/type/definition.js'\nimport type { PayloadRequestWithData } from 'payload/types'\n\nimport { isolateObjectProperty } from 'payload/utilities'\n\ntype PayloadContext = { req: PayloadRequestWithData }\n\nfunction wrapCustomResolver<TSource, TArgs, TResult>(\n resolver: GraphQLFieldResolver<TSource, PayloadContext, TArgs, TResult>,\n): GraphQLFieldResolver<TSource, PayloadContext, TArgs, TResult> {\n return (source, args, context, info) => {\n return resolver(\n source,\n args,\n { ...context, req: isolateObjectProperty(context.req, 'transactionID') },\n info,\n )\n }\n}\n\nexport function wrapCustomFields<TSource>(\n fields: ObjMap<GraphQLFieldConfig<TSource, PayloadContext>>,\n): ObjMap<GraphQLFieldConfig<TSource, PayloadContext>> {\n for (const key in fields) {\n if (fields[key].resolve) {\n fields[key].resolve = wrapCustomResolver(fields[key].resolve)\n }\n }\n return fields\n}\n"],"names":["isolateObjectProperty","wrapCustomResolver","resolver","source","args","context","info","req","wrapCustomFields","fields","key","resolve"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,qBAAqB,QAAQ,oBAAmB;AAIzD,SAASC,mBACPC,QAAuE;IAEvE,OAAO,CAACC,QAAQC,MAAMC,SAASC;QAC7B,OAAOJ,SACLC,QACAC,MACA;YAAE,GAAGC,OAAO;YAAEE,KAAKP,sBAAsBK,QAAQE,GAAG,EAAE;QAAiB,GACvED;IAEJ;AACF;AAEA,OAAO,SAASE,iBACdC,MAA2D;IAE3D,IAAK,MAAMC,OAAOD,OAAQ;QACxB,IAAIA,MAAM,CAACC,IAAI,CAACC,OAAO,EAAE;YACvBF,MAAM,CAACC,IAAI,CAACC,OAAO,GAAGV,mBAAmBQ,MAAM,CAACC,IAAI,CAACC,OAAO;QAC9D;IACF;IACA,OAAOF;AACT"}
|
package/package.json
CHANGED
|
@@ -1,43 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/graphql",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
4
|
-
"main": "./dist/index.js",
|
|
5
|
-
"types": "./dist/index.d.ts",
|
|
6
|
-
"type": "module",
|
|
3
|
+
"version": "3.0.0-beta.41",
|
|
7
4
|
"homepage": "https://payloadcms.com",
|
|
8
5
|
"repository": {
|
|
9
6
|
"type": "git",
|
|
10
7
|
"url": "https://github.com/payloadcms/payload.git",
|
|
11
8
|
"directory": "packages/graphql"
|
|
12
9
|
},
|
|
10
|
+
"type": "module",
|
|
13
11
|
"exports": {
|
|
14
12
|
".": {
|
|
15
13
|
"import": "./dist/index.js",
|
|
16
14
|
"require": "./dist/index.js",
|
|
17
15
|
"types": "./dist/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./*": {
|
|
18
|
+
"import": "./dist/exports/*.js",
|
|
19
|
+
"require": "./dist/exports/*.js",
|
|
20
|
+
"types": "./dist/exports/*.d.ts"
|
|
18
21
|
}
|
|
19
22
|
},
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
"payload": "3.0.0-beta.4"
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"bin": {
|
|
26
|
+
"payload-graphql": "bin.js"
|
|
25
27
|
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist"
|
|
30
|
+
],
|
|
26
31
|
"dependencies": {
|
|
27
|
-
"graphql": "16.8.1",
|
|
28
|
-
"graphql-http": "^1.22.0",
|
|
29
|
-
"graphql-playground-html": "1.6.30",
|
|
30
|
-
"graphql-query-complexity": "0.12.0",
|
|
31
32
|
"graphql-scalars": "1.22.2",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
33
|
+
"pluralize": "8.0.0",
|
|
34
|
+
"ts-essentials": "7.0.3"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/pluralize": "^0.0.33",
|
|
38
|
+
"graphql-http": "^1.22.0",
|
|
39
|
+
"payload": "3.0.0-beta.41",
|
|
40
|
+
"@payloadcms/eslint-config": "1.1.1"
|
|
34
41
|
},
|
|
35
42
|
"peerDependencies": {
|
|
36
|
-
"
|
|
43
|
+
"graphql": "^16.8.1",
|
|
44
|
+
"payload": "3.0.0-beta.41"
|
|
37
45
|
},
|
|
38
|
-
"files": [
|
|
39
|
-
"dist"
|
|
40
|
-
],
|
|
41
46
|
"scripts": {
|
|
42
47
|
"build": "pnpm build:swc && pnpm build:types",
|
|
43
48
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
package/src/index.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
import type { OperationArgs } from 'graphql-http'
|
|
3
|
-
import type { GraphQLInfo } from 'payload/config'
|
|
4
|
-
import type { SanitizedConfig } from 'payload/types'
|
|
5
|
-
|
|
6
|
-
import * as GraphQL from 'graphql'
|
|
7
|
-
import {
|
|
8
|
-
createComplexityRule,
|
|
9
|
-
fieldExtensionsEstimator,
|
|
10
|
-
simpleEstimator,
|
|
11
|
-
} from 'graphql-query-complexity'
|
|
12
|
-
|
|
13
|
-
import accessResolver from './resolvers/auth/access.js'
|
|
14
|
-
import buildFallbackLocaleInputType from './schema/buildFallbackLocaleInputType.js'
|
|
15
|
-
import buildLocaleInputType from './schema/buildLocaleInputType.js'
|
|
16
|
-
import buildPoliciesType from './schema/buildPoliciesType.js'
|
|
17
|
-
import initCollections from './schema/initCollections.js'
|
|
18
|
-
import initGlobals from './schema/initGlobals.js'
|
|
19
|
-
import { wrapCustomFields } from './utilities/wrapCustomResolver.js'
|
|
20
|
-
|
|
21
|
-
export async function configToSchema(config: SanitizedConfig): Promise<{
|
|
22
|
-
schema: GraphQL.GraphQLSchema
|
|
23
|
-
validationRules: (args: OperationArgs<any>) => GraphQL.ValidationRule[]
|
|
24
|
-
}> {
|
|
25
|
-
const collections = config.collections.reduce((acc, collection) => {
|
|
26
|
-
acc[collection.slug] = {
|
|
27
|
-
config: collection,
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return acc
|
|
31
|
-
}, {})
|
|
32
|
-
|
|
33
|
-
const globals = {
|
|
34
|
-
config: config.globals,
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const graphqlResult: GraphQLInfo = {
|
|
38
|
-
Mutation: {
|
|
39
|
-
name: 'Mutation',
|
|
40
|
-
fields: {},
|
|
41
|
-
},
|
|
42
|
-
Query: {
|
|
43
|
-
name: 'Query',
|
|
44
|
-
fields: {},
|
|
45
|
-
},
|
|
46
|
-
collections,
|
|
47
|
-
globals,
|
|
48
|
-
types: {
|
|
49
|
-
arrayTypes: {},
|
|
50
|
-
blockInputTypes: {},
|
|
51
|
-
blockTypes: {},
|
|
52
|
-
groupTypes: {},
|
|
53
|
-
tabTypes: {},
|
|
54
|
-
},
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (config.localization) {
|
|
58
|
-
graphqlResult.types['localeInputType'] = buildLocaleInputType(config.localization)
|
|
59
|
-
graphqlResult.types['fallbackLocaleInputType'] = buildFallbackLocaleInputType(
|
|
60
|
-
config.localization,
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
initCollections({ config, graphqlResult })
|
|
65
|
-
initGlobals({ config, graphqlResult })
|
|
66
|
-
|
|
67
|
-
graphqlResult.Query.fields['Access'] = {
|
|
68
|
-
type: buildPoliciesType(config),
|
|
69
|
-
resolve: accessResolver(config),
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (typeof config.graphQL.queries === 'function') {
|
|
73
|
-
const customQueries = config.graphQL.queries(GraphQL, {
|
|
74
|
-
...graphqlResult,
|
|
75
|
-
config,
|
|
76
|
-
})
|
|
77
|
-
graphqlResult.Query = {
|
|
78
|
-
...graphqlResult.Query,
|
|
79
|
-
fields: {
|
|
80
|
-
...graphqlResult.Query.fields,
|
|
81
|
-
...wrapCustomFields((customQueries || {}) as never),
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (typeof config.graphQL.mutations === 'function') {
|
|
87
|
-
const customMutations = config.graphQL.mutations(GraphQL, {
|
|
88
|
-
...graphqlResult,
|
|
89
|
-
config,
|
|
90
|
-
})
|
|
91
|
-
graphqlResult.Mutation = {
|
|
92
|
-
...graphqlResult.Mutation,
|
|
93
|
-
fields: {
|
|
94
|
-
...graphqlResult.Mutation.fields,
|
|
95
|
-
...wrapCustomFields((customMutations || {}) as never),
|
|
96
|
-
},
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const query = new GraphQL.GraphQLObjectType(graphqlResult.Query)
|
|
101
|
-
const mutation = new GraphQL.GraphQLObjectType(graphqlResult.Mutation)
|
|
102
|
-
|
|
103
|
-
const schemaToCreate = {
|
|
104
|
-
mutation,
|
|
105
|
-
query,
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const schema = new GraphQL.GraphQLSchema(schemaToCreate)
|
|
109
|
-
|
|
110
|
-
const validationRules = (args) => [
|
|
111
|
-
createComplexityRule({
|
|
112
|
-
estimators: [
|
|
113
|
-
fieldExtensionsEstimator(),
|
|
114
|
-
simpleEstimator({ defaultComplexity: 1 }), // Fallback if complexity not set
|
|
115
|
-
],
|
|
116
|
-
maximumComplexity: config.graphQL.maxComplexity,
|
|
117
|
-
variables: args.variableValues,
|
|
118
|
-
// onComplete: (complexity) => { console.log('Query Complexity:', complexity); },
|
|
119
|
-
}),
|
|
120
|
-
]
|
|
121
|
-
|
|
122
|
-
return {
|
|
123
|
-
schema,
|
|
124
|
-
validationRules,
|
|
125
|
-
}
|
|
126
|
-
}
|