@contember/binding-common 2.1.0-alpha.8 → 2.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +43 -43
- package/dist/development/index.js +16 -16
- package/dist/development/src/BindingError.cjs.map +1 -1
- package/dist/development/src/BindingError.js.map +1 -1
- package/dist/development/src/DataBindingExtendAborted.cjs +1 -1
- package/dist/development/src/DataBindingExtendAborted.cjs.map +1 -1
- package/dist/development/src/DataBindingExtendAborted.js +1 -1
- package/dist/development/src/DataBindingExtendAborted.js.map +1 -1
- package/dist/development/src/LocalizedBindingError.cjs.map +1 -1
- package/dist/development/src/LocalizedBindingError.js.map +1 -1
- package/dist/development/src/RuntimeId.cjs.map +1 -1
- package/dist/development/src/RuntimeId.js.map +1 -1
- package/dist/development/src/environment/Environment.cjs +4 -2
- package/dist/development/src/environment/Environment.cjs.map +1 -1
- package/dist/development/src/environment/Environment.js +4 -2
- package/dist/development/src/environment/Environment.js.map +1 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -1
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +1 -1
- package/dist/development/src/environment/VariableFieldValue.cjs.map +1 -1
- package/dist/development/src/environment/VariableFieldValue.js.map +1 -1
- package/dist/development/src/environment/VariableInputTransformer.cjs.map +1 -1
- package/dist/development/src/environment/VariableInputTransformer.js.map +1 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +1 -1
- package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +1 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntityListSubTreeMarker.js.map +1 -1
- package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +1 -1
- package/dist/development/src/markers/EntitySubTreeMarker.js.map +1 -1
- package/dist/development/src/markers/FieldMarker.cjs.map +1 -1
- package/dist/development/src/markers/FieldMarker.js.map +1 -1
- package/dist/development/src/markers/HasManyRelationMarker.cjs.map +1 -1
- package/dist/development/src/markers/HasManyRelationMarker.js.map +1 -1
- package/dist/development/src/markers/HasOneRelationMarker.cjs.map +1 -1
- package/dist/development/src/markers/HasOneRelationMarker.js.map +1 -1
- package/dist/development/src/markers/MarkerComparator.cjs +1 -1
- package/dist/development/src/markers/MarkerComparator.cjs.map +1 -1
- package/dist/development/src/markers/MarkerComparator.js +1 -1
- package/dist/development/src/markers/MarkerComparator.js.map +1 -1
- package/dist/development/src/markers/MarkerMerger.cjs.map +1 -1
- package/dist/development/src/markers/MarkerMerger.js.map +1 -1
- package/dist/development/src/markers/MarkerTreeRoot.cjs.map +1 -1
- package/dist/development/src/markers/MarkerTreeRoot.js.map +1 -1
- package/dist/development/src/markers/PlaceholderGenerator.cjs.map +1 -1
- package/dist/development/src/markers/PlaceholderGenerator.js.map +1 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +1 -1
- package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +1 -1
- package/dist/development/src/queryLanguage/CacheStore.cjs.map +1 -1
- package/dist/development/src/queryLanguage/CacheStore.js.map +1 -1
- package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +1 -1
- package/dist/development/src/queryLanguage/MarkerFactory.js.map +1 -1
- package/dist/development/src/queryLanguage/Parser.cjs +4 -12
- package/dist/development/src/queryLanguage/Parser.cjs.map +1 -1
- package/dist/development/src/queryLanguage/Parser.js +5 -13
- package/dist/development/src/queryLanguage/Parser.js.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.js +1 -1
- package/dist/development/src/queryLanguage/QueryLanguage.js.map +1 -1
- package/dist/development/src/queryLanguage/tokenList.cjs.map +1 -1
- package/dist/development/src/queryLanguage/tokenList.js.map +1 -1
- package/dist/development/src/schema/Schema.cjs.map +1 -1
- package/dist/development/src/schema/Schema.js.map +1 -1
- package/dist/development/src/schema/SchemaLoader.cjs.map +1 -1
- package/dist/development/src/schema/SchemaLoader.js.map +1 -1
- package/dist/development/src/schema/SchemaPreprocessor.cjs.map +1 -1
- package/dist/development/src/schema/SchemaPreprocessor.js.map +1 -1
- package/dist/development/src/treeParameters/EventListenersStore.cjs.map +1 -1
- package/dist/development/src/treeParameters/EventListenersStore.js.map +1 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs +3 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +1 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.js +3 -1
- package/dist/development/src/treeParameters/TreeParameterMerger.js.map +1 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -1
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -1
- package/dist/development/src/types/EntityAccessor.cjs.map +1 -1
- package/dist/development/src/types/EntityAccessor.js.map +1 -1
- package/dist/development/src/types/EntityListAccessor.cjs.map +1 -1
- package/dist/development/src/types/EntityListAccessor.js.map +1 -1
- package/dist/development/src/types/ErrorAccessor.cjs.map +1 -1
- package/dist/development/src/types/ErrorAccessor.js.map +1 -1
- package/dist/development/src/types/FieldAccessor.cjs.map +1 -1
- package/dist/development/src/types/FieldAccessor.js.map +1 -1
- package/dist/development/src/types/PersistResult.cjs.map +1 -1
- package/dist/development/src/types/PersistResult.js.map +1 -1
- package/dist/development/src/types/TreeRootAccessor.cjs.map +1 -1
- package/dist/development/src/types/TreeRootAccessor.js.map +1 -1
- package/dist/development/src/utils/Hashing.cjs.map +1 -1
- package/dist/development/src/utils/Hashing.js.map +1 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs +1 -1
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/development/src/utils/TreeNodeUtils.js +1 -1
- package/dist/development/src/utils/TreeNodeUtils.js.map +1 -1
- package/dist/development/src/utils/assertNever.cjs.map +1 -1
- package/dist/development/src/utils/assertNever.js.map +1 -1
- package/dist/development/src/utils/createQueryBuilder.cjs +25 -21
- package/dist/development/src/utils/createQueryBuilder.cjs.map +1 -1
- package/dist/development/src/utils/createQueryBuilder.js +25 -21
- package/dist/development/src/utils/createQueryBuilder.js.map +1 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -1
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -1
- package/dist/development/src/utils/whereToFilter.cjs.map +1 -1
- package/dist/development/src/utils/whereToFilter.js.map +1 -1
- package/dist/production/index.cjs +43 -43
- package/dist/production/index.js +16 -16
- package/dist/production/src/BindingError.cjs.map +1 -1
- package/dist/production/src/BindingError.js.map +1 -1
- package/dist/production/src/DataBindingExtendAborted.cjs +1 -1
- package/dist/production/src/DataBindingExtendAborted.cjs.map +1 -1
- package/dist/production/src/DataBindingExtendAborted.js +1 -1
- package/dist/production/src/DataBindingExtendAborted.js.map +1 -1
- package/dist/production/src/LocalizedBindingError.cjs.map +1 -1
- package/dist/production/src/LocalizedBindingError.js.map +1 -1
- package/dist/production/src/RuntimeId.cjs.map +1 -1
- package/dist/production/src/RuntimeId.js.map +1 -1
- package/dist/production/src/environment/Environment.cjs +4 -2
- package/dist/production/src/environment/Environment.cjs.map +1 -1
- package/dist/production/src/environment/Environment.js +4 -2
- package/dist/production/src/environment/Environment.js.map +1 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -1
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +1 -1
- package/dist/production/src/environment/VariableFieldValue.cjs.map +1 -1
- package/dist/production/src/environment/VariableFieldValue.js.map +1 -1
- package/dist/production/src/environment/VariableInputTransformer.cjs.map +1 -1
- package/dist/production/src/environment/VariableInputTransformer.js.map +1 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +1 -1
- package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +1 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntityListSubTreeMarker.js.map +1 -1
- package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +1 -1
- package/dist/production/src/markers/EntitySubTreeMarker.js.map +1 -1
- package/dist/production/src/markers/FieldMarker.cjs.map +1 -1
- package/dist/production/src/markers/FieldMarker.js.map +1 -1
- package/dist/production/src/markers/HasManyRelationMarker.cjs.map +1 -1
- package/dist/production/src/markers/HasManyRelationMarker.js.map +1 -1
- package/dist/production/src/markers/HasOneRelationMarker.cjs.map +1 -1
- package/dist/production/src/markers/HasOneRelationMarker.js.map +1 -1
- package/dist/production/src/markers/MarkerComparator.cjs +1 -1
- package/dist/production/src/markers/MarkerComparator.cjs.map +1 -1
- package/dist/production/src/markers/MarkerComparator.js +1 -1
- package/dist/production/src/markers/MarkerComparator.js.map +1 -1
- package/dist/production/src/markers/MarkerMerger.cjs.map +1 -1
- package/dist/production/src/markers/MarkerMerger.js.map +1 -1
- package/dist/production/src/markers/MarkerTreeRoot.cjs.map +1 -1
- package/dist/production/src/markers/MarkerTreeRoot.js.map +1 -1
- package/dist/production/src/markers/PlaceholderGenerator.cjs.map +1 -1
- package/dist/production/src/markers/PlaceholderGenerator.js.map +1 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +1 -1
- package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +1 -1
- package/dist/production/src/queryLanguage/CacheStore.cjs.map +1 -1
- package/dist/production/src/queryLanguage/CacheStore.js.map +1 -1
- package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +1 -1
- package/dist/production/src/queryLanguage/MarkerFactory.js.map +1 -1
- package/dist/production/src/queryLanguage/Parser.cjs +4 -12
- package/dist/production/src/queryLanguage/Parser.cjs.map +1 -1
- package/dist/production/src/queryLanguage/Parser.js +5 -13
- package/dist/production/src/queryLanguage/Parser.js.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.js +1 -1
- package/dist/production/src/queryLanguage/QueryLanguage.js.map +1 -1
- package/dist/production/src/queryLanguage/tokenList.cjs.map +1 -1
- package/dist/production/src/queryLanguage/tokenList.js.map +1 -1
- package/dist/production/src/schema/Schema.cjs.map +1 -1
- package/dist/production/src/schema/Schema.js.map +1 -1
- package/dist/production/src/schema/SchemaLoader.cjs.map +1 -1
- package/dist/production/src/schema/SchemaLoader.js.map +1 -1
- package/dist/production/src/schema/SchemaPreprocessor.cjs.map +1 -1
- package/dist/production/src/schema/SchemaPreprocessor.js.map +1 -1
- package/dist/production/src/treeParameters/EventListenersStore.cjs.map +1 -1
- package/dist/production/src/treeParameters/EventListenersStore.js.map +1 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs +3 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +1 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.js +3 -1
- package/dist/production/src/treeParameters/TreeParameterMerger.js.map +1 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -1
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -1
- package/dist/production/src/types/EntityAccessor.cjs.map +1 -1
- package/dist/production/src/types/EntityAccessor.js.map +1 -1
- package/dist/production/src/types/EntityListAccessor.cjs.map +1 -1
- package/dist/production/src/types/EntityListAccessor.js.map +1 -1
- package/dist/production/src/types/ErrorAccessor.cjs.map +1 -1
- package/dist/production/src/types/ErrorAccessor.js.map +1 -1
- package/dist/production/src/types/FieldAccessor.cjs.map +1 -1
- package/dist/production/src/types/FieldAccessor.js.map +1 -1
- package/dist/production/src/types/PersistResult.cjs.map +1 -1
- package/dist/production/src/types/PersistResult.js.map +1 -1
- package/dist/production/src/types/TreeRootAccessor.cjs.map +1 -1
- package/dist/production/src/types/TreeRootAccessor.js.map +1 -1
- package/dist/production/src/utils/Hashing.cjs.map +1 -1
- package/dist/production/src/utils/Hashing.js.map +1 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs +1 -1
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -1
- package/dist/production/src/utils/TreeNodeUtils.js +1 -1
- package/dist/production/src/utils/TreeNodeUtils.js.map +1 -1
- package/dist/production/src/utils/assertNever.cjs.map +1 -1
- package/dist/production/src/utils/assertNever.js.map +1 -1
- package/dist/production/src/utils/createQueryBuilder.cjs +25 -21
- package/dist/production/src/utils/createQueryBuilder.cjs.map +1 -1
- package/dist/production/src/utils/createQueryBuilder.js +25 -21
- package/dist/production/src/utils/createQueryBuilder.js.map +1 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -1
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -1
- package/dist/production/src/utils/whereToFilter.cjs.map +1 -1
- package/dist/production/src/utils/whereToFilter.js.map +1 -1
- package/dist/types/LocalizedBindingError.d.ts.map +1 -1
- package/dist/types/environment/Environment.d.ts.map +1 -1
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -1
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -1
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -1
- package/dist/types/queryLanguage/Parser.d.ts.map +1 -1
- package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts +1 -1
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -1
- package/dist/types/schema/Schema.d.ts.map +1 -1
- package/dist/types/schema/SchemaLoader.d.ts.map +1 -1
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -1
- package/dist/types/treeParameters/Normalized.d.ts.map +1 -1
- package/dist/types/treeParameters/Sugared.d.ts.map +1 -1
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -1
- package/dist/types/treeParameters/index.d.ts.map +1 -1
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types/EntityAccessor.d.ts.map +1 -1
- package/dist/types/types/EntityListAccessor.d.ts +1 -1
- package/dist/types/types/EntityListAccessor.d.ts.map +1 -1
- package/dist/types/types/ErrorAccessor.d.ts.map +1 -1
- package/dist/types/types/FieldAccessor.d.ts +1 -1
- package/dist/types/types/FieldAccessor.d.ts.map +1 -1
- package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -1
- package/dist/types/types/GetEntitySubTree.d.ts.map +1 -1
- package/dist/types/types/PersistErrorOptions.d.ts.map +1 -1
- package/dist/types/types/PersistResult.d.ts.map +1 -1
- package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -1
- package/dist/types/utils/createQueryBuilder.d.ts.map +1 -1
- package/package.json +14 -9
- package/src/LocalizedBindingError.ts +1 -7
- package/src/environment/Environment.ts +5 -5
- package/src/environment/TreeNodeEnvironmentFactory.ts +1 -5
- package/src/markers/MarkerComparator.ts +7 -7
- package/src/markers/MarkerMerger.ts +2 -2
- package/src/markers/PlaceholderParametersGenerator.ts +0 -2
- package/src/queryLanguage/CacheStore.ts +3 -3
- package/src/queryLanguage/MarkerFactory.ts +6 -19
- package/src/queryLanguage/Parser.ts +16 -24
- package/src/queryLanguage/ParserResults.ts +2 -7
- package/src/queryLanguage/QueryLanguage.ts +33 -44
- package/src/schema/Schema.ts +0 -1
- package/src/schema/SchemaLoader.ts +37 -39
- package/src/treeParameters/EventListenersStore.ts +0 -1
- package/src/treeParameters/Normalized.ts +0 -2
- package/src/treeParameters/Sugared.ts +15 -27
- package/src/treeParameters/TreeParameterMerger.ts +13 -9
- package/src/treeParameters/index.ts +0 -1
- package/src/treeParameters/primitives/SetOnCreate.ts +0 -2
- package/src/types/EntityAccessor.ts +1 -1
- package/src/types/EntityListAccessor.ts +1 -1
- package/src/types/ErrorAccessor.ts +8 -5
- package/src/types/FieldAccessor.ts +1 -2
- package/src/types/GetEntityListSubTree.ts +1 -6
- package/src/types/GetEntitySubTree.ts +1 -6
- package/src/types/PersistErrorOptions.ts +0 -1
- package/src/types/PersistResult.ts +1 -1
- package/src/utils/TreeNodeUtils.ts +16 -8
- package/src/utils/createQueryBuilder.ts +26 -22
- package/tests/cases/unit/queryLanguage/filter.spec.tsx +1 -2
- package/tests/cases/unit/queryLanguage/general.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/orderBy.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/qualifiedEntityList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/qualifiedFieldList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/relativeEntityList.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/singleRelativeField.spec.tsx +1 -1
- package/tests/cases/unit/queryLanguage/taggedMap.spec.tsx +1 -2
- package/tests/cases/unit/whereToFilter.ts +1 -1
|
@@ -49,8 +49,8 @@ export class MarkerComparator {
|
|
|
49
49
|
}
|
|
50
50
|
// TODO be more specific
|
|
51
51
|
throw new LocalizedBindingError(
|
|
52
|
-
`The relation '${candidateMarker.parameters.field}' exists but its parameters don't match exactly. `
|
|
53
|
-
`Check that all relation parameters are the same.`,
|
|
52
|
+
`The relation '${candidateMarker.parameters.field}' exists but its parameters don't match exactly. `
|
|
53
|
+
+ `Check that all relation parameters are the same.`,
|
|
54
54
|
[candidateMarker],
|
|
55
55
|
)
|
|
56
56
|
}
|
|
@@ -61,8 +61,8 @@ export class MarkerComparator {
|
|
|
61
61
|
}
|
|
62
62
|
try {
|
|
63
63
|
if (
|
|
64
|
-
(candidateMarker instanceof HasOneRelationMarker && fromSuperset instanceof HasOneRelationMarker)
|
|
65
|
-
(candidateMarker instanceof HasManyRelationMarker && fromSuperset instanceof HasManyRelationMarker)
|
|
64
|
+
(candidateMarker instanceof HasOneRelationMarker && fromSuperset instanceof HasOneRelationMarker)
|
|
65
|
+
|| (candidateMarker instanceof HasManyRelationMarker && fromSuperset instanceof HasManyRelationMarker)
|
|
66
66
|
) {
|
|
67
67
|
this.assertSubsetOf(candidateMarker.fields, fromSuperset.fields)
|
|
68
68
|
}
|
|
@@ -81,8 +81,8 @@ export class MarkerComparator {
|
|
|
81
81
|
|
|
82
82
|
if (fromSuperset === undefined) {
|
|
83
83
|
if (
|
|
84
|
-
candidateMarker instanceof FieldMarker
|
|
85
|
-
(candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME)
|
|
84
|
+
candidateMarker instanceof FieldMarker
|
|
85
|
+
&& (candidateMarker.fieldName === PRIMARY_KEY_NAME || candidateMarker.fieldName === TYPENAME_KEY_NAME)
|
|
86
86
|
) {
|
|
87
87
|
continue
|
|
88
88
|
}
|
|
@@ -98,5 +98,5 @@ export class MarkerComparator {
|
|
|
98
98
|
return true
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
//private static assertAreMarkersSubsetOf(): {}
|
|
101
|
+
// private static assertAreMarkersSubsetOf(): {}
|
|
102
102
|
}
|
|
@@ -108,8 +108,8 @@ export class MarkerMerger {
|
|
|
108
108
|
fromOriginal === undefined
|
|
109
109
|
? fromFresh
|
|
110
110
|
: fromOriginal instanceof EntityListSubTreeMarker
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
? MarkerMerger.mergeEntityListSubTreeMarkers(fromOriginal, fromFresh as EntityListSubTreeMarker)
|
|
112
|
+
: MarkerMerger.mergeEntitySubTreeMarkers(fromOriginal, fromFresh as EntitySubTreeMarker),
|
|
113
113
|
)
|
|
114
114
|
}
|
|
115
115
|
return newOriginal
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
import { Environment } from '../environment'
|
|
10
10
|
|
|
11
11
|
export class PlaceholderParametersGenerator {
|
|
12
|
-
|
|
13
12
|
public static createHasOneRelationParameters(relation: HasOneRelation): any {
|
|
14
13
|
return {
|
|
15
14
|
type: 'hasOne',
|
|
@@ -75,5 +74,4 @@ export class PlaceholderParametersGenerator {
|
|
|
75
74
|
variables: environment.getAllVariables(),
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
|
-
|
|
79
77
|
}
|
|
@@ -17,7 +17,7 @@ export class CacheStore {
|
|
|
17
17
|
let caches = this.cacheStore.get(environment)
|
|
18
18
|
|
|
19
19
|
if (caches === undefined) {
|
|
20
|
-
this.cacheStore.set(environment,
|
|
20
|
+
this.cacheStore.set(environment, caches = this.createEntryPointCache())
|
|
21
21
|
}
|
|
22
22
|
return caches[entry].get(expression) as Parser.ParserResult[Entry] | undefined
|
|
23
23
|
}
|
|
@@ -31,9 +31,9 @@ export class CacheStore {
|
|
|
31
31
|
let caches = this.cacheStore.get(environment)
|
|
32
32
|
|
|
33
33
|
if (caches === undefined) {
|
|
34
|
-
this.cacheStore.set(environment,
|
|
34
|
+
this.cacheStore.set(environment, caches = this.createEntryPointCache())
|
|
35
35
|
}
|
|
36
|
-
(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)
|
|
36
|
+
;(caches[entry] as LRUCache<string, Parser.ParserResult[Entry]>).set(expression, value)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
private createEntryPointCache(): CacheByEntryPoint {
|
|
@@ -30,13 +30,11 @@ import { assertNever } from '../utils/assertNever'
|
|
|
30
30
|
import { QueryLanguage } from './QueryLanguage'
|
|
31
31
|
|
|
32
32
|
export class MarkerFactory {
|
|
33
|
-
|
|
34
33
|
public static createEntitySubTreeMarker(
|
|
35
34
|
entity: SugaredQualifiedSingleEntity,
|
|
36
35
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
37
36
|
environment: Environment,
|
|
38
37
|
): EntityFieldsWithHoistablesMarker {
|
|
39
|
-
|
|
40
38
|
const qualifiedSingleEntity: QualifiedSingleEntity = QueryLanguage.desugarQualifiedSingleEntity(entity, environment)
|
|
41
39
|
|
|
42
40
|
return this.createSubTreeMarker(qualifiedSingleEntity, 'eventListeners', EntitySubTreeMarker, fields, environment)
|
|
@@ -47,7 +45,6 @@ export class MarkerFactory {
|
|
|
47
45
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
48
46
|
environment: Environment,
|
|
49
47
|
): EntityFieldsWithHoistablesMarker {
|
|
50
|
-
|
|
51
48
|
return this.createSubTreeMarker(
|
|
52
49
|
QueryLanguage.desugarUnconstrainedQualifiedSingleEntity(entity, environment),
|
|
53
50
|
'eventListeners',
|
|
@@ -62,7 +59,6 @@ export class MarkerFactory {
|
|
|
62
59
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
63
60
|
environment: Environment,
|
|
64
61
|
): EntityFieldsWithHoistablesMarker {
|
|
65
|
-
|
|
66
62
|
return this.createSubTreeMarker(
|
|
67
63
|
QueryLanguage.desugarQualifiedEntityList(entityList, environment),
|
|
68
64
|
'childEventListeners',
|
|
@@ -77,7 +73,6 @@ export class MarkerFactory {
|
|
|
77
73
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
78
74
|
environment: Environment,
|
|
79
75
|
): EntityFieldsWithHoistablesMarker {
|
|
80
|
-
|
|
81
76
|
return this.createSubTreeMarker(
|
|
82
77
|
QueryLanguage.desugarUnconstrainedQualifiedEntityList(entityList, environment),
|
|
83
78
|
'childEventListeners',
|
|
@@ -92,7 +87,6 @@ export class MarkerFactory {
|
|
|
92
87
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
93
88
|
environment: Environment,
|
|
94
89
|
): EntityFieldsWithHoistablesMarker {
|
|
95
|
-
|
|
96
90
|
const desugared = QueryLanguage.desugarParentEntityParameters(parentEntity, environment)
|
|
97
91
|
|
|
98
92
|
if (fields instanceof EntityFieldMarkersContainer) {
|
|
@@ -110,7 +104,6 @@ export class MarkerFactory {
|
|
|
110
104
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
111
105
|
environment: Environment,
|
|
112
106
|
): EntityFieldsWithHoistablesMarker {
|
|
113
|
-
|
|
114
107
|
if (fields instanceof EntityFieldMarkersContainer) {
|
|
115
108
|
return new EntityFieldsWithHoistablesMarker(fields, undefined, undefined)
|
|
116
109
|
}
|
|
@@ -123,19 +116,17 @@ export class MarkerFactory {
|
|
|
123
116
|
environment: Environment,
|
|
124
117
|
fields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,
|
|
125
118
|
): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {
|
|
126
|
-
|
|
127
119
|
const relativeSingleEntity = QueryLanguage.desugarRelativeSingleEntity(field, environment)
|
|
128
120
|
|
|
129
121
|
if (fields instanceof EntityFieldMarkersContainer) {
|
|
130
122
|
return this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields)
|
|
131
123
|
}
|
|
132
124
|
|
|
133
|
-
relativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
)
|
|
125
|
+
relativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1] = TreeParameterMerger.mergeInParentEntity(
|
|
126
|
+
relativeSingleEntity.hasOneRelationPath[relativeSingleEntity.hasOneRelationPath.length - 1],
|
|
127
|
+
'eventListeners',
|
|
128
|
+
fields.parentReference,
|
|
129
|
+
)
|
|
139
130
|
|
|
140
131
|
return new EntityFieldsWithHoistablesMarker(
|
|
141
132
|
this.wrapRelativeEntityFieldMarkers(relativeSingleEntity.hasOneRelationPath, environment, fields.fields),
|
|
@@ -149,7 +140,6 @@ export class MarkerFactory {
|
|
|
149
140
|
environment: Environment,
|
|
150
141
|
fields: EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer,
|
|
151
142
|
): EntityFieldsWithHoistablesMarker | EntityFieldMarkersContainer {
|
|
152
|
-
|
|
153
143
|
const relativeEntityList = QueryLanguage.desugarRelativeEntityList(field, environment)
|
|
154
144
|
|
|
155
145
|
if (fields instanceof EntityFieldMarkersContainer) {
|
|
@@ -189,7 +179,6 @@ export class MarkerFactory {
|
|
|
189
179
|
}
|
|
190
180
|
|
|
191
181
|
public static createFieldMarker(field: SugaredRelativeSingleField, environment: Environment): EntityFieldMarkersContainer {
|
|
192
|
-
|
|
193
182
|
return this.wrapRelativeSingleField(
|
|
194
183
|
field,
|
|
195
184
|
environment,
|
|
@@ -202,7 +191,6 @@ export class MarkerFactory {
|
|
|
202
191
|
environment: Environment,
|
|
203
192
|
getMarker: (relativeSingleField: RelativeSingleField) => EntityFieldMarker,
|
|
204
193
|
): EntityFieldMarkersContainer {
|
|
205
|
-
|
|
206
194
|
const relativeSingleField = QueryLanguage.desugarRelativeSingleField(field, environment)
|
|
207
195
|
|
|
208
196
|
return this.wrapRelativeEntityFieldMarkers(
|
|
@@ -217,7 +205,6 @@ export class MarkerFactory {
|
|
|
217
205
|
environment: Environment,
|
|
218
206
|
fields: EntityFieldMarkersContainer,
|
|
219
207
|
): EntityFieldMarkersContainer {
|
|
220
|
-
|
|
221
208
|
for (let i = hasOneRelationPath.length - 1; i >= 0; i--) {
|
|
222
209
|
const marker = this.createHasOneRelationMarker(hasOneRelationPath[i], environment, fields)
|
|
223
210
|
environment = environment.getParent()
|
|
@@ -278,7 +265,7 @@ export class MarkerFactory {
|
|
|
278
265
|
>(
|
|
279
266
|
qualifiedParams: Params,
|
|
280
267
|
key: Key,
|
|
281
|
-
Marker: new
|
|
268
|
+
Marker: new(params: Params, fields: EntityFieldMarkersContainer, env: Environment) =>
|
|
282
269
|
| EntitySubTreeMarker
|
|
283
270
|
| EntityListSubTreeMarker,
|
|
284
271
|
fields: EntityFieldMarkersContainer | EntityFieldsWithHoistablesMarker,
|
|
@@ -45,9 +45,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
45
45
|
this.CONSUME(tokens.Dot)
|
|
46
46
|
return this.SUBRULE(this.relativeSingleEntity)
|
|
47
47
|
})
|
|
48
|
-
const hasOneRelationPath = this.ACTION(() =>
|
|
49
|
-
relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath,
|
|
50
|
-
)
|
|
48
|
+
const hasOneRelationPath = this.ACTION(() => relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath)
|
|
51
49
|
|
|
52
50
|
return {
|
|
53
51
|
entityName,
|
|
@@ -83,9 +81,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
83
81
|
return this.SUBRULE(this.relativeSingleEntity)
|
|
84
82
|
})
|
|
85
83
|
|
|
86
|
-
const hasOneRelationPath = this.ACTION(() =>
|
|
87
|
-
relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath,
|
|
88
|
-
)
|
|
84
|
+
const hasOneRelationPath = this.ACTION(() => relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath)
|
|
89
85
|
|
|
90
86
|
return {
|
|
91
87
|
entityName,
|
|
@@ -104,9 +100,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
104
100
|
return this.SUBRULE(this.relativeSingleEntity)
|
|
105
101
|
})
|
|
106
102
|
|
|
107
|
-
const hasOneRelationPath = this.ACTION(() =>
|
|
108
|
-
relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath,
|
|
109
|
-
)
|
|
103
|
+
const hasOneRelationPath = this.ACTION(() => relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath)
|
|
110
104
|
|
|
111
105
|
return {
|
|
112
106
|
entityName,
|
|
@@ -124,9 +118,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
124
118
|
return this.SUBRULE(this.relativeSingleEntity)
|
|
125
119
|
})
|
|
126
120
|
|
|
127
|
-
const hasOneRelationPath = this.ACTION(() =>
|
|
128
|
-
relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath,
|
|
129
|
-
)
|
|
121
|
+
const hasOneRelationPath = this.ACTION(() => relativeSingleEntity === undefined ? [] : relativeSingleEntity.hasOneRelationPath)
|
|
130
122
|
|
|
131
123
|
return {
|
|
132
124
|
entityName,
|
|
@@ -355,7 +347,6 @@ class Parser extends EmbeddedActionsParser {
|
|
|
355
347
|
})
|
|
356
348
|
}
|
|
357
349
|
|
|
358
|
-
|
|
359
350
|
return this.OR([
|
|
360
351
|
{
|
|
361
352
|
ALT: () => {
|
|
@@ -502,9 +493,11 @@ class Parser extends EmbeddedActionsParser {
|
|
|
502
493
|
nestedWhere = existingWhere
|
|
503
494
|
} else {
|
|
504
495
|
throw new QueryLanguageError(
|
|
505
|
-
`Malformed expression: cannot simultaneously treat the '${
|
|
506
|
-
|
|
507
|
-
|
|
496
|
+
`Malformed expression: cannot simultaneously treat the '${
|
|
497
|
+
nestedFields
|
|
498
|
+
.slice(0, i + 1)
|
|
499
|
+
.join('.')
|
|
500
|
+
}' ` + `field as a scalar as well as a relation.`,
|
|
508
501
|
)
|
|
509
502
|
}
|
|
510
503
|
} else {
|
|
@@ -628,7 +621,6 @@ class Parser extends EmbeddedActionsParser {
|
|
|
628
621
|
}
|
|
629
622
|
})
|
|
630
623
|
|
|
631
|
-
|
|
632
624
|
private fieldName: () => FieldName = this.RULE<FieldName>('fieldName', () => {
|
|
633
625
|
return this.OR([
|
|
634
626
|
{
|
|
@@ -653,8 +645,8 @@ class Parser extends EmbeddedActionsParser {
|
|
|
653
645
|
const variableValue = this.SUBRULE(this.variable)
|
|
654
646
|
return this.ACTION(() => {
|
|
655
647
|
if (
|
|
656
|
-
typeof variableValue === 'string'
|
|
657
|
-
typeof variableValue === 'number'
|
|
648
|
+
typeof variableValue === 'string'
|
|
649
|
+
|| typeof variableValue === 'number'
|
|
658
650
|
) {
|
|
659
651
|
return variableValue
|
|
660
652
|
}
|
|
@@ -729,7 +721,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
729
721
|
const variable = this.SUBRULE(this.variable)
|
|
730
722
|
return this.ACTION(() => {
|
|
731
723
|
if (!(typeof variable === 'string') || !TokenRegExps.entityIdentifier.test(variable)) {
|
|
732
|
-
throw new QueryLanguageError(`The value of the variable
|
|
724
|
+
throw new QueryLanguageError(`The value of the variable $${variable} is not a valid entity identifier.`)
|
|
733
725
|
}
|
|
734
726
|
return variable
|
|
735
727
|
})
|
|
@@ -780,14 +772,14 @@ class Parser extends EmbeddedActionsParser {
|
|
|
780
772
|
const dimensionValue = Parser.environment.getDimension(variableName)
|
|
781
773
|
if (dimensionValue.length > 1) {
|
|
782
774
|
throw new BindingError(
|
|
783
|
-
`The variable
|
|
784
|
-
|
|
775
|
+
`The variable $${variableName} resolved to a dimension which exists but contains ${dimensionValue.length} values. It has to contain exactly one. `
|
|
776
|
+
+ `Perhaps you forgot to set the 'maxItems' prop of your DimensionsSwitcher?`,
|
|
785
777
|
)
|
|
786
778
|
}
|
|
787
779
|
return dimensionValue[0]
|
|
788
780
|
}
|
|
789
781
|
|
|
790
|
-
throw new QueryLanguageError(`Undefined variable
|
|
782
|
+
throw new QueryLanguageError(`Undefined variable $${variableName}.`)
|
|
791
783
|
})
|
|
792
784
|
})
|
|
793
785
|
|
|
@@ -807,7 +799,7 @@ class Parser extends EmbeddedActionsParser {
|
|
|
807
799
|
return cached
|
|
808
800
|
}
|
|
809
801
|
|
|
810
|
-
const lexingResult = Parser.lexer.tokenize(
|
|
802
|
+
const lexingResult = Parser.lexer.tokenize(Parser.rawInput = input)
|
|
811
803
|
|
|
812
804
|
if (lexingResult.errors.length !== 0) {
|
|
813
805
|
throw new QueryLanguageError(
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EntityName,
|
|
3
|
-
FieldName,
|
|
4
|
-
Filter,
|
|
5
|
-
UniqueWhere,
|
|
6
|
-
} from '../treeParameters'
|
|
1
|
+
import { EntityName, FieldName, Filter, UniqueWhere } from '../treeParameters'
|
|
7
2
|
|
|
8
3
|
export interface ParsedQualifiedSingleEntity {
|
|
9
4
|
where: UniqueWhere
|
|
@@ -72,7 +67,7 @@ export interface ParsedTaggedMapEntry {
|
|
|
72
67
|
|
|
73
68
|
export interface ParsedTaggedMapLiteralValue {
|
|
74
69
|
type: 'literal'
|
|
75
|
-
value:
|
|
70
|
+
value: string | number
|
|
76
71
|
}
|
|
77
72
|
|
|
78
73
|
export interface ParsedTaggedMapVariableValue {
|
|
@@ -51,10 +51,8 @@ import { VariableInputTransformer } from '../environment/VariableInputTransforme
|
|
|
51
51
|
const emptyObject = Object.freeze({})
|
|
52
52
|
|
|
53
53
|
export class QueryLanguage {
|
|
54
|
-
|
|
55
54
|
private static preparePrimitiveEntryPoint<Entry extends Parser.EntryPoint>(entryPoint: Entry) {
|
|
56
|
-
return (input: string, environment: Environment): Parser.ParserResult[Entry] =>
|
|
57
|
-
Parser.parseQueryLanguageExpression(input, entryPoint, environment)
|
|
55
|
+
return (input: string, environment: Environment): Parser.ParserResult[Entry] => Parser.parseQueryLanguageExpression(input, entryPoint, environment)
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
private static preparePrimitiveEntryPointWithFallback<Entry extends Parser.EntryPoint>(entryPoint: Entry) {
|
|
@@ -80,7 +78,6 @@ export class QueryLanguage {
|
|
|
80
78
|
public static desugarOrderBy = QueryLanguage.preparePrimitiveEntryPointWithFallback('orderBy')
|
|
81
79
|
public static desugarTaggedMap = QueryLanguage.preparePrimitiveEntryPointWithFallback('taggedMap')
|
|
82
80
|
|
|
83
|
-
|
|
84
81
|
public static desugarSetOnCreate(setOnCreate: SugaredSetOnCreate, environment: Environment): UniqueWhere {
|
|
85
82
|
if (Array.isArray(setOnCreate)) {
|
|
86
83
|
const whereList = setOnCreate.map(connection => this.desugarUniqueWhere(connection, environment))
|
|
@@ -107,12 +104,12 @@ export class QueryLanguage {
|
|
|
107
104
|
unsugarable: UnsugarableSingleEntityEventListeners,
|
|
108
105
|
): EntityEventListenerStore | undefined {
|
|
109
106
|
if (
|
|
110
|
-
unsugarable.onBeforePersist === undefined
|
|
111
|
-
unsugarable.onBeforeUpdate === undefined
|
|
112
|
-
unsugarable.onInitialize === undefined
|
|
113
|
-
unsugarable.onPersistError === undefined
|
|
114
|
-
unsugarable.onPersistSuccess === undefined
|
|
115
|
-
unsugarable.onUpdate === undefined
|
|
107
|
+
unsugarable.onBeforePersist === undefined
|
|
108
|
+
&& unsugarable.onBeforeUpdate === undefined
|
|
109
|
+
&& unsugarable.onInitialize === undefined
|
|
110
|
+
&& unsugarable.onPersistError === undefined
|
|
111
|
+
&& unsugarable.onPersistSuccess === undefined
|
|
112
|
+
&& unsugarable.onUpdate === undefined
|
|
116
113
|
) {
|
|
117
114
|
return undefined
|
|
118
115
|
}
|
|
@@ -159,18 +156,19 @@ export class QueryLanguage {
|
|
|
159
156
|
| {
|
|
160
157
|
eventListeners: EntityListEventListenerStore | undefined
|
|
161
158
|
childEventListeners: EntityEventListenerStore | undefined
|
|
162
|
-
|
|
163
|
-
| undefined
|
|
159
|
+
}
|
|
160
|
+
| undefined
|
|
161
|
+
{
|
|
164
162
|
if (
|
|
165
|
-
unsugarable.onBeforePersist === undefined
|
|
166
|
-
unsugarable.onBeforeUpdate === undefined
|
|
167
|
-
unsugarable.onChildBeforeUpdate === undefined
|
|
168
|
-
unsugarable.onChildInitialize === undefined
|
|
169
|
-
unsugarable.onChildUpdate === undefined
|
|
170
|
-
unsugarable.onInitialize === undefined
|
|
171
|
-
unsugarable.onPersistError === undefined
|
|
172
|
-
unsugarable.onPersistSuccess === undefined
|
|
173
|
-
unsugarable.onUpdate === undefined
|
|
163
|
+
unsugarable.onBeforePersist === undefined
|
|
164
|
+
&& unsugarable.onBeforeUpdate === undefined
|
|
165
|
+
&& unsugarable.onChildBeforeUpdate === undefined
|
|
166
|
+
&& unsugarable.onChildInitialize === undefined
|
|
167
|
+
&& unsugarable.onChildUpdate === undefined
|
|
168
|
+
&& unsugarable.onInitialize === undefined
|
|
169
|
+
&& unsugarable.onPersistError === undefined
|
|
170
|
+
&& unsugarable.onPersistSuccess === undefined
|
|
171
|
+
&& unsugarable.onUpdate === undefined
|
|
174
172
|
) {
|
|
175
173
|
return undefined
|
|
176
174
|
}
|
|
@@ -286,7 +284,7 @@ export class QueryLanguage {
|
|
|
286
284
|
typeof desugaredHasOneRelation === 'string' ? { field: desugaredHasOneRelation } : desugaredHasOneRelation,
|
|
287
285
|
i === path.length - 1 ? unsugarable : {},
|
|
288
286
|
environment,
|
|
289
|
-
)
|
|
287
|
+
)
|
|
290
288
|
)
|
|
291
289
|
}
|
|
292
290
|
|
|
@@ -348,7 +346,6 @@ export class QueryLanguage {
|
|
|
348
346
|
): HasManyRelation {
|
|
349
347
|
const eventListeners = this.desugarEntityListEventListeners(unsugarablePart)
|
|
350
348
|
return {
|
|
351
|
-
|
|
352
349
|
filter: sugarablePart.filter ? this.desugarFilter(sugarablePart.filter, environment) : undefined,
|
|
353
350
|
limit: unsugarablePart.limit,
|
|
354
351
|
offset: unsugarablePart.offset,
|
|
@@ -529,10 +526,9 @@ export class QueryLanguage {
|
|
|
529
526
|
alias: this.desugarSubTreeAlias(unsugarableFieldList.alias),
|
|
530
527
|
isNonbearing: unsugarableFieldList.isNonbearing ?? EntityCreationParametersDefaults.isNonbearing,
|
|
531
528
|
// forceCreation: unsugarableFieldList.forceCreation ?? EntityCreationParametersDefaults.forceCreation,
|
|
532
|
-
defaultValue:
|
|
533
|
-
unsugarableFieldList.defaultValue
|
|
534
|
-
|
|
535
|
-
: undefined,
|
|
529
|
+
defaultValue: unsugarableFieldList.defaultValue !== undefined
|
|
530
|
+
? VariableInputTransformer.transformValue(unsugarableFieldList.defaultValue, environment)
|
|
531
|
+
: undefined,
|
|
536
532
|
expectedMutation: unsugarableFieldList.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation,
|
|
537
533
|
eventListeners: this.desugarFieldEventListeners(unsugarableFieldList),
|
|
538
534
|
filter: filter ? this.desugarFilter(filter, environment) : undefined,
|
|
@@ -578,19 +574,15 @@ export class QueryLanguage {
|
|
|
578
574
|
// unsugarableSingleEntity.forceCreation !== undefined
|
|
579
575
|
// ? unsugarableSingleEntity.forceCreation !== undefined
|
|
580
576
|
// : EntityCreationParametersDefaults.forceCreation
|
|
581
|
-
let setOnCreate: UniqueWhere | undefined =
|
|
582
|
-
unsugarableSingleEntity.setOnCreate
|
|
583
|
-
|
|
584
|
-
: undefined
|
|
585
|
-
|
|
577
|
+
let setOnCreate: UniqueWhere | undefined = unsugarableSingleEntity.setOnCreate !== undefined
|
|
578
|
+
? this.desugarSetOnCreate(unsugarableSingleEntity.setOnCreate, environment)
|
|
579
|
+
: undefined
|
|
586
580
|
|
|
587
|
-
const isNonbearing: boolean =
|
|
588
|
-
unsugarableSingleEntity.isNonbearing
|
|
589
|
-
|
|
590
|
-
: EntityCreationParametersDefaults.isNonbearing
|
|
581
|
+
const isNonbearing: boolean = unsugarableSingleEntity.isNonbearing !== undefined
|
|
582
|
+
? unsugarableSingleEntity.isNonbearing
|
|
583
|
+
: EntityCreationParametersDefaults.isNonbearing
|
|
591
584
|
const eventListeners = this.desugarSingleEntityEventListeners(unsugarableSingleEntity)
|
|
592
|
-
const expectedMutation =
|
|
593
|
-
unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation
|
|
585
|
+
const expectedMutation = unsugarableSingleEntity.expectedMutation ?? QualifiedEntityParametersDefaults.expectedMutation
|
|
594
586
|
const alias = this.desugarSubTreeAlias(unsugarableSingleEntity.alias)
|
|
595
587
|
|
|
596
588
|
return {
|
|
@@ -645,7 +637,6 @@ export class QueryLanguage {
|
|
|
645
637
|
environment,
|
|
646
638
|
)
|
|
647
639
|
}
|
|
648
|
-
|
|
649
640
|
} else {
|
|
650
641
|
hasOneRelationPath = this.desugarHasOneRelationPath(field, unsugarableEntity, environment)
|
|
651
642
|
}
|
|
@@ -682,7 +673,6 @@ export class QueryLanguage {
|
|
|
682
673
|
hasOneRelationPath = this.augmentDesugaredHasOneRelationPath(parsed.hasOneRelationPath, {}, environment)
|
|
683
674
|
fieldName = parsed.field
|
|
684
675
|
}
|
|
685
|
-
|
|
686
676
|
} else {
|
|
687
677
|
hasOneRelationPath = this.desugarHasOneRelationPath(field.hasOneRelationPath, {}, environment)
|
|
688
678
|
fieldName = field.field
|
|
@@ -694,10 +684,9 @@ export class QueryLanguage {
|
|
|
694
684
|
field: fieldName,
|
|
695
685
|
isNonbearing: unsugarableField.isNonbearing ?? LeafFieldDefaults.isNonbearing,
|
|
696
686
|
meta: unsugarableField.withMeta ?? [],
|
|
697
|
-
defaultValue:
|
|
698
|
-
unsugarableField.defaultValue
|
|
699
|
-
|
|
700
|
-
: undefined,
|
|
687
|
+
defaultValue: unsugarableField.defaultValue !== undefined
|
|
688
|
+
? VariableInputTransformer.transformValue(unsugarableField.defaultValue, environment)
|
|
689
|
+
: undefined,
|
|
701
690
|
}
|
|
702
691
|
}
|
|
703
692
|
|
package/src/schema/Schema.ts
CHANGED
|
@@ -6,50 +6,48 @@ import { SchemaPreprocessor } from './SchemaPreprocessor'
|
|
|
6
6
|
export class SchemaLoader {
|
|
7
7
|
private static readonly schemaLoadCache: Map<string, Promise<Schema>> = new Map()
|
|
8
8
|
|
|
9
|
-
private static readonly schemaQuery =
|
|
10
|
-
'
|
|
11
|
-
'
|
|
12
|
-
'
|
|
13
|
-
'
|
|
14
|
-
'
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
'
|
|
36
|
-
'
|
|
37
|
-
'
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
'
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'}'
|
|
9
|
+
private static readonly schemaQuery = 'query {\n'
|
|
10
|
+
+ ' schema {\n'
|
|
11
|
+
+ ' enums {\n'
|
|
12
|
+
+ ' name\n'
|
|
13
|
+
+ ' values\n'
|
|
14
|
+
+ ' }\n'
|
|
15
|
+
+ ' entities {\n'
|
|
16
|
+
+ ' name\n'
|
|
17
|
+
+ ' customPrimaryAllowed\n'
|
|
18
|
+
+ ' unique {\n'
|
|
19
|
+
+ ' fields\n'
|
|
20
|
+
+ ' }\n'
|
|
21
|
+
+ ' fields {\n'
|
|
22
|
+
+ ' __typename\n'
|
|
23
|
+
+ ' name\n'
|
|
24
|
+
+ ' type\n'
|
|
25
|
+
+ ' nullable\n'
|
|
26
|
+
+ ' ... on _Column {\n'
|
|
27
|
+
+ ' enumName\n'
|
|
28
|
+
+ ' defaultValue\n'
|
|
29
|
+
+ ' }\n'
|
|
30
|
+
+ ' ... on _Relation {\n'
|
|
31
|
+
+ ' side\n'
|
|
32
|
+
+ ' targetEntity\n'
|
|
33
|
+
+ ' ownedBy\n'
|
|
34
|
+
+ ' inversedBy\n'
|
|
35
|
+
+ ' onDelete\n'
|
|
36
|
+
+ ' orphanRemoval\n'
|
|
37
|
+
+ ' orderBy {\n'
|
|
38
|
+
+ ' path\n'
|
|
39
|
+
+ ' direction\n'
|
|
40
|
+
+ ' }\n'
|
|
41
|
+
+ ' }\n'
|
|
42
|
+
+ ' }\n'
|
|
43
|
+
+ ' }\n'
|
|
44
|
+
+ ' }\n'
|
|
45
|
+
+ '}'
|
|
47
46
|
|
|
48
47
|
public static async loadSchema(
|
|
49
48
|
client: GraphQlClient,
|
|
50
49
|
options?: GraphQlClientRequestOptions,
|
|
51
50
|
): Promise<Schema> {
|
|
52
|
-
|
|
53
51
|
const existing = this.schemaLoadCache.get(client.apiUrl)
|
|
54
52
|
if (existing !== undefined) {
|
|
55
53
|
return existing
|
|
@@ -24,7 +24,6 @@ export interface ParentEntityParameters {
|
|
|
24
24
|
eventListeners: EntityEventListenerStore | undefined
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
28
27
|
export interface QualifiedEntityList {
|
|
29
28
|
entityName: EntityName
|
|
30
29
|
hasOneRelationPath: HasOneRelation[]
|
|
@@ -163,7 +162,6 @@ export type EntityListEventListenerStore = EventListenersStore<
|
|
|
163
162
|
EntityListAccessor.EntityListEventListenerMap
|
|
164
163
|
>
|
|
165
164
|
|
|
166
|
-
|
|
167
165
|
export type FieldEventListenerStore<Value extends FieldValue = FieldValue> = EventListenersStore<
|
|
168
166
|
FieldAccessor.FieldEventListenerMap<Value>
|
|
169
167
|
>
|