Files
payload/test/custom-graphql/config.ts
Jarrod Flesch a26d03190e fix: re-exports graphql json types for external use (#6711)
Fixes https://github.com/payloadcms/payload/issues/6683

Exports import `GraphQLJSON` and `GraphQLJSONObject` from
`@payloadcms/graphql/types`

```ts
import { GraphQLJSON, GraphQLJSONObject } from '@payloadcms/graphql/types'
```
2024-06-10 14:53:31 -04:00

72 lines
1.8 KiB
TypeScript

import { GraphQLJSON } from '@payloadcms/graphql/types'
import { fileURLToPath } from 'node:url'
import path from 'path'
const filename = fileURLToPath(import.meta.url)
const dirname = path.dirname(filename)
import { commitTransaction, initTransaction, killTransaction } from 'payload/database'
import { buildConfigWithDefaults } from '../buildConfigWithDefaults.js'
import { devUser } from '../credentials.js'
const resolveTransactionId = async (_obj, _args, context) => {
try {
const shouldCommit = await initTransaction(context.req)
const transactionID = context.req.transactionID
if (shouldCommit) {
await commitTransaction(context.req)
}
return transactionID ? String(transactionID) : null
} catch (e) {
await killTransaction(context.req)
throw e
}
}
export default buildConfigWithDefaults({
collections: [],
globals: [],
graphQL: {
queries: (GraphQL) => {
return {
TransactionID1: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
TransactionID2: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
foo: {
type: GraphQLJSON,
args: {},
resolve: () => 'json test',
},
}
},
mutations: (GraphQL) => {
return {
MutateTransactionID1: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
MutateTransactionID2: {
type: GraphQL.GraphQLString,
resolve: resolveTransactionId,
},
}
},
},
onInit: async (payload) => {
await payload.create({
collection: 'users',
data: {
email: devUser.email,
password: devUser.password,
},
})
},
typescript: {
outputFile: path.resolve(dirname, 'payload-types.ts'),
},
})