@contember/engine-content-api 2.0.0-alpha.15 → 2.0.0-alpha.17
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/development/index.cjs +2 -1
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +2 -1
- package/dist/development/index.js.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +3 -0
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js +3 -0
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
- package/dist/development/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
- package/dist/development/src/introspection/introspection.schema.cjs +163 -0
- package/dist/development/src/introspection/introspection.schema.cjs.map +1 -0
- package/dist/development/src/introspection/introspection.schema.js +163 -0
- package/dist/development/src/introspection/introspection.schema.js.map +1 -0
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
- package/dist/development/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/production/index.cjs +2 -1
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +2 -1
- package/dist/production/index.js.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +3 -0
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js +3 -0
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs +6 -163
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.cjs.map +1 -1
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js +5 -162
- package/dist/production/src/introspection/IntrospectionSchemaDefinitionFactory.js.map +1 -1
- package/dist/production/src/introspection/introspection.schema.cjs +163 -0
- package/dist/production/src/introspection/introspection.schema.cjs.map +1 -0
- package/dist/production/src/introspection/introspection.schema.js +163 -0
- package/dist/production/src/introspection/introspection.schema.js.map +1 -0
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs +2 -0
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js +2 -0
- package/dist/production/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
- package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts +1 -3
- package/dist/types/introspection/IntrospectionSchemaDefinitionFactory.d.ts.map +1 -1
- package/dist/types/introspection/index.d.ts +2 -1
- package/dist/types/introspection/index.d.ts.map +1 -1
- package/dist/types/introspection/introspection.schema.d.ts +5 -0
- package/dist/types/introspection/introspection.schema.d.ts.map +1 -0
- package/dist/types/schema/mutations/UpdateEntityRelationInputFieldVisitor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/graphql.codegen.yml +2 -2
- package/package.json +13 -17
- package/src/inputProcessing/UpdateInputVisitor.ts +3 -0
- package/src/introspection/IntrospectionSchemaDefinitionFactory.ts +2 -194
- package/src/introspection/index.ts +2 -1
- package/src/introspection/introspection.schema.ts +194 -0
- package/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts +5 -0
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/connectOrCreate.test.ts +100 -0
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +90 -0
- package/tests/cases/integration/graphQlSchema/schema-acl-allowed.gql +1 -0
- package/tests/cases/integration/graphQlSchema/schema-acl-restricted-delete.gql +1 -0
- package/tests/cases/integration/graphQlSchema/schema-basic.gql +4 -0
- package/tests/cases/integration/graphQlSchema/schema-bug-66.gql +1 -0
- package/tests/cases/integration/graphQlSchema/schema-custom-primary.gql +4 -0
- package/tests/cases/integration/graphQlSchema/schema-has-many-reduction.gql +1 -0
- package/tests/cases/integration/graphQlSchema/schema-new-builder.gql +4 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const graphqlUtils = require("@contember/graphql-utils");
|
|
4
|
+
const graphql = require("graphql");
|
|
5
|
+
const _RuleMessage = new graphql.GraphQLObjectType({
|
|
6
|
+
name: "_RuleMessage",
|
|
7
|
+
fields: {
|
|
8
|
+
text: { type: graphql.GraphQLString }
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _ValidatorArgument = new graphql.GraphQLObjectType({
|
|
12
|
+
name: "_ValidatorArgument",
|
|
13
|
+
fields: {
|
|
14
|
+
validator: { type: new graphql.GraphQLNonNull(graphql.GraphQLInt) }
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const _PathArgument = new graphql.GraphQLObjectType({
|
|
18
|
+
name: "_PathArgument",
|
|
19
|
+
fields: {
|
|
20
|
+
path: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(graphql.GraphQLString))) }
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const _LiteralArgument = new graphql.GraphQLObjectType({
|
|
24
|
+
name: "_LiteralArgument",
|
|
25
|
+
fields: {
|
|
26
|
+
value: { type: graphqlUtils.JSONType }
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const _Argument = new graphql.GraphQLUnionType({
|
|
30
|
+
name: "_Argument",
|
|
31
|
+
types: [_ValidatorArgument, _PathArgument, _LiteralArgument]
|
|
32
|
+
});
|
|
33
|
+
const _Validator = new graphql.GraphQLObjectType({
|
|
34
|
+
name: "_Validator",
|
|
35
|
+
fields: {
|
|
36
|
+
operation: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
37
|
+
arguments: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Argument))) }
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const _Rule = new graphql.GraphQLObjectType({
|
|
41
|
+
name: "_Rule",
|
|
42
|
+
fields: {
|
|
43
|
+
message: { type: _RuleMessage },
|
|
44
|
+
validator: { type: new graphql.GraphQLNonNull(graphql.GraphQLInt) }
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
const _FieldInterface = new graphql.GraphQLInterfaceType({
|
|
48
|
+
name: "_Field",
|
|
49
|
+
fields: {
|
|
50
|
+
name: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
51
|
+
type: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
52
|
+
nullable: { type: graphql.GraphQLBoolean },
|
|
53
|
+
rules: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Rule))) },
|
|
54
|
+
validators: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Validator))) }
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const _OrderByDirection = new graphql.GraphQLEnumType({
|
|
58
|
+
name: "_OrderByDirection",
|
|
59
|
+
values: {
|
|
60
|
+
asc: {},
|
|
61
|
+
desc: {}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const _OrderBy = new graphql.GraphQLObjectType({
|
|
65
|
+
name: "_OrderBy",
|
|
66
|
+
fields: {
|
|
67
|
+
path: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(graphql.GraphQLString))) },
|
|
68
|
+
direction: { type: new graphql.GraphQLNonNull(_OrderByDirection) }
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const _OnDeleteBehaviour = new graphql.GraphQLEnumType({
|
|
72
|
+
name: "_OnDeleteBehaviour",
|
|
73
|
+
values: {
|
|
74
|
+
restrict: {},
|
|
75
|
+
cascade: {},
|
|
76
|
+
setNull: {}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
const _RelationSide = new graphql.GraphQLEnumType({
|
|
80
|
+
name: "_RelationSide",
|
|
81
|
+
values: {
|
|
82
|
+
owning: {},
|
|
83
|
+
inverse: {}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const _Relation = new graphql.GraphQLObjectType({
|
|
87
|
+
name: "_Relation",
|
|
88
|
+
interfaces: [_FieldInterface],
|
|
89
|
+
fields: {
|
|
90
|
+
name: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
91
|
+
type: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
92
|
+
side: { type: new graphql.GraphQLNonNull(_RelationSide) },
|
|
93
|
+
targetEntity: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
94
|
+
ownedBy: { type: graphql.GraphQLString },
|
|
95
|
+
inversedBy: { type: graphql.GraphQLString },
|
|
96
|
+
nullable: { type: graphql.GraphQLBoolean },
|
|
97
|
+
onDelete: { type: _OnDeleteBehaviour },
|
|
98
|
+
orphanRemoval: { type: graphql.GraphQLBoolean },
|
|
99
|
+
orderBy: { type: new graphql.GraphQLList(new graphql.GraphQLNonNull(_OrderBy)) },
|
|
100
|
+
rules: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Rule))) },
|
|
101
|
+
validators: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Validator))) }
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
const _Column = new graphql.GraphQLObjectType({
|
|
105
|
+
name: "_Column",
|
|
106
|
+
interfaces: [_FieldInterface],
|
|
107
|
+
fields: {
|
|
108
|
+
name: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
109
|
+
type: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
110
|
+
enumName: { type: graphql.GraphQLString },
|
|
111
|
+
defaultValue: { type: graphqlUtils.JSONType },
|
|
112
|
+
nullable: { type: new graphql.GraphQLNonNull(graphql.GraphQLBoolean) },
|
|
113
|
+
rules: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Rule))) },
|
|
114
|
+
validators: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Validator))) }
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
const _UniqueConstraint = new graphql.GraphQLObjectType({
|
|
118
|
+
name: "_UniqueConstraint",
|
|
119
|
+
fields: {
|
|
120
|
+
fields: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(graphql.GraphQLString))) }
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
const _Entity = new graphql.GraphQLObjectType({
|
|
124
|
+
name: "_Entity",
|
|
125
|
+
fields: {
|
|
126
|
+
name: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
127
|
+
customPrimaryAllowed: { type: new graphql.GraphQLNonNull(graphql.GraphQLBoolean) },
|
|
128
|
+
fields: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_FieldInterface))) },
|
|
129
|
+
unique: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_UniqueConstraint))) }
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
const _Enum = new graphql.GraphQLObjectType({
|
|
133
|
+
name: "_Enum",
|
|
134
|
+
fields: {
|
|
135
|
+
name: { type: new graphql.GraphQLNonNull(graphql.GraphQLString) },
|
|
136
|
+
values: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(graphql.GraphQLString))) }
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
const _Schema = new graphql.GraphQLObjectType({
|
|
140
|
+
name: "_Schema",
|
|
141
|
+
fields: {
|
|
142
|
+
enums: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Enum))) },
|
|
143
|
+
entities: { type: new graphql.GraphQLNonNull(new graphql.GraphQLList(new graphql.GraphQLNonNull(_Entity))) }
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
const createSchemaConfig = (resolver) => {
|
|
147
|
+
return {
|
|
148
|
+
query: new graphql.GraphQLObjectType({
|
|
149
|
+
name: "Query",
|
|
150
|
+
fields: {
|
|
151
|
+
schema: {
|
|
152
|
+
type: _Schema,
|
|
153
|
+
resolve: resolver
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}),
|
|
157
|
+
types: [_Column, _Relation]
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
const introspection_schema = new graphql.GraphQLSchema(createSchemaConfig());
|
|
161
|
+
exports.createSchemaConfig = createSchemaConfig;
|
|
162
|
+
exports.default = introspection_schema;
|
|
163
|
+
//# sourceMappingURL=introspection.schema.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.schema.cjs","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":["GraphQLObjectType","GraphQLString","GraphQLNonNull","GraphQLInt","GraphQLList","JSONType","GraphQLUnionType","GraphQLInterfaceType","GraphQLBoolean","GraphQLEnumType","GraphQLSchema"],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { JSONType } from "@contember/graphql-utils";
|
|
2
|
+
import { GraphQLObjectType, GraphQLString, GraphQLNonNull, GraphQLInt, GraphQLList, GraphQLUnionType, GraphQLInterfaceType, GraphQLBoolean, GraphQLEnumType, GraphQLSchema } from "graphql";
|
|
3
|
+
const _RuleMessage = new GraphQLObjectType({
|
|
4
|
+
name: "_RuleMessage",
|
|
5
|
+
fields: {
|
|
6
|
+
text: { type: GraphQLString }
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
const _ValidatorArgument = new GraphQLObjectType({
|
|
10
|
+
name: "_ValidatorArgument",
|
|
11
|
+
fields: {
|
|
12
|
+
validator: { type: new GraphQLNonNull(GraphQLInt) }
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const _PathArgument = new GraphQLObjectType({
|
|
16
|
+
name: "_PathArgument",
|
|
17
|
+
fields: {
|
|
18
|
+
path: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const _LiteralArgument = new GraphQLObjectType({
|
|
22
|
+
name: "_LiteralArgument",
|
|
23
|
+
fields: {
|
|
24
|
+
value: { type: JSONType }
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const _Argument = new GraphQLUnionType({
|
|
28
|
+
name: "_Argument",
|
|
29
|
+
types: [_ValidatorArgument, _PathArgument, _LiteralArgument]
|
|
30
|
+
});
|
|
31
|
+
const _Validator = new GraphQLObjectType({
|
|
32
|
+
name: "_Validator",
|
|
33
|
+
fields: {
|
|
34
|
+
operation: { type: new GraphQLNonNull(GraphQLString) },
|
|
35
|
+
arguments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) }
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
const _Rule = new GraphQLObjectType({
|
|
39
|
+
name: "_Rule",
|
|
40
|
+
fields: {
|
|
41
|
+
message: { type: _RuleMessage },
|
|
42
|
+
validator: { type: new GraphQLNonNull(GraphQLInt) }
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const _FieldInterface = new GraphQLInterfaceType({
|
|
46
|
+
name: "_Field",
|
|
47
|
+
fields: {
|
|
48
|
+
name: { type: new GraphQLNonNull(GraphQLString) },
|
|
49
|
+
type: { type: new GraphQLNonNull(GraphQLString) },
|
|
50
|
+
nullable: { type: GraphQLBoolean },
|
|
51
|
+
rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
|
|
52
|
+
validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
const _OrderByDirection = new GraphQLEnumType({
|
|
56
|
+
name: "_OrderByDirection",
|
|
57
|
+
values: {
|
|
58
|
+
asc: {},
|
|
59
|
+
desc: {}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const _OrderBy = new GraphQLObjectType({
|
|
63
|
+
name: "_OrderBy",
|
|
64
|
+
fields: {
|
|
65
|
+
path: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },
|
|
66
|
+
direction: { type: new GraphQLNonNull(_OrderByDirection) }
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
const _OnDeleteBehaviour = new GraphQLEnumType({
|
|
70
|
+
name: "_OnDeleteBehaviour",
|
|
71
|
+
values: {
|
|
72
|
+
restrict: {},
|
|
73
|
+
cascade: {},
|
|
74
|
+
setNull: {}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const _RelationSide = new GraphQLEnumType({
|
|
78
|
+
name: "_RelationSide",
|
|
79
|
+
values: {
|
|
80
|
+
owning: {},
|
|
81
|
+
inverse: {}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const _Relation = new GraphQLObjectType({
|
|
85
|
+
name: "_Relation",
|
|
86
|
+
interfaces: [_FieldInterface],
|
|
87
|
+
fields: {
|
|
88
|
+
name: { type: new GraphQLNonNull(GraphQLString) },
|
|
89
|
+
type: { type: new GraphQLNonNull(GraphQLString) },
|
|
90
|
+
side: { type: new GraphQLNonNull(_RelationSide) },
|
|
91
|
+
targetEntity: { type: new GraphQLNonNull(GraphQLString) },
|
|
92
|
+
ownedBy: { type: GraphQLString },
|
|
93
|
+
inversedBy: { type: GraphQLString },
|
|
94
|
+
nullable: { type: GraphQLBoolean },
|
|
95
|
+
onDelete: { type: _OnDeleteBehaviour },
|
|
96
|
+
orphanRemoval: { type: GraphQLBoolean },
|
|
97
|
+
orderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },
|
|
98
|
+
rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
|
|
99
|
+
validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
const _Column = new GraphQLObjectType({
|
|
103
|
+
name: "_Column",
|
|
104
|
+
interfaces: [_FieldInterface],
|
|
105
|
+
fields: {
|
|
106
|
+
name: { type: new GraphQLNonNull(GraphQLString) },
|
|
107
|
+
type: { type: new GraphQLNonNull(GraphQLString) },
|
|
108
|
+
enumName: { type: GraphQLString },
|
|
109
|
+
defaultValue: { type: JSONType },
|
|
110
|
+
nullable: { type: new GraphQLNonNull(GraphQLBoolean) },
|
|
111
|
+
rules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },
|
|
112
|
+
validators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) }
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const _UniqueConstraint = new GraphQLObjectType({
|
|
116
|
+
name: "_UniqueConstraint",
|
|
117
|
+
fields: {
|
|
118
|
+
fields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
const _Entity = new GraphQLObjectType({
|
|
122
|
+
name: "_Entity",
|
|
123
|
+
fields: {
|
|
124
|
+
name: { type: new GraphQLNonNull(GraphQLString) },
|
|
125
|
+
customPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },
|
|
126
|
+
fields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },
|
|
127
|
+
unique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) }
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
const _Enum = new GraphQLObjectType({
|
|
131
|
+
name: "_Enum",
|
|
132
|
+
fields: {
|
|
133
|
+
name: { type: new GraphQLNonNull(GraphQLString) },
|
|
134
|
+
values: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) }
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
const _Schema = new GraphQLObjectType({
|
|
138
|
+
name: "_Schema",
|
|
139
|
+
fields: {
|
|
140
|
+
enums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },
|
|
141
|
+
entities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) }
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
const createSchemaConfig = (resolver) => {
|
|
145
|
+
return {
|
|
146
|
+
query: new GraphQLObjectType({
|
|
147
|
+
name: "Query",
|
|
148
|
+
fields: {
|
|
149
|
+
schema: {
|
|
150
|
+
type: _Schema,
|
|
151
|
+
resolve: resolver
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}),
|
|
155
|
+
types: [_Column, _Relation]
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
const introspection_schema = new GraphQLSchema(createSchemaConfig());
|
|
159
|
+
export {
|
|
160
|
+
createSchemaConfig,
|
|
161
|
+
introspection_schema as default
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=introspection.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"introspection.schema.js","sources":["../../../../../packages/engine-content-api/src/introspection/introspection.schema.ts"],"sourcesContent":["import { JSONType } from '@contember/graphql-utils'\n\nimport {\n\tGraphQLBoolean,\n\tGraphQLEnumType,\n\tGraphQLFieldResolver,\n\tGraphQLInt,\n\tGraphQLInterfaceType,\n\tGraphQLList,\n\tGraphQLNonNull,\n\tGraphQLObjectType,\n\tGraphQLSchema,\n\tGraphQLSchemaConfig,\n\tGraphQLString,\n\tGraphQLUnionType,\n} from 'graphql'\n\nconst _RuleMessage = new GraphQLObjectType({\n\tname: '_RuleMessage',\n\tfields: {\n\t\ttext: { type: GraphQLString },\n\t},\n})\n\nconst _ValidatorArgument = new GraphQLObjectType({\n\tname: '_ValidatorArgument',\n\tfields: {\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _PathArgument = new GraphQLObjectType({\n\tname: '_PathArgument',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _LiteralArgument = new GraphQLObjectType({\n\tname: '_LiteralArgument',\n\tfields: {\n\t\tvalue: { type: JSONType },\n\t},\n})\n\nconst _Argument = new GraphQLUnionType({\n\tname: '_Argument',\n\ttypes: [_ValidatorArgument, _PathArgument, _LiteralArgument],\n})\n\nconst _Validator = new GraphQLObjectType({\n\tname: '_Validator',\n\tfields: {\n\t\toperation: { type: new GraphQLNonNull(GraphQLString) },\n\t\targuments: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Argument))) },\n\t},\n})\n\nconst _Rule = new GraphQLObjectType({\n\tname: '_Rule',\n\tfields: {\n\t\tmessage: { type: _RuleMessage },\n\t\tvalidator: { type: new GraphQLNonNull(GraphQLInt) },\n\t},\n})\n\nconst _FieldInterface = new GraphQLInterfaceType({\n\tname: '_Field',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tnullable: { type: GraphQLBoolean },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _OrderByDirection = new GraphQLEnumType({\n\tname: '_OrderByDirection',\n\tvalues: {\n\t\tasc: {},\n\t\tdesc: {},\n\t},\n})\n\nconst _OrderBy = new GraphQLObjectType({\n\tname: '_OrderBy',\n\tfields: {\n\t\tpath: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t\tdirection: { type: new GraphQLNonNull(_OrderByDirection) },\n\t},\n})\n\nconst _OnDeleteBehaviour = new GraphQLEnumType({\n\tname: '_OnDeleteBehaviour',\n\tvalues: {\n\t\trestrict: {},\n\t\tcascade: {},\n\t\tsetNull: {},\n\t},\n})\n\nconst _RelationSide = new GraphQLEnumType({\n\tname: '_RelationSide',\n\tvalues: {\n\t\towning: {},\n\t\tinverse: {},\n\t},\n})\n\nconst _Relation = new GraphQLObjectType({\n\tname: '_Relation',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tside: { type: new GraphQLNonNull(_RelationSide) },\n\t\ttargetEntity: { type: new GraphQLNonNull(GraphQLString) },\n\t\townedBy: { type: GraphQLString },\n\t\tinversedBy: { type: GraphQLString },\n\t\tnullable: { type: GraphQLBoolean },\n\t\tonDelete: { type: _OnDeleteBehaviour },\n\t\torphanRemoval: { type: GraphQLBoolean },\n\t\torderBy: { type: new GraphQLList(new GraphQLNonNull(_OrderBy)) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _Column = new GraphQLObjectType({\n\tname: '_Column',\n\tinterfaces: [_FieldInterface],\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\ttype: { type: new GraphQLNonNull(GraphQLString) },\n\t\tenumName: { type: GraphQLString },\n\t\tdefaultValue: { type: JSONType },\n\t\tnullable: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\trules: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Rule))) },\n\t\tvalidators: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Validator))) },\n\t},\n})\n\nconst _UniqueConstraint = new GraphQLObjectType({\n\tname: '_UniqueConstraint',\n\tfields: {\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Entity = new GraphQLObjectType({\n\tname: '_Entity',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tcustomPrimaryAllowed: { type: new GraphQLNonNull(GraphQLBoolean) },\n\t\tfields: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_FieldInterface))) },\n\t\tunique: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_UniqueConstraint))) },\n\t},\n})\n\nconst _Enum = new GraphQLObjectType({\n\tname: '_Enum',\n\tfields: {\n\t\tname: { type: new GraphQLNonNull(GraphQLString) },\n\t\tvalues: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))) },\n\t},\n})\n\nconst _Schema = new GraphQLObjectType({\n\tname: '_Schema',\n\tfields: {\n\t\tenums: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Enum))) },\n\t\tentities: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(_Entity))) },\n\t},\n})\n\n\nexport const createSchemaConfig = (resolver?: GraphQLFieldResolver<any, any>): GraphQLSchemaConfig => {\n\treturn {\n\t\tquery: new GraphQLObjectType({\n\t\t\tname: 'Query',\n\t\t\tfields: {\n\t\t\t\tschema: {\n\t\t\t\t\ttype: _Schema,\n\t\t\t\t\tresolve: resolver,\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\ttypes: [_Column, _Relation],\n\t}\n}\n\n\nexport default new GraphQLSchema(createSchemaConfig())\n"],"names":[],"mappings":"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"}
|
|
@@ -84,11 +84,13 @@ class UpdateEntityRelationInputFieldVisitor {
|
|
|
84
84
|
})
|
|
85
85
|
})
|
|
86
86
|
} : void 0;
|
|
87
|
+
const connectOrCreateInput = createInput && whereInputType ? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) } : void 0;
|
|
87
88
|
const fields = {
|
|
88
89
|
[schema.Input.UpdateRelationOperation.create]: createInput,
|
|
89
90
|
[schema.Input.UpdateRelationOperation.update]: updateSpecifiedInput,
|
|
90
91
|
[schema.Input.UpdateRelationOperation.upsert]: upsertInput,
|
|
91
92
|
[schema.Input.UpdateRelationOperation.connect]: whereInput,
|
|
93
|
+
[schema.Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,
|
|
92
94
|
[schema.Input.UpdateRelationOperation.disconnect]: whereInput,
|
|
93
95
|
[schema.Input.UpdateRelationOperation.delete]: whereInput
|
|
94
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateEntityRelationInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":["schema","GraphQLInputObjectType","GqlTypeName","GraphQLNonNull","GraphQLBoolean","Input","GraphQLString","acceptFieldVisitor","filterObject","Acl","ImplementationException"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpdateEntityRelationInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":["schema","GraphQLInputObjectType","GqlTypeName","GraphQLNonNull","GraphQLBoolean","Input","GraphQLString","acceptFieldVisitor","filterObject","Acl","ImplementationException"],"mappings":"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"}
|
|
@@ -82,11 +82,13 @@ class UpdateEntityRelationInputFieldVisitor {
|
|
|
82
82
|
})
|
|
83
83
|
})
|
|
84
84
|
} : void 0;
|
|
85
|
+
const connectOrCreateInput = createInput && whereInputType ? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) } : void 0;
|
|
85
86
|
const fields = {
|
|
86
87
|
[Input.UpdateRelationOperation.create]: createInput,
|
|
87
88
|
[Input.UpdateRelationOperation.update]: updateSpecifiedInput,
|
|
88
89
|
[Input.UpdateRelationOperation.upsert]: upsertInput,
|
|
89
90
|
[Input.UpdateRelationOperation.connect]: whereInput,
|
|
91
|
+
[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,
|
|
90
92
|
[Input.UpdateRelationOperation.disconnect]: whereInput,
|
|
91
93
|
[Input.UpdateRelationOperation.delete]: whereInput
|
|
92
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateEntityRelationInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpdateEntityRelationInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityRelationInputFieldVisitor.ts"],"sourcesContent":["import {\n\tGraphQLBoolean,\n\tGraphQLInputFieldConfig,\n\tGraphQLInputFieldConfigMap,\n\tGraphQLInputObjectType, GraphQLNonNull,\n\tGraphQLString,\n} from 'graphql'\nimport { Acl, Input, Model } from '@contember/schema'\nimport { GqlTypeName } from '../utils'\nimport { WhereTypeProvider } from '../WhereTypeProvider'\nimport { Accessor, filterObject } from '../../utils'\nimport { EntityInputProvider, EntityInputType } from './EntityInputProvider'\nimport { acceptFieldVisitor } from '@contember/schema-utils'\nimport { UpdateEntityRelationAllowedOperationsVisitor } from './UpdateEntityRelationAllowedOperationsVisitor'\nimport { Authorizator } from '../../acl'\nimport { ImplementationException } from '../../exception'\nimport { ConnectOrCreateRelationInputProvider } from './ConnectOrCreateRelationInputProvider'\n\nexport class UpdateEntityRelationInputFieldVisitor implements Model.ColumnVisitor<never>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputObjectType | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly whereTypeBuilder: WhereTypeProvider,\n\t\tprivate readonly updateEntityInputProviderAccessor: Accessor<EntityInputProvider<EntityInputType.update>>,\n\t\tprivate readonly createEntityInputProvider: EntityInputProvider<EntityInputType.create>,\n\t\tprivate readonly updateEntityRelationAllowedOperationsVisitor: UpdateEntityRelationAllowedOperationsVisitor,\n\t\tprivate readonly connectOrCreateRelationInputProvider: ConnectOrCreateRelationInputProvider,\n\t) {\n\t}\n\n\tpublic visitColumn(): never {\n\t\tthrow new Error('UpdateEntityRelationInputFieldVisitor: Not applicable for a column')\n\t}\n\n\tpublic visitHasOne({ targetRelation, targetEntity, relation, entity }: Model.AnyHasOneRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\t\tconst updateInput = updateInputType ? { type: updateInputType } : undefined\n\n\t\tconst upsertInput = updateInputType && createInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst booleanInput = {\n\t\t\ttype: GraphQLBoolean,\n\t\t}\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: booleanInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: booleanInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => filteredFields,\n\t\t})\n\t}\n\n\tpublic visitHasMany({ entity, relation, targetEntity, targetRelation }: Model.AnyHasManyRelationContext) {\n\t\tconst withoutRelation = targetRelation ? targetRelation.name : undefined\n\n\t\tconst whereInputType = this.createUniqueWhereInput(targetEntity)\n\t\tconst whereInput = whereInputType ? { type: whereInputType } : undefined\n\n\t\tconst createInputType = this.createEntityInputProvider.getInput(targetEntity.name, withoutRelation)\n\t\tconst createInput = createInputType ? { type: createInputType } : undefined\n\n\t\tconst updateInputType = this.updateEntityInputProviderAccessor.get().getInput(targetEntity.name, withoutRelation)\n\n\t\tconst updateSpecifiedInput = updateInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tdata: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst upsertInput = updateInputType && createInputType && whereInputType\n\t\t\t? {\n\t\t\t\ttype: new GraphQLInputObjectType({\n\t\t\t\t\tname: GqlTypeName`${entity.name}Upsert${relation.name}RelationInput`,\n\t\t\t\t\tfields: () => ({\n\t\t\t\t\t\tby: { type: new GraphQLNonNull(whereInputType) },\n\t\t\t\t\t\tupdate: { type: new GraphQLNonNull(updateInputType) },\n\t\t\t\t\t\tcreate: { type: new GraphQLNonNull(createInputType) },\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t}\n\t\t\t: undefined\n\n\t\tconst connectOrCreateInput = createInput && whereInputType\n\t\t\t? { type: this.connectOrCreateRelationInputProvider.getInput(entity.name, relation.name) }\n\t\t\t: undefined\n\n\t\tconst fields = {\n\t\t\t[Input.UpdateRelationOperation.create]: createInput,\n\t\t\t[Input.UpdateRelationOperation.update]: updateSpecifiedInput,\n\t\t\t[Input.UpdateRelationOperation.upsert]: upsertInput,\n\t\t\t[Input.UpdateRelationOperation.connect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.connectOrCreate]: connectOrCreateInput,\n\t\t\t[Input.UpdateRelationOperation.disconnect]: whereInput,\n\t\t\t[Input.UpdateRelationOperation.delete]: whereInput,\n\t\t}\n\n\t\tconst filteredFields = this.filterAllowedOperations(entity, relation, fields)\n\t\tif (Object.keys(filteredFields).length === 0) {\n\t\t\treturn undefined\n\t\t}\n\n\t\treturn new GraphQLInputObjectType({\n\t\t\tname: GqlTypeName`${entity.name}Update${relation.name}EntityRelationInput`,\n\t\t\tfields: () => ({\n\t\t\t\t...filteredFields,\n\t\t\t\talias: { type: GraphQLString },\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate filterAllowedOperations(\n\t\tentity: Model.Entity,\n\t\trelation: Model.Relation,\n\t\tgraphQlFields: { [key: string]: GraphQLInputFieldConfig | undefined },\n\t): GraphQLInputFieldConfigMap {\n\t\tconst allowedOperations = acceptFieldVisitor(\n\t\t\tthis.schema,\n\t\t\tentity,\n\t\t\trelation.name,\n\t\t\tthis.updateEntityRelationAllowedOperationsVisitor,\n\t\t)\n\t\treturn filterObject(\n\t\t\tgraphQlFields,\n\t\t\t(key, value): value is GraphQLInputFieldConfig =>\n\t\t\t\tallowedOperations.includes(key as Input.UpdateRelationOperation) && value !== undefined,\n\t\t)\n\t}\n\n\tprivate createUniqueWhereInput(targetEntity: Model.Entity): GraphQLInputObjectType | undefined {\n\t\tif (this.authorizator.getEntityPermission(Acl.Operation.read, targetEntity.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst uniqueWhere = this.whereTypeBuilder.getEntityUniqueWhereType(targetEntity.name)\n\t\tif (!uniqueWhere) {\n\t\t\tthrow new ImplementationException()\n\t\t}\n\t\treturn uniqueWhere\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const ReadResolver = require("./src/resolvers/ReadResolver.cjs");
|
|
|
12
12
|
const ValidationResolver = require("./src/resolvers/ValidationResolver.cjs");
|
|
13
13
|
const contentSchema_types = require("./src/introspection/content-schema.types.cjs");
|
|
14
14
|
const IntrospectionSchemaDefinitionFactory = require("./src/introspection/IntrospectionSchemaDefinitionFactory.cjs");
|
|
15
|
+
const introspection_schema = require("./src/introspection/introspection.schema.cjs");
|
|
15
16
|
const IntrospectionSchemaFactory = require("./src/introspection/IntrospectionSchemaFactory.cjs");
|
|
16
17
|
const FieldArgsVisitor = require("./src/schema/entities/FieldArgsVisitor.cjs");
|
|
17
18
|
const FieldTypeVisitor = require("./src/schema/entities/FieldTypeVisitor.cjs");
|
|
@@ -74,8 +75,8 @@ exports.MutationResolver = MutationResolver.MutationResolver;
|
|
|
74
75
|
exports.ReadResolver = ReadResolver.ReadResolver;
|
|
75
76
|
exports.ValidationResolver = ValidationResolver.ValidationResolver;
|
|
76
77
|
exports.ContentSchemaTypes = contentSchema_types;
|
|
77
|
-
exports.ContentSchema = IntrospectionSchemaDefinitionFactory.default;
|
|
78
78
|
exports.IntrospectionSchemaDefinitionFactory = IntrospectionSchemaDefinitionFactory.IntrospectionSchemaDefinitionFactory;
|
|
79
|
+
exports.ContentSchema = introspection_schema.default;
|
|
79
80
|
exports.IntrospectionSchemaFactory = IntrospectionSchemaFactory.IntrospectionSchemaFactory;
|
|
80
81
|
exports.FieldArgsVisitor = FieldArgsVisitor.FieldArgsVisitor;
|
|
81
82
|
exports.FieldTypeVisitor = FieldTypeVisitor.FieldTypeVisitor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/production/index.js
CHANGED
|
@@ -9,7 +9,8 @@ import { MutationResolver } from "./src/resolvers/MutationResolver.js";
|
|
|
9
9
|
import { ReadResolver } from "./src/resolvers/ReadResolver.js";
|
|
10
10
|
import { ValidationResolver } from "./src/resolvers/ValidationResolver.js";
|
|
11
11
|
import * as contentSchema_types from "./src/introspection/content-schema.types.js";
|
|
12
|
-
import {
|
|
12
|
+
import { IntrospectionSchemaDefinitionFactory } from "./src/introspection/IntrospectionSchemaDefinitionFactory.js";
|
|
13
|
+
import { default as default2 } from "./src/introspection/introspection.schema.js";
|
|
13
14
|
import { IntrospectionSchemaFactory } from "./src/introspection/IntrospectionSchemaFactory.js";
|
|
14
15
|
import { FieldArgsVisitor } from "./src/schema/entities/FieldArgsVisitor.js";
|
|
15
16
|
import { FieldTypeVisitor } from "./src/schema/entities/FieldTypeVisitor.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -106,6 +106,9 @@ class UpdateInputVisitor {
|
|
|
106
106
|
if (isIt.isIt(element, "create")) {
|
|
107
107
|
result = processor.create({ ...context, input: element.create, index: i, alias });
|
|
108
108
|
}
|
|
109
|
+
if (isIt.isIt(element, "connectOrCreate")) {
|
|
110
|
+
result = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias });
|
|
111
|
+
}
|
|
109
112
|
if (isIt.isIt(element, "delete")) {
|
|
110
113
|
result = processor.delete({ ...context, input: element.delete, index: i, alias });
|
|
111
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateInputVisitor.cjs","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result | Result[] | undefined>>,\n\tModel.RelationByTypeVisitor<Promise<Result | Result[] | undefined>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): Promise<Result> {\n\t\treturn this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise<undefined | Result> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve(undefined)\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn processor.connect({ ...context, input: input.connect })\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn processor.create({ ...context, input: input.create })\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn processor.connectOrCreate({ ...context, input: input.connectOrCreate })\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn processor.delete({ ...context, input: undefined })\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn processor.disconnect({ ...context, input: undefined })\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn processor.update({ ...context, input: input.update })\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn processor.upsert({ ...context, input: input.upsert })\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<undefined | Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve(undefined)\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["schema","filterObject","isIt","ImplementationException","Input","UserError"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpdateInputVisitor.cjs","sources":["../../../../../packages/engine-content-api/src/inputProcessing/UpdateInputVisitor.ts"],"sourcesContent":["import { Input, Model } from '@contember/schema'\nimport { filterObject, isIt } from '../utils'\nimport { UpdateInputProcessor } from './UpdateInputProcessor'\nimport { ImplementationException, UserError } from '../exception'\n\nexport class UpdateInputVisitor<Result> implements\n\tModel.ColumnVisitor<Promise<Result | Result[] | undefined>>,\n\tModel.RelationByTypeVisitor<Promise<Result | Result[] | undefined>> {\n\n\tconstructor(\n\t\tprivate readonly updateInputProcessor: UpdateInputProcessor<Result>,\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly data: Input.UpdateDataInput,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): Promise<Result> {\n\t\treturn this.updateInputProcessor.column({\n\t\t\tentity,\n\t\t\tcolumn,\n\t\t\tinput: this.data[column.name] as Input.ColumnValue,\n\t\t})\n\t}\n\n\tpublic visitManyHasManyInverse(context: Model.ManyHasManyInverseContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasManyOwning(context: Model.ManyHasManyOwningContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasManyOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitManyHasOne(context: Model.ManyHasOneContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.manyHasOne,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasMany(context: Model.OneHasManyContext) {\n\t\treturn this.processManyRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasMany,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateManyRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneInverse(context: Model.OneHasOneInverseContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneInverse,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tpublic visitOneHasOneOwning(context: Model.OneHasOneOwningContext) {\n\t\treturn this.processRelationInput(\n\t\t\tthis.updateInputProcessor.oneHasOneOwning,\n\t\t\tcontext,\n\t\t\tthis.data[context.relation.name] as Input.CreateOneRelationInput,\n\t\t)\n\t}\n\n\tprivate processRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasOneRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateOneRelationInput | undefined,\n\t): Promise<undefined | Result> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve(undefined)\n\t\t}\n\t\tinput = filterObject(input, (k, v) => v !== null && v !== undefined)\n\t\tthis.verifyOperations(input)\n\t\tif (isIt<Input.ConnectRelationInput>(input, 'connect')) {\n\t\t\treturn processor.connect({ ...context, input: input.connect })\n\t\t}\n\t\tif (isIt<Input.CreateRelationInput>(input, 'create')) {\n\t\t\treturn processor.create({ ...context, input: input.create })\n\t\t}\n\t\tif (isIt<Input.ConnectOrCreateRelationInput>(input, 'connectOrCreate')) {\n\t\t\treturn processor.connectOrCreate({ ...context, input: input.connectOrCreate })\n\t\t}\n\t\tif (isIt<Input.DeleteRelationInput>(input, 'delete')) {\n\t\t\treturn processor.delete({ ...context, input: undefined })\n\t\t}\n\t\tif (isIt<Input.DisconnectRelationInput>(input, 'disconnect')) {\n\t\t\treturn processor.disconnect({ ...context, input: undefined })\n\t\t}\n\t\tif (isIt<Input.UpdateRelationInput>(input, 'update')) {\n\t\t\treturn processor.update({ ...context, input: input.update })\n\t\t}\n\t\tif (isIt<Input.UpsertRelationInput>(input, 'upsert')) {\n\t\t\treturn processor.upsert({ ...context, input: input.upsert })\n\t\t}\n\t\tthrow new ImplementationException()\n\t}\n\n\tprivate async processManyRelationInput<Context>(\n\t\tprocessor: UpdateInputProcessor.HasManyRelationInputProcessor<Context, Result>,\n\t\tcontext: Context,\n\t\tinput: Input.UpdateManyRelationInput | undefined,\n\t): Promise<undefined | Result[]> {\n\t\tif (input === undefined || input === null) {\n\t\t\treturn Promise.resolve(undefined)\n\t\t}\n\t\tconst results: Array<Result> = []\n\t\tlet i = 0\n\t\tfor (let element of input) {\n\t\t\tconst alias = element.alias\n\t\t\telement = filterObject(element, (k, v) => v !== null && v !== undefined)\n\t\t\tthis.verifyOperations(element)\n\t\t\tlet result\n\t\t\tif (isIt<Input.ConnectRelationInput>(element, 'connect')) {\n\t\t\t\tresult = processor.connect({ ...context, input: element.connect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.CreateRelationInput>(element, 'create')) {\n\t\t\t\tresult = processor.create({ ...context, input: element.create, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.ConnectOrCreateRelationInput>(element, 'connectOrCreate')) {\n\t\t\t\tresult = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DeleteSpecifiedRelationInput>(element, 'delete')) {\n\t\t\t\tresult = processor.delete({ ...context, input: element.delete, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.DisconnectSpecifiedRelationInput>(element, 'disconnect')) {\n\t\t\t\tresult = processor.disconnect({ ...context, input: element.disconnect, index: i, alias })\n\t\t\t}\n\t\t\tif (isIt<Input.UpdateSpecifiedRelationInput>(element, 'update')) {\n\t\t\t\tresult = processor.update({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.update.by, data: element.update.data },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\t\t\tif (isIt<Input.UpsertSpecifiedRelationInput>(element, 'upsert')) {\n\t\t\t\tresult = processor.upsert({\n\t\t\t\t\t...context,\n\t\t\t\t\tinput: { where: element.upsert.by, update: element.upsert.update, create: element.upsert.create },\n\t\t\t\t\tindex: i,\n\t\t\t\t\talias,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (result !== undefined) {\n\t\t\t\tresults.push(await result)\n\t\t\t}\n\t\t}\n\t\treturn results\n\t}\n\n\tprivate verifyOperations(input: object) {\n\t\tconst keys = Object.keys(input).filter(it => it !== 'alias')\n\t\tconst ops = Object.values(Input.UpdateRelationOperation) as string[]\n\t\tif (keys.length !== 1 || !ops.includes(keys[0])) {\n\t\t\tconst found = keys.length === 0 ? 'none' : keys.join(', ')\n\t\t\tthrow new UserError(\n\t\t\t\t`Expected exactly one of: ${ops.join(', ')}. ${found} found.`,\n\t\t\t)\n\t\t}\n\t}\n}\n"],"names":["schema","filterObject","isIt","ImplementationException","Input","UserError"],"mappings":"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"}
|
|
@@ -104,6 +104,9 @@ class UpdateInputVisitor {
|
|
|
104
104
|
if (isIt(element, "create")) {
|
|
105
105
|
result = processor.create({ ...context, input: element.create, index: i, alias });
|
|
106
106
|
}
|
|
107
|
+
if (isIt(element, "connectOrCreate")) {
|
|
108
|
+
result = processor.connectOrCreate({ ...context, input: element.connectOrCreate, index: i, alias });
|
|
109
|
+
}
|
|
107
110
|
if (isIt(element, "delete")) {
|
|
108
111
|
result = processor.delete({ ...context, input: element.delete, index: i, alias });
|
|
109
112
|
}
|