@contember/engine-content-api 1.3.0-alpha.1 → 1.3.0-alpha.2
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/src/ExecutionContainer.d.ts +141 -0
- package/dist/src/ExecutionContainer.d.ts.map +1 -0
- package/dist/src/ExecutionContainer.js +84 -0
- package/dist/src/ExecutionContainer.js.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/mapper/ColumnValue.d.ts +2 -2
- package/dist/src/mapper/ColumnValue.d.ts.map +1 -1
- package/dist/src/mapper/EventManager.d.ts +86 -0
- package/dist/src/mapper/EventManager.d.ts.map +1 -0
- package/dist/src/mapper/EventManager.js +118 -0
- package/dist/src/mapper/EventManager.js.map +1 -0
- package/dist/src/mapper/JunctionTableManager.d.ts +12 -11
- package/dist/src/mapper/JunctionTableManager.d.ts.map +1 -1
- package/dist/src/mapper/JunctionTableManager.js +20 -8
- package/dist/src/mapper/JunctionTableManager.js.map +1 -1
- package/dist/src/mapper/Mapper.d.ts +11 -6
- package/dist/src/mapper/Mapper.d.ts.map +1 -1
- package/dist/src/mapper/Mapper.js +34 -17
- package/dist/src/mapper/Mapper.js.map +1 -1
- package/dist/src/mapper/MapperFactory.d.ts +33 -0
- package/dist/src/mapper/MapperFactory.d.ts.map +1 -0
- package/dist/src/mapper/MapperFactory.js +40 -0
- package/dist/src/mapper/MapperFactory.js.map +1 -0
- package/dist/src/mapper/Result.d.ts +3 -2
- package/dist/src/mapper/Result.d.ts.map +1 -1
- package/dist/src/mapper/Result.js +2 -1
- package/dist/src/mapper/Result.js.map +1 -1
- package/dist/src/mapper/delete/DeleteExecutor.d.ts.map +1 -1
- package/dist/src/mapper/delete/DeleteExecutor.js +41 -1
- package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
- package/dist/src/mapper/index.d.ts +3 -1
- package/dist/src/mapper/index.d.ts.map +1 -1
- package/dist/src/mapper/index.js +3 -1
- package/dist/src/mapper/index.js.map +1 -1
- package/dist/src/mapper/insert/InsertBuilder.d.ts +2 -2
- package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
- package/dist/src/mapper/insert/InsertBuilder.js +8 -2
- package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/src/mapper/insert/Inserter.js +3 -3
- package/dist/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/src/mapper/select/OrderByHelper.d.ts +1 -1
- package/dist/src/mapper/select/OrderByHelper.d.ts.map +1 -1
- package/dist/src/mapper/select/OrderByHelper.js +3 -1
- package/dist/src/mapper/select/OrderByHelper.js.map +1 -1
- package/dist/src/mapper/select/RelationFetcher.js +2 -2
- package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
- package/dist/src/mapper/update/UpdateBuilder.d.ts +4 -4
- package/dist/src/mapper/update/UpdateBuilder.d.ts.map +1 -1
- package/dist/src/mapper/update/UpdateBuilder.js +26 -8
- package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
- package/dist/src/mapper/update/UpdateBuilderFactory.d.ts +1 -1
- package/dist/src/mapper/update/UpdateBuilderFactory.d.ts.map +1 -1
- package/dist/src/mapper/update/UpdateBuilderFactory.js +2 -2
- package/dist/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
- package/dist/src/mapper/update/Updater.d.ts.map +1 -1
- package/dist/src/mapper/update/Updater.js +6 -10
- package/dist/src/mapper/update/Updater.js.map +1 -1
- package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts +1 -3
- package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
- package/dist/src/resolvers/GraphQlQueryAstFactory.js +1 -4
- package/dist/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
- package/dist/src/resolvers/MutationResolver.d.ts +1 -4
- package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/MutationResolver.js +9 -11
- package/dist/src/resolvers/MutationResolver.js.map +1 -1
- package/dist/src/resolvers/ReadResolver.d.ts +1 -3
- package/dist/src/resolvers/ReadResolver.d.ts.map +1 -1
- package/dist/src/resolvers/ReadResolver.js +6 -10
- package/dist/src/resolvers/ReadResolver.js.map +1 -1
- package/dist/src/resolvers/ValidationResolver.d.ts +1 -3
- package/dist/src/resolvers/ValidationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/ValidationResolver.js +3 -4
- package/dist/src/resolvers/ValidationResolver.js.map +1 -1
- package/dist/src/resolvers/index.d.ts +0 -1
- package/dist/src/resolvers/index.d.ts.map +1 -1
- package/dist/src/resolvers/index.js +0 -1
- package/dist/src/resolvers/index.js.map +1 -1
- package/dist/src/schema/CustomTypesProvider.d.ts.map +1 -1
- package/dist/src/schema/CustomTypesProvider.js +1 -23
- package/dist/src/schema/CustomTypesProvider.js.map +1 -1
- package/dist/src/schema/MutationProvider.js +4 -4
- package/dist/src/schema/MutationProvider.js.map +1 -1
- package/dist/src/schema/QueryProvider.js +3 -3
- package/dist/src/schema/QueryProvider.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types.d.ts +2 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js +3 -5
- package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js +2 -2
- package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js +45 -45
- package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js +5 -5
- package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js +2 -2
- package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js +7 -7
- package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js +7 -7
- package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js +2 -2
- package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js +3 -3
- package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts +2 -0
- package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js +67 -0
- package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js.map +1 -0
- package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +6 -18
- package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js +3 -4
- package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js +3 -8
- package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js +3 -10
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js +3 -10
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js +6 -18
- package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js +3 -11
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js +3 -8
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js +3 -6
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js +3 -6
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js +15 -50
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js +3 -10
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js +3 -10
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js +3 -6
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js +3 -7
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js +12 -32
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js +3 -3
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js +6 -20
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js +3 -10
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js +3 -9
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js +6 -19
- package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js +6 -8
- package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js +9 -24
- package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js.map +1 -1
- package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js +3 -7
- package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js.map +1 -1
- package/dist/tests/cases/unit/orderbyHelper.test.js +11 -0
- package/dist/tests/cases/unit/orderbyHelper.test.js.map +1 -1
- package/dist/tests/src/test.d.ts +1 -0
- package/dist/tests/src/test.d.ts.map +1 -1
- package/dist/tests/src/test.js +34 -6
- package/dist/tests/src/test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/ExecutionContainer.ts +204 -0
- package/src/index.ts +24 -1
- package/src/mapper/ColumnValue.ts +2 -2
- package/src/mapper/EventManager.ts +158 -0
- package/src/mapper/JunctionTableManager.ts +50 -32
- package/src/mapper/Mapper.ts +39 -21
- package/src/mapper/MapperFactory.ts +67 -0
- package/src/mapper/Result.ts +2 -1
- package/src/mapper/delete/DeleteExecutor.ts +42 -1
- package/src/mapper/index.ts +3 -1
- package/src/mapper/insert/InsertBuilder.ts +12 -2
- package/src/mapper/insert/Inserter.ts +3 -3
- package/src/mapper/select/OrderByHelper.ts +2 -1
- package/src/mapper/select/RelationFetcher.ts +2 -2
- package/src/mapper/update/UpdateBuilder.ts +30 -7
- package/src/mapper/update/UpdateBuilderFactory.ts +2 -2
- package/src/mapper/update/Updater.ts +6 -11
- package/src/resolvers/GraphQlQueryAstFactory.ts +1 -2
- package/src/resolvers/MutationResolver.ts +12 -13
- package/src/resolvers/ReadResolver.ts +5 -9
- package/src/resolvers/ValidationResolver.ts +2 -4
- package/src/resolvers/index.ts +0 -1
- package/src/schema/CustomTypesProvider.ts +2 -27
- package/src/schema/MutationProvider.ts +4 -4
- package/src/schema/QueryProvider.ts +3 -3
- package/src/tsconfig.json +7 -21
- package/src/types.ts +2 -3
- package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -5
- package/tests/cases/integration/graphQlDb/insert/insertSequence.test.ts +2 -2
- package/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.ts +1 -1
- package/tests/cases/integration/graphQlDb/update/deferedConstraints.test.ts +9 -9
- package/tests/cases/integration/graphQlDb/update/failedDelete.test.ts +3 -3
- package/tests/cases/integration/graphQlDb/update/invalidInput.test.ts +2 -2
- package/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.ts +7 -7
- package/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.ts +7 -7
- package/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.ts +2 -2
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +3 -3
- package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +67 -0
- package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +6 -18
- package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +3 -4
- package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +3 -8
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +6 -18
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +3 -11
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +3 -8
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +3 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +3 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +15 -50
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +3 -6
- package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +3 -7
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +12 -32
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +3 -3
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +6 -20
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +3 -10
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +3 -9
- package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +6 -19
- package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +6 -8
- package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +9 -24
- package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +3 -7
- package/tests/cases/unit/orderbyHelper.test.ts +13 -0
- package/tests/src/test.ts +38 -15
- package/tests/tsconfig.json +3 -9
- package/dist/src/mapper/MapperContainer.d.ts +0 -18
- package/dist/src/mapper/MapperContainer.d.ts.map +0 -1
- package/dist/src/mapper/MapperContainer.js +0 -55
- package/dist/src/mapper/MapperContainer.js.map +0 -1
- package/dist/src/resolvers/ExecutionContainerFactory.d.ts +0 -24
- package/dist/src/resolvers/ExecutionContainerFactory.d.ts.map +0 -1
- package/dist/src/resolvers/ExecutionContainerFactory.js +0 -45
- package/dist/src/resolvers/ExecutionContainerFactory.js.map +0 -1
- package/src/mapper/MapperContainer.ts +0 -142
- package/src/resolvers/ExecutionContainerFactory.ts +0 -74
|
@@ -43,17 +43,10 @@ test('create', async () => {
|
|
|
43
43
|
response: { rows: [{ id: testUuid(1) }] },
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
sql: SQL`with "newData_" as
|
|
47
|
-
|
|
48
|
-
? :: uuid as "setting_id",
|
|
49
|
-
"root_"."id",
|
|
50
|
-
"root_"."name"
|
|
51
|
-
from "public"."site" as "root_"
|
|
52
|
-
where "root_"."id" = ?) update "public"."site"
|
|
53
|
-
set "setting_id" = "newData_"."setting_id" from "newData_"
|
|
54
|
-
where "site"."id" = "newData_"."id"`,
|
|
46
|
+
sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
|
|
47
|
+
update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
|
|
55
48
|
parameters: [testUuid(1), testUuid(2)],
|
|
56
|
-
response: {
|
|
49
|
+
response: { rows: [{ setting_id_old__: testUuid(99) }] },
|
|
57
50
|
},
|
|
58
51
|
]),
|
|
59
52
|
],
|
|
@@ -104,17 +97,10 @@ test('create - orphan removal', async () => {
|
|
|
104
97
|
response: { rows: [{ id: testUuid(1) }] },
|
|
105
98
|
},
|
|
106
99
|
{
|
|
107
|
-
sql: SQL`with "newData_" as
|
|
108
|
-
|
|
109
|
-
? :: uuid as "setting_id",
|
|
110
|
-
"root_"."id",
|
|
111
|
-
"root_"."name"
|
|
112
|
-
from "public"."site" as "root_"
|
|
113
|
-
where "root_"."id" = ?) update "public"."site"
|
|
114
|
-
set "setting_id" = "newData_"."setting_id" from "newData_"
|
|
115
|
-
where "site"."id" = "newData_"."id"`,
|
|
100
|
+
sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
|
|
101
|
+
update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
|
|
116
102
|
parameters: [testUuid(1), siteId],
|
|
117
|
-
response: {
|
|
103
|
+
response: { rows: [{ setting_id_old__: testUuid(99) }] },
|
|
118
104
|
},
|
|
119
105
|
{
|
|
120
106
|
sql: 'select "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?',
|
|
@@ -23,17 +23,10 @@ test('disconnect', async () => {
|
|
|
23
23
|
response: { rows: [{ id: testUuid(2) }] },
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
|
-
sql: SQL`with "newData_" as
|
|
27
|
-
|
|
28
|
-
? :: uuid as "setting_id",
|
|
29
|
-
"root_"."id",
|
|
30
|
-
"root_"."name"
|
|
31
|
-
from "public"."site" as "root_"
|
|
32
|
-
where "root_"."id" = ?) update "public"."site"
|
|
33
|
-
set "setting_id" = "newData_"."setting_id" from "newData_"
|
|
34
|
-
where "site"."id" = "newData_"."id"`,
|
|
26
|
+
sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
|
|
27
|
+
update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
|
|
35
28
|
parameters: [null, testUuid(2)],
|
|
36
|
-
response: {
|
|
29
|
+
response: { rows: [{ setting_id_old__: testUuid(99) }] },
|
|
37
30
|
},
|
|
38
31
|
]),
|
|
39
32
|
],
|
|
@@ -37,16 +37,10 @@ test('update', async () => {
|
|
|
37
37
|
response: { rows: [{ id: testUuid(1) }] },
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
sql: SQL`with "newData_" as
|
|
41
|
-
|
|
42
|
-
? :: text as "url",
|
|
43
|
-
"root_"."id"
|
|
44
|
-
from "public"."site_setting" as "root_"
|
|
45
|
-
where "root_"."id" = ?) update "public"."site_setting"
|
|
46
|
-
set "url" = "newData_"."url" from "newData_"
|
|
47
|
-
where "site_setting"."id" = "newData_"."id"`,
|
|
40
|
+
sql: SQL`with "newData_" as (select ? :: text as "url", "root_"."url" as "url_old__", "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?)
|
|
41
|
+
update "public"."site_setting" set "url" = "newData_"."url" from "newData_" where "site_setting"."id" = "newData_"."id" returning "url_old__"`,
|
|
48
42
|
parameters: ['http://mangoweb.cz', testUuid(1)],
|
|
49
|
-
response: {
|
|
43
|
+
response: { rows: [{ url_old__: 'https://google.com' }] },
|
|
50
44
|
},
|
|
51
45
|
]),
|
|
52
46
|
],
|
|
@@ -37,16 +37,10 @@ test('upsert - exists', async () => {
|
|
|
37
37
|
response: { rows: [{ id: testUuid(1) }] },
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
sql: SQL`with "newData_" as
|
|
41
|
-
|
|
42
|
-
? :: text as "url",
|
|
43
|
-
"root_"."id"
|
|
44
|
-
from "public"."site_setting" as "root_"
|
|
45
|
-
where "root_"."id" = ?) update "public"."site_setting"
|
|
46
|
-
set "url" = "newData_"."url" from "newData_"
|
|
47
|
-
where "site_setting"."id" = "newData_"."id"`,
|
|
40
|
+
sql: SQL`with "newData_" as (select ? :: text as "url", "root_"."url" as "url_old__", "root_"."id" from "public"."site_setting" as "root_" where "root_"."id" = ?)
|
|
41
|
+
update "public"."site_setting" set "url" = "newData_"."url" from "newData_" where "site_setting"."id" = "newData_"."id" returning "url_old__"`,
|
|
48
42
|
parameters: ['http://mangoweb.cz', testUuid(1)],
|
|
49
|
-
response: {
|
|
43
|
+
response: { rows: [{ url_old__: 'xxx' }] },
|
|
50
44
|
},
|
|
51
45
|
]),
|
|
52
46
|
],
|
|
@@ -97,17 +91,10 @@ test('upsert - not exists', async () => {
|
|
|
97
91
|
response: { rows: [{ id: testUuid(1) }] },
|
|
98
92
|
},
|
|
99
93
|
{
|
|
100
|
-
sql: SQL`with "newData_" as
|
|
101
|
-
|
|
102
|
-
? :: uuid as "setting_id",
|
|
103
|
-
"root_"."id",
|
|
104
|
-
"root_"."name"
|
|
105
|
-
from "public"."site" as "root_"
|
|
106
|
-
where "root_"."id" = ?) update "public"."site"
|
|
107
|
-
set "setting_id" = "newData_"."setting_id" from "newData_"
|
|
108
|
-
where "site"."id" = "newData_"."id"`,
|
|
94
|
+
sql: SQL`with "newData_" as (select ? :: uuid as "setting_id", "root_"."setting_id" as "setting_id_old__", "root_"."id", "root_"."name" from "public"."site" as "root_" where "root_"."id" = ?)
|
|
95
|
+
update "public"."site" set "setting_id" = "newData_"."setting_id" from "newData_" where "site"."id" = "newData_"."id" returning "setting_id_old__"`,
|
|
109
96
|
parameters: [testUuid(1), testUuid(2)],
|
|
110
|
-
response: {
|
|
97
|
+
response: { rows: [{ setting_id_old__: null }] },
|
|
111
98
|
},
|
|
112
99
|
]),
|
|
113
100
|
],
|
|
@@ -31,11 +31,10 @@ test('query portal', async () => {
|
|
|
31
31
|
parameters: [testUuid(1)],
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
sql: SQL`with "newData_" as
|
|
35
|
-
|
|
36
|
-
update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id"`,
|
|
34
|
+
sql: SQL`with "newData_" as (select ? :: text as "title", "root_"."title" as "title_old__", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
|
|
35
|
+
update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id" returning "title_old__"`,
|
|
37
36
|
parameters: ['Hello', testUuid(1)],
|
|
38
|
-
response: {
|
|
37
|
+
response: { rows: [{ title_old__: 'Hi' }] },
|
|
39
38
|
},
|
|
40
39
|
]),
|
|
41
40
|
{
|
|
@@ -90,11 +89,10 @@ test('transaction with query portal', async () => {
|
|
|
90
89
|
parameters: [testUuid(1)],
|
|
91
90
|
},
|
|
92
91
|
{
|
|
93
|
-
sql: SQL`with "newData_" as
|
|
94
|
-
|
|
95
|
-
update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id"`,
|
|
92
|
+
sql: SQL`with "newData_" as (select ? :: text as "title", "root_"."title" as "title_old__", "root_"."id" from "public"."post" as "root_" where "root_"."id" = ?)
|
|
93
|
+
update "public"."post" set "title" = "newData_"."title" from "newData_" where "post"."id" = "newData_"."id" returning "title_old__"`,
|
|
96
94
|
parameters: ['Hello', testUuid(1)],
|
|
97
|
-
response: {
|
|
95
|
+
response: { rows: [{ title_old__: 'Hi' }] },
|
|
98
96
|
},
|
|
99
97
|
{
|
|
100
98
|
sql: SQL`select "root_"."id" as "root_id"
|
|
@@ -41,15 +41,10 @@ test('executes in a transaction', async () => {
|
|
|
41
41
|
response: { rows: [{ id: testUuid(1) }] },
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
sql: SQL`with "newData_" as (select
|
|
45
|
-
|
|
46
|
-
"root_"."id"
|
|
47
|
-
from "public"."author" as "root_"
|
|
48
|
-
where "root_"."id" = ?) update "public"."author"
|
|
49
|
-
set "name" = "newData_"."name" from "newData_"
|
|
50
|
-
where "author"."id" = "newData_"."id"`,
|
|
44
|
+
sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
|
|
45
|
+
update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
|
|
51
46
|
parameters: ['John', testUuid(1)],
|
|
52
|
-
response: {
|
|
47
|
+
response: { rows: [{ name_old__: 'Jack' }] },
|
|
53
48
|
},
|
|
54
49
|
{
|
|
55
50
|
sql: SQL`select "root_"."id" as "root_id"
|
|
@@ -66,15 +61,10 @@ test('executes in a transaction', async () => {
|
|
|
66
61
|
response: { rows: [{ id: testUuid(2) }] },
|
|
67
62
|
},
|
|
68
63
|
{
|
|
69
|
-
sql: SQL`with "newData_" as (select
|
|
70
|
-
|
|
71
|
-
"root_"."id"
|
|
72
|
-
from "public"."author" as "root_"
|
|
73
|
-
where "root_"."id" = ?) update "public"."author"
|
|
74
|
-
set "name" = "newData_"."name" from "newData_"
|
|
75
|
-
where "author"."id" = "newData_"."id"`,
|
|
64
|
+
sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
|
|
65
|
+
update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
|
|
76
66
|
parameters: ['Jack', testUuid(2)],
|
|
77
|
-
response: {
|
|
67
|
+
response: { rows: [{ name_old__: 'Jack' }] },
|
|
78
68
|
},
|
|
79
69
|
{
|
|
80
70
|
sql: SQL`select "root_"."id" as "root_id"
|
|
@@ -146,15 +136,10 @@ test('executes fails a transaction', async () => {
|
|
|
146
136
|
response: { rows: [{ id: testUuid(1) }] },
|
|
147
137
|
},
|
|
148
138
|
{
|
|
149
|
-
sql: SQL`with "newData_" as (select
|
|
150
|
-
|
|
151
|
-
"root_"."id"
|
|
152
|
-
from "public"."author" as "root_"
|
|
153
|
-
where "root_"."id" = ?) update "public"."author"
|
|
154
|
-
set "name" = "newData_"."name" from "newData_"
|
|
155
|
-
where "author"."id" = "newData_"."id"`,
|
|
139
|
+
sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id" from "public"."author" as "root_" where "root_"."id" = ?)
|
|
140
|
+
update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
|
|
156
141
|
parameters: ['John', testUuid(1)],
|
|
157
|
-
response: {
|
|
142
|
+
response: { rows: [{ name_old__: 'Jack' }] },
|
|
158
143
|
},
|
|
159
144
|
{
|
|
160
145
|
sql: SQL`select "root_"."id" as "root_id"
|
|
@@ -88,14 +88,10 @@ test('upsert author (exists)', async () => {
|
|
|
88
88
|
response: { rows: [{ id: testUuid(2) }] },
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
|
-
sql: SQL`
|
|
92
|
-
|
|
93
|
-
(select ? :: text as "name", "root_"."id", "root_"."slug" from "public"."author" as "root_" where "root_"."id" = ?)
|
|
94
|
-
update "public"."author" set "name" = "newData_"."name"
|
|
95
|
-
from "newData_" where "author"."id" = "newData_"."id"
|
|
96
|
-
`,
|
|
91
|
+
sql: SQL`with "newData_" as (select ? :: text as "name", "root_"."name" as "name_old__", "root_"."id", "root_"."slug" from "public"."author" as "root_" where "root_"."id" = ?)
|
|
92
|
+
update "public"."author" set "name" = "newData_"."name" from "newData_" where "author"."id" = "newData_"."id" returning "name_old__"`,
|
|
97
93
|
parameters: ['John Doe', testUuid(2)],
|
|
98
|
-
response: {
|
|
94
|
+
response: { rows: [{ name_old__: 'Foo' }] },
|
|
99
95
|
},
|
|
100
96
|
{
|
|
101
97
|
sql: SQL`select "root_"."id" as "root_id" from "public"."author" as "root_" where "root_"."slug" = ?`,
|
|
@@ -68,4 +68,17 @@ describe('order by helper', () => {
|
|
|
68
68
|
const newNode = OrderByHelper.appendDefaultOrderBy(entity, objectNode, [])
|
|
69
69
|
assert.isUndefined(newNode.args.orderBy)
|
|
70
70
|
})
|
|
71
|
+
|
|
72
|
+
it('set default order by without defined order', () => {
|
|
73
|
+
const objectNode = new ObjectNode('test', 'test', [], {}, {}, [])
|
|
74
|
+
|
|
75
|
+
const newNode = OrderByHelper.appendDefaultOrderBy({
|
|
76
|
+
...entity,
|
|
77
|
+
orderBy: [{ path: ['lorem', 'ipsum'], direction: Input.OrderDirection.desc }],
|
|
78
|
+
}, objectNode, undefined)
|
|
79
|
+
assert.deepStrictEqual(newNode.args.orderBy, [
|
|
80
|
+
{ lorem: { ipsum: Input.OrderDirection.desc } },
|
|
81
|
+
{ id: Input.OrderDirection.asc },
|
|
82
|
+
])
|
|
83
|
+
})
|
|
71
84
|
})
|
package/tests/src/test.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Acl, Model, Schema, Validation } from '@contember/schema'
|
|
2
|
-
import { Authorizator,
|
|
2
|
+
import { Authorizator, GraphQlSchemaBuilderFactory, ExecutionContainerFactory } from '../../src'
|
|
3
3
|
import { AllowAllPermissionFactory, emptySchema } from '@contember/schema-utils'
|
|
4
4
|
import { executeGraphQlTest } from './testGraphql'
|
|
5
5
|
import { Client } from '@contember/database'
|
|
6
6
|
import { createConnectionMock } from '@contember/database-tester'
|
|
7
7
|
import { createUuidGenerator } from '@contember/engine-api-tester'
|
|
8
|
-
import { getArgumentValues } from 'graphql'
|
|
9
8
|
import { SQL } from './tags'
|
|
9
|
+
import { testUuid } from './testUuid'
|
|
10
10
|
|
|
11
11
|
export interface SqlQuery {
|
|
12
12
|
sql: string
|
|
@@ -36,6 +36,19 @@ const SQL_REPEATABLE_READ = {
|
|
|
36
36
|
response: {},
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export const systemVariableQueries: SqlQuery[] = [
|
|
40
|
+
{
|
|
41
|
+
sql: 'select set_config(?, ?, false)',
|
|
42
|
+
parameters: ['tenant.identity_id', '00000000-0000-0000-0000-000000000000'],
|
|
43
|
+
response: {},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
sql: 'select set_config(?, ?, false)',
|
|
47
|
+
parameters: ['system.transaction_id', testUuid(1)],
|
|
48
|
+
response: {},
|
|
49
|
+
},
|
|
50
|
+
]
|
|
51
|
+
|
|
39
52
|
export const sqlTransaction = (executes: SqlQuery[]): SqlQuery[] => {
|
|
40
53
|
return [
|
|
41
54
|
SQL_BEGIN,
|
|
@@ -72,23 +85,33 @@ export const execute = async (test: Test) => {
|
|
|
72
85
|
|
|
73
86
|
const db = new Client(connection, 'public', {})
|
|
74
87
|
const schema: Schema = { ...emptySchema, model: test.schema, validation: test.validation || {} }
|
|
88
|
+
const providers = {
|
|
89
|
+
uuid: createUuidGenerator('a456', 0),
|
|
90
|
+
now: () => new Date('2019-09-04 12:00'),
|
|
91
|
+
}
|
|
92
|
+
const executionContainerFactory = new ExecutionContainerFactory(providers)
|
|
93
|
+
executionContainerFactory.hooks.push(it => {
|
|
94
|
+
return it.setupService('mapperFactory', mapperFactory => {
|
|
95
|
+
mapperFactory.hooks.push(mapper => {
|
|
96
|
+
(mapper as any).systemVariablesSetupDone = Promise.resolve(true)
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
})
|
|
75
100
|
await executeGraphQlTest({
|
|
76
101
|
context: {
|
|
77
102
|
db: db,
|
|
78
103
|
identityVariables: test.variables || {},
|
|
79
|
-
executionContainer:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
identityVariables: test.variables || {},
|
|
91
|
-
}),
|
|
104
|
+
executionContainer: executionContainerFactory
|
|
105
|
+
.create({
|
|
106
|
+
permissions,
|
|
107
|
+
schema: { ...schema, id: 1 },
|
|
108
|
+
db,
|
|
109
|
+
identityVariables: test.variables || {},
|
|
110
|
+
identityId: '00000000-0000-0000-0000-000000000000',
|
|
111
|
+
systemSchema: 'system',
|
|
112
|
+
stage: { id: '00000000-0000-0000-0000-000000000000', slug: 'live' },
|
|
113
|
+
project: { slug: 'test' },
|
|
114
|
+
}),
|
|
92
115
|
timer: (label: any, cb: any) => cb(),
|
|
93
116
|
},
|
|
94
117
|
query: test.query,
|
package/tests/tsconfig.json
CHANGED
|
@@ -5,14 +5,8 @@
|
|
|
5
5
|
"esModuleInterop": true
|
|
6
6
|
},
|
|
7
7
|
"references": [
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
{
|
|
12
|
-
"path": "../../engine-api-tester/src"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
"path": "../../schema-definition/src"
|
|
16
|
-
}
|
|
8
|
+
{ "path": "../src" },
|
|
9
|
+
{ "path": "../../engine-api-tester/src" },
|
|
10
|
+
{ "path": "../../schema-definition/src" }
|
|
17
11
|
]
|
|
18
12
|
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Mapper, MapperFactory } from '../mapper';
|
|
2
|
-
import { Acl, Schema } from '@contember/schema';
|
|
3
|
-
import { Client } from '@contember/database';
|
|
4
|
-
import { Providers } from '@contember/schema-utils';
|
|
5
|
-
declare type MapperContainerArgs = {
|
|
6
|
-
schema: Schema;
|
|
7
|
-
identityVariables: Acl.VariablesMap;
|
|
8
|
-
permissions: Acl.Permissions;
|
|
9
|
-
providers: Providers;
|
|
10
|
-
};
|
|
11
|
-
export interface MapperContainer {
|
|
12
|
-
mapperFactory: MapperFactory;
|
|
13
|
-
}
|
|
14
|
-
export declare const createMapperContainer: ({ permissions, schema, identityVariables, providers }: MapperContainerArgs) => import("@contember/dic").Container<{
|
|
15
|
-
mapperFactory: (db: Client) => Mapper;
|
|
16
|
-
}>;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=MapperContainer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MapperContainer.d.ts","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"AAYA,OAAO,EAON,MAAM,EACN,aAAa,EAOb,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,GAAG,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAoC,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,aAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAA;IACnC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAA;IAC5B,SAAS,EAAE,SAAS,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,eAAe;IAC/B,aAAa,EAAE,aAAa,CAAA;CAC5B;AAED,eAAO,MAAM,qBAAqB,0DAA2D,mBAAmB;wBA6EjG,MAAM;EAgBpB,CAAA"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMapperContainer = void 0;
|
|
4
|
-
const acl_1 = require("../acl");
|
|
5
|
-
const select_1 = require("./select");
|
|
6
|
-
const inputProcessing_1 = require("../inputProcessing");
|
|
7
|
-
const extensions_1 = require("../extensions");
|
|
8
|
-
const mapper_1 = require("../mapper");
|
|
9
|
-
const dic_1 = require("@contember/dic");
|
|
10
|
-
const PaginatedHasManyExecutionHandler_1 = require("../extensions/paginatedHasMany/PaginatedHasManyExecutionHandler");
|
|
11
|
-
const PaginatedHasManyFieldProvider_1 = require("../extensions/paginatedHasMany/PaginatedHasManyFieldProvider");
|
|
12
|
-
const WhereOptimizer_1 = require("./select/optimizer/WhereOptimizer");
|
|
13
|
-
const ConditionOptimizer_1 = require("./select/optimizer/ConditionOptimizer");
|
|
14
|
-
const createMapperContainer = ({ permissions, schema, identityVariables, providers }) => {
|
|
15
|
-
const builder = new dic_1.Builder({})
|
|
16
|
-
.addService('providers', () => providers)
|
|
17
|
-
.addService('variableInjector', () => new acl_1.VariableInjector(schema.model, identityVariables))
|
|
18
|
-
.addService('predicateFactory', ({ variableInjector }) => new acl_1.PredicateFactory(permissions, schema.model, variableInjector))
|
|
19
|
-
.addService('predicatesInjector', ({ predicateFactory }) => new acl_1.PredicatesInjector(schema.model, predicateFactory))
|
|
20
|
-
.addService('joinBuilder', () => new select_1.JoinBuilder(schema.model))
|
|
21
|
-
.addService('conditionBuilder', () => new select_1.ConditionBuilder())
|
|
22
|
-
.addService('pathFactory', () => new mapper_1.PathFactory())
|
|
23
|
-
.addService('whereOptimized', () => new WhereOptimizer_1.WhereOptimizer(schema.model, new ConditionOptimizer_1.ConditionOptimizer()))
|
|
24
|
-
.addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized }) => new select_1.WhereBuilder(schema.model, joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema.settings.useExistsInHasManyFilter === true))
|
|
25
|
-
.addService('orderByBuilder', ({ joinBuilder }) => new select_1.OrderByBuilder(schema.model, joinBuilder))
|
|
26
|
-
.addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) => new select_1.RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))
|
|
27
|
-
.addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, whereBuilder }) => new select_1.FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, whereBuilder))
|
|
28
|
-
.addService('metaHandler', ({ whereBuilder, predicateFactory }) => new select_1.MetaHandler(whereBuilder, predicateFactory))
|
|
29
|
-
.addService('uniqueWhereExpander', () => new inputProcessing_1.UniqueWhereExpander(schema.model))
|
|
30
|
-
.addService('hasManyToHasOneReducer', ({ uniqueWhereExpander }) => new extensions_1.HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))
|
|
31
|
-
.addService('paginatedHasManyExecutionHandler', ({ relationFetcher }) => new PaginatedHasManyExecutionHandler_1.PaginatedHasManyExecutionHandler(schema.model, relationFetcher))
|
|
32
|
-
.addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
|
|
33
|
-
[extensions_1.HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,
|
|
34
|
-
[PaginatedHasManyFieldProvider_1.PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,
|
|
35
|
-
}))
|
|
36
|
-
.addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory }) => new (class {
|
|
37
|
-
create(qb, hydrator, relationPath) {
|
|
38
|
-
return new mapper_1.SelectBuilder(schema.model, whereBuilder, orderByBuilder, metaHandler, qb, hydrator, fieldsVisitorFactory, selectHandlers, pathFactory, relationPath, predicateFactory);
|
|
39
|
-
}
|
|
40
|
-
})())
|
|
41
|
-
.addService('insertBuilderFactory', ({ whereBuilder, pathFactory, predicateFactory }) => new mapper_1.InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))
|
|
42
|
-
.addService('updateBuilderFactory', ({ whereBuilder, pathFactory, predicateFactory }) => new mapper_1.UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))
|
|
43
|
-
.addService('connectJunctionHandler', () => new mapper_1.JunctionConnectHandler())
|
|
44
|
-
.addService('disconnectJunctionHandler', ({}) => new mapper_1.JunctionDisconnectHandler())
|
|
45
|
-
.addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory }) => new mapper_1.JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))
|
|
46
|
-
.addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory }) => new mapper_1.DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))
|
|
47
|
-
.addService('updater', ({ predicateFactory, updateBuilderFactory }) => new mapper_1.Updater(schema.model, predicateFactory, updateBuilderFactory))
|
|
48
|
-
.addService('inserter', ({ insertBuilderFactory, providers }) => new mapper_1.Inserter(schema.model, insertBuilderFactory, providers))
|
|
49
|
-
.addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory }) => {
|
|
50
|
-
return (db) => new mapper_1.Mapper(schema.model, db, predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory);
|
|
51
|
-
});
|
|
52
|
-
return builder.build().pick('mapperFactory');
|
|
53
|
-
};
|
|
54
|
-
exports.createMapperContainer = createMapperContainer;
|
|
55
|
-
//# sourceMappingURL=MapperContainer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MapperContainer.js","sourceRoot":"","sources":["../../../src/mapper/MapperContainer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Container } from '@contember/dic';
|
|
2
|
-
import { Acl, Schema } from '@contember/schema';
|
|
3
|
-
import { Context } from '../types';
|
|
4
|
-
import { ReadResolver } from './ReadResolver';
|
|
5
|
-
import { MutationResolver } from './MutationResolver';
|
|
6
|
-
import { Client } from '@contember/database';
|
|
7
|
-
import { ValidationResolver } from './ValidationResolver';
|
|
8
|
-
import { Providers } from '@contember/schema-utils';
|
|
9
|
-
import { getArgumentValues } from 'graphql';
|
|
10
|
-
export interface ExecutionContainer {
|
|
11
|
-
readResolver: ReadResolver;
|
|
12
|
-
mutationResolver: MutationResolver;
|
|
13
|
-
validationResolver: ValidationResolver;
|
|
14
|
-
}
|
|
15
|
-
export declare class ExecutionContainerFactory {
|
|
16
|
-
private readonly schema;
|
|
17
|
-
private readonly permissions;
|
|
18
|
-
private readonly providers;
|
|
19
|
-
private readonly argumentValuesResolver;
|
|
20
|
-
private readonly setupSystemVariables;
|
|
21
|
-
constructor(schema: Schema, permissions: Acl.Permissions, providers: Providers, argumentValuesResolver: typeof getArgumentValues, setupSystemVariables: (db: Client) => Promise<void>);
|
|
22
|
-
create(context: Pick<Context, 'db' | 'identityVariables'>): Container<ExecutionContainer>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=ExecutionContainerFactory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContainerFactory.d.ts","sourceRoot":"","sources":["../../../src/resolvers/ExecutionContainerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAS5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAG3C,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;CACtC;AAED,qBAAa,yBAAyB;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAJpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,GAAG,CAAC,WAAW,EAC5B,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,OAAO,iBAAiB,EAChD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;IAG9D,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC;CAsChG"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExecutionContainerFactory = void 0;
|
|
4
|
-
const dic_1 = require("@contember/dic");
|
|
5
|
-
const ReadResolver_1 = require("./ReadResolver");
|
|
6
|
-
const MutationResolver_1 = require("./MutationResolver");
|
|
7
|
-
const input_validation_1 = require("../input-validation");
|
|
8
|
-
const ValidationResolver_1 = require("./ValidationResolver");
|
|
9
|
-
const GraphQlQueryAstFactory_1 = require("./GraphQlQueryAstFactory");
|
|
10
|
-
const mapper_1 = require("../mapper");
|
|
11
|
-
class ExecutionContainerFactory {
|
|
12
|
-
constructor(schema, permissions, providers, argumentValuesResolver, setupSystemVariables) {
|
|
13
|
-
this.schema = schema;
|
|
14
|
-
this.permissions = permissions;
|
|
15
|
-
this.providers = providers;
|
|
16
|
-
this.argumentValuesResolver = argumentValuesResolver;
|
|
17
|
-
this.setupSystemVariables = setupSystemVariables;
|
|
18
|
-
}
|
|
19
|
-
create(context) {
|
|
20
|
-
const mapperContainer = (0, mapper_1.createMapperContainer)({
|
|
21
|
-
permissions: this.permissions,
|
|
22
|
-
identityVariables: context.identityVariables,
|
|
23
|
-
providers: this.providers,
|
|
24
|
-
schema: this.schema,
|
|
25
|
-
});
|
|
26
|
-
const innerDic = new dic_1.Builder({})
|
|
27
|
-
.addService('db', () => context.db)
|
|
28
|
-
.addService('providers', () => this.providers)
|
|
29
|
-
.addService('mapperFactory', () => mapperContainer.mapperFactory)
|
|
30
|
-
.addService('queryAstFactory', () => new GraphQlQueryAstFactory_1.GraphQlQueryAstFactory(this.argumentValuesResolver))
|
|
31
|
-
.addService('readResolver', ({ db, mapperFactory, queryAstFactory }) => new ReadResolver_1.ReadResolver(db, mapperFactory, queryAstFactory))
|
|
32
|
-
.addService('validationDependencyCollector', () => new input_validation_1.DependencyCollector())
|
|
33
|
-
.addService('validationQueryAstFactory', () => new input_validation_1.QueryAstFactory(this.schema.model))
|
|
34
|
-
.addService('dataSelector', ({ validationQueryAstFactory }) => new input_validation_1.ValidationDataSelector(this.schema.model, validationQueryAstFactory))
|
|
35
|
-
.addService('columnValueResolver', ({ providers }) => new input_validation_1.ColumnValueResolver(providers))
|
|
36
|
-
.addService('entityRulesResolver', () => new input_validation_1.EntityRulesResolver(this.schema.validation, this.schema.model))
|
|
37
|
-
.addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector }) => new input_validation_1.InputPreValidator(this.schema.model, entityRulesResolver, columnValueResolver, dataSelector))
|
|
38
|
-
.addService('mutationResolver', ({ db, mapperFactory, inputPreValidator, queryAstFactory }) => new MutationResolver_1.MutationResolver(this.schema.model, db, mapperFactory, this.setupSystemVariables, inputPreValidator, queryAstFactory))
|
|
39
|
-
.addService('validationResolver', ({ inputPreValidator, db, mapperFactory }) => new ValidationResolver_1.ValidationResolver(db, mapperFactory, inputPreValidator))
|
|
40
|
-
.build();
|
|
41
|
-
return innerDic.pick('readResolver', 'mutationResolver', 'validationResolver');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.ExecutionContainerFactory = ExecutionContainerFactory;
|
|
45
|
-
//# sourceMappingURL=ExecutionContainerFactory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionContainerFactory.js","sourceRoot":"","sources":["../../../src/resolvers/ExecutionContainerFactory.ts"],"names":[],"mappings":"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"}
|