@webiny/api-headless-cms 5.40.6-beta.1 → 5.40.6-beta.3
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/graphql/schema/createSingularResolvers.js +1 -1
- package/graphql/schema/createSingularResolvers.js.map +1 -1
- package/graphql/schema/createSingularSDL.js +1 -1
- package/graphql/schema/createSingularSDL.js.map +1 -1
- package/package.json +20 -20
- package/utils/getSchemaFromFieldPlugins.js +3 -2
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_resolveGet","require","_resolveUpdate","_normalizeGraphQlInput","_createFieldResolvers","createSingularResolvers","models","model","fieldTypePlugins","type","fields","length","Query","Mutation","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","isRoot","resolverFactoryParams","result","resolveGet","normalizeGraphQlInput","resolveUpdate","exports"],"sources":["createSingularResolvers.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { resolveGet } from \"./resolvers/singular/resolveGet\";\nimport { resolveUpdate } from \"./resolvers/singular/resolveUpdate\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\n\ninterface CreateSingularResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateSingularResolversParams): any;\n}\n\nexport const createSingularResolvers: CreateSingularResolvers = ({\n models,\n model,\n fieldTypePlugins,\n type\n}) => {\n if (model.fields.length === 0) {\n return {\n Query: {},\n Mutation: {}\n };\n }\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType:
|
|
1
|
+
{"version":3,"names":["_resolveGet","require","_resolveUpdate","_normalizeGraphQlInput","_createFieldResolvers","createSingularResolvers","models","model","fieldTypePlugins","type","fields","length","Query","Mutation","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","singularApiName","isRoot","resolverFactoryParams","result","resolveGet","normalizeGraphQlInput","resolveUpdate","exports"],"sources":["createSingularResolvers.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { resolveGet } from \"./resolvers/singular/resolveGet\";\nimport { resolveUpdate } from \"./resolvers/singular/resolveUpdate\";\nimport { normalizeGraphQlInput } from \"./resolvers/manage/normalizeGraphQlInput\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\n\ninterface CreateSingularResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateSingularResolversParams): any;\n}\n\nexport const createSingularResolvers: CreateSingularResolvers = ({\n models,\n model,\n fieldTypePlugins,\n type\n}) => {\n if (model.fields.length === 0) {\n return {\n Query: {},\n Mutation: {}\n };\n }\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: type,\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: model.singularApiName,\n fields: model.fields,\n isRoot: true\n });\n\n const resolverFactoryParams = { model, fieldTypePlugins };\n\n const result = {\n Query: {\n [`get${model.singularApiName}`]: resolveGet(resolverFactoryParams)\n },\n ...fieldResolvers\n };\n if (type !== \"manage\") {\n return result;\n }\n return {\n ...result,\n Mutation: {\n [`update${model.singularApiName}`]:\n normalizeGraphQlInput(resolveUpdate)(resolverFactoryParams)\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AAeO,MAAMI,uBAAgD,GAAGA,CAAC;EAC7DC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAK;EACF,IAAIF,KAAK,CAACG,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IAC3B,OAAO;MACHC,KAAK,EAAE,CAAC,CAAC;MACTC,QAAQ,EAAE,CAAC;IACf,CAAC;EACL;EAEA,MAAMC,oBAAoB,GAAG,IAAAC,iDAA2B,EAAC;IACrDC,YAAY,EAAEP,IAAI;IAClBH,MAAM;IACNC,KAAK;IACLC;EACJ,CAAC,CAAC;EAEF,MAAMS,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEX,KAAK,CAACY,eAAe;IAClCT,MAAM,EAAEH,KAAK,CAACG,MAAM;IACpBU,MAAM,EAAE;EACZ,CAAC,CAAC;EAEF,MAAMC,qBAAqB,GAAG;IAAEd,KAAK;IAAEC;EAAiB,CAAC;EAEzD,MAAMc,MAAM,GAAG;IACXV,KAAK,EAAE;MACH,CAAE,MAAKL,KAAK,CAACY,eAAgB,EAAC,GAAG,IAAAI,sBAAU,EAACF,qBAAqB;IACrE,CAAC;IACD,GAAGJ;EACP,CAAC;EACD,IAAIR,IAAI,KAAK,QAAQ,EAAE;IACnB,OAAOa,MAAM;EACjB;EACA,OAAO;IACH,GAAGA,MAAM;IACTT,QAAQ,EAAE;MACN,CAAE,SAAQN,KAAK,CAACY,eAAgB,EAAC,GAC7B,IAAAK,4CAAqB,EAACC,4BAAa,CAAC,CAACJ,qBAAqB;IAClE;EACJ,CAAC;AACL,CAAC;AAACK,OAAA,CAAArB,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_renderInputFields","require","_renderFields","_constants","createSingularSDL","models","model","fieldTypePlugins","type","inputFields","renderInputFields","fields","length","renderFields","singularApiName","singularName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read","description","typeDefs","exports"],"sources":["createSingularSDL.ts"],"sourcesContent":["import { ApiEndpoint, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldTypePlugins,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type
|
|
1
|
+
{"version":3,"names":["_renderInputFields","require","_renderFields","_constants","createSingularSDL","models","model","fieldTypePlugins","type","inputFields","renderInputFields","fields","length","renderFields","singularApiName","singularName","inputGqlFields","map","f","join","onByMetaInputGqlFields","ENTRY_META_FIELDS","field","fieldType","isDateTimeEntryMetaField","onByMetaGqlFields","read","description","typeDefs","exports"],"sources":["createSingularSDL.ts"],"sourcesContent":["import { ApiEndpoint, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { ENTRY_META_FIELDS, isDateTimeEntryMetaField } from \"~/constants\";\n\ninterface CreateSingularSDLParams {\n models: CmsModel[];\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n}\n\ninterface CreateSingularSDL {\n (params: CreateSingularSDLParams): string;\n}\n\nexport const createSingularSDL: CreateSingularSDL = ({\n models,\n model,\n fieldTypePlugins,\n type\n}): string => {\n const inputFields = renderInputFields({\n models,\n model,\n fields: model.fields,\n fieldTypePlugins\n });\n if (inputFields.length === 0) {\n return \"\";\n }\n\n const fields = renderFields({\n models,\n model,\n fields: model.fields,\n type,\n fieldTypePlugins\n });\n\n const { singularApiName: singularName } = model;\n\n const inputGqlFields = inputFields.map(f => f.fields).join(\"\\n\");\n\n const onByMetaInputGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentityInput\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n const onByMetaGqlFields = ENTRY_META_FIELDS.map(field => {\n const fieldType = isDateTimeEntryMetaField(field) ? \"DateTime\" : \"CmsIdentity\";\n\n return `${field}: ${fieldType}`;\n }).join(\"\\n\");\n\n // Had to remove /* GraphQL */ because prettier would not format the code correctly.\n const read = `\n \"\"\"${model.description || singularName}\"\"\"\n type ${singularName} {\n id: ID!\n entryId: String!\n \n ${onByMetaGqlFields}\n\n ownedBy: CmsIdentity @deprecated(reason: \"Field was removed with the 5.39.0 release. Use 'createdBy' field.\")\n \n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n ${fields.map(f => f.typeDefs).join(\"\\n\")}\n\n type ${singularName}Response {\n data: ${singularName}\n error: CmsError\n }\n \n extend type Query {\n get${singularName}: ${singularName}Response\n }\n\n `;\n if (type !== \"manage\") {\n return read;\n }\n return `\n ${read}\n \n ${inputFields.map(f => f.typeDefs).join(\"\\n\")}\n \n input ${singularName}Input {\n ${onByMetaInputGqlFields}\n ${inputGqlFields}\n }\n \n extend type Mutation {\n update${singularName}(data: ${singularName}Input!, options: UpdateCmsEntryOptionsInput): ${singularName}Response\n }\n `;\n};\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAaO,MAAMG,iBAAoC,GAAGA,CAAC;EACjDC,MAAM;EACNC,KAAK;EACLC,gBAAgB;EAChBC;AACJ,CAAC,KAAa;EACV,MAAMC,WAAW,GAAG,IAAAC,oCAAiB,EAAC;IAClCL,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBJ;EACJ,CAAC,CAAC;EACF,IAAIE,WAAW,CAACG,MAAM,KAAK,CAAC,EAAE;IAC1B,OAAO,EAAE;EACb;EAEA,MAAMD,MAAM,GAAG,IAAAE,0BAAY,EAAC;IACxBR,MAAM;IACNC,KAAK;IACLK,MAAM,EAAEL,KAAK,CAACK,MAAM;IACpBH,IAAI;IACJD;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEO,eAAe,EAAEC;EAAa,CAAC,GAAGT,KAAK;EAE/C,MAAMU,cAAc,GAAGP,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAEhE,MAAMC,sBAAsB,GAAGC,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IAC1D,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,kBAAkB;IAEnF,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;EAEb,MAAMM,iBAAiB,GAAGJ,4BAAiB,CAACJ,GAAG,CAACK,KAAK,IAAI;IACrD,MAAMC,SAAS,GAAG,IAAAC,mCAAwB,EAACF,KAAK,CAAC,GAAG,UAAU,GAAG,aAAa;IAE9E,OAAQ,GAAEA,KAAM,KAAIC,SAAU,EAAC;EACnC,CAAC,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;;EAEb;EACA,MAAMO,IAAI,GAAI;AAClB,aAAapB,KAAK,CAACqB,WAAW,IAAIZ,YAAa;AAC/C,eAAeA,YAAa;AAC5B;AACA;AACA;AACA,cAAcU,iBAAkB;AAChC;AACA;AACA;AACA,cAAcd,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACP,MAAM,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAE;AACnD;AACA;AACA,UAAUR,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACjD;AACA,eAAeJ,YAAa;AAC5B,oBAAoBA,YAAa;AACjC;AACA;AACA;AACA;AACA,iBAAiBA,YAAa,KAAIA,YAAa;AAC/C;AACA;AACA,KAAK;EACD,IAAIP,IAAI,KAAK,QAAQ,EAAE;IACnB,OAAOkB,IAAI;EACf;EACA,OAAQ;AACZ,UAAUA,IAAK;AACf;AACA,UAAUjB,WAAW,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACU,QAAQ,CAAC,CAACT,IAAI,CAAC,IAAI,CAAE;AACtD;AACA,gBAAgBJ,YAAa;AAC7B,cAAcK,sBAAuB;AACrC,cAAcJ,cAAe;AAC7B;AACA;AACA;AACA,oBAAoBD,YAAa,UAASA,YAAa,iDAAgDA,YAAa;AACpH;AACA,KAAK;AACL,CAAC;AAACc,OAAA,CAAAzB,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-headless-cms",
|
|
3
|
-
"version": "5.40.6-beta.
|
|
3
|
+
"version": "5.40.6-beta.3",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms:base"
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/runtime": "7.24.1",
|
|
22
22
|
"@graphql-tools/schema": "7.1.5",
|
|
23
|
-
"@webiny/api": "5.40.6-beta.
|
|
24
|
-
"@webiny/api-i18n": "5.40.6-beta.
|
|
25
|
-
"@webiny/api-security": "5.40.6-beta.
|
|
26
|
-
"@webiny/api-tenancy": "5.40.6-beta.
|
|
27
|
-
"@webiny/error": "5.40.6-beta.
|
|
28
|
-
"@webiny/handler": "5.40.6-beta.
|
|
29
|
-
"@webiny/handler-aws": "5.40.6-beta.
|
|
30
|
-
"@webiny/handler-db": "5.40.6-beta.
|
|
31
|
-
"@webiny/handler-graphql": "5.40.6-beta.
|
|
32
|
-
"@webiny/lexical-converter": "5.40.6-beta.
|
|
33
|
-
"@webiny/plugins": "5.40.6-beta.
|
|
34
|
-
"@webiny/pubsub": "5.40.6-beta.
|
|
35
|
-
"@webiny/utils": "5.40.6-beta.
|
|
36
|
-
"@webiny/validation": "5.40.6-beta.
|
|
23
|
+
"@webiny/api": "5.40.6-beta.3",
|
|
24
|
+
"@webiny/api-i18n": "5.40.6-beta.3",
|
|
25
|
+
"@webiny/api-security": "5.40.6-beta.3",
|
|
26
|
+
"@webiny/api-tenancy": "5.40.6-beta.3",
|
|
27
|
+
"@webiny/error": "5.40.6-beta.3",
|
|
28
|
+
"@webiny/handler": "5.40.6-beta.3",
|
|
29
|
+
"@webiny/handler-aws": "5.40.6-beta.3",
|
|
30
|
+
"@webiny/handler-db": "5.40.6-beta.3",
|
|
31
|
+
"@webiny/handler-graphql": "5.40.6-beta.3",
|
|
32
|
+
"@webiny/lexical-converter": "5.40.6-beta.3",
|
|
33
|
+
"@webiny/plugins": "5.40.6-beta.3",
|
|
34
|
+
"@webiny/pubsub": "5.40.6-beta.3",
|
|
35
|
+
"@webiny/utils": "5.40.6-beta.3",
|
|
36
|
+
"@webiny/validation": "5.40.6-beta.3",
|
|
37
37
|
"code-frame": "5.0.0",
|
|
38
38
|
"dot-prop": "6.0.1",
|
|
39
39
|
"graphql": "15.8.0",
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
"@babel/cli": "7.24.1",
|
|
52
52
|
"@babel/core": "7.24.3",
|
|
53
53
|
"@babel/preset-env": "7.24.3",
|
|
54
|
-
"@webiny/api-wcp": "5.40.6-beta.
|
|
55
|
-
"@webiny/aws-sdk": "5.40.6-beta.
|
|
56
|
-
"@webiny/cli": "5.40.6-beta.
|
|
57
|
-
"@webiny/project-utils": "5.40.6-beta.
|
|
54
|
+
"@webiny/api-wcp": "5.40.6-beta.3",
|
|
55
|
+
"@webiny/aws-sdk": "5.40.6-beta.3",
|
|
56
|
+
"@webiny/cli": "5.40.6-beta.3",
|
|
57
|
+
"@webiny/project-utils": "5.40.6-beta.3",
|
|
58
58
|
"apollo-graphql": "0.9.7",
|
|
59
59
|
"get-yarn-workspaces": "1.0.2",
|
|
60
60
|
"graphql": "15.8.0",
|
|
@@ -74,5 +74,5 @@
|
|
|
74
74
|
"build": "yarn webiny run build",
|
|
75
75
|
"watch": "yarn webiny run watch"
|
|
76
76
|
},
|
|
77
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "f9da84b373e62f9f269599c4301e5e4418a98d51"
|
|
78
78
|
}
|
|
@@ -26,13 +26,14 @@ const createGraphQLSchemaPluginFromFieldPlugins = params => {
|
|
|
26
26
|
type,
|
|
27
27
|
createPlugin = defaultCreatePlugin
|
|
28
28
|
} = params;
|
|
29
|
+
const apiType = TYPE_MAP[type];
|
|
29
30
|
const plugins = [];
|
|
30
31
|
for (const key in fieldTypePlugins) {
|
|
31
32
|
const fieldTypePlugin = fieldTypePlugins[key];
|
|
32
|
-
if (!
|
|
33
|
+
if (!apiType || !fieldTypePlugin[apiType]) {
|
|
33
34
|
continue;
|
|
34
35
|
}
|
|
35
|
-
const createSchema = fieldTypePlugin[
|
|
36
|
+
const createSchema = fieldTypePlugin[apiType].createSchema;
|
|
36
37
|
// Render gql types generated by field type plugins
|
|
37
38
|
if (!createSchema) {
|
|
38
39
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","TYPE_MAP","preview","read","manage","defaultCreatePlugin","schema","type","fieldType","plugin","createCmsGraphQLSchemaPlugin","name","createGraphQLSchemaPluginFromFieldPlugins","params","models","fieldTypePlugins","createPlugin","plugins","key","fieldTypePlugin","createSchema","push","exports"],"sources":["getSchemaFromFieldPlugins.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types\";\n\nconst TYPE_MAP: Record<string, \"manage\" | \"read\"> = {\n preview: \"read\",\n read: \"read\",\n manage: \"manage\"\n};\n\ninterface CreatePluginCallableParams {\n schema: GraphQLSchemaDefinition<CmsContext>;\n type: \"manage\" | \"preview\" | \"read\";\n fieldType: string;\n}\n\ninterface CreatePluginCallable {\n (params: CreatePluginCallableParams): IGraphQLSchemaPlugin<CmsContext>;\n}\n\nconst defaultCreatePlugin: CreatePluginCallable = ({ schema, type, fieldType }) => {\n const plugin = createCmsGraphQLSchemaPlugin(schema);\n plugin.name = `headless-cms.graphql.schema.${type}.field.${fieldType}`;\n return plugin;\n};\n\ninterface Params {\n models: CmsModel[];\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n createPlugin?: CreatePluginCallable;\n}\nexport const createGraphQLSchemaPluginFromFieldPlugins = (params: Params) => {\n const { models, fieldTypePlugins, type, createPlugin = defaultCreatePlugin } = params;\n\n const plugins: ICmsGraphQLSchemaPlugin[] = [];\n for (const key in fieldTypePlugins) {\n const fieldTypePlugin = fieldTypePlugins[key];\n if (!
|
|
1
|
+
{"version":3,"names":["_plugins","require","TYPE_MAP","preview","read","manage","defaultCreatePlugin","schema","type","fieldType","plugin","createCmsGraphQLSchemaPlugin","name","createGraphQLSchemaPluginFromFieldPlugins","params","models","fieldTypePlugins","createPlugin","apiType","plugins","key","fieldTypePlugin","createSchema","push","exports"],"sources":["getSchemaFromFieldPlugins.ts"],"sourcesContent":["import { ApiEndpoint, CmsContext, CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createCmsGraphQLSchemaPlugin, ICmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { IGraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { GraphQLSchemaDefinition } from \"@webiny/handler-graphql/types\";\n\nconst TYPE_MAP: Record<string, \"manage\" | \"read\"> = {\n preview: \"read\",\n read: \"read\",\n manage: \"manage\"\n};\n\ninterface CreatePluginCallableParams {\n schema: GraphQLSchemaDefinition<CmsContext>;\n type: \"manage\" | \"preview\" | \"read\";\n fieldType: string;\n}\n\ninterface CreatePluginCallable {\n (params: CreatePluginCallableParams): IGraphQLSchemaPlugin<CmsContext>;\n}\n\nconst defaultCreatePlugin: CreatePluginCallable = ({ schema, type, fieldType }) => {\n const plugin = createCmsGraphQLSchemaPlugin(schema);\n plugin.name = `headless-cms.graphql.schema.${type}.field.${fieldType}`;\n return plugin;\n};\n\ninterface Params {\n models: CmsModel[];\n fieldTypePlugins: CmsFieldTypePlugins;\n type: ApiEndpoint;\n createPlugin?: CreatePluginCallable;\n}\nexport const createGraphQLSchemaPluginFromFieldPlugins = (params: Params) => {\n const { models, fieldTypePlugins, type, createPlugin = defaultCreatePlugin } = params;\n\n const apiType = TYPE_MAP[type];\n\n const plugins: ICmsGraphQLSchemaPlugin[] = [];\n for (const key in fieldTypePlugins) {\n const fieldTypePlugin = fieldTypePlugins[key];\n if (!apiType || !fieldTypePlugin[apiType]) {\n continue;\n }\n const createSchema = fieldTypePlugin[apiType].createSchema;\n // Render gql types generated by field type plugins\n if (!createSchema) {\n continue;\n }\n const schema = createSchema({ models });\n\n // const plugin = createCmsGraphQLSchemaPlugin(schema);\n // plugin.name = `headless-cms.graphql.schema.${type}.field.${fieldTypePlugin.fieldType}`;\n const plugin = createPlugin({\n schema,\n type,\n fieldType: fieldTypePlugin.fieldType\n });\n plugins.push(plugin);\n }\n return plugins;\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAIA,MAAMC,QAA2C,GAAG;EAChDC,OAAO,EAAE,MAAM;EACfC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE;AACZ,CAAC;AAYD,MAAMC,mBAAyC,GAAGA,CAAC;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAU,CAAC,KAAK;EAC/E,MAAMC,MAAM,GAAG,IAAAC,qCAA4B,EAACJ,MAAM,CAAC;EACnDG,MAAM,CAACE,IAAI,GAAI,+BAA8BJ,IAAK,UAASC,SAAU,EAAC;EACtE,OAAOC,MAAM;AACjB,CAAC;AAQM,MAAMG,yCAAyC,GAAIC,MAAc,IAAK;EACzE,MAAM;IAAEC,MAAM;IAAEC,gBAAgB;IAAER,IAAI;IAAES,YAAY,GAAGX;EAAoB,CAAC,GAAGQ,MAAM;EAErF,MAAMI,OAAO,GAAGhB,QAAQ,CAACM,IAAI,CAAC;EAE9B,MAAMW,OAAkC,GAAG,EAAE;EAC7C,KAAK,MAAMC,GAAG,IAAIJ,gBAAgB,EAAE;IAChC,MAAMK,eAAe,GAAGL,gBAAgB,CAACI,GAAG,CAAC;IAC7C,IAAI,CAACF,OAAO,IAAI,CAACG,eAAe,CAACH,OAAO,CAAC,EAAE;MACvC;IACJ;IACA,MAAMI,YAAY,GAAGD,eAAe,CAACH,OAAO,CAAC,CAACI,YAAY;IAC1D;IACA,IAAI,CAACA,YAAY,EAAE;MACf;IACJ;IACA,MAAMf,MAAM,GAAGe,YAAY,CAAC;MAAEP;IAAO,CAAC,CAAC;;IAEvC;IACA;IACA,MAAML,MAAM,GAAGO,YAAY,CAAC;MACxBV,MAAM;MACNC,IAAI;MACJC,SAAS,EAAEY,eAAe,CAACZ;IAC/B,CAAC,CAAC;IACFU,OAAO,CAACI,IAAI,CAACb,MAAM,CAAC;EACxB;EACA,OAAOS,OAAO;AAClB,CAAC;AAACK,OAAA,CAAAX,yCAAA,GAAAA,yCAAA","ignoreList":[]}
|