@payloadcms/graphql 3.0.0-alpha.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/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +162 -0
- package/dist/resolvers/auth/access.d.ts +5 -0
- package/dist/resolvers/auth/access.d.ts.map +1 -0
- package/dist/resolvers/auth/access.js +48 -0
- package/dist/resolvers/auth/forgotPassword.d.ts +4 -0
- package/dist/resolvers/auth/forgotPassword.d.ts.map +1 -0
- package/dist/resolvers/auth/forgotPassword.js +31 -0
- package/dist/resolvers/auth/init.d.ts +4 -0
- package/dist/resolvers/auth/init.d.ts.map +1 -0
- package/dist/resolvers/auth/init.js +25 -0
- package/dist/resolvers/auth/login.d.ts +7 -0
- package/dist/resolvers/auth/login.d.ts.map +1 -0
- package/dist/resolvers/auth/login.js +41 -0
- package/dist/resolvers/auth/logout.d.ts +4 -0
- package/dist/resolvers/auth/logout.d.ts.map +1 -0
- package/dist/resolvers/auth/logout.js +32 -0
- package/dist/resolvers/auth/me.d.ts +4 -0
- package/dist/resolvers/auth/me.d.ts.map +1 -0
- package/dist/resolvers/auth/me.js +30 -0
- package/dist/resolvers/auth/refresh.d.ts +5 -0
- package/dist/resolvers/auth/refresh.d.ts.map +1 -0
- package/dist/resolvers/auth/refresh.js +43 -0
- package/dist/resolvers/auth/resetPassword.d.ts +5 -0
- package/dist/resolvers/auth/resetPassword.d.ts.map +1 -0
- package/dist/resolvers/auth/resetPassword.js +41 -0
- package/dist/resolvers/auth/unlock.d.ts +5 -0
- package/dist/resolvers/auth/unlock.d.ts.map +1 -0
- package/dist/resolvers/auth/unlock.js +29 -0
- package/dist/resolvers/auth/verifyEmail.d.ts +5 -0
- package/dist/resolvers/auth/verifyEmail.d.ts.map +1 -0
- package/dist/resolvers/auth/verifyEmail.js +30 -0
- package/dist/resolvers/collections/create.d.ts +13 -0
- package/dist/resolvers/collections/create.d.ts.map +1 -0
- package/dist/resolvers/collections/create.js +30 -0
- package/dist/resolvers/collections/delete.d.ts +11 -0
- package/dist/resolvers/collections/delete.d.ts.map +1 -0
- package/dist/resolvers/collections/delete.js +34 -0
- package/dist/resolvers/collections/docAccess.d.ts +9 -0
- package/dist/resolvers/collections/docAccess.d.ts.map +1 -0
- package/dist/resolvers/collections/docAccess.js +24 -0
- package/dist/resolvers/collections/find.d.ts +17 -0
- package/dist/resolvers/collections/find.d.ts.map +1 -0
- package/dist/resolvers/collections/find.js +37 -0
- package/dist/resolvers/collections/findByID.d.ts +13 -0
- package/dist/resolvers/collections/findByID.d.ts.map +1 -0
- package/dist/resolvers/collections/findByID.js +34 -0
- package/dist/resolvers/collections/findVersionByID.d.ts +13 -0
- package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -0
- package/dist/resolvers/collections/findVersionByID.js +34 -0
- package/dist/resolvers/collections/findVersions.d.ts +15 -0
- package/dist/resolvers/collections/findVersions.d.ts.map +1 -0
- package/dist/resolvers/collections/findVersions.js +37 -0
- package/dist/resolvers/collections/restoreVersion.d.ts +9 -0
- package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -0
- package/dist/resolvers/collections/restoreVersion.js +27 -0
- package/dist/resolvers/collections/update.d.ts +14 -0
- package/dist/resolvers/collections/update.d.ts.map +1 -0
- package/dist/resolvers/collections/update.js +37 -0
- package/dist/resolvers/globals/docAccess.d.ts +7 -0
- package/dist/resolvers/globals/docAccess.d.ts.map +1 -0
- package/dist/resolvers/globals/docAccess.js +23 -0
- package/dist/resolvers/globals/findOne.d.ts +3 -0
- package/dist/resolvers/globals/findOne.d.ts.map +1 -0
- package/dist/resolvers/globals/findOne.js +30 -0
- package/dist/resolvers/globals/findVersionByID.d.ts +11 -0
- package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -0
- package/dist/resolvers/globals/findVersionByID.js +29 -0
- package/dist/resolvers/globals/findVersions.d.ts +13 -0
- package/dist/resolvers/globals/findVersions.d.ts.map +1 -0
- package/dist/resolvers/globals/findVersions.js +29 -0
- package/dist/resolvers/globals/index.d.ts +7 -0
- package/dist/resolvers/globals/index.d.ts.map +1 -0
- package/dist/resolvers/globals/index.js +39 -0
- package/dist/resolvers/globals/restoreVersion.d.ts +9 -0
- package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -0
- package/dist/resolvers/globals/restoreVersion.js +26 -0
- package/dist/resolvers/globals/update.d.ts +14 -0
- package/dist/resolvers/globals/update.d.ts.map +1 -0
- package/dist/resolvers/globals/update.js +31 -0
- package/dist/resolvers/types.d.ts +8 -0
- package/dist/resolvers/types.d.ts.map +1 -0
- package/dist/resolvers/types.js +6 -0
- package/dist/schema/buildFallbackLocaleInputType.d.ts +5 -0
- package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -0
- package/dist/schema/buildFallbackLocaleInputType.js +34 -0
- package/dist/schema/buildLocaleInputType.d.ts +6 -0
- package/dist/schema/buildLocaleInputType.d.ts.map +1 -0
- package/dist/schema/buildLocaleInputType.js +31 -0
- package/dist/schema/buildMutationInputType.d.ts +23 -0
- package/dist/schema/buildMutationInputType.d.ts.map +1 -0
- package/dist/schema/buildMutationInputType.js +293 -0
- package/dist/schema/buildObjectType.d.ts +19 -0
- package/dist/schema/buildObjectType.d.ts.map +1 -0
- package/dist/schema/buildObjectType.js +508 -0
- package/dist/schema/buildPaginatedListType.d.ts +4 -0
- package/dist/schema/buildPaginatedListType.d.ts.map +1 -0
- package/dist/schema/buildPaginatedListType.js +52 -0
- package/dist/schema/buildPoliciesType.d.ts +29 -0
- package/dist/schema/buildPoliciesType.d.ts.map +1 -0
- package/dist/schema/buildPoliciesType.js +210 -0
- package/dist/schema/buildWhereInputType.d.ts +24 -0
- package/dist/schema/buildWhereInputType.d.ts.map +1 -0
- package/dist/schema/buildWhereInputType.js +102 -0
- package/dist/schema/fieldToWhereInputSchemaMap.d.ts +7 -0
- package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -0
- package/dist/schema/fieldToWhereInputSchemaMap.js +118 -0
- package/dist/schema/initCollections.d.ts +9 -0
- package/dist/schema/initCollections.d.ts.map +1 -0
- package/dist/schema/initCollections.js +492 -0
- package/dist/schema/initGlobals.d.ts +9 -0
- package/dist/schema/initGlobals.d.ts.map +1 -0
- package/dist/schema/initGlobals.js +193 -0
- package/dist/schema/isFieldNullable.d.ts +4 -0
- package/dist/schema/isFieldNullable.d.ts.map +1 -0
- package/dist/schema/isFieldNullable.js +19 -0
- package/dist/schema/operators.d.ts +10 -0
- package/dist/schema/operators.d.ts.map +1 -0
- package/dist/schema/operators.js +41 -0
- package/dist/schema/recursivelyBuildNestedPaths.d.ts +9 -0
- package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -0
- package/dist/schema/recursivelyBuildNestedPaths.js +79 -0
- package/dist/schema/withNullableType.d.ts +5 -0
- package/dist/schema/withNullableType.d.ts.map +1 -0
- package/dist/schema/withNullableType.js +23 -0
- package/dist/schema/withOperators.d.ts +16 -0
- package/dist/schema/withOperators.d.ts.map +1 -0
- package/dist/schema/withOperators.js +296 -0
- package/dist/utilities/combineParentName.d.ts +3 -0
- package/dist/utilities/combineParentName.d.ts.map +1 -0
- package/dist/utilities/combineParentName.js +20 -0
- package/dist/utilities/formatName.d.ts +3 -0
- package/dist/utilities/formatName.d.ts.map +1 -0
- package/dist/utilities/formatName.js +35 -0
- package/dist/utilities/formatName.spec.js +26 -0
- package/dist/utilities/formatOptions.d.ts +4 -0
- package/dist/utilities/formatOptions.d.ts.map +1 -0
- package/dist/utilities/formatOptions.js +37 -0
- package/dist/utilities/getCheckIfLocaleObject.d.ts +5 -0
- package/dist/utilities/getCheckIfLocaleObject.d.ts.map +1 -0
- package/dist/utilities/getCheckIfLocaleObject.js +13 -0
- package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts +3 -0
- package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts.map +1 -0
- package/dist/utilities/groupOrTabHasRequiredSubfield.js +24 -0
- package/dist/utilities/isolateTransactionID.d.ts +2 -0
- package/dist/utilities/isolateTransactionID.d.ts.map +1 -0
- package/dist/utilities/isolateTransactionID.js +3 -0
- package/dist/utilities/uppercase.d.ts +3 -0
- package/dist/utilities/uppercase.d.ts.map +1 -0
- package/dist/utilities/uppercase.js +21 -0
- package/dist/utilities/wrapCustomResolver.d.ts +9 -0
- package/dist/utilities/wrapCustomResolver.d.ts.map +1 -0
- package/dist/utilities/wrapCustomResolver.js +29 -0
- package/package.json +42 -0
- package/src/index.ts +126 -0
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@payloadcms/graphql",
|
|
3
|
+
"version": "3.0.0-alpha.0",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./dist/index.js",
|
|
9
|
+
"require": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"ts-essentials": "7.0.3",
|
|
15
|
+
"@payloadcms/eslint-config": "1.1.1",
|
|
16
|
+
"payload": "2.11.0"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"graphql": "16.8.1",
|
|
20
|
+
"graphql-http": "^1.22.0",
|
|
21
|
+
"graphql-playground-html": "1.6.30",
|
|
22
|
+
"graphql-query-complexity": "0.12.0",
|
|
23
|
+
"graphql-scalars": "1.22.2",
|
|
24
|
+
"graphql-type-json": "0.3.2",
|
|
25
|
+
"pluralize": "8.0.0"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"payload": "^2.0.0"
|
|
29
|
+
},
|
|
30
|
+
"publishConfig": {
|
|
31
|
+
"registry": "https://registry.npmjs.org/"
|
|
32
|
+
},
|
|
33
|
+
"files": [
|
|
34
|
+
"dist"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "pnpm build:swc && pnpm build:types",
|
|
38
|
+
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
|
39
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
40
|
+
"clean": "rimraf {dist,*.tsbuildinfo}"
|
|
41
|
+
}
|
|
42
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */
|
|
2
|
+
import * as GraphQL from 'graphql'
|
|
3
|
+
import { OperationArgs } from 'graphql-http'
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
fieldExtensionsEstimator,
|
|
7
|
+
simpleEstimator,
|
|
8
|
+
createComplexityRule,
|
|
9
|
+
} from 'graphql-query-complexity'
|
|
10
|
+
|
|
11
|
+
import type { GraphQLInfo } from 'payload/config'
|
|
12
|
+
import type { SanitizedConfig } from 'payload/types'
|
|
13
|
+
import accessResolver from './resolvers/auth/access'
|
|
14
|
+
import initCollections from './schema/initCollections'
|
|
15
|
+
import initGlobals from './schema/initGlobals'
|
|
16
|
+
import buildFallbackLocaleInputType from './schema/buildFallbackLocaleInputType'
|
|
17
|
+
import buildLocaleInputType from './schema/buildLocaleInputType'
|
|
18
|
+
import buildPoliciesType from './schema/buildPoliciesType'
|
|
19
|
+
import { wrapCustomFields } from './utilities/wrapCustomResolver'
|
|
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
|
+
let graphqlResult: GraphQLInfo = {
|
|
38
|
+
types: {
|
|
39
|
+
arrayTypes: {},
|
|
40
|
+
blockInputTypes: {},
|
|
41
|
+
blockTypes: {},
|
|
42
|
+
groupTypes: {},
|
|
43
|
+
tabTypes: {},
|
|
44
|
+
},
|
|
45
|
+
Query: {
|
|
46
|
+
name: 'Query',
|
|
47
|
+
fields: {},
|
|
48
|
+
},
|
|
49
|
+
Mutation: {
|
|
50
|
+
name: 'Mutation',
|
|
51
|
+
fields: {},
|
|
52
|
+
},
|
|
53
|
+
collections,
|
|
54
|
+
globals,
|
|
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
|
+
resolve: accessResolver(config),
|
|
69
|
+
type: buildPoliciesType(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
|
+
}
|