@contember/engine-content-api 2.0.0-alpha.20 → 2.0.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +1 -1
- package/dist/development/index.js +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.js +1 -1
- package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
- package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +10 -10
- package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/CreateInputVisitor.js +10 -10
- package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
- package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js +13 -13
- package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/development/src/mapper/MutationProcessorHelper.cjs +10 -2
- package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/development/src/mapper/MutationProcessorHelper.js +10 -2
- package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/development/src/mapper/Result.cjs +10 -27
- package/dist/development/src/mapper/Result.cjs.map +1 -1
- package/dist/development/src/mapper/Result.js +10 -27
- package/dist/development/src/mapper/Result.js.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilder.cjs +1 -13
- package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/insert/InsertBuilder.js +1 -13
- package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.cjs +43 -21
- package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/development/src/mapper/insert/Inserter.js +45 -23
- package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
- package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
- package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
- package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
- package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
- package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
- package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
- package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.cjs +2 -14
- package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/development/src/mapper/update/UpdateBuilder.js +2 -14
- package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
- package/dist/development/src/mapper/update/Updater.cjs +45 -17
- package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/development/src/mapper/update/Updater.js +47 -19
- package/dist/development/src/mapper/update/Updater.js.map +1 -1
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
- package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
- package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
- package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
- package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
- package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
- package/dist/development/src/resolvers/MutationResolver.cjs +1 -1
- package/dist/development/src/resolvers/MutationResolver.js +1 -1
- package/dist/production/index.cjs +1 -1
- package/dist/production/index.js +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.js +1 -1
- package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
- package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +10 -10
- package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/CreateInputVisitor.js +10 -10
- package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
- package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js +13 -13
- package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
- package/dist/production/src/mapper/MutationProcessorHelper.cjs +10 -2
- package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
- package/dist/production/src/mapper/MutationProcessorHelper.js +10 -2
- package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
- package/dist/production/src/mapper/Result.cjs +10 -27
- package/dist/production/src/mapper/Result.cjs.map +1 -1
- package/dist/production/src/mapper/Result.js +10 -27
- package/dist/production/src/mapper/Result.js.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilder.cjs +1 -13
- package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/insert/InsertBuilder.js +1 -13
- package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.cjs +43 -21
- package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
- package/dist/production/src/mapper/insert/Inserter.js +45 -23
- package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
- package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
- package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
- package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
- package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
- package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
- package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
- package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.cjs +2 -14
- package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
- package/dist/production/src/mapper/update/UpdateBuilder.js +2 -14
- package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
- package/dist/production/src/mapper/update/Updater.cjs +45 -17
- package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
- package/dist/production/src/mapper/update/Updater.js +47 -19
- package/dist/production/src/mapper/update/Updater.js.map +1 -1
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
- package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
- package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
- package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
- package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
- package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
- package/dist/production/src/resolvers/MutationResolver.cjs +1 -1
- package/dist/production/src/resolvers/MutationResolver.js +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
- package/dist/types/inputProcessing/CreateInputVisitor.d.ts +8 -8
- package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts +8 -8
- package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
- package/dist/types/mapper/MutationProcessorHelper.d.ts +2 -2
- package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
- package/dist/types/mapper/Result.d.ts +11 -5
- package/dist/types/mapper/Result.d.ts.map +1 -1
- package/dist/types/mapper/insert/InsertBuilder.d.ts +3 -7
- package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
- package/dist/types/mapper/insert/Inserter.d.ts +0 -1
- package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +11 -8
- package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +24 -0
- package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +23 -0
- package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts +26 -0
- package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +29 -0
- package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts +24 -0
- package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts +10 -7
- package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
- package/dist/types/mapper/update/UpdateBuilder.d.ts +2 -6
- package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
- package/dist/types/mapper/update/Updater.d.ts +0 -1
- package/dist/types/mapper/update/Updater.d.ts.map +1 -1
- package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +46 -0
- package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +40 -0
- package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +46 -0
- package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.d.ts +17 -13
- package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/mapper/{relations → update/relations}/OneHasOneOwningUpdateInputProcessor.d.ts +19 -16
- package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/src/input-validation/preValidation/InputPreValidator.ts +3 -5
- package/src/inputProcessing/CreateInputVisitor.ts +14 -14
- package/src/inputProcessing/UpdateInputVisitor.ts +17 -17
- package/src/mapper/MutationProcessorHelper.ts +16 -8
- package/src/mapper/Result.ts +11 -47
- package/src/mapper/insert/InsertBuilder.ts +8 -22
- package/src/mapper/insert/Inserter.ts +53 -40
- package/src/mapper/insert/SqlCreateInputProcessor.ts +35 -88
- package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +59 -0
- package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +57 -0
- package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +50 -0
- package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +91 -0
- package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +87 -0
- package/src/mapper/update/SqlUpdateInputProcessor.ts +48 -46
- package/src/mapper/update/UpdateBuilder.ts +9 -23
- package/src/mapper/update/Updater.ts +53 -34
- package/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts +116 -0
- package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +125 -0
- package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +111 -0
- package/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.ts +93 -73
- package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +243 -0
- package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +8 -8
- package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +4 -4
- package/dist/development/src/mapper/DataManipulationBuilder.cjs +0 -5
- package/dist/development/src/mapper/DataManipulationBuilder.cjs.map +0 -1
- package/dist/development/src/mapper/DataManipulationBuilder.js +0 -5
- package/dist/development/src/mapper/DataManipulationBuilder.js.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
- package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
- package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
- package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
- package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
- package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/DataManipulationBuilder.cjs +0 -5
- package/dist/production/src/mapper/DataManipulationBuilder.cjs.map +0 -1
- package/dist/production/src/mapper/DataManipulationBuilder.js +0 -5
- package/dist/production/src/mapper/DataManipulationBuilder.js.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
- package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
- package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
- package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
- package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
- package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
- package/dist/types/mapper/DataManipulationBuilder.d.ts +0 -7
- package/dist/types/mapper/DataManipulationBuilder.d.ts.map +0 -1
- package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts +0 -32
- package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts +0 -32
- package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts +0 -29
- package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +0 -21
- package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +0 -21
- package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +0 -1
- package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +0 -1
- package/src/mapper/DataManipulationBuilder.ts +0 -12
- package/src/mapper/relations/ManyHasManyInputProcessor.ts +0 -108
- package/src/mapper/relations/ManyHasOneInputProcessor.ts +0 -158
- package/src/mapper/relations/OneHasManyInputProcessor.ts +0 -101
- package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +0 -99
- package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +0 -92
- package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +0 -253
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { UpdateInputProcessor } from '../../inputProcessing'
|
|
2
|
-
import { Input, Model } from '@contember/schema'
|
|
3
|
-
import {
|
|
4
|
-
ConstraintType,
|
|
5
|
-
getInsertPrimary,
|
|
6
|
-
MutationConstraintViolationError,
|
|
7
|
-
MutationEntryNotFoundError,
|
|
8
|
-
MutationNothingToDo,
|
|
9
|
-
MutationResultList,
|
|
10
|
-
NothingToDoReason,
|
|
11
|
-
} from '../Result'
|
|
12
|
-
import { Mapper } from '../Mapper'
|
|
13
|
-
import { AbortDataManipulation, DataManipulationBuilder } from '../DataManipulationBuilder'
|
|
14
|
-
import { UpdateBuilder } from '../update'
|
|
15
|
-
|
|
16
|
-
export class ManyHasOneInputProcessor {
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
19
|
-
private readonly mapper: Mapper,
|
|
20
|
-
) {
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public async connect(
|
|
24
|
-
{ targetEntity, relation, input }: Model.ManyHasOneContext & { input: Input.UniqueWhere },
|
|
25
|
-
builder: DataManipulationBuilder,
|
|
26
|
-
) {
|
|
27
|
-
const result: MutationResultList = []
|
|
28
|
-
await builder.addFieldValue(relation.name, async () => {
|
|
29
|
-
const value = await this.mapper.getPrimaryValue(targetEntity, input)
|
|
30
|
-
if (!value) {
|
|
31
|
-
result.push(new MutationEntryNotFoundError([], input))
|
|
32
|
-
return AbortDataManipulation
|
|
33
|
-
}
|
|
34
|
-
return value
|
|
35
|
-
})
|
|
36
|
-
return result
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public async create(
|
|
40
|
-
{ relation, targetEntity, input }: Model.ManyHasOneContext & { input: Input.CreateDataInput },
|
|
41
|
-
builder: DataManipulationBuilder,
|
|
42
|
-
) {
|
|
43
|
-
const result: MutationResultList = []
|
|
44
|
-
await builder.addFieldValue(relation.name, async () => {
|
|
45
|
-
const insertResult = await this.mapper.insert(targetEntity, input)
|
|
46
|
-
const value = getInsertPrimary(insertResult)
|
|
47
|
-
if (!value) {
|
|
48
|
-
result.push(...insertResult)
|
|
49
|
-
return AbortDataManipulation
|
|
50
|
-
}
|
|
51
|
-
return value
|
|
52
|
-
})
|
|
53
|
-
return result
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public async connectOrCreate(
|
|
57
|
-
{ input: { connect, create }, relation, targetEntity }: Model.ManyHasOneContext & { input: Input.ConnectOrCreateInput },
|
|
58
|
-
builder: DataManipulationBuilder,
|
|
59
|
-
) {
|
|
60
|
-
const result: MutationResultList = []
|
|
61
|
-
await builder.addFieldValue(relation.name, async () => {
|
|
62
|
-
const value = await this.mapper.getPrimaryValue(targetEntity, connect)
|
|
63
|
-
if (value) {
|
|
64
|
-
return value
|
|
65
|
-
}
|
|
66
|
-
const insertPromise = this.mapper.insert(targetEntity, create)
|
|
67
|
-
const insertResult = await insertPromise
|
|
68
|
-
const primary = getInsertPrimary(insertResult)
|
|
69
|
-
if (!primary) {
|
|
70
|
-
result.push(...insertResult)
|
|
71
|
-
return AbortDataManipulation
|
|
72
|
-
}
|
|
73
|
-
return primary
|
|
74
|
-
})
|
|
75
|
-
return result
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
public async update(
|
|
79
|
-
{ entity, relation, targetEntity, targetRelation, input }: Model.ManyHasOneContext & { input: Input.UpdateDataInput },
|
|
80
|
-
primary: Input.PrimaryValue,
|
|
81
|
-
) {
|
|
82
|
-
const inversePrimary = await this.mapper.selectField(
|
|
83
|
-
entity,
|
|
84
|
-
{ [entity.primary]: primary },
|
|
85
|
-
relation.name,
|
|
86
|
-
)
|
|
87
|
-
if (!inversePrimary) {
|
|
88
|
-
return [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]
|
|
89
|
-
}
|
|
90
|
-
return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
public async upsert(
|
|
94
|
-
{ entity, relation, targetEntity, input: { create, update } }: Model.ManyHasOneContext & { input: UpdateInputProcessor.UpsertInput },
|
|
95
|
-
builder: DataManipulationBuilder,
|
|
96
|
-
primary: Input.PrimaryValue,
|
|
97
|
-
) {
|
|
98
|
-
const select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name)
|
|
99
|
-
|
|
100
|
-
const result: MutationResultList = []
|
|
101
|
-
// addFieldValue has to be called immediately
|
|
102
|
-
await builder.addFieldValue(relation.name, async () => {
|
|
103
|
-
const primary = await select
|
|
104
|
-
if (primary) {
|
|
105
|
-
return undefined
|
|
106
|
-
}
|
|
107
|
-
const insertResult = await this.mapper.insert(targetEntity, create)
|
|
108
|
-
const insertPrimary = getInsertPrimary(insertResult)
|
|
109
|
-
if (insertPrimary) {
|
|
110
|
-
return insertPrimary
|
|
111
|
-
}
|
|
112
|
-
result.push(...insertResult)
|
|
113
|
-
return AbortDataManipulation
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
const inversePrimary = await select
|
|
117
|
-
if (inversePrimary) {
|
|
118
|
-
return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update)
|
|
119
|
-
} else {
|
|
120
|
-
return result
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
public async disconnect(
|
|
125
|
-
{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },
|
|
126
|
-
builder: DataManipulationBuilder,
|
|
127
|
-
) {
|
|
128
|
-
if (!relation.nullable) {
|
|
129
|
-
return [new MutationConstraintViolationError([], ConstraintType.notNull)]
|
|
130
|
-
}
|
|
131
|
-
builder.addFieldValue(relation.name, null)
|
|
132
|
-
return []
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
public async delete(
|
|
136
|
-
{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },
|
|
137
|
-
builder: UpdateBuilder,
|
|
138
|
-
primary: Input.PrimaryValue,
|
|
139
|
-
) {
|
|
140
|
-
if (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {
|
|
141
|
-
return [new MutationConstraintViolationError([], ConstraintType.notNull)]
|
|
142
|
-
}
|
|
143
|
-
if (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {
|
|
144
|
-
// eslint-disable-next-line no-console
|
|
145
|
-
console.error(
|
|
146
|
-
'[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version.',
|
|
147
|
-
)
|
|
148
|
-
builder.addFieldValue(relation.name, null)
|
|
149
|
-
}
|
|
150
|
-
const inversePrimary = await this.mapper.selectField(
|
|
151
|
-
entity,
|
|
152
|
-
{ [entity.primary]: primary },
|
|
153
|
-
relation.name,
|
|
154
|
-
)
|
|
155
|
-
await builder.update
|
|
156
|
-
return await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary })
|
|
157
|
-
}
|
|
158
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { UpdateInputProcessor } from '../../inputProcessing'
|
|
2
|
-
import { Input, Model } from '@contember/schema'
|
|
3
|
-
import { Mapper } from '../Mapper'
|
|
4
|
-
import { MutationResultType } from '../Result'
|
|
5
|
-
|
|
6
|
-
export class OneHasManyInputProcessor {
|
|
7
|
-
constructor(
|
|
8
|
-
private readonly mapper: Mapper,
|
|
9
|
-
) {
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public async connect(
|
|
13
|
-
{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },
|
|
14
|
-
primary: Input.PrimaryValue,
|
|
15
|
-
) {
|
|
16
|
-
return await this.mapper.update(targetEntity, input, {
|
|
17
|
-
[targetRelation.name]: { connect: { [entity.primary]: primary } },
|
|
18
|
-
})
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public async create(
|
|
22
|
-
{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.CreateDataInput },
|
|
23
|
-
primary: Input.PrimaryValue,
|
|
24
|
-
) {
|
|
25
|
-
return await this.mapper.insert(targetEntity, {
|
|
26
|
-
...input,
|
|
27
|
-
[targetRelation.name]: { connect: { [entity.primary]: primary } },
|
|
28
|
-
})
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public async connectOrCreate(
|
|
32
|
-
{ entity, targetRelation, targetEntity, input: { connect, create } }: Model.OneHasManyContext & { input: Input.ConnectOrCreateInput },
|
|
33
|
-
primary: Input.PrimaryValue,
|
|
34
|
-
) {
|
|
35
|
-
const connectData = {
|
|
36
|
-
[targetRelation.name]: {
|
|
37
|
-
connect: { [entity.primary]: primary },
|
|
38
|
-
},
|
|
39
|
-
}
|
|
40
|
-
return await this.mapper.upsert(targetEntity, connect, connectData, {
|
|
41
|
-
...create,
|
|
42
|
-
...connectData,
|
|
43
|
-
})
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public async update(
|
|
47
|
-
{ entity, targetEntity, targetRelation, input: { data, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpdateManyInput },
|
|
48
|
-
primary: Input.PrimaryValue,
|
|
49
|
-
) {
|
|
50
|
-
return await this.mapper.update(
|
|
51
|
-
targetEntity,
|
|
52
|
-
{ ...where, [targetRelation.name]: { [entity.primary]: primary } },
|
|
53
|
-
{
|
|
54
|
-
...data,
|
|
55
|
-
// [targetRelation.name]: {connect: thisPrimary}
|
|
56
|
-
},
|
|
57
|
-
)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public async upsert(
|
|
61
|
-
{ entity, targetEntity, targetRelation, input: { create, update, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpsertManyInput },
|
|
62
|
-
primary: Input.PrimaryValue,
|
|
63
|
-
) {
|
|
64
|
-
const result = await this.mapper.update(
|
|
65
|
-
targetEntity,
|
|
66
|
-
{ ...where, [targetRelation.name]: { [entity.primary]: primary } },
|
|
67
|
-
{
|
|
68
|
-
...update,
|
|
69
|
-
// [targetRelation.name]: {connect: thisPrimary}
|
|
70
|
-
},
|
|
71
|
-
)
|
|
72
|
-
if (result[0].result === MutationResultType.notFoundError) {
|
|
73
|
-
return await this.mapper.insert(targetEntity, {
|
|
74
|
-
...create,
|
|
75
|
-
[targetRelation.name]: { connect: { [entity.primary]: primary } },
|
|
76
|
-
})
|
|
77
|
-
}
|
|
78
|
-
return result
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public async disconnect(
|
|
82
|
-
{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },
|
|
83
|
-
primary: Input.PrimaryValue,
|
|
84
|
-
) {
|
|
85
|
-
return await this.mapper.update(
|
|
86
|
-
targetEntity,
|
|
87
|
-
{ ...input, [targetRelation.name]: { [entity.primary]: primary } },
|
|
88
|
-
{ [targetRelation.name]: { disconnect: true } },
|
|
89
|
-
)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
public async delete(
|
|
93
|
-
{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },
|
|
94
|
-
primary: Input.PrimaryValue,
|
|
95
|
-
) {
|
|
96
|
-
return await this.mapper.delete(targetEntity, {
|
|
97
|
-
...input,
|
|
98
|
-
[targetRelation.name]: { [entity.primary]: primary },
|
|
99
|
-
})
|
|
100
|
-
}
|
|
101
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { InsertBuilder } from '../insert'
|
|
2
|
-
import { Mapper } from '../Mapper'
|
|
3
|
-
import {
|
|
4
|
-
ConstraintType,
|
|
5
|
-
MutationConstraintViolationError,
|
|
6
|
-
MutationEntryNotFoundError,
|
|
7
|
-
MutationResultList,
|
|
8
|
-
} from '../Result'
|
|
9
|
-
import { CheckedPrimary } from '../CheckedPrimary'
|
|
10
|
-
import { Input, Model } from '@contember/schema'
|
|
11
|
-
|
|
12
|
-
export class OneHasOneInverseCreateInputProcessor {
|
|
13
|
-
constructor(
|
|
14
|
-
private readonly insertBuilder: InsertBuilder,
|
|
15
|
-
private readonly mapper: Mapper,
|
|
16
|
-
) {
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public async connect(context: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {
|
|
20
|
-
const { targetEntity, input } = context
|
|
21
|
-
const primary = await this.insertBuilder.insert
|
|
22
|
-
if (!primary) {
|
|
23
|
-
return []
|
|
24
|
-
}
|
|
25
|
-
const owner = await this.mapper.getPrimaryValue(targetEntity, input)
|
|
26
|
-
if (!owner) {
|
|
27
|
-
return [new MutationEntryNotFoundError([], input)]
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
public async create(
|
|
35
|
-
context: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },
|
|
36
|
-
) {
|
|
37
|
-
const primary = await this.insertBuilder.insert
|
|
38
|
-
if (!primary) {
|
|
39
|
-
return []
|
|
40
|
-
}
|
|
41
|
-
return await this.mapper.insert(context.targetEntity, context.input, builder => {
|
|
42
|
-
builder.addPredicates([context.targetRelation.name])
|
|
43
|
-
builder.addFieldValue(context.targetRelation.name, primary)
|
|
44
|
-
})
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public async connectOrCreate(
|
|
48
|
-
{ input, ...context }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },
|
|
49
|
-
) {
|
|
50
|
-
const primary = await this.insertBuilder.insert
|
|
51
|
-
if (!primary) {
|
|
52
|
-
return []
|
|
53
|
-
}
|
|
54
|
-
const owner = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)
|
|
55
|
-
if (owner) {
|
|
56
|
-
return await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return await this.createInternal({ input: input.create, ...context }, primary)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private async connectInternal(
|
|
63
|
-
{ entity, targetEntity, targetRelation, relation, input }: Model.OneHasOneInverseContext & { input: CheckedPrimary },
|
|
64
|
-
primary: Input.PrimaryValue,
|
|
65
|
-
) {
|
|
66
|
-
|
|
67
|
-
const currentInverseSideOfOwner = await this.mapper.selectField(targetEntity, input, targetRelation.name)
|
|
68
|
-
const orphanResult: MutationResultList = []
|
|
69
|
-
if (currentInverseSideOfOwner) {
|
|
70
|
-
if (targetRelation.orphanRemoval) {
|
|
71
|
-
const orphanUnique = { [entity.primary]: currentInverseSideOfOwner }
|
|
72
|
-
const orphanDelete = await this.mapper.delete(entity, orphanUnique)
|
|
73
|
-
orphanResult.push(...orphanDelete)
|
|
74
|
-
} else if (!relation.nullable) {
|
|
75
|
-
return [new MutationConstraintViolationError([], ConstraintType.notNull)]
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const connectResult = await this.mapper.updateInternal(targetEntity, input, update => {
|
|
80
|
-
update.addPredicates([targetRelation.name])
|
|
81
|
-
update.addFieldValue(targetRelation.name, primary)
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
return [
|
|
85
|
-
...connectResult,
|
|
86
|
-
...orphanResult,
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private async createInternal(
|
|
91
|
-
context: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },
|
|
92
|
-
primary: Input.PrimaryValue,
|
|
93
|
-
) {
|
|
94
|
-
return await this.mapper.insert(context.targetEntity, context.input, builder => {
|
|
95
|
-
builder.addPredicates([context.targetRelation.name])
|
|
96
|
-
builder.addFieldValue(context.targetRelation.name, primary)
|
|
97
|
-
})
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ConstraintType,
|
|
3
|
-
getInsertPrimary,
|
|
4
|
-
MutationConstraintViolationError,
|
|
5
|
-
MutationEntryNotFoundError,
|
|
6
|
-
MutationResultList,
|
|
7
|
-
} from '../Result'
|
|
8
|
-
import { InsertBuilder } from '../insert'
|
|
9
|
-
import { Mapper } from '../Mapper'
|
|
10
|
-
import { Input, Model } from '@contember/schema'
|
|
11
|
-
import { AbortDataManipulation } from '../DataManipulationBuilder'
|
|
12
|
-
|
|
13
|
-
export class OneHasOneOwningCreateInputProcessor {
|
|
14
|
-
constructor(
|
|
15
|
-
private readonly insertBuilder: InsertBuilder,
|
|
16
|
-
private readonly mapper: Mapper,
|
|
17
|
-
) {
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public async connect(context: Model.OneHasOneOwningContext & { input: Input.UniqueWhere }) {
|
|
21
|
-
const { input, relation, targetEntity } = context
|
|
22
|
-
const result: MutationResultList = []
|
|
23
|
-
await this.insertBuilder.addFieldValue(relation.name, async () => {
|
|
24
|
-
const inverseSide = await this.mapper.getPrimaryValue(targetEntity, input)
|
|
25
|
-
if (!inverseSide) {
|
|
26
|
-
result.push(new MutationEntryNotFoundError([], input))
|
|
27
|
-
return AbortDataManipulation
|
|
28
|
-
}
|
|
29
|
-
return this.connectInternal({ ...context, input: inverseSide }, result)
|
|
30
|
-
})
|
|
31
|
-
return result
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public async create(context: Model.OneHasOneOwningContext & { input: Input.CreateDataInput }) {
|
|
35
|
-
const result: MutationResultList = []
|
|
36
|
-
await this.insertBuilder.addFieldValue(context.relation.name, async () => {
|
|
37
|
-
return await this.createInternal(context, result)
|
|
38
|
-
})
|
|
39
|
-
return result
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
public async connectOrCreate({ input, ...context }: Model.OneHasOneOwningContext & { input: Input.ConnectOrCreateInput }) {
|
|
43
|
-
const result: MutationResultList = []
|
|
44
|
-
await this.insertBuilder.addFieldValue(context.relation.name, async () => {
|
|
45
|
-
const inverseSide = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)
|
|
46
|
-
if (inverseSide) {
|
|
47
|
-
return await this.connectInternal({ ...context, input: inverseSide }, result)
|
|
48
|
-
}
|
|
49
|
-
return await this.createInternal({ ...context, input: input.create }, result)
|
|
50
|
-
})
|
|
51
|
-
return result
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private async createInternal(
|
|
55
|
-
context: Model.OneHasOneOwningContext & { input: Input.CreateDataInput },
|
|
56
|
-
result: MutationResultList,
|
|
57
|
-
) {
|
|
58
|
-
const insertResult = await this.mapper.insert(context.targetEntity, context.input)
|
|
59
|
-
result.push(...insertResult)
|
|
60
|
-
const primary = getInsertPrimary(insertResult)
|
|
61
|
-
if (!primary) {
|
|
62
|
-
return AbortDataManipulation
|
|
63
|
-
}
|
|
64
|
-
return primary
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
private async connectInternal(
|
|
68
|
-
{ entity, relation, targetEntity, input }: Model.OneHasOneOwningContext & { input: Input.PrimaryValue },
|
|
69
|
-
result: MutationResultList,
|
|
70
|
-
) {
|
|
71
|
-
const currentOwnerOfInverseSide = await this.mapper.getPrimaryValue(entity, {
|
|
72
|
-
[relation.name]: { [targetEntity.primary]: input },
|
|
73
|
-
})
|
|
74
|
-
if (!currentOwnerOfInverseSide) {
|
|
75
|
-
return input
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (!relation.nullable) {
|
|
79
|
-
result.push(new MutationConstraintViolationError([], ConstraintType.notNull))
|
|
80
|
-
return AbortDataManipulation
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const currentOwnerUnique = { [entity.primary]: currentOwnerOfInverseSide }
|
|
84
|
-
const currentOwnerDisconnectResult = await this.mapper.updateInternal(entity, currentOwnerUnique, builder => {
|
|
85
|
-
builder.addPredicates([relation.name])
|
|
86
|
-
builder.addFieldValue(relation.name, null)
|
|
87
|
-
})
|
|
88
|
-
result.push(...currentOwnerDisconnectResult)
|
|
89
|
-
|
|
90
|
-
return input
|
|
91
|
-
}
|
|
92
|
-
}
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { UpdateInputProcessor } from '../../inputProcessing'
|
|
2
|
-
import { Input, Model } from '@contember/schema'
|
|
3
|
-
import {
|
|
4
|
-
ConstraintType,
|
|
5
|
-
getInsertPrimary,
|
|
6
|
-
MutationConstraintViolationError,
|
|
7
|
-
MutationEntryNotFoundError,
|
|
8
|
-
MutationNothingToDo,
|
|
9
|
-
MutationResultList,
|
|
10
|
-
NothingToDoReason,
|
|
11
|
-
} from '../Result'
|
|
12
|
-
import { Mapper } from '../Mapper'
|
|
13
|
-
import { UpdateBuilder } from '../update/UpdateBuilder'
|
|
14
|
-
import { CheckedPrimary } from '../CheckedPrimary'
|
|
15
|
-
import { AbortDataManipulation } from '../DataManipulationBuilder'
|
|
16
|
-
|
|
17
|
-
export class OneHasOneOwningUpdateInputProcessor {
|
|
18
|
-
constructor(
|
|
19
|
-
private readonly primaryValue: Input.PrimaryValue,
|
|
20
|
-
private readonly mapper: Mapper,
|
|
21
|
-
private readonly updateBuilder: UpdateBuilder,
|
|
22
|
-
) {
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public async connect(context: Model.OneHasOneOwningContext & { input: Input.UniqueWhere }) {
|
|
26
|
-
const result: MutationResultList = []
|
|
27
|
-
let currentInverseSide: Input.PrimaryValue | undefined
|
|
28
|
-
|
|
29
|
-
const { entity, relation, targetEntity, targetRelation, input } = context
|
|
30
|
-
const newInverseSide = await this.updateBuilder.addFieldValue(relation.name, async () => {
|
|
31
|
-
const newInverseSide = await this.mapper.getPrimaryValue(targetEntity, input)
|
|
32
|
-
if (!newInverseSide) {
|
|
33
|
-
result.push(new MutationEntryNotFoundError([], input))
|
|
34
|
-
return AbortDataManipulation
|
|
35
|
-
}
|
|
36
|
-
currentInverseSide = await this.getCurrentInverseSide(targetRelation, relation, entity)
|
|
37
|
-
return await this.connectInternal(context, currentInverseSide, newInverseSide, result)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
if (newInverseSide) {
|
|
41
|
-
result.push(...(await this.cleanupOrphan(relation, targetEntity, currentInverseSide)))
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return result
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public async create(context: Model.OneHasOneOwningContext & { input: Input.CreateDataInput }) {
|
|
48
|
-
const result: MutationResultList = []
|
|
49
|
-
let currentInverseSide: Input.PrimaryValue | undefined
|
|
50
|
-
const { entity, relation, targetEntity, targetRelation } = context
|
|
51
|
-
await this.updateBuilder.addFieldValue(relation.name, async () => {
|
|
52
|
-
currentInverseSide = await this.getCurrentInverseSide(targetRelation, relation, entity)
|
|
53
|
-
// orphan removal handled bellow
|
|
54
|
-
return await this.createInternal(context, currentInverseSide, result)
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
result.push(...(await this.cleanupOrphan(relation, targetEntity, currentInverseSide)))
|
|
58
|
-
return result
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
public async connectOrCreate({ input: { connect, create }, ...context }: Model.OneHasOneOwningContext & { input: Input.ConnectOrCreateInput }) {
|
|
62
|
-
const result: MutationResultList = []
|
|
63
|
-
let currentInverseSide: Input.PrimaryValue | undefined
|
|
64
|
-
|
|
65
|
-
const { relation, targetRelation, targetEntity, entity } = context
|
|
66
|
-
const newInverseSide = await this.updateBuilder.addFieldValue(relation.name, async () => {
|
|
67
|
-
const newInverseSide = await this.mapper.getPrimaryValue(targetEntity, connect)
|
|
68
|
-
currentInverseSide = await this.getCurrentInverseSide(targetRelation, relation, entity)
|
|
69
|
-
if (newInverseSide) {
|
|
70
|
-
return await this.connectInternal(context, currentInverseSide, newInverseSide, result)
|
|
71
|
-
}
|
|
72
|
-
return await this.createInternal({ ...context, input: create }, currentInverseSide, result)
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
if (newInverseSide) {
|
|
76
|
-
result.push(...(await this.cleanupOrphan(relation, targetEntity, currentInverseSide)))
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return result
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
private async createInternal(
|
|
83
|
-
{ targetEntity, targetRelation, relation, input }: Model.OneHasOneOwningContext & { input: Input.CreateDataInput },
|
|
84
|
-
currentInverseSide: Input.PrimaryValue | undefined,
|
|
85
|
-
result: MutationResultList,
|
|
86
|
-
) {
|
|
87
|
-
if (targetRelation && !targetRelation.nullable && !relation.orphanRemoval && currentInverseSide) {
|
|
88
|
-
result.push(new MutationConstraintViolationError([], ConstraintType.notNull))
|
|
89
|
-
return AbortDataManipulation
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const insertResult = await this.mapper.insert(targetEntity, input)
|
|
93
|
-
result.push(...insertResult)
|
|
94
|
-
const newInverseSide = getInsertPrimary(insertResult)
|
|
95
|
-
if (newInverseSide) {
|
|
96
|
-
return newInverseSide
|
|
97
|
-
}
|
|
98
|
-
return AbortDataManipulation
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
private async connectInternal(
|
|
102
|
-
{ targetEntity, targetRelation, relation, entity }: Model.OneHasOneOwningContext,
|
|
103
|
-
currentInverseSide: Input.PrimaryValue | undefined,
|
|
104
|
-
newInverseSide: Input.PrimaryValue,
|
|
105
|
-
result: MutationResultList,
|
|
106
|
-
) {
|
|
107
|
-
|
|
108
|
-
if (currentInverseSide === newInverseSide) {
|
|
109
|
-
result.push(new MutationNothingToDo([], NothingToDoReason.alreadyExists))
|
|
110
|
-
return undefined
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
const currentOwnerOfNewInverseSide = await this.mapper.getPrimaryValue(entity, {
|
|
114
|
-
[relation.name]: { [targetEntity.primary]: newInverseSide },
|
|
115
|
-
})
|
|
116
|
-
|
|
117
|
-
if (currentOwnerOfNewInverseSide === this.primaryValue) {
|
|
118
|
-
result.push(new MutationNothingToDo([], NothingToDoReason.alreadyExists))
|
|
119
|
-
return undefined
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// orphan removal handled bellow
|
|
123
|
-
if (targetRelation && !targetRelation.nullable && !relation.orphanRemoval && currentInverseSide) {
|
|
124
|
-
result.push(new MutationConstraintViolationError([], ConstraintType.notNull))
|
|
125
|
-
return AbortDataManipulation
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (currentOwnerOfNewInverseSide) {
|
|
129
|
-
if (!relation.nullable) {
|
|
130
|
-
result.push(new MutationConstraintViolationError([], ConstraintType.notNull))
|
|
131
|
-
return AbortDataManipulation
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const currentOwnerDisconnect = await this.mapper.updateInternal(
|
|
135
|
-
entity,
|
|
136
|
-
{
|
|
137
|
-
[entity.primary]: currentOwnerOfNewInverseSide,
|
|
138
|
-
},
|
|
139
|
-
builder => {
|
|
140
|
-
builder.addPredicates([relation.name])
|
|
141
|
-
builder.addFieldValue(relation.name, null)
|
|
142
|
-
},
|
|
143
|
-
)
|
|
144
|
-
result.push(...currentOwnerDisconnect)
|
|
145
|
-
}
|
|
146
|
-
return newInverseSide
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
private async getCurrentInverseSide(targetRelation: Model.OneHasOneInverseRelation | null, relation: Model.OneHasOneOwningRelation, entity: Model.Entity) {
|
|
150
|
-
if ((targetRelation && !targetRelation.nullable) || relation.orphanRemoval) {
|
|
151
|
-
return this.mapper.selectField(entity, { [entity.primary]: this.primaryValue }, relation.name)
|
|
152
|
-
}
|
|
153
|
-
return undefined
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
private async cleanupOrphan(relation: Model.OneHasOneOwningRelation, targetEntity: Model.Entity, currentInverseSide: Input.PrimaryValue | undefined) {
|
|
157
|
-
if (relation.orphanRemoval && currentInverseSide) {
|
|
158
|
-
await this.updateBuilder.update
|
|
159
|
-
return await this.mapper.delete(targetEntity, { [targetEntity.primary]: currentInverseSide })
|
|
160
|
-
}
|
|
161
|
-
return []
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
public async update({ entity, relation, targetEntity, input }: Model.OneHasOneOwningContext & { input: Input.UpdateDataInput }) {
|
|
165
|
-
const inversePrimary = await this.mapper.selectField(
|
|
166
|
-
entity,
|
|
167
|
-
{ [entity.primary]: this.primaryValue },
|
|
168
|
-
relation.name,
|
|
169
|
-
)
|
|
170
|
-
if (!inversePrimary) {
|
|
171
|
-
return [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]
|
|
172
|
-
}
|
|
173
|
-
return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input)
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
public async upsert({ entity, relation, targetEntity, input: { create, update } }: Model.OneHasOneOwningContext & { input: UpdateInputProcessor.UpsertInput }) {
|
|
177
|
-
const select = this.mapper.selectField(entity, { [entity.primary]: this.primaryValue }, relation.name)
|
|
178
|
-
|
|
179
|
-
const result: MutationResultList = []
|
|
180
|
-
//addColumnData has to be called synchronously
|
|
181
|
-
await this.updateBuilder.addFieldValue(relation.name, async () => {
|
|
182
|
-
const primary = await select
|
|
183
|
-
if (primary) {
|
|
184
|
-
return undefined
|
|
185
|
-
}
|
|
186
|
-
const insertResult = await this.mapper.insert(targetEntity, create)
|
|
187
|
-
const insertPrimary = getInsertPrimary(insertResult)
|
|
188
|
-
if (insertPrimary) {
|
|
189
|
-
return insertPrimary
|
|
190
|
-
}
|
|
191
|
-
result.push(...insertResult)
|
|
192
|
-
return AbortDataManipulation
|
|
193
|
-
})
|
|
194
|
-
|
|
195
|
-
const inversePrimary = await select
|
|
196
|
-
if (inversePrimary) {
|
|
197
|
-
return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update)
|
|
198
|
-
}
|
|
199
|
-
return result
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
public async disconnect({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneOwningContext & { input: undefined }) {
|
|
203
|
-
if (!relation.nullable) {
|
|
204
|
-
return [new MutationConstraintViolationError([], ConstraintType.notNull)]
|
|
205
|
-
}
|
|
206
|
-
const result: MutationResultList = []
|
|
207
|
-
|
|
208
|
-
const currentInverseSide = (targetRelation && !targetRelation.nullable) || relation.orphanRemoval
|
|
209
|
-
? this.mapper.selectField(entity, { [entity.primary]: this.primaryValue }, relation.name)
|
|
210
|
-
: Promise.resolve(undefined)
|
|
211
|
-
|
|
212
|
-
this.updateBuilder.addFieldValue(relation.name, async () => {
|
|
213
|
-
const inversePrimary = await currentInverseSide
|
|
214
|
-
if (inversePrimary && targetRelation && !targetRelation.nullable && !relation.orphanRemoval) {
|
|
215
|
-
result.push(new MutationConstraintViolationError([], ConstraintType.notNull))
|
|
216
|
-
return AbortDataManipulation
|
|
217
|
-
}
|
|
218
|
-
return null
|
|
219
|
-
})
|
|
220
|
-
if (relation.orphanRemoval) {
|
|
221
|
-
const inversePrimary = await currentInverseSide
|
|
222
|
-
if (inversePrimary) {
|
|
223
|
-
await this.updateBuilder.update
|
|
224
|
-
const deleteOrphanedInverseSide = await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary })
|
|
225
|
-
result.push(...deleteOrphanedInverseSide)
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return result
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
public async delete({ entity, targetEntity, relation, targetRelation }: Model.OneHasOneOwningContext & { input: undefined }) {
|
|
232
|
-
if (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {
|
|
233
|
-
return [new MutationConstraintViolationError([], ConstraintType.notNull)]
|
|
234
|
-
}
|
|
235
|
-
if (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {
|
|
236
|
-
// eslint-disable-next-line no-console
|
|
237
|
-
console.error(
|
|
238
|
-
'[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version.',
|
|
239
|
-
)
|
|
240
|
-
this.updateBuilder.addFieldValue(relation.name, null)
|
|
241
|
-
}
|
|
242
|
-
const targetPrimary = await this.mapper.selectField(
|
|
243
|
-
entity,
|
|
244
|
-
{ [entity.primary]: this.primaryValue },
|
|
245
|
-
relation.name,
|
|
246
|
-
)
|
|
247
|
-
if (!targetPrimary) {
|
|
248
|
-
return [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]
|
|
249
|
-
}
|
|
250
|
-
await this.updateBuilder.update
|
|
251
|
-
return await this.mapper.delete(targetEntity, new CheckedPrimary(targetPrimary))
|
|
252
|
-
}
|
|
253
|
-
}
|