@contember/engine-content-api 2.0.0 → 2.1.0-alpha.1
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/src/ExecutionContainer.cjs +1 -1
- package/dist/development/src/ExecutionContainer.cjs.map +1 -1
- package/dist/development/src/ExecutionContainer.js +1 -1
- package/dist/development/src/ExecutionContainer.js.map +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.cjs +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.cjs.map +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.js +1 -1
- package/dist/development/src/input-validation/ColumnValueResolver.js.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.cjs +3 -2
- package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.js +3 -2
- package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +3 -2
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +3 -2
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/select/ConditionBuilder.cjs +9 -2
- package/dist/development/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/ConditionBuilder.js +10 -3
- package/dist/development/src/mapper/select/ConditionBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.cjs +3 -3
- package/dist/development/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/select/WhereBuilder.js +3 -3
- package/dist/development/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -0
- package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
- package/dist/development/src/schema/ColumnTypeResolver.cjs +9 -0
- package/dist/development/src/schema/ColumnTypeResolver.cjs.map +1 -1
- package/dist/development/src/schema/ColumnTypeResolver.js +10 -1
- package/dist/development/src/schema/ColumnTypeResolver.js.map +1 -1
- package/dist/development/src/schema/ConditionTypeProvider.cjs +35 -23
- package/dist/development/src/schema/ConditionTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/ConditionTypeProvider.js +36 -24
- package/dist/development/src/schema/ConditionTypeProvider.js.map +1 -1
- package/dist/development/src/schema/CustomTypesProvider.cjs +30 -0
- package/dist/development/src/schema/CustomTypesProvider.cjs.map +1 -1
- package/dist/development/src/schema/CustomTypesProvider.js +30 -0
- package/dist/development/src/schema/CustomTypesProvider.js.map +1 -1
- package/dist/development/src/schema/OrderByTypeProvider.cjs +6 -1
- package/dist/development/src/schema/OrderByTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/OrderByTypeProvider.js +6 -1
- package/dist/development/src/schema/OrderByTypeProvider.js.map +1 -1
- package/dist/development/src/schema/WhereTypeProvider.cjs +1 -1
- package/dist/development/src/schema/WhereTypeProvider.cjs.map +1 -1
- package/dist/development/src/schema/WhereTypeProvider.js +1 -1
- package/dist/development/src/schema/WhereTypeProvider.js.map +1 -1
- package/dist/development/src/schema/entities/FieldTypeVisitor.cjs +3 -3
- package/dist/development/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
- package/dist/development/src/schema/entities/FieldTypeVisitor.js +3 -3
- package/dist/development/src/schema/entities/FieldTypeVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js +1 -1
- package/dist/development/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js +1 -1
- package/dist/development/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
- package/dist/production/src/ExecutionContainer.cjs +1 -1
- package/dist/production/src/ExecutionContainer.cjs.map +1 -1
- package/dist/production/src/ExecutionContainer.js +1 -1
- package/dist/production/src/ExecutionContainer.js.map +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.cjs +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.cjs.map +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.js +1 -1
- package/dist/production/src/input-validation/ColumnValueResolver.js.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.cjs +3 -2
- package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.js +3 -2
- package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +3 -2
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +3 -2
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/select/ConditionBuilder.cjs +9 -2
- package/dist/production/src/mapper/select/ConditionBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/ConditionBuilder.js +10 -3
- package/dist/production/src/mapper/select/ConditionBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.cjs +3 -3
- package/dist/production/src/mapper/select/WhereBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/select/WhereBuilder.js +3 -3
- package/dist/production/src/mapper/select/WhereBuilder.js.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -0
- package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
- package/dist/production/src/schema/ColumnTypeResolver.cjs +9 -0
- package/dist/production/src/schema/ColumnTypeResolver.cjs.map +1 -1
- package/dist/production/src/schema/ColumnTypeResolver.js +10 -1
- package/dist/production/src/schema/ColumnTypeResolver.js.map +1 -1
- package/dist/production/src/schema/ConditionTypeProvider.cjs +35 -23
- package/dist/production/src/schema/ConditionTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/ConditionTypeProvider.js +36 -24
- package/dist/production/src/schema/ConditionTypeProvider.js.map +1 -1
- package/dist/production/src/schema/CustomTypesProvider.cjs +30 -0
- package/dist/production/src/schema/CustomTypesProvider.cjs.map +1 -1
- package/dist/production/src/schema/CustomTypesProvider.js +30 -0
- package/dist/production/src/schema/CustomTypesProvider.js.map +1 -1
- package/dist/production/src/schema/OrderByTypeProvider.cjs +6 -1
- package/dist/production/src/schema/OrderByTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/OrderByTypeProvider.js +6 -1
- package/dist/production/src/schema/OrderByTypeProvider.js.map +1 -1
- package/dist/production/src/schema/WhereTypeProvider.cjs +1 -1
- package/dist/production/src/schema/WhereTypeProvider.cjs.map +1 -1
- package/dist/production/src/schema/WhereTypeProvider.js +1 -1
- package/dist/production/src/schema/WhereTypeProvider.js.map +1 -1
- package/dist/production/src/schema/entities/FieldTypeVisitor.cjs +3 -3
- package/dist/production/src/schema/entities/FieldTypeVisitor.cjs.map +1 -1
- package/dist/production/src/schema/entities/FieldTypeVisitor.js +3 -3
- package/dist/production/src/schema/entities/FieldTypeVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js +1 -1
- package/dist/production/src/schema/mutations/CreateEntityInputFieldVisitor.js.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.cjs.map +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js +1 -1
- package/dist/production/src/schema/mutations/UpdateEntityInputFieldVisitor.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/mapper/insert/Inserter.d.ts +4 -1
- package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +4 -1
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/select/ConditionBuilder.d.ts +2 -2
- package/dist/types/mapper/select/ConditionBuilder.d.ts.map +1 -1
- package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
- package/dist/types/schema/ColumnTypeResolver.d.ts +5 -5
- package/dist/types/schema/ColumnTypeResolver.d.ts.map +1 -1
- package/dist/types/schema/ConditionTypeProvider.d.ts +1 -0
- package/dist/types/schema/ConditionTypeProvider.d.ts.map +1 -1
- package/dist/types/schema/CustomTypesProvider.d.ts +1 -0
- package/dist/types/schema/CustomTypesProvider.d.ts.map +1 -1
- package/dist/types/schema/OrderByTypeProvider.d.ts.map +1 -1
- package/dist/types/schema/mutations/UpdateEntityInputFieldVisitor.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/ExecutionContainer.ts +1 -1
- package/src/input-validation/ColumnValueResolver.ts +1 -1
- package/src/mapper/insert/Inserter.ts +2 -1
- package/src/mapper/insert/SqlCreateInputProcessor.ts +2 -1
- package/src/mapper/select/ConditionBuilder.ts +19 -5
- package/src/mapper/select/WhereBuilder.ts +3 -3
- package/src/mapper/select/handlers/FieldsVisitor.ts +3 -0
- package/src/schema/ColumnTypeResolver.ts +15 -3
- package/src/schema/ConditionTypeProvider.ts +40 -25
- package/src/schema/CustomTypesProvider.ts +37 -0
- package/src/schema/OrderByTypeProvider.ts +6 -1
- package/src/schema/WhereTypeProvider.ts +1 -1
- package/src/schema/entities/FieldTypeVisitor.ts +3 -3
- package/src/schema/mutations/CreateEntityInputFieldVisitor.ts +1 -1
- package/src/schema/mutations/UpdateEntityInputFieldVisitor.ts +1 -1
- package/tests/cases/integration/graphQlSchema/graphQlSchemaBuilder.test.ts +37 -1
- package/tests/cases/integration/graphQlSchema/schema-aliased-type.gql +6 -0
- package/tests/cases/integration/graphQlSchema/schema-array.gql +257 -0
- package/tests/cases/integration/graphQlSchema/schema-column-types.gql +420 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateEntityInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/CreateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { CreateEntityRelationInputProvider } from './CreateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class CreateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly createEntityRelationInputProvider: CreateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): GraphQLInputFieldConfig | undefined {\n\t\tif (entity.primary === column.name && !this.authorizator.isCustomPrimaryAllowed(entity.name)) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.create, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst type = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":["schema","Acl","GraphQLList","GraphQLNonNull"],"mappings":";;;;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkBA,SACA,cACA,oBACA,mCAChB;AAJgB,SAAA,SAAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAAoE;AAC5F,QAAA,OAAO,YAAY,OAAO,QAAQ,CAAC,KAAK,aAAa,uBAAuB,OAAO,IAAI,GAAG;AACtF,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoBC,OAAI,IAAA,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,
|
|
1
|
+
{"version":3,"file":"CreateEntityInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/CreateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { CreateEntityRelationInputProvider } from './CreateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class CreateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly createEntityRelationInputProvider: CreateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): GraphQLInputFieldConfig | undefined {\n\t\tif (entity.primary === column.name && !this.authorizator.isCustomPrimaryAllowed(entity.name)) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.create, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst [type] = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":["schema","Acl","GraphQLList","GraphQLNonNull"],"mappings":";;;;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkBA,SACA,cACA,oBACA,mCAChB;AAJgB,SAAA,SAAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAAoE;AAC5F,QAAA,OAAO,YAAY,OAAO,QAAQ,CAAC,KAAK,aAAa,uBAAuB,OAAO,IAAI,GAAG;AACtF,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoBC,OAAI,IAAA,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,CAAC,IAAI,IAAI,KAAK,mBAAmB,QAAQ,MAAM;AACrD,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,YAAY,EAAE,QAAQ,YAAiF;AAC7G,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAER,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,aAAa,EAAE,QAAQ,YAAkF;AAC/G,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,MAAM,IAAIC,QAAAA,YAAY,IAAIC,QAAAA,eAAe,IAAI,CAAC;AAAA,IAC/C;AAAA,EAAA;AAEF;;"}
|
|
@@ -14,7 +14,7 @@ class CreateEntityInputFieldVisitor {
|
|
|
14
14
|
if (this.authorizator.getFieldPermissions(Acl.Operation.create, entity.name, column.name) === "no") {
|
|
15
15
|
return void 0;
|
|
16
16
|
}
|
|
17
|
-
const type = this.columnTypeResolver.getType(column);
|
|
17
|
+
const [type] = this.columnTypeResolver.getType(column);
|
|
18
18
|
return { type };
|
|
19
19
|
}
|
|
20
20
|
visitHasOne({ entity, relation }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateEntityInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/CreateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { CreateEntityRelationInputProvider } from './CreateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class CreateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly createEntityRelationInputProvider: CreateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): GraphQLInputFieldConfig | undefined {\n\t\tif (entity.primary === column.name && !this.authorizator.isCustomPrimaryAllowed(entity.name)) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.create, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst type = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,QACA,cACA,oBACA,mCAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAAoE;AAC5F,QAAA,OAAO,YAAY,OAAO,QAAQ,CAAC,KAAK,aAAa,uBAAuB,OAAO,IAAI,GAAG;AACtF,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoB,IAAI,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,
|
|
1
|
+
{"version":3,"file":"CreateEntityInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/CreateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { CreateEntityRelationInputProvider } from './CreateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class CreateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly createEntityRelationInputProvider: CreateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext): GraphQLInputFieldConfig | undefined {\n\t\tif (entity.primary === column.name && !this.authorizator.isCustomPrimaryAllowed(entity.name)) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.create, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst [type] = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext): GraphQLInputFieldConfig | undefined {\n\t\tconst type = this.createEntityRelationInputProvider.getCreateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,QACA,cACA,oBACA,mCAChB;AAJgB,SAAA,SAAA;AACA,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAAoE;AAC5F,QAAA,OAAO,YAAY,OAAO,QAAQ,CAAC,KAAK,aAAa,uBAAuB,OAAO,IAAI,GAAG;AACtF,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoB,IAAI,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,CAAC,IAAI,IAAI,KAAK,mBAAmB,QAAQ,MAAM;AACrD,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,YAAY,EAAE,QAAQ,YAAiF;AAC7G,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAER,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,aAAa,EAAE,QAAQ,YAAkF;AAC/G,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,MAAM,IAAI,YAAY,IAAI,eAAe,IAAI,CAAC;AAAA,IAC/C;AAAA,EAAA;AAEF;"}
|
|
@@ -15,7 +15,7 @@ class UpdateEntityInputFieldVisitor {
|
|
|
15
15
|
if (this.authorizator.getFieldPermissions(schema.Acl.Operation.update, entity.name, column.name) === "no") {
|
|
16
16
|
return void 0;
|
|
17
17
|
}
|
|
18
|
-
const type = this.columnTypeResolver.getType(column);
|
|
18
|
+
const [type] = this.columnTypeResolver.getType(column);
|
|
19
19
|
return { type };
|
|
20
20
|
}
|
|
21
21
|
visitHasOne({ entity, relation }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateEntityInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { UpdateEntityRelationInputProvider } from './UpdateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class UpdateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly updateEntityRelationInputProvider: UpdateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext) {\n\t\tif (entity.primary === column.name) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.update, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst type = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":["Acl","GraphQLList","GraphQLNonNull"],"mappings":";;;;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,cACA,oBACA,mCAChB;AAHgB,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAA+B;AACvD,QAAA,OAAO,YAAY,OAAO,MAAM;AAC5B,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoBA,OAAI,IAAA,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,
|
|
1
|
+
{"version":3,"file":"UpdateEntityInputFieldVisitor.cjs","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { UpdateEntityRelationInputProvider } from './UpdateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class UpdateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly updateEntityRelationInputProvider: UpdateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext) {\n\t\tif (entity.primary === column.name) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.update, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst [type] = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":["Acl","GraphQLList","GraphQLNonNull"],"mappings":";;;;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,cACA,oBACA,mCAChB;AAHgB,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAA+B;AACvD,QAAA,OAAO,YAAY,OAAO,MAAM;AAC5B,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoBA,OAAI,IAAA,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,CAAC,IAAI,IAAI,KAAK,mBAAmB,QAAQ,MAAM;AACrD,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,YAAY,EAAE,QAAQ,YAA4C;AACxE,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAER,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,aAAa,EAAE,QAAQ,YAA6C;AAC1E,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,MAAM,IAAIC,QAAAA,YAAY,IAAIC,QAAAA,eAAe,IAAI,CAAC;AAAA,IAC/C;AAAA,EAAA;AAEF;;"}
|
|
@@ -13,7 +13,7 @@ class UpdateEntityInputFieldVisitor {
|
|
|
13
13
|
if (this.authorizator.getFieldPermissions(Acl.Operation.update, entity.name, column.name) === "no") {
|
|
14
14
|
return void 0;
|
|
15
15
|
}
|
|
16
|
-
const type = this.columnTypeResolver.getType(column);
|
|
16
|
+
const [type] = this.columnTypeResolver.getType(column);
|
|
17
17
|
return { type };
|
|
18
18
|
}
|
|
19
19
|
visitHasOne({ entity, relation }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateEntityInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { UpdateEntityRelationInputProvider } from './UpdateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class UpdateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly updateEntityRelationInputProvider: UpdateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext) {\n\t\tif (entity.primary === column.name) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.update, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst type = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,cACA,oBACA,mCAChB;AAHgB,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAA+B;AACvD,QAAA,OAAO,YAAY,OAAO,MAAM;AAC5B,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoB,IAAI,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,
|
|
1
|
+
{"version":3,"file":"UpdateEntityInputFieldVisitor.js","sources":["../../../../../../packages/engine-content-api/src/schema/mutations/UpdateEntityInputFieldVisitor.ts"],"sourcesContent":["import { GraphQLInputFieldConfig, GraphQLList, GraphQLNonNull } from 'graphql'\nimport { Acl, Model } from '@contember/schema'\nimport { ColumnTypeResolver } from '../ColumnTypeResolver'\nimport { UpdateEntityRelationInputProvider } from './UpdateEntityRelationInputProvider'\nimport { Authorizator } from '../../acl'\n\nexport class UpdateEntityInputFieldVisitor implements\n\tModel.ColumnVisitor<GraphQLInputFieldConfig | undefined>,\n\tModel.RelationByGenericTypeVisitor<GraphQLInputFieldConfig | undefined> {\n\n\tconstructor(\n\t\tprivate readonly authorizator: Authorizator,\n\t\tprivate readonly columnTypeResolver: ColumnTypeResolver,\n\t\tprivate readonly updateEntityRelationInputProvider: UpdateEntityRelationInputProvider,\n\t) {}\n\n\tpublic visitColumn({ entity, column }: Model.ColumnContext) {\n\t\tif (entity.primary === column.name) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (this.authorizator.getFieldPermissions(Acl.Operation.update, entity.name, column.name) === 'no') {\n\t\t\treturn undefined\n\t\t}\n\t\tconst [type] = this.columnTypeResolver.getType(column)\n\t\treturn { type }\n\t}\n\n\tpublic visitHasOne({ entity, relation }: Model.AnyHasOneRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn { type }\n\t}\n\n\tpublic visitHasMany({ entity, relation }: Model.AnyHasManyRelationContext) {\n\t\tconst type = this.updateEntityRelationInputProvider.getUpdateEntityRelationInput(entity.name, relation.name)\n\t\tif (type === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn {\n\t\t\ttype: new GraphQLList(new GraphQLNonNull(type)),\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";;AAMO,MAAM,8BAE4D;AAAA,EAExE,YACkB,cACA,oBACA,mCAChB;AAHgB,SAAA,eAAA;AACA,SAAA,qBAAA;AACA,SAAA,oCAAA;AAAA,EAAA;AAAA,EAGX,YAAY,EAAE,QAAQ,UAA+B;AACvD,QAAA,OAAO,YAAY,OAAO,MAAM;AAC5B,aAAA;AAAA,IAAA;AAEJ,QAAA,KAAK,aAAa,oBAAoB,IAAI,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,MAAM,MAAM;AAC5F,aAAA;AAAA,IAAA;AAER,UAAM,CAAC,IAAI,IAAI,KAAK,mBAAmB,QAAQ,MAAM;AACrD,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,YAAY,EAAE,QAAQ,YAA4C;AACxE,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAER,WAAO,EAAE,KAAK;AAAA,EAAA;AAAA,EAGR,aAAa,EAAE,QAAQ,YAA6C;AAC1E,UAAM,OAAO,KAAK,kCAAkC,6BAA6B,OAAO,MAAM,SAAS,IAAI;AAC3G,QAAI,SAAS,QAAW;AAChB,aAAA;AAAA,IAAA;AAED,WAAA;AAAA,MACN,MAAM,IAAI,YAAY,IAAI,eAAe,IAAI,CAAC;AAAA,IAC/C;AAAA,EAAA;AAEF;"}
|
|
@@ -84,7 +84,7 @@ class ExecutionContainerFactory {
|
|
|
84
84
|
predicateFactory
|
|
85
85
|
);
|
|
86
86
|
}
|
|
87
|
-
}()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory.InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory.UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionTableManager.JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionTableManager.JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager.JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor.DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater.Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter.Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers)).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
|
|
87
|
+
}()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory.InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory.UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionTableManager.JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionTableManager.JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager.JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor.DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater.Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter.Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers, { uuidVersion: schema2.settings.content?.uuidVersion })).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
|
|
88
88
|
return new MapperFactory.MapperFactory(
|
|
89
89
|
db,
|
|
90
90
|
identityId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContainer.cjs","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["Builder","schema","VariableInjector","PredicateFactory","PredicatesInjector","JoinBuilder","ConditionBuilder","PathFactory","WhereOptimizer","ConditionOptimizer","WhereBuilder","OrderByBuilder","RelationFetcher","FieldsVisitorFactory","MetaHandler","UniqueWhereExpander","HasManyToHasOneReducerExecutionHandler","PaginatedHasManyExecutionHandler","HasManyToHasOneReducer","PaginatedHasManyFieldProvider","SelectBuilder","InsertBuilderFactory","UpdateBuilderFactory","JunctionConnectHandler","JunctionDisconnectHandler","JunctionTableManager","DeleteExecutor","schemaDatabaseMetadata","Updater","Inserter","MapperFactory","GraphQlQueryAstFactory","ReadResolver","DependencyCollector","QueryAstFactory","ValidationDataSelector","ColumnValueResolver","EntityRulesResolver","InputPreValidator","MutationResolver","ValidationResolver"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionContainer.cjs","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers, { uuidVersion: schema.settings.content?.uuidVersion }))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["Builder","schema","VariableInjector","PredicateFactory","PredicatesInjector","JoinBuilder","ConditionBuilder","PathFactory","WhereOptimizer","ConditionOptimizer","WhereBuilder","OrderByBuilder","RelationFetcher","FieldsVisitorFactory","MetaHandler","UniqueWhereExpander","HasManyToHasOneReducerExecutionHandler","PaginatedHasManyExecutionHandler","HasManyToHasOneReducer","PaginatedHasManyFieldProvider","SelectBuilder","InsertBuilderFactory","UpdateBuilderFactory","JunctionConnectHandler","JunctionDisconnectHandler","JunctionTableManager","DeleteExecutor","schemaDatabaseMetadata","Updater","Inserter","MapperFactory","GraphQlQueryAstFactory","ReadResolver","DependencyCollector","QueryAstFactory","ValidationDataSelector","ColumnValueResolver","EntityRulesResolver","InputPreValidator","MutationResolver","ValidationResolver"],"mappings":"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"}
|
|
@@ -82,7 +82,7 @@ class ExecutionContainerFactory {
|
|
|
82
82
|
predicateFactory
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
|
-
}()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers)).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
|
|
85
|
+
}()).addService("insertBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new InsertBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("updateBuilderFactory", ({ whereBuilder, pathFactory, schema: schema2, predicateFactory }) => new UpdateBuilderFactory(schema2.model, whereBuilder, pathFactory, predicateFactory)).addService("connectJunctionHandler", () => new JunctionConnectHandler()).addService("disconnectJunctionHandler", ({}) => new JunctionDisconnectHandler()).addService("junctionTableManager", ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema: schema2 }) => new JunctionTableManager(schema2.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory)).addService("deleteExecutor", ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema: schema2 }) => new DeleteExecutor(schema2.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory)).addService("updater", ({ predicateFactory, updateBuilderFactory, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Updater(schema2.model, schemaDatabaseMetadata2, predicateFactory, updateBuilderFactory)).addService("inserter", ({ insertBuilderFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => new Inserter(schema2.model, schemaDatabaseMetadata2, insertBuilderFactory, providers, { uuidVersion: schema2.settings.content?.uuidVersion })).addService("mapperFactory", ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema: schema2, schemaDatabaseMetadata: schemaDatabaseMetadata2 }) => {
|
|
86
86
|
return new MapperFactory(
|
|
87
87
|
db,
|
|
88
88
|
identityId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContainer.js","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["schema","schemaDatabaseMetadata"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionContainer.js","sources":["../../../../packages/engine-content-api/src/ExecutionContainer.ts"],"sourcesContent":["import { PredicateFactory, PredicatesInjector, VariableInjector } from './acl'\nimport {\n\tConditionBuilder,\n\tFieldsVisitorFactory,\n\tJoinBuilder,\n\tMetaHandler,\n\tOrderByBuilder,\n\tRelationFetcher,\n\tWhereBuilder,\n} from './mapper/select'\nimport { UniqueWhereExpander } from './inputProcessing'\nimport { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from './extensions'\nimport {\n\tDeleteExecutor,\n\tInsertBuilderFactory,\n\tInserter,\n\tJunctionConnectHandler,\n\tJunctionDisconnectHandler,\n\tJunctionTableManager,\n\tMapperFactory,\n\tPathFactory,\n\tSelectBuilder,\n\tSelectBuilderFactory,\n\tSelectHydrator,\n\tUpdateBuilderFactory,\n\tUpdater,\n} from './mapper'\nimport { Builder } from '@contember/dic'\nimport { Acl, Model, Schema } from '@contember/schema'\nimport { Client, DatabaseMetadata, SelectBuilder as DbSelectBuilder } from '@contember/database'\nimport { Providers } from '@contember/schema-utils'\nimport { PaginatedHasManyExecutionHandler } from './extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'\nimport { PaginatedHasManyFieldProvider } from './extensions/paginatedHasMany/PaginatedHasManyFieldProvider'\nimport { WhereOptimizer } from './mapper/select/optimizer/WhereOptimizer'\nimport { ConditionOptimizer } from './mapper/select/optimizer/ConditionOptimizer'\nimport { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers'\nimport {\n\tColumnValueResolver,\n\tDependencyCollector,\n\tEntityRulesResolver, InputPreValidator,\n\tQueryAstFactory,\n\tValidationDataSelector,\n} from './input-validation'\n\nexport type ExecutionContainerArgs = {\n\tschema: Schema\n\tschemaMeta: { id?: number }\n\tschemaDatabaseMetadata: DatabaseMetadata\n\tdb: Client\n\tidentityId: string\n\tidentityVariables: Acl.VariablesMap\n\tpermissions: Acl.Permissions\n\tsystemSchema: string\n\tproject: { slug: string }\n\tstage: { id: string; slug: string }\n}\n\nexport interface ExecutionContainer {\n\treadResolver: ReadResolver\n\tmutationResolver: MutationResolver\n\tvalidationResolver: ValidationResolver\n}\n\nexport type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>\nexport type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder\n\nexport class ExecutionContainerFactory {\n\tpublic readonly hooks: ExecutionContainerHook[] = []\n\n\tconstructor(\n\t\tprivate readonly providers: Providers,\n\t) {\n\t}\n\n\tcreateBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder {\n\t\tconst builder = this.createBuilderInternal(args)\n\t\treturn this.hooks.reduce((acc, cb) => cb(acc), builder)\n\t}\n\n\tcreateBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata }: ExecutionContainerArgs) {\n\t\treturn new Builder({})\n\t\t\t.addService('systemSchema', () =>\n\t\t\t\tsystemSchema)\n\t\t\t.addService('db', () =>\n\t\t\t\tdb)\n\t\t\t.addService('project', () =>\n\t\t\t\tproject)\n\t\t\t.addService('stage', () =>\n\t\t\t\tstage)\n\t\t\t.addService('schema', () =>\n\t\t\t\tschema)\n\t\t\t.addService('schemaMeta', () =>\n\t\t\t\tschemaMeta)\n\t\t\t.addService('schemaDatabaseMetadata', () =>\n\t\t\t\tschemaDatabaseMetadata)\n\t\t\t.addService('providers', () =>\n\t\t\t\tthis.providers)\n\t\t\t.addService('variableInjector', ({ schema }) =>\n\t\t\t\tnew VariableInjector(schema.model, identityVariables))\n\t\t\t.addService('predicateFactory', ({ variableInjector, schema }) =>\n\t\t\t\tnew PredicateFactory(permissions, schema.model, variableInjector))\n\t\t\t.addService('predicatesInjector', ({ predicateFactory, schema }) =>\n\t\t\t\tnew PredicatesInjector(schema.model, predicateFactory))\n\t\t\t.addService('joinBuilder', ({ schema }) =>\n\t\t\t\tnew JoinBuilder(schema.model))\n\t\t\t.addService('conditionBuilder', () =>\n\t\t\t\tnew ConditionBuilder())\n\t\t\t.addService('pathFactory', () =>\n\t\t\t\tnew PathFactory())\n\t\t\t.addService('whereOptimized', ({ schema }) =>\n\t\t\t\tnew WhereOptimizer(schema.model, new ConditionOptimizer()))\n\t\t\t.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema }) =>\n\t\t\t\tnew WhereBuilder(\n\t\t\t\t\tschema.model,\n\t\t\t\t\tjoinBuilder,\n\t\t\t\t\tconditionBuilder,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\twhereOptimized,\n\t\t\t\t\t(schema.settings.content?.useExistsInHasManyFilter ?? schema.settings.useExistsInHasManyFilter) === true,\n\t\t\t\t))\n\t\t\t.addService('orderByBuilder', ({ joinBuilder, schema }) =>\n\t\t\t\tnew OrderByBuilder(schema.model, joinBuilder))\n\t\t\t.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>\n\t\t\t\tnew RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))\n\t\t\t.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, schema }) =>\n\t\t\t\tnew FieldsVisitorFactory(relationFetcher, predicateFactory, schema.settings.content ?? {}))\n\t\t\t.addService('metaHandler', ({ whereBuilder, predicateFactory }) =>\n\t\t\t\tnew MetaHandler(whereBuilder, predicateFactory))\n\t\t\t.addService('uniqueWhereExpander', ({ schema }) =>\n\t\t\t\tnew UniqueWhereExpander(schema.model))\n\t\t\t.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander, schema }) =>\n\t\t\t\tnew HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))\n\t\t\t.addService('paginatedHasManyExecutionHandler', ({ relationFetcher, schema }) =>\n\t\t\t\tnew PaginatedHasManyExecutionHandler(schema.model, relationFetcher))\n\t\t\t.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({\n\t\t\t\t[HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,\n\t\t\t\t[PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,\n\t\t\t}))\n\t\t\t.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory, schema }) =>\n\t\t\t\tnew (class implements SelectBuilderFactory {\n\t\t\t\t\tcreate(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {\n\t\t\t\t\t\treturn new SelectBuilder(\n\t\t\t\t\t\t\tschema.model,\n\t\t\t\t\t\t\twhereBuilder,\n\t\t\t\t\t\t\torderByBuilder,\n\t\t\t\t\t\t\tmetaHandler,\n\t\t\t\t\t\t\tqb,\n\t\t\t\t\t\t\thydrator,\n\t\t\t\t\t\t\tfieldsVisitorFactory,\n\t\t\t\t\t\t\tselectHandlers,\n\t\t\t\t\t\t\tpathFactory,\n\t\t\t\t\t\t\trelationPath,\n\t\t\t\t\t\t\tpredicateFactory,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t})())\n\t\t\t.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, schema, predicateFactory }) =>\n\t\t\t\tnew UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))\n\t\t\t.addService('connectJunctionHandler', () =>\n\t\t\t\tnew JunctionConnectHandler())\n\t\t\t.addService('disconnectJunctionHandler', ({}) =>\n\t\t\t\tnew JunctionDisconnectHandler())\n\t\t\t.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory, schema }) =>\n\t\t\t\tnew JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))\n\t\t\t.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory, schema }) =>\n\t\t\t\tnew DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))\n\t\t\t.addService('updater', ({ predicateFactory, updateBuilderFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Updater(schema.model, schemaDatabaseMetadata, predicateFactory, updateBuilderFactory))\n\t\t\t.addService('inserter', ({ insertBuilderFactory, providers, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew Inserter(schema.model, schemaDatabaseMetadata, insertBuilderFactory, providers, { uuidVersion: schema.settings.content?.uuidVersion }))\n\t\t\t.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory, providers, schema, schemaDatabaseMetadata }) => {\n\t\t\t\treturn new MapperFactory(\n\t\t\t\t\tdb,\n\t\t\t\t\tidentityId,\n\t\t\t\t\tschema.model,\n\t\t\t\t\tschemaDatabaseMetadata,\n\t\t\t\t\tpredicatesInjector,\n\t\t\t\t\tselectBuilderFactory,\n\t\t\t\t\tuniqueWhereExpander,\n\t\t\t\t\twhereBuilder,\n\t\t\t\t\tjunctionTableManager,\n\t\t\t\t\tdeleteExecutor,\n\t\t\t\t\tupdater,\n\t\t\t\t\tinserter,\n\t\t\t\t\tpathFactory,\n\t\t\t\t\tproviders,\n\t\t\t\t)\n\t\t\t})\n\n\t\t\t.addService('queryAstFactory', () =>\n\t\t\t\tnew GraphQlQueryAstFactory())\n\t\t\t.addService('readResolver', ({ mapperFactory, queryAstFactory }) =>\n\t\t\t\tnew ReadResolver(mapperFactory, queryAstFactory))\n\t\t\t.addService('validationDependencyCollector', () =>\n\t\t\t\tnew DependencyCollector())\n\t\t\t.addService('validationQueryAstFactory', ({ schema }) =>\n\t\t\t\tnew QueryAstFactory(schema.model))\n\t\t\t.addService('dataSelector', ({ validationQueryAstFactory, schema }) =>\n\t\t\t\tnew ValidationDataSelector(schema.model, validationQueryAstFactory))\n\t\t\t.addService('columnValueResolver', ({ providers }) =>\n\t\t\t\tnew ColumnValueResolver(providers))\n\t\t\t.addService('entityRulesResolver', ({ schema }) =>\n\t\t\t\tnew EntityRulesResolver(schema.validation, schema.model))\n\t\t\t.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector, schema }) =>\n\t\t\t\tnew InputPreValidator(schema.model, entityRulesResolver, columnValueResolver, dataSelector))\n\t\t\t.addService('mutationResolver', ({ mapperFactory, inputPreValidator, queryAstFactory, schema, schemaDatabaseMetadata }) =>\n\t\t\t\tnew MutationResolver(schema.model, mapperFactory, inputPreValidator, queryAstFactory, schemaDatabaseMetadata))\n\t\t\t.addService('validationResolver', ({ inputPreValidator, mapperFactory }) =>\n\t\t\t\tnew ValidationResolver(mapperFactory, inputPreValidator))\n\t}\n\n\tpublic create(args: ExecutionContainerArgs): ExecutionContainer {\n\t\treturn this.createBuilder(args).build().pick('validationResolver', 'readResolver', 'mutationResolver')\n\t}\n}\n\n"],"names":["schema","schemaDatabaseMetadata"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ class ColumnValueResolver {
|
|
|
10
10
|
return "00000000-0000-0000-0000-000000000000";
|
|
11
11
|
}
|
|
12
12
|
try {
|
|
13
|
-
return schemaUtils.resolveColumnValue(context, this.providers);
|
|
13
|
+
return schemaUtils.resolveColumnValue(context, this.providers, {});
|
|
14
14
|
} catch (e) {
|
|
15
15
|
if (e instanceof schemaUtils.NoDataError) {
|
|
16
16
|
return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnValueResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.FieldValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["resolveColumnValue","NoDataError"],"mappings":";;;AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;
|
|
1
|
+
{"version":3,"file":"ColumnValueResolver.cjs","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.FieldValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers, {})\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":["resolveColumnValue","NoDataError"],"mappings":";;;AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACH,aAAOA,YAAmB,mBAAA,SAAS,KAAK,WAAW,CAAA,CAAE;AAAA,aAC7C,GAAG;AACX,UAAI,aAAaC,YAAAA,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;;"}
|
|
@@ -8,7 +8,7 @@ class ColumnValueResolver {
|
|
|
8
8
|
return "00000000-0000-0000-0000-000000000000";
|
|
9
9
|
}
|
|
10
10
|
try {
|
|
11
|
-
return resolveColumnValue(context, this.providers);
|
|
11
|
+
return resolveColumnValue(context, this.providers, {});
|
|
12
12
|
} catch (e) {
|
|
13
13
|
if (e instanceof NoDataError) {
|
|
14
14
|
return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnValueResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.FieldValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers)\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;
|
|
1
|
+
{"version":3,"file":"ColumnValueResolver.js","sources":["../../../../../packages/engine-content-api/src/input-validation/ColumnValueResolver.ts"],"sourcesContent":["import { NoDataError, Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { Model, Value } from '@contember/schema'\n\nexport class ColumnValueResolver {\n\tconstructor(private readonly providers: Providers) {}\n\n\tgetDefaultValidationValue(context: Model.ColumnContext & { input: Value.FieldValue | undefined }): Value.FieldValue | undefined {\n\t\tif (context.column.name === context.entity.primary) {\n\t\t\treturn '00000000-0000-0000-0000-000000000000'\n\t\t}\n\t\ttry {\n\t\t\treturn resolveColumnValue(context, this.providers, {})\n\t\t} catch (e) {\n\t\t\tif (e instanceof NoDataError) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tthrow e\n\t\t}\n\t}\n}\n"],"names":[],"mappings":";AAGO,MAAM,oBAAoB;AAAA,EAChC,YAA6B,WAAsB;AAAtB,SAAA,YAAA;AAAA,EAAA;AAAA,EAE7B,0BAA0B,SAAsG;AAC/H,QAAI,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC5C,aAAA;AAAA,IAAA;AAEJ,QAAA;AACH,aAAO,mBAAmB,SAAS,KAAK,WAAW,CAAA,CAAE;AAAA,aAC7C,GAAG;AACX,UAAI,aAAa,aAAa;AACtB,eAAA;AAAA,MAAA;AAEF,YAAA;AAAA,IAAA;AAAA,EACP;AAEF;"}
|
|
@@ -7,17 +7,18 @@ require("@contember/schema");
|
|
|
7
7
|
const SqlCreateInputProcessor = require("./SqlCreateInputProcessor.cjs");
|
|
8
8
|
const ColumnValue = require("../ColumnValue.cjs");
|
|
9
9
|
class Inserter {
|
|
10
|
-
constructor(schema, schemaDatabaseMetadata, insertBuilderFactory, providers) {
|
|
10
|
+
constructor(schema, schemaDatabaseMetadata, insertBuilderFactory, providers, options) {
|
|
11
11
|
this.schema = schema;
|
|
12
12
|
this.schemaDatabaseMetadata = schemaDatabaseMetadata;
|
|
13
13
|
this.insertBuilderFactory = insertBuilderFactory;
|
|
14
14
|
this.providers = providers;
|
|
15
|
+
this.options = options;
|
|
15
16
|
}
|
|
16
17
|
async insert(mapper, entity, data, insertIdCallback, builderCb) {
|
|
17
18
|
const insertBuilder = this.insertBuilderFactory.create(entity);
|
|
18
19
|
insertBuilder.addPredicates(Object.keys(data));
|
|
19
20
|
const visitor = new CreateInputVisitor.CreateInputVisitor(
|
|
20
|
-
new SqlCreateInputProcessor.SqlCreateInputProcessor(insertBuilder, mapper, this.providers),
|
|
21
|
+
new SqlCreateInputProcessor.SqlCreateInputProcessor(insertBuilder, mapper, this.providers, this.options),
|
|
21
22
|
this.schema,
|
|
22
23
|
data
|
|
23
24
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inserter.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/Inserter.ts"],"sourcesContent":["import { MutationCreateOk, MutationNoResultError, MutationResultList } from '../Result'\nimport { CreateInputVisitor } from '../../inputProcessing'\nimport { SqlCreateInputProcessor, SqlCreateInputProcessorResult } from './SqlCreateInputProcessor'\nimport { Mapper } from '../Mapper'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, Providers } from '@contember/schema-utils'\nimport { InsertBuilderFactory } from './InsertBuilderFactory'\nimport { InsertBuilder } from './InsertBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Inserter {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly insertBuilderFactory: InsertBuilderFactory,\n\t\tprivate readonly providers: Providers,\n\t) {}\n\n\tpublic async insert(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tdata: MapperInput.CreateDataInput,\n\t\tinsertIdCallback: (id: string) => void,\n\t\tbuilderCb: (builder: InsertBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst insertBuilder = this.insertBuilderFactory.create(entity)\n\n\t\tinsertBuilder.addPredicates(Object.keys(data))\n\n\t\tconst visitor = new CreateInputVisitor<SqlCreateInputProcessorResult>(\n\t\t\tnew SqlCreateInputProcessor(insertBuilder, mapper, this.providers),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\n\t\tconst resultList: MutationResultList = []\n\t\tconst postInserts: Exclude<SqlCreateInputProcessorResult, MutationResultList>[] = []\n\n\t\tconst keys = new Set([\n\t\t\tentity.primary,\n\t\t\t...Object.keys(data),\n\t\t\t...Object.keys(entity.fields),\n\t\t])\n\n\t\tfor (const key of keys.values()) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostInserts.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuilderCb(insertBuilder)\n\t\tconst insertResult = await insertBuilder.execute(mapper)\n\n\t\tif (insertResult.primaryValue === null) {\n\t\t\treturn [new MutationNoResultError([]), ...resultList]\n\t\t}\n\t\tinsertIdCallback(String(insertResult.primaryValue))\n\n\t\tconst okResult = new MutationCreateOk([], entity, insertResult.primaryValue, data, rowDataToFieldValues(insertResult.values))\n\t\tresultList.unshift(okResult)\n\n\t\tfor (const postInsert of postInserts) {\n\t\t\tconst postInsertResult = await postInsert({ primary: insertResult.primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n}\n\n"],"names":["CreateInputVisitor","SqlCreateInputProcessor","acceptFieldVisitor","MutationNoResultError","MutationCreateOk","rowDataToFieldValues"],"mappings":";;;;;;;;AAYO,MAAM,SAAS;AAAA,EACrB,YACkB,QACA,wBACA,sBACA,
|
|
1
|
+
{"version":3,"file":"Inserter.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/Inserter.ts"],"sourcesContent":["import { MutationCreateOk, MutationNoResultError, MutationResultList } from '../Result'\nimport { CreateInputVisitor } from '../../inputProcessing'\nimport { SqlCreateInputProcessor, SqlCreateInputProcessorResult } from './SqlCreateInputProcessor'\nimport { Mapper } from '../Mapper'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, Providers } from '@contember/schema-utils'\nimport { InsertBuilderFactory } from './InsertBuilderFactory'\nimport { InsertBuilder } from './InsertBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Inserter {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly insertBuilderFactory: InsertBuilderFactory,\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly options: { uuidVersion?: 4 | 7 },\n\t) {}\n\n\tpublic async insert(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tdata: MapperInput.CreateDataInput,\n\t\tinsertIdCallback: (id: string) => void,\n\t\tbuilderCb: (builder: InsertBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst insertBuilder = this.insertBuilderFactory.create(entity)\n\n\t\tinsertBuilder.addPredicates(Object.keys(data))\n\n\t\tconst visitor = new CreateInputVisitor<SqlCreateInputProcessorResult>(\n\t\t\tnew SqlCreateInputProcessor(insertBuilder, mapper, this.providers, this.options),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\n\t\tconst resultList: MutationResultList = []\n\t\tconst postInserts: Exclude<SqlCreateInputProcessorResult, MutationResultList>[] = []\n\n\t\tconst keys = new Set([\n\t\t\tentity.primary,\n\t\t\t...Object.keys(data),\n\t\t\t...Object.keys(entity.fields),\n\t\t])\n\n\t\tfor (const key of keys.values()) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostInserts.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuilderCb(insertBuilder)\n\t\tconst insertResult = await insertBuilder.execute(mapper)\n\n\t\tif (insertResult.primaryValue === null) {\n\t\t\treturn [new MutationNoResultError([]), ...resultList]\n\t\t}\n\t\tinsertIdCallback(String(insertResult.primaryValue))\n\n\t\tconst okResult = new MutationCreateOk([], entity, insertResult.primaryValue, data, rowDataToFieldValues(insertResult.values))\n\t\tresultList.unshift(okResult)\n\n\t\tfor (const postInsert of postInserts) {\n\t\t\tconst postInsertResult = await postInsert({ primary: insertResult.primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n}\n\n"],"names":["CreateInputVisitor","SqlCreateInputProcessor","acceptFieldVisitor","MutationNoResultError","MutationCreateOk","rowDataToFieldValues"],"mappings":";;;;;;;;AAYO,MAAM,SAAS;AAAA,EACrB,YACkB,QACA,wBACA,sBACA,WACA,SAChB;AALgB,SAAA,SAAA;AACA,SAAA,yBAAA;AACA,SAAA,uBAAA;AACA,SAAA,YAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,OACZ,QACA,QACA,MACA,kBACA,WAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,MAAM;AAE7D,kBAAc,cAAc,OAAO,KAAK,IAAI,CAAC;AAE7C,UAAM,UAAU,IAAIA,mBAAA;AAAA,MACnB,IAAIC,wBAAAA,wBAAwB,eAAe,QAAQ,KAAK,WAAW,KAAK,OAAO;AAAA,MAC/E,KAAK;AAAA,MACL;AAAA,IACD;AAEA,UAAM,aAAiC,CAAC;AACxC,UAAM,cAA4E,CAAC;AAE7E,UAAA,2BAAW,IAAI;AAAA,MACpB,OAAO;AAAA,MACP,GAAG,OAAO,KAAK,IAAI;AAAA,MACnB,GAAG,OAAO,KAAK,OAAO,MAAM;AAAA,IAAA,CAC5B;AAEU,eAAA,OAAO,KAAK,UAAU;AAChC,YAAM,YAAY,MAAMC,YAAA;AAAA,QACvB,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,iBAAW,UAAU,WAAW;AAC3B,YAAA,OAAO,WAAW,YAAY;AACjC,sBAAY,KAAK,MAAM;AAAA,QAAA,OACjB;AACK,qBAAA,cAAc,MAAM,QAAQ;AACtC,uBAAW,KAAK,UAAU;AAC1B,gBAAI,WAAW,OAAO;AACd,qBAAA;AAAA,YAAA;AAAA,UACR;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAGD,cAAU,aAAa;AACvB,UAAM,eAAe,MAAM,cAAc,QAAQ,MAAM;AAEnD,QAAA,aAAa,iBAAiB,MAAM;AACvC,aAAO,CAAC,IAAIC,OAAA,sBAAsB,EAAE,GAAG,GAAG,UAAU;AAAA,IAAA;AAEpC,qBAAA,OAAO,aAAa,YAAY,CAAC;AAElD,UAAM,WAAW,IAAIC,wBAAiB,CAAA,GAAI,QAAQ,aAAa,cAAc,MAAMC,YAAAA,qBAAqB,aAAa,MAAM,CAAC;AAC5H,eAAW,QAAQ,QAAQ;AAE3B,eAAW,cAAc,aAAa;AACrC,YAAM,mBAAmB,MAAM,WAAW,EAAE,SAAS,aAAa,cAAc;AAChF,iBAAW,UAAU,kBAAkB;AACtC,mBAAW,KAAK,MAAM;AACtB,YAAI,OAAO,OAAO;AACV,iBAAA;AAAA,QAAA;AAAA,MACR;AAAA,IACD;AAGM,WAAA;AAAA,EAAA;AAET;;"}
|
|
@@ -5,17 +5,18 @@ import "@contember/schema";
|
|
|
5
5
|
import { SqlCreateInputProcessor } from "./SqlCreateInputProcessor.js";
|
|
6
6
|
import { rowDataToFieldValues } from "../ColumnValue.js";
|
|
7
7
|
class Inserter {
|
|
8
|
-
constructor(schema, schemaDatabaseMetadata, insertBuilderFactory, providers) {
|
|
8
|
+
constructor(schema, schemaDatabaseMetadata, insertBuilderFactory, providers, options) {
|
|
9
9
|
this.schema = schema;
|
|
10
10
|
this.schemaDatabaseMetadata = schemaDatabaseMetadata;
|
|
11
11
|
this.insertBuilderFactory = insertBuilderFactory;
|
|
12
12
|
this.providers = providers;
|
|
13
|
+
this.options = options;
|
|
13
14
|
}
|
|
14
15
|
async insert(mapper, entity, data, insertIdCallback, builderCb) {
|
|
15
16
|
const insertBuilder = this.insertBuilderFactory.create(entity);
|
|
16
17
|
insertBuilder.addPredicates(Object.keys(data));
|
|
17
18
|
const visitor = new CreateInputVisitor(
|
|
18
|
-
new SqlCreateInputProcessor(insertBuilder, mapper, this.providers),
|
|
19
|
+
new SqlCreateInputProcessor(insertBuilder, mapper, this.providers, this.options),
|
|
19
20
|
this.schema,
|
|
20
21
|
data
|
|
21
22
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inserter.js","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/Inserter.ts"],"sourcesContent":["import { MutationCreateOk, MutationNoResultError, MutationResultList } from '../Result'\nimport { CreateInputVisitor } from '../../inputProcessing'\nimport { SqlCreateInputProcessor, SqlCreateInputProcessorResult } from './SqlCreateInputProcessor'\nimport { Mapper } from '../Mapper'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, Providers } from '@contember/schema-utils'\nimport { InsertBuilderFactory } from './InsertBuilderFactory'\nimport { InsertBuilder } from './InsertBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Inserter {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly insertBuilderFactory: InsertBuilderFactory,\n\t\tprivate readonly providers: Providers,\n\t) {}\n\n\tpublic async insert(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tdata: MapperInput.CreateDataInput,\n\t\tinsertIdCallback: (id: string) => void,\n\t\tbuilderCb: (builder: InsertBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst insertBuilder = this.insertBuilderFactory.create(entity)\n\n\t\tinsertBuilder.addPredicates(Object.keys(data))\n\n\t\tconst visitor = new CreateInputVisitor<SqlCreateInputProcessorResult>(\n\t\t\tnew SqlCreateInputProcessor(insertBuilder, mapper, this.providers),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\n\t\tconst resultList: MutationResultList = []\n\t\tconst postInserts: Exclude<SqlCreateInputProcessorResult, MutationResultList>[] = []\n\n\t\tconst keys = new Set([\n\t\t\tentity.primary,\n\t\t\t...Object.keys(data),\n\t\t\t...Object.keys(entity.fields),\n\t\t])\n\n\t\tfor (const key of keys.values()) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostInserts.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuilderCb(insertBuilder)\n\t\tconst insertResult = await insertBuilder.execute(mapper)\n\n\t\tif (insertResult.primaryValue === null) {\n\t\t\treturn [new MutationNoResultError([]), ...resultList]\n\t\t}\n\t\tinsertIdCallback(String(insertResult.primaryValue))\n\n\t\tconst okResult = new MutationCreateOk([], entity, insertResult.primaryValue, data, rowDataToFieldValues(insertResult.values))\n\t\tresultList.unshift(okResult)\n\n\t\tfor (const postInsert of postInserts) {\n\t\t\tconst postInsertResult = await postInsert({ primary: insertResult.primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n}\n\n"],"names":[],"mappings":";;;;;;AAYO,MAAM,SAAS;AAAA,EACrB,YACkB,QACA,wBACA,sBACA,
|
|
1
|
+
{"version":3,"file":"Inserter.js","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/Inserter.ts"],"sourcesContent":["import { MutationCreateOk, MutationNoResultError, MutationResultList } from '../Result'\nimport { CreateInputVisitor } from '../../inputProcessing'\nimport { SqlCreateInputProcessor, SqlCreateInputProcessorResult } from './SqlCreateInputProcessor'\nimport { Mapper } from '../Mapper'\nimport { Model } from '@contember/schema'\nimport { acceptFieldVisitor, Providers } from '@contember/schema-utils'\nimport { InsertBuilderFactory } from './InsertBuilderFactory'\nimport { InsertBuilder } from './InsertBuilder'\nimport { rowDataToFieldValues } from '../ColumnValue'\nimport { DatabaseMetadata } from '@contember/database'\nimport { MapperInput } from '../types'\n\nexport class Inserter {\n\tconstructor(\n\t\tprivate readonly schema: Model.Schema,\n\t\tprivate readonly schemaDatabaseMetadata: DatabaseMetadata,\n\t\tprivate readonly insertBuilderFactory: InsertBuilderFactory,\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly options: { uuidVersion?: 4 | 7 },\n\t) {}\n\n\tpublic async insert(\n\t\tmapper: Mapper,\n\t\tentity: Model.Entity,\n\t\tdata: MapperInput.CreateDataInput,\n\t\tinsertIdCallback: (id: string) => void,\n\t\tbuilderCb: (builder: InsertBuilder) => void,\n\t): Promise<MutationResultList> {\n\t\tconst insertBuilder = this.insertBuilderFactory.create(entity)\n\n\t\tinsertBuilder.addPredicates(Object.keys(data))\n\n\t\tconst visitor = new CreateInputVisitor<SqlCreateInputProcessorResult>(\n\t\t\tnew SqlCreateInputProcessor(insertBuilder, mapper, this.providers, this.options),\n\t\t\tthis.schema,\n\t\t\tdata,\n\t\t)\n\n\t\tconst resultList: MutationResultList = []\n\t\tconst postInserts: Exclude<SqlCreateInputProcessorResult, MutationResultList>[] = []\n\n\t\tconst keys = new Set([\n\t\t\tentity.primary,\n\t\t\t...Object.keys(data),\n\t\t\t...Object.keys(entity.fields),\n\t\t])\n\n\t\tfor (const key of keys.values()) {\n\t\t\tconst resultSet = await acceptFieldVisitor(\n\t\t\t\tthis.schema,\n\t\t\t\tentity,\n\t\t\t\tkey,\n\t\t\t\tvisitor,\n\t\t\t)\n\t\t\tfor (const result of resultSet) {\n\t\t\t\tif (typeof result === 'function') {\n\t\t\t\t\tpostInserts.push(result)\n\t\t\t\t} else {\n\t\t\t\t\tfor (const resultItem of await result) {\n\t\t\t\t\t\tresultList.push(resultItem)\n\t\t\t\t\t\tif (resultItem.error) {\n\t\t\t\t\t\t\treturn resultList\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuilderCb(insertBuilder)\n\t\tconst insertResult = await insertBuilder.execute(mapper)\n\n\t\tif (insertResult.primaryValue === null) {\n\t\t\treturn [new MutationNoResultError([]), ...resultList]\n\t\t}\n\t\tinsertIdCallback(String(insertResult.primaryValue))\n\n\t\tconst okResult = new MutationCreateOk([], entity, insertResult.primaryValue, data, rowDataToFieldValues(insertResult.values))\n\t\tresultList.unshift(okResult)\n\n\t\tfor (const postInsert of postInserts) {\n\t\t\tconst postInsertResult = await postInsert({ primary: insertResult.primaryValue })\n\t\t\tfor (const result of postInsertResult) {\n\t\t\t\tresultList.push(result)\n\t\t\t\tif (result.error) {\n\t\t\t\t\treturn resultList\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn resultList\n\t}\n}\n\n"],"names":[],"mappings":";;;;;;AAYO,MAAM,SAAS;AAAA,EACrB,YACkB,QACA,wBACA,sBACA,WACA,SAChB;AALgB,SAAA,SAAA;AACA,SAAA,yBAAA;AACA,SAAA,uBAAA;AACA,SAAA,YAAA;AACA,SAAA,UAAA;AAAA,EAAA;AAAA,EAGlB,MAAa,OACZ,QACA,QACA,MACA,kBACA,WAC8B;AAC9B,UAAM,gBAAgB,KAAK,qBAAqB,OAAO,MAAM;AAE7D,kBAAc,cAAc,OAAO,KAAK,IAAI,CAAC;AAE7C,UAAM,UAAU,IAAI;AAAA,MACnB,IAAI,wBAAwB,eAAe,QAAQ,KAAK,WAAW,KAAK,OAAO;AAAA,MAC/E,KAAK;AAAA,MACL;AAAA,IACD;AAEA,UAAM,aAAiC,CAAC;AACxC,UAAM,cAA4E,CAAC;AAE7E,UAAA,2BAAW,IAAI;AAAA,MACpB,OAAO;AAAA,MACP,GAAG,OAAO,KAAK,IAAI;AAAA,MACnB,GAAG,OAAO,KAAK,OAAO,MAAM;AAAA,IAAA,CAC5B;AAEU,eAAA,OAAO,KAAK,UAAU;AAChC,YAAM,YAAY,MAAM;AAAA,QACvB,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD;AACA,iBAAW,UAAU,WAAW;AAC3B,YAAA,OAAO,WAAW,YAAY;AACjC,sBAAY,KAAK,MAAM;AAAA,QAAA,OACjB;AACK,qBAAA,cAAc,MAAM,QAAQ;AACtC,uBAAW,KAAK,UAAU;AAC1B,gBAAI,WAAW,OAAO;AACd,qBAAA;AAAA,YAAA;AAAA,UACR;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAGD,cAAU,aAAa;AACvB,UAAM,eAAe,MAAM,cAAc,QAAQ,MAAM;AAEnD,QAAA,aAAa,iBAAiB,MAAM;AACvC,aAAO,CAAC,IAAI,sBAAsB,EAAE,GAAG,GAAG,UAAU;AAAA,IAAA;AAEpC,qBAAA,OAAO,aAAa,YAAY,CAAC;AAElD,UAAM,WAAW,IAAI,iBAAiB,CAAA,GAAI,QAAQ,aAAa,cAAc,MAAM,qBAAqB,aAAa,MAAM,CAAC;AAC5H,eAAW,QAAQ,QAAQ;AAE3B,eAAW,cAAc,aAAa;AACrC,YAAM,mBAAmB,MAAM,WAAW,EAAE,SAAS,aAAa,cAAc;AAChF,iBAAW,UAAU,kBAAkB;AACtC,mBAAW,KAAK,MAAM;AACtB,YAAI,OAAO,OAAO;AACV,iBAAA;AAAA,QAAA;AAAA,MACR;AAAA,IACD;AAGM,WAAA;AAAA,EAAA;AAET;"}
|
|
@@ -11,10 +11,11 @@ var __defProp = Object.defineProperty;
|
|
|
11
11
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
12
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
13
|
class SqlCreateInputProcessor {
|
|
14
|
-
constructor(insertBuilder, mapper, providers) {
|
|
14
|
+
constructor(insertBuilder, mapper, providers, options = {}) {
|
|
15
15
|
this.insertBuilder = insertBuilder;
|
|
16
16
|
this.mapper = mapper;
|
|
17
17
|
this.providers = providers;
|
|
18
|
+
this.options = options;
|
|
18
19
|
__publicField(this, "oneHasOneInverseCreateInputProcessor");
|
|
19
20
|
__publicField(this, "oneHasOneOwningCreateInputProcessor");
|
|
20
21
|
__publicField(this, "oneHasManyCreateInputProcessor");
|
|
@@ -67,7 +68,7 @@ class SqlCreateInputProcessor {
|
|
|
67
68
|
async column(context) {
|
|
68
69
|
this.insertBuilder.addFieldValue(
|
|
69
70
|
context.column.name,
|
|
70
|
-
schemaUtils.resolveColumnValue(context, this.providers)
|
|
71
|
+
schemaUtils.resolveColumnValue(context, this.providers, this.options)
|
|
71
72
|
);
|
|
72
73
|
return [];
|
|
73
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlCreateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/SqlCreateInputProcessor.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { InsertBuilder } from './InsertBuilder'\nimport { Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { CreateInputProcessor } from '../../inputProcessing'\nimport { MutationResultList } from '../Result'\nimport { hasManyProcessor, hasOneProcessor } from '../MutationProcessorHelper'\nimport { OneHasOneInverseCreateInputProcessor } from './relations/OneHasOneInverseCreateInputProcessor'\nimport { OneHasOneOwningCreateInputProcessor } from './relations/OneHasOneOwningCreateInputProcessor'\nimport { OneHasManyCreateInputProcessor } from './relations/OneHasManyCreateInputProcessor'\nimport { ManyHasOneCreateInputProcessor } from './relations/ManyHasOneCreateInputProcessor'\nimport { ManyHasManyCreateInputProcessor } from './relations/ManyHasManyCreateInputProcessor'\n\n\nexport type SqlCreateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue }) => Promise<MutationResultList>)\nexport class SqlCreateInputProcessor implements CreateInputProcessor<SqlCreateInputProcessorResult> {\n\n\tprivate oneHasOneInverseCreateInputProcessor: OneHasOneInverseCreateInputProcessor\n\tprivate oneHasOneOwningCreateInputProcessor: OneHasOneOwningCreateInputProcessor\n\tprivate oneHasManyCreateInputProcessor: OneHasManyCreateInputProcessor\n\tprivate manyHasOneCreateInputProcessor: ManyHasOneCreateInputProcessor\n\tprivate manyHasManyCreateInputProcessor: ManyHasManyCreateInputProcessor\n\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly providers: Providers,\n\t) {\n\t\tthis.oneHasOneInverseCreateInputProcessor = new OneHasOneInverseCreateInputProcessor(this.mapper)\n\t\tthis.oneHasOneOwningCreateInputProcessor = new OneHasOneOwningCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.oneHasManyCreateInputProcessor = new OneHasManyCreateInputProcessor(this.mapper)\n\t\tthis.manyHasOneCreateInputProcessor = new ManyHasOneCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.manyHasManyCreateInputProcessor = new ManyHasManyCreateInputProcessor(this.mapper)\n\t}\n\n\tpublic async column(context: Model.ColumnContext & { input: Input.ColumnValue | undefined }): Promise<SqlCreateInputProcessorResult> {\n\t\tthis.insertBuilder.addFieldValue(\n\t\t\tcontext.column.name,\n\t\t\tresolveColumnValue(context, this.providers),\n\t\t)\n\t\treturn []\n\t}\n\n\tmanyHasManyInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyInverse'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasManyOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyOwning'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasOne: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasOne'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasMany: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasMany'] = {\n\t\tconnect: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\n\toneHasOneOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneOwning'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasOneInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneInverse'] = {\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n}\n"],"names":["hasManyProcessor","hasOneProcessor","OneHasOneInverseCreateInputProcessor","OneHasOneOwningCreateInputProcessor","OneHasManyCreateInputProcessor","ManyHasOneCreateInputProcessor","ManyHasManyCreateInputProcessor","resolveColumnValue"],"mappings":";;;;;;;;;;;;AAeO,MAAM,wBAAuF;AAAA,EAQnG,YACkB,eACA,QACA,
|
|
1
|
+
{"version":3,"file":"SqlCreateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/SqlCreateInputProcessor.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { InsertBuilder } from './InsertBuilder'\nimport { Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { CreateInputProcessor } from '../../inputProcessing'\nimport { MutationResultList } from '../Result'\nimport { hasManyProcessor, hasOneProcessor } from '../MutationProcessorHelper'\nimport { OneHasOneInverseCreateInputProcessor } from './relations/OneHasOneInverseCreateInputProcessor'\nimport { OneHasOneOwningCreateInputProcessor } from './relations/OneHasOneOwningCreateInputProcessor'\nimport { OneHasManyCreateInputProcessor } from './relations/OneHasManyCreateInputProcessor'\nimport { ManyHasOneCreateInputProcessor } from './relations/ManyHasOneCreateInputProcessor'\nimport { ManyHasManyCreateInputProcessor } from './relations/ManyHasManyCreateInputProcessor'\n\n\nexport type SqlCreateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue }) => Promise<MutationResultList>)\nexport class SqlCreateInputProcessor implements CreateInputProcessor<SqlCreateInputProcessorResult> {\n\n\tprivate oneHasOneInverseCreateInputProcessor: OneHasOneInverseCreateInputProcessor\n\tprivate oneHasOneOwningCreateInputProcessor: OneHasOneOwningCreateInputProcessor\n\tprivate oneHasManyCreateInputProcessor: OneHasManyCreateInputProcessor\n\tprivate manyHasOneCreateInputProcessor: ManyHasOneCreateInputProcessor\n\tprivate manyHasManyCreateInputProcessor: ManyHasManyCreateInputProcessor\n\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly options: { uuidVersion?: 4 | 7 } = {},\n\t) {\n\t\tthis.oneHasOneInverseCreateInputProcessor = new OneHasOneInverseCreateInputProcessor(this.mapper)\n\t\tthis.oneHasOneOwningCreateInputProcessor = new OneHasOneOwningCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.oneHasManyCreateInputProcessor = new OneHasManyCreateInputProcessor(this.mapper)\n\t\tthis.manyHasOneCreateInputProcessor = new ManyHasOneCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.manyHasManyCreateInputProcessor = new ManyHasManyCreateInputProcessor(this.mapper)\n\t}\n\n\tpublic async column(context: Model.ColumnContext & { input: Input.ColumnValue | undefined }): Promise<SqlCreateInputProcessorResult> {\n\t\tthis.insertBuilder.addFieldValue(\n\t\t\tcontext.column.name,\n\t\t\tresolveColumnValue(context, this.providers, this.options),\n\t\t)\n\t\treturn []\n\t}\n\n\tmanyHasManyInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyInverse'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasManyOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyOwning'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasOne: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasOne'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasMany: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasMany'] = {\n\t\tconnect: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\n\toneHasOneOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneOwning'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasOneInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneInverse'] = {\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n}\n"],"names":["hasManyProcessor","hasOneProcessor","OneHasOneInverseCreateInputProcessor","OneHasOneOwningCreateInputProcessor","OneHasManyCreateInputProcessor","ManyHasOneCreateInputProcessor","ManyHasManyCreateInputProcessor","resolveColumnValue"],"mappings":"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"}
|
|
@@ -9,10 +9,11 @@ var __defProp = Object.defineProperty;
|
|
|
9
9
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
10
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
11
11
|
class SqlCreateInputProcessor {
|
|
12
|
-
constructor(insertBuilder, mapper, providers) {
|
|
12
|
+
constructor(insertBuilder, mapper, providers, options = {}) {
|
|
13
13
|
this.insertBuilder = insertBuilder;
|
|
14
14
|
this.mapper = mapper;
|
|
15
15
|
this.providers = providers;
|
|
16
|
+
this.options = options;
|
|
16
17
|
__publicField(this, "oneHasOneInverseCreateInputProcessor");
|
|
17
18
|
__publicField(this, "oneHasOneOwningCreateInputProcessor");
|
|
18
19
|
__publicField(this, "oneHasManyCreateInputProcessor");
|
|
@@ -65,7 +66,7 @@ class SqlCreateInputProcessor {
|
|
|
65
66
|
async column(context) {
|
|
66
67
|
this.insertBuilder.addFieldValue(
|
|
67
68
|
context.column.name,
|
|
68
|
-
resolveColumnValue(context, this.providers)
|
|
69
|
+
resolveColumnValue(context, this.providers, this.options)
|
|
69
70
|
);
|
|
70
71
|
return [];
|
|
71
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlCreateInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/SqlCreateInputProcessor.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { InsertBuilder } from './InsertBuilder'\nimport { Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { CreateInputProcessor } from '../../inputProcessing'\nimport { MutationResultList } from '../Result'\nimport { hasManyProcessor, hasOneProcessor } from '../MutationProcessorHelper'\nimport { OneHasOneInverseCreateInputProcessor } from './relations/OneHasOneInverseCreateInputProcessor'\nimport { OneHasOneOwningCreateInputProcessor } from './relations/OneHasOneOwningCreateInputProcessor'\nimport { OneHasManyCreateInputProcessor } from './relations/OneHasManyCreateInputProcessor'\nimport { ManyHasOneCreateInputProcessor } from './relations/ManyHasOneCreateInputProcessor'\nimport { ManyHasManyCreateInputProcessor } from './relations/ManyHasManyCreateInputProcessor'\n\n\nexport type SqlCreateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue }) => Promise<MutationResultList>)\nexport class SqlCreateInputProcessor implements CreateInputProcessor<SqlCreateInputProcessorResult> {\n\n\tprivate oneHasOneInverseCreateInputProcessor: OneHasOneInverseCreateInputProcessor\n\tprivate oneHasOneOwningCreateInputProcessor: OneHasOneOwningCreateInputProcessor\n\tprivate oneHasManyCreateInputProcessor: OneHasManyCreateInputProcessor\n\tprivate manyHasOneCreateInputProcessor: ManyHasOneCreateInputProcessor\n\tprivate manyHasManyCreateInputProcessor: ManyHasManyCreateInputProcessor\n\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly providers: Providers,\n\t) {\n\t\tthis.oneHasOneInverseCreateInputProcessor = new OneHasOneInverseCreateInputProcessor(this.mapper)\n\t\tthis.oneHasOneOwningCreateInputProcessor = new OneHasOneOwningCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.oneHasManyCreateInputProcessor = new OneHasManyCreateInputProcessor(this.mapper)\n\t\tthis.manyHasOneCreateInputProcessor = new ManyHasOneCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.manyHasManyCreateInputProcessor = new ManyHasManyCreateInputProcessor(this.mapper)\n\t}\n\n\tpublic async column(context: Model.ColumnContext & { input: Input.ColumnValue | undefined }): Promise<SqlCreateInputProcessorResult> {\n\t\tthis.insertBuilder.addFieldValue(\n\t\t\tcontext.column.name,\n\t\t\tresolveColumnValue(context, this.providers),\n\t\t)\n\t\treturn []\n\t}\n\n\tmanyHasManyInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyInverse'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasManyOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyOwning'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasOne: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasOne'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasMany: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasMany'] = {\n\t\tconnect: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\n\toneHasOneOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneOwning'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasOneInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneInverse'] = {\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n}\n"],"names":[],"mappings":";;;;;;;;;;AAeO,MAAM,wBAAuF;AAAA,EAQnG,YACkB,eACA,QACA,
|
|
1
|
+
{"version":3,"file":"SqlCreateInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/insert/SqlCreateInputProcessor.ts"],"sourcesContent":["import { Input, Model, Value } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { InsertBuilder } from './InsertBuilder'\nimport { Providers, resolveColumnValue } from '@contember/schema-utils'\nimport { CreateInputProcessor } from '../../inputProcessing'\nimport { MutationResultList } from '../Result'\nimport { hasManyProcessor, hasOneProcessor } from '../MutationProcessorHelper'\nimport { OneHasOneInverseCreateInputProcessor } from './relations/OneHasOneInverseCreateInputProcessor'\nimport { OneHasOneOwningCreateInputProcessor } from './relations/OneHasOneOwningCreateInputProcessor'\nimport { OneHasManyCreateInputProcessor } from './relations/OneHasManyCreateInputProcessor'\nimport { ManyHasOneCreateInputProcessor } from './relations/ManyHasOneCreateInputProcessor'\nimport { ManyHasManyCreateInputProcessor } from './relations/ManyHasManyCreateInputProcessor'\n\n\nexport type SqlCreateInputProcessorResult = MutationResultList | ((ctx: { primary: Input.PrimaryValue }) => Promise<MutationResultList>)\nexport class SqlCreateInputProcessor implements CreateInputProcessor<SqlCreateInputProcessorResult> {\n\n\tprivate oneHasOneInverseCreateInputProcessor: OneHasOneInverseCreateInputProcessor\n\tprivate oneHasOneOwningCreateInputProcessor: OneHasOneOwningCreateInputProcessor\n\tprivate oneHasManyCreateInputProcessor: OneHasManyCreateInputProcessor\n\tprivate manyHasOneCreateInputProcessor: ManyHasOneCreateInputProcessor\n\tprivate manyHasManyCreateInputProcessor: ManyHasManyCreateInputProcessor\n\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t\tprivate readonly providers: Providers,\n\t\tprivate readonly options: { uuidVersion?: 4 | 7 } = {},\n\t) {\n\t\tthis.oneHasOneInverseCreateInputProcessor = new OneHasOneInverseCreateInputProcessor(this.mapper)\n\t\tthis.oneHasOneOwningCreateInputProcessor = new OneHasOneOwningCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.oneHasManyCreateInputProcessor = new OneHasManyCreateInputProcessor(this.mapper)\n\t\tthis.manyHasOneCreateInputProcessor = new ManyHasOneCreateInputProcessor(this.mapper, this.insertBuilder)\n\t\tthis.manyHasManyCreateInputProcessor = new ManyHasManyCreateInputProcessor(this.mapper)\n\t}\n\n\tpublic async column(context: Model.ColumnContext & { input: Input.ColumnValue | undefined }): Promise<SqlCreateInputProcessorResult> {\n\t\tthis.insertBuilder.addFieldValue(\n\t\t\tcontext.column.name,\n\t\t\tresolveColumnValue(context, this.providers, this.options),\n\t\t)\n\t\treturn []\n\t}\n\n\tmanyHasManyInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyInverse'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasManyOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasManyOwning'] = {\n\t\tconnect: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.manyHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\tmanyHasOne: CreateInputProcessor<SqlCreateInputProcessorResult>['manyHasOne'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.manyHasOneCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasMany: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasMany'] = {\n\t\tconnect: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasManyProcessor(ctx => this.oneHasManyCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\n\toneHasOneOwning: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneOwning'] = {\n\t\tnothing: async ctx => {\n\t\t\tthis.insertBuilder.addFieldValue(ctx.relation.name, null)\n\t\t\treturn []\n\t\t},\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneOwningCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n\n\toneHasOneInverse: CreateInputProcessor<SqlCreateInputProcessorResult>['oneHasOneInverse'] = {\n\t\tconnect: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connect(ctx)),\n\t\tcreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.create(ctx)),\n\t\tconnectOrCreate: hasOneProcessor(ctx => this.oneHasOneInverseCreateInputProcessor.connectOrCreate(ctx)),\n\t}\n}\n"],"names":[],"mappings":"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"}
|