@contember/binding-common 2.1.0-alpha.36 → 2.1.0-alpha.39
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 +114 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +102 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/BindingError.cjs +10 -0
- package/dist/development/src/BindingError.cjs.map +1 -0
- package/dist/development/src/BindingError.js +10 -0
- package/dist/development/src/BindingError.js.map +1 -0
- package/dist/development/src/DataBindingExtendAborted.cjs +5 -0
- package/dist/development/src/DataBindingExtendAborted.cjs.map +1 -0
- package/dist/development/src/DataBindingExtendAborted.js +5 -0
- package/dist/development/src/DataBindingExtendAborted.js.map +1 -0
- package/dist/development/src/LocalizedBindingError.cjs +14 -0
- package/dist/development/src/LocalizedBindingError.cjs.map +1 -0
- package/dist/development/src/LocalizedBindingError.js +14 -0
- package/dist/development/src/LocalizedBindingError.js.map +1 -0
- package/dist/development/src/RuntimeId.cjs +61 -0
- package/dist/development/src/RuntimeId.cjs.map +1 -0
- package/dist/development/src/RuntimeId.js +61 -0
- package/dist/development/src/RuntimeId.js.map +1 -0
- package/dist/development/src/consts.cjs +9 -0
- package/dist/development/src/consts.cjs.map +1 -0
- package/dist/development/src/consts.js +9 -0
- package/dist/development/src/consts.js.map +1 -0
- package/dist/development/src/environment/Environment.cjs +200 -0
- package/dist/development/src/environment/Environment.cjs.map +1 -0
- package/dist/development/src/environment/Environment.js +200 -0
- package/dist/development/src/environment/Environment.js.map +1 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js +89 -0
- package/dist/development/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
- package/dist/development/src/environment/VariableFieldValue.cjs +9 -0
- package/dist/development/src/environment/VariableFieldValue.cjs.map +1 -0
- package/dist/development/src/environment/VariableFieldValue.js +9 -0
- package/dist/development/src/environment/VariableFieldValue.js.map +1 -0
- package/dist/development/src/environment/VariableInputTransformer.cjs +24 -0
- package/dist/development/src/environment/VariableInputTransformer.cjs.map +1 -0
- package/dist/development/src/environment/VariableInputTransformer.js +24 -0
- package/dist/development/src/environment/VariableInputTransformer.js.map +1 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs +11 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.js +11 -0
- package/dist/development/src/markers/EntityFieldMarkersContainer.js.map +1 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
- package/dist/development/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs +20 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.js +20 -0
- package/dist/development/src/markers/EntityListSubTreeMarker.js.map +1 -0
- package/dist/development/src/markers/EntitySubTreeMarker.cjs +20 -0
- package/dist/development/src/markers/EntitySubTreeMarker.cjs.map +1 -0
- package/dist/development/src/markers/EntitySubTreeMarker.js +20 -0
- package/dist/development/src/markers/EntitySubTreeMarker.js.map +1 -0
- package/dist/development/src/markers/FieldMarker.cjs +24 -0
- package/dist/development/src/markers/FieldMarker.cjs.map +1 -0
- package/dist/development/src/markers/FieldMarker.js +24 -0
- package/dist/development/src/markers/FieldMarker.js.map +1 -0
- package/dist/development/src/markers/HasManyRelationMarker.cjs +26 -0
- package/dist/development/src/markers/HasManyRelationMarker.cjs.map +1 -0
- package/dist/development/src/markers/HasManyRelationMarker.js +26 -0
- package/dist/development/src/markers/HasManyRelationMarker.js.map +1 -0
- package/dist/development/src/markers/HasOneRelationMarker.cjs +20 -0
- package/dist/development/src/markers/HasOneRelationMarker.cjs.map +1 -0
- package/dist/development/src/markers/HasOneRelationMarker.js +20 -0
- package/dist/development/src/markers/HasOneRelationMarker.js.map +1 -0
- package/dist/development/src/markers/MarkerComparator.cjs +79 -0
- package/dist/development/src/markers/MarkerComparator.cjs.map +1 -0
- package/dist/development/src/markers/MarkerComparator.js +79 -0
- package/dist/development/src/markers/MarkerComparator.js.map +1 -0
- package/dist/development/src/markers/MarkerMerger.cjs +255 -0
- package/dist/development/src/markers/MarkerMerger.cjs.map +1 -0
- package/dist/development/src/markers/MarkerMerger.js +255 -0
- package/dist/development/src/markers/MarkerMerger.js.map +1 -0
- package/dist/development/src/markers/MarkerTreeRoot.cjs +10 -0
- package/dist/development/src/markers/MarkerTreeRoot.cjs.map +1 -0
- package/dist/development/src/markers/MarkerTreeRoot.js +10 -0
- package/dist/development/src/markers/MarkerTreeRoot.js.map +1 -0
- package/dist/development/src/markers/PlaceholderGenerator.cjs +23 -0
- package/dist/development/src/markers/PlaceholderGenerator.cjs.map +1 -0
- package/dist/development/src/markers/PlaceholderGenerator.js +23 -0
- package/dist/development/src/markers/PlaceholderGenerator.js.map +1 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs +62 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.js +62 -0
- package/dist/development/src/markers/PlaceholderParametersGenerator.js.map +1 -0
- package/dist/development/src/queryLanguage/CacheStore.cjs +44 -0
- package/dist/development/src/queryLanguage/CacheStore.cjs.map +1 -0
- package/dist/development/src/queryLanguage/CacheStore.js +44 -0
- package/dist/development/src/queryLanguage/CacheStore.js.map +1 -0
- package/dist/development/src/queryLanguage/MarkerFactory.cjs +200 -0
- package/dist/development/src/queryLanguage/MarkerFactory.cjs.map +1 -0
- package/dist/development/src/queryLanguage/MarkerFactory.js +200 -0
- package/dist/development/src/queryLanguage/MarkerFactory.js.map +1 -0
- package/dist/development/src/queryLanguage/Parser.cjs +714 -0
- package/dist/development/src/queryLanguage/Parser.cjs.map +1 -0
- package/dist/development/src/queryLanguage/Parser.js +714 -0
- package/dist/development/src/queryLanguage/Parser.js.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguage.cjs +530 -0
- package/dist/development/src/queryLanguage/QueryLanguage.cjs.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguage.js +530 -0
- package/dist/development/src/queryLanguage/QueryLanguage.js.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs +6 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.js +6 -0
- package/dist/development/src/queryLanguage/QueryLanguageError.js.map +1 -0
- package/dist/development/src/queryLanguage/tokenList.cjs +151 -0
- package/dist/development/src/queryLanguage/tokenList.cjs.map +1 -0
- package/dist/development/src/queryLanguage/tokenList.js +152 -0
- package/dist/development/src/queryLanguage/tokenList.js.map +1 -0
- package/dist/development/src/schema/Schema.cjs +39 -0
- package/dist/development/src/schema/Schema.cjs.map +1 -0
- package/dist/development/src/schema/Schema.js +39 -0
- package/dist/development/src/schema/Schema.js.map +1 -0
- package/dist/development/src/schema/SchemaLoader.cjs +25 -0
- package/dist/development/src/schema/SchemaLoader.cjs.map +1 -0
- package/dist/development/src/schema/SchemaLoader.js +25 -0
- package/dist/development/src/schema/SchemaLoader.js.map +1 -0
- package/dist/development/src/schema/SchemaPreprocessor.cjs +38 -0
- package/dist/development/src/schema/SchemaPreprocessor.cjs.map +1 -0
- package/dist/development/src/schema/SchemaPreprocessor.js +38 -0
- package/dist/development/src/schema/SchemaPreprocessor.js.map +1 -0
- package/dist/development/src/treeParameters/EventListenersStore.cjs +93 -0
- package/dist/development/src/treeParameters/EventListenersStore.cjs.map +1 -0
- package/dist/development/src/treeParameters/EventListenersStore.js +93 -0
- package/dist/development/src/treeParameters/EventListenersStore.js.map +1 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs +276 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.js +276 -0
- package/dist/development/src/treeParameters/TreeParameterMerger.js.map +1 -0
- package/dist/development/src/treeParameters/defaults.cjs +24 -0
- package/dist/development/src/treeParameters/defaults.cjs.map +1 -0
- package/dist/development/src/treeParameters/defaults.js +24 -0
- package/dist/development/src/treeParameters/defaults.js.map +1 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
- package/dist/development/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
- package/dist/development/src/types/EntityAccessor.cjs +5 -0
- package/dist/development/src/types/EntityAccessor.cjs.map +1 -0
- package/dist/development/src/types/EntityAccessor.js +5 -0
- package/dist/development/src/types/EntityAccessor.js.map +1 -0
- package/dist/development/src/types/EntityListAccessor.cjs +5 -0
- package/dist/development/src/types/EntityListAccessor.cjs.map +1 -0
- package/dist/development/src/types/EntityListAccessor.js +5 -0
- package/dist/development/src/types/EntityListAccessor.js.map +1 -0
- package/dist/development/src/types/ErrorAccessor.cjs +11 -0
- package/dist/development/src/types/ErrorAccessor.cjs.map +1 -0
- package/dist/development/src/types/ErrorAccessor.js +12 -0
- package/dist/development/src/types/ErrorAccessor.js.map +1 -0
- package/dist/development/src/types/FieldAccessor.cjs +5 -0
- package/dist/development/src/types/FieldAccessor.cjs.map +1 -0
- package/dist/development/src/types/FieldAccessor.js +5 -0
- package/dist/development/src/types/FieldAccessor.js.map +1 -0
- package/dist/development/src/types/PersistResult.cjs +7 -0
- package/dist/development/src/types/PersistResult.cjs.map +1 -0
- package/dist/development/src/types/PersistResult.js +7 -0
- package/dist/development/src/types/PersistResult.js.map +1 -0
- package/dist/development/src/types/TreeRootAccessor.cjs +14 -0
- package/dist/development/src/types/TreeRootAccessor.cjs.map +1 -0
- package/dist/development/src/types/TreeRootAccessor.js +14 -0
- package/dist/development/src/types/TreeRootAccessor.js.map +1 -0
- package/dist/development/src/utils/Hashing.cjs +22 -0
- package/dist/development/src/utils/Hashing.cjs.map +1 -0
- package/dist/development/src/utils/Hashing.js +22 -0
- package/dist/development/src/utils/Hashing.js.map +1 -0
- package/dist/development/src/utils/TreeNodeUtils.cjs +77 -0
- package/dist/development/src/utils/TreeNodeUtils.cjs.map +1 -0
- package/dist/development/src/utils/TreeNodeUtils.js +77 -0
- package/dist/development/src/utils/TreeNodeUtils.js.map +1 -0
- package/dist/development/src/utils/assertNever.cjs +10 -0
- package/dist/development/src/utils/assertNever.cjs.map +1 -0
- package/dist/development/src/utils/assertNever.js +10 -0
- package/dist/development/src/utils/assertNever.js.map +1 -0
- package/dist/development/src/utils/createQueryBuilder.cjs +37 -0
- package/dist/development/src/utils/createQueryBuilder.cjs.map +1 -0
- package/dist/development/src/utils/createQueryBuilder.js +37 -0
- package/dist/development/src/utils/createQueryBuilder.js.map +1 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
- package/dist/development/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
- package/dist/development/src/utils/whereToFilter.cjs +16 -0
- package/dist/development/src/utils/whereToFilter.cjs.map +1 -0
- package/dist/development/src/utils/whereToFilter.js +16 -0
- package/dist/development/src/utils/whereToFilter.js.map +1 -0
- package/dist/production/index.cjs +114 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +102 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/BindingError.cjs +10 -0
- package/dist/production/src/BindingError.cjs.map +1 -0
- package/dist/production/src/BindingError.js +10 -0
- package/dist/production/src/BindingError.js.map +1 -0
- package/dist/production/src/DataBindingExtendAborted.cjs +5 -0
- package/dist/production/src/DataBindingExtendAborted.cjs.map +1 -0
- package/dist/production/src/DataBindingExtendAborted.js +5 -0
- package/dist/production/src/DataBindingExtendAborted.js.map +1 -0
- package/dist/production/src/LocalizedBindingError.cjs +14 -0
- package/dist/production/src/LocalizedBindingError.cjs.map +1 -0
- package/dist/production/src/LocalizedBindingError.js +14 -0
- package/dist/production/src/LocalizedBindingError.js.map +1 -0
- package/dist/production/src/RuntimeId.cjs +61 -0
- package/dist/production/src/RuntimeId.cjs.map +1 -0
- package/dist/production/src/RuntimeId.js +61 -0
- package/dist/production/src/RuntimeId.js.map +1 -0
- package/dist/production/src/consts.cjs +9 -0
- package/dist/production/src/consts.cjs.map +1 -0
- package/dist/production/src/consts.js +9 -0
- package/dist/production/src/consts.js.map +1 -0
- package/dist/production/src/environment/Environment.cjs +200 -0
- package/dist/production/src/environment/Environment.cjs.map +1 -0
- package/dist/production/src/environment/Environment.js +200 -0
- package/dist/production/src/environment/Environment.js.map +1 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs +89 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.cjs.map +1 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js +89 -0
- package/dist/production/src/environment/TreeNodeEnvironmentFactory.js.map +1 -0
- package/dist/production/src/environment/VariableFieldValue.cjs +9 -0
- package/dist/production/src/environment/VariableFieldValue.cjs.map +1 -0
- package/dist/production/src/environment/VariableFieldValue.js +9 -0
- package/dist/production/src/environment/VariableFieldValue.js.map +1 -0
- package/dist/production/src/environment/VariableInputTransformer.cjs +24 -0
- package/dist/production/src/environment/VariableInputTransformer.cjs.map +1 -0
- package/dist/production/src/environment/VariableInputTransformer.js +24 -0
- package/dist/production/src/environment/VariableInputTransformer.js.map +1 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs +11 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.cjs.map +1 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.js +11 -0
- package/dist/production/src/markers/EntityFieldMarkersContainer.js.map +1 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs +11 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js +11 -0
- package/dist/production/src/markers/EntityFieldsWithHoistablesMarker.js.map +1 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs +20 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.js +20 -0
- package/dist/production/src/markers/EntityListSubTreeMarker.js.map +1 -0
- package/dist/production/src/markers/EntitySubTreeMarker.cjs +20 -0
- package/dist/production/src/markers/EntitySubTreeMarker.cjs.map +1 -0
- package/dist/production/src/markers/EntitySubTreeMarker.js +20 -0
- package/dist/production/src/markers/EntitySubTreeMarker.js.map +1 -0
- package/dist/production/src/markers/FieldMarker.cjs +24 -0
- package/dist/production/src/markers/FieldMarker.cjs.map +1 -0
- package/dist/production/src/markers/FieldMarker.js +24 -0
- package/dist/production/src/markers/FieldMarker.js.map +1 -0
- package/dist/production/src/markers/HasManyRelationMarker.cjs +20 -0
- package/dist/production/src/markers/HasManyRelationMarker.cjs.map +1 -0
- package/dist/production/src/markers/HasManyRelationMarker.js +20 -0
- package/dist/production/src/markers/HasManyRelationMarker.js.map +1 -0
- package/dist/production/src/markers/HasOneRelationMarker.cjs +20 -0
- package/dist/production/src/markers/HasOneRelationMarker.cjs.map +1 -0
- package/dist/production/src/markers/HasOneRelationMarker.js +20 -0
- package/dist/production/src/markers/HasOneRelationMarker.js.map +1 -0
- package/dist/production/src/markers/MarkerComparator.cjs +79 -0
- package/dist/production/src/markers/MarkerComparator.cjs.map +1 -0
- package/dist/production/src/markers/MarkerComparator.js +79 -0
- package/dist/production/src/markers/MarkerComparator.js.map +1 -0
- package/dist/production/src/markers/MarkerMerger.cjs +255 -0
- package/dist/production/src/markers/MarkerMerger.cjs.map +1 -0
- package/dist/production/src/markers/MarkerMerger.js +255 -0
- package/dist/production/src/markers/MarkerMerger.js.map +1 -0
- package/dist/production/src/markers/MarkerTreeRoot.cjs +10 -0
- package/dist/production/src/markers/MarkerTreeRoot.cjs.map +1 -0
- package/dist/production/src/markers/MarkerTreeRoot.js +10 -0
- package/dist/production/src/markers/MarkerTreeRoot.js.map +1 -0
- package/dist/production/src/markers/PlaceholderGenerator.cjs +23 -0
- package/dist/production/src/markers/PlaceholderGenerator.cjs.map +1 -0
- package/dist/production/src/markers/PlaceholderGenerator.js +23 -0
- package/dist/production/src/markers/PlaceholderGenerator.js.map +1 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs +62 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.cjs.map +1 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.js +62 -0
- package/dist/production/src/markers/PlaceholderParametersGenerator.js.map +1 -0
- package/dist/production/src/queryLanguage/CacheStore.cjs +44 -0
- package/dist/production/src/queryLanguage/CacheStore.cjs.map +1 -0
- package/dist/production/src/queryLanguage/CacheStore.js +44 -0
- package/dist/production/src/queryLanguage/CacheStore.js.map +1 -0
- package/dist/production/src/queryLanguage/MarkerFactory.cjs +200 -0
- package/dist/production/src/queryLanguage/MarkerFactory.cjs.map +1 -0
- package/dist/production/src/queryLanguage/MarkerFactory.js +200 -0
- package/dist/production/src/queryLanguage/MarkerFactory.js.map +1 -0
- package/dist/production/src/queryLanguage/Parser.cjs +711 -0
- package/dist/production/src/queryLanguage/Parser.cjs.map +1 -0
- package/dist/production/src/queryLanguage/Parser.js +711 -0
- package/dist/production/src/queryLanguage/Parser.js.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguage.cjs +530 -0
- package/dist/production/src/queryLanguage/QueryLanguage.cjs.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguage.js +530 -0
- package/dist/production/src/queryLanguage/QueryLanguage.js.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs +6 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.cjs.map +1 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.js +6 -0
- package/dist/production/src/queryLanguage/QueryLanguageError.js.map +1 -0
- package/dist/production/src/queryLanguage/tokenList.cjs +151 -0
- package/dist/production/src/queryLanguage/tokenList.cjs.map +1 -0
- package/dist/production/src/queryLanguage/tokenList.js +152 -0
- package/dist/production/src/queryLanguage/tokenList.js.map +1 -0
- package/dist/production/src/schema/Schema.cjs +39 -0
- package/dist/production/src/schema/Schema.cjs.map +1 -0
- package/dist/production/src/schema/Schema.js +39 -0
- package/dist/production/src/schema/Schema.js.map +1 -0
- package/dist/production/src/schema/SchemaLoader.cjs +25 -0
- package/dist/production/src/schema/SchemaLoader.cjs.map +1 -0
- package/dist/production/src/schema/SchemaLoader.js +25 -0
- package/dist/production/src/schema/SchemaLoader.js.map +1 -0
- package/dist/production/src/schema/SchemaPreprocessor.cjs +38 -0
- package/dist/production/src/schema/SchemaPreprocessor.cjs.map +1 -0
- package/dist/production/src/schema/SchemaPreprocessor.js +38 -0
- package/dist/production/src/schema/SchemaPreprocessor.js.map +1 -0
- package/dist/production/src/treeParameters/EventListenersStore.cjs +93 -0
- package/dist/production/src/treeParameters/EventListenersStore.cjs.map +1 -0
- package/dist/production/src/treeParameters/EventListenersStore.js +93 -0
- package/dist/production/src/treeParameters/EventListenersStore.js.map +1 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs +276 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.cjs.map +1 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.js +276 -0
- package/dist/production/src/treeParameters/TreeParameterMerger.js.map +1 -0
- package/dist/production/src/treeParameters/defaults.cjs +24 -0
- package/dist/production/src/treeParameters/defaults.cjs.map +1 -0
- package/dist/production/src/treeParameters/defaults.js +24 -0
- package/dist/production/src/treeParameters/defaults.js.map +1 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs +22 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.cjs.map +1 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js +22 -0
- package/dist/production/src/treeParameters/helpers/wrapFilterInHasOnes.js.map +1 -0
- package/dist/production/src/types/EntityAccessor.cjs +5 -0
- package/dist/production/src/types/EntityAccessor.cjs.map +1 -0
- package/dist/production/src/types/EntityAccessor.js +5 -0
- package/dist/production/src/types/EntityAccessor.js.map +1 -0
- package/dist/production/src/types/EntityListAccessor.cjs +5 -0
- package/dist/production/src/types/EntityListAccessor.cjs.map +1 -0
- package/dist/production/src/types/EntityListAccessor.js +5 -0
- package/dist/production/src/types/EntityListAccessor.js.map +1 -0
- package/dist/production/src/types/ErrorAccessor.cjs +11 -0
- package/dist/production/src/types/ErrorAccessor.cjs.map +1 -0
- package/dist/production/src/types/ErrorAccessor.js +12 -0
- package/dist/production/src/types/ErrorAccessor.js.map +1 -0
- package/dist/production/src/types/FieldAccessor.cjs +5 -0
- package/dist/production/src/types/FieldAccessor.cjs.map +1 -0
- package/dist/production/src/types/FieldAccessor.js +5 -0
- package/dist/production/src/types/FieldAccessor.js.map +1 -0
- package/dist/production/src/types/PersistResult.cjs +7 -0
- package/dist/production/src/types/PersistResult.cjs.map +1 -0
- package/dist/production/src/types/PersistResult.js +7 -0
- package/dist/production/src/types/PersistResult.js.map +1 -0
- package/dist/production/src/types/TreeRootAccessor.cjs +14 -0
- package/dist/production/src/types/TreeRootAccessor.cjs.map +1 -0
- package/dist/production/src/types/TreeRootAccessor.js +14 -0
- package/dist/production/src/types/TreeRootAccessor.js.map +1 -0
- package/dist/production/src/utils/Hashing.cjs +22 -0
- package/dist/production/src/utils/Hashing.cjs.map +1 -0
- package/dist/production/src/utils/Hashing.js +22 -0
- package/dist/production/src/utils/Hashing.js.map +1 -0
- package/dist/production/src/utils/TreeNodeUtils.cjs +77 -0
- package/dist/production/src/utils/TreeNodeUtils.cjs.map +1 -0
- package/dist/production/src/utils/TreeNodeUtils.js +77 -0
- package/dist/production/src/utils/TreeNodeUtils.js.map +1 -0
- package/dist/production/src/utils/assertNever.cjs +10 -0
- package/dist/production/src/utils/assertNever.cjs.map +1 -0
- package/dist/production/src/utils/assertNever.js +10 -0
- package/dist/production/src/utils/assertNever.js.map +1 -0
- package/dist/production/src/utils/createQueryBuilder.cjs +37 -0
- package/dist/production/src/utils/createQueryBuilder.cjs.map +1 -0
- package/dist/production/src/utils/createQueryBuilder.js +37 -0
- package/dist/production/src/utils/createQueryBuilder.js.map +1 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs +7 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.cjs.map +1 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js +7 -0
- package/dist/production/src/utils/generateEnumerabilityPreventingEntropy.js.map +1 -0
- package/dist/production/src/utils/whereToFilter.cjs +16 -0
- package/dist/production/src/utils/whereToFilter.cjs.map +1 -0
- package/dist/production/src/utils/whereToFilter.js +16 -0
- package/dist/production/src/utils/whereToFilter.js.map +1 -0
- package/dist/types/BindingError.d.ts +4 -0
- package/dist/types/BindingError.d.ts.map +1 -0
- package/dist/types/DataBindingExtendAborted.d.ts +2 -0
- package/dist/types/DataBindingExtendAborted.d.ts.map +1 -0
- package/dist/types/LocalizedBindingError.d.ts +8 -0
- package/dist/types/LocalizedBindingError.d.ts.map +1 -0
- package/dist/types/RuntimeId.d.ts +35 -0
- package/dist/types/RuntimeId.d.ts.map +1 -0
- package/dist/types/consts.d.ts +4 -0
- package/dist/types/consts.d.ts.map +1 -0
- package/dist/types/environment/Environment.d.ts +95 -0
- package/dist/types/environment/Environment.d.ts.map +1 -0
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts +15 -0
- package/dist/types/environment/TreeNodeEnvironmentFactory.d.ts.map +1 -0
- package/dist/types/environment/VariableFieldValue.d.ts +5 -0
- package/dist/types/environment/VariableFieldValue.d.ts.map +1 -0
- package/dist/types/environment/VariableInputTransformer.d.ts +8 -0
- package/dist/types/environment/VariableInputTransformer.d.ts.map +1 -0
- package/dist/types/environment/index.d.ts +5 -0
- package/dist/types/environment/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldMarkers.d.ts +7 -0
- package/dist/types/markers/EntityFieldMarkers.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts +10 -0
- package/dist/types/markers/EntityFieldMarkersContainer.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldPlaceholders.d.ts +3 -0
- package/dist/types/markers/EntityFieldPlaceholders.d.ts.map +1 -0
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts +10 -0
- package/dist/types/markers/EntityFieldsWithHoistablesMarker.d.ts.map +1 -0
- package/dist/types/markers/EntityListSubTreeMarker.d.ts +12 -0
- package/dist/types/markers/EntityListSubTreeMarker.d.ts.map +1 -0
- package/dist/types/markers/EntitySubTreeMarker.d.ts +12 -0
- package/dist/types/markers/EntitySubTreeMarker.d.ts.map +1 -0
- package/dist/types/markers/FieldMarker.d.ts +15 -0
- package/dist/types/markers/FieldMarker.d.ts.map +1 -0
- package/dist/types/markers/HasManyRelationMarker.d.ts +12 -0
- package/dist/types/markers/HasManyRelationMarker.d.ts.map +1 -0
- package/dist/types/markers/HasOneRelationMarker.d.ts +12 -0
- package/dist/types/markers/HasOneRelationMarker.d.ts.map +1 -0
- package/dist/types/markers/MarkerComparator.d.ts +8 -0
- package/dist/types/markers/MarkerComparator.d.ts.map +1 -0
- package/dist/types/markers/MarkerMerger.d.ts +22 -0
- package/dist/types/markers/MarkerMerger.d.ts.map +1 -0
- package/dist/types/markers/MarkerTreeRoot.d.ts +8 -0
- package/dist/types/markers/MarkerTreeRoot.d.ts.map +1 -0
- package/dist/types/markers/MeaningfulMarker.d.ts +7 -0
- package/dist/types/markers/MeaningfulMarker.d.ts.map +1 -0
- package/dist/types/markers/PlaceholderGenerator.d.ts +10 -0
- package/dist/types/markers/PlaceholderGenerator.d.ts.map +1 -0
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts +9 -0
- package/dist/types/markers/PlaceholderParametersGenerator.d.ts.map +1 -0
- package/dist/types/markers/SubTreeMarkers.d.ts +5 -0
- package/dist/types/markers/SubTreeMarkers.d.ts.map +1 -0
- package/dist/types/markers/index.d.ts +17 -0
- package/dist/types/markers/index.d.ts.map +1 -0
- package/dist/types/queryLanguage/CacheStore.d.ts +9 -0
- package/dist/types/queryLanguage/CacheStore.d.ts.map +1 -0
- package/dist/types/queryLanguage/MarkerFactory.d.ts +21 -0
- package/dist/types/queryLanguage/MarkerFactory.d.ts.map +1 -0
- package/dist/types/queryLanguage/Parser.d.ts +83 -0
- package/dist/types/queryLanguage/Parser.d.ts.map +1 -0
- package/dist/types/queryLanguage/ParserResults.d.ts +63 -0
- package/dist/types/queryLanguage/ParserResults.d.ts.map +1 -0
- package/dist/types/queryLanguage/QueryLanguage.d.ts +40 -0
- package/dist/types/queryLanguage/QueryLanguage.d.ts.map +1 -0
- package/dist/types/queryLanguage/QueryLanguageError.d.ts +3 -0
- package/dist/types/queryLanguage/QueryLanguageError.d.ts.map +1 -0
- package/dist/types/queryLanguage/index.d.ts +6 -0
- package/dist/types/queryLanguage/index.d.ts.map +1 -0
- package/dist/types/queryLanguage/tokenList.d.ts +36 -0
- package/dist/types/queryLanguage/tokenList.d.ts.map +1 -0
- package/dist/types/schema/RawSchema.d.ts +7 -0
- package/dist/types/schema/RawSchema.d.ts.map +1 -0
- package/dist/types/schema/RawSchemaEntity.d.ts +13 -0
- package/dist/types/schema/RawSchemaEntity.d.ts.map +1 -0
- package/dist/types/schema/RawSchemaEnum.d.ts +6 -0
- package/dist/types/schema/RawSchemaEnum.d.ts.map +1 -0
- package/dist/types/schema/Schema.d.ts +21 -0
- package/dist/types/schema/Schema.d.ts.map +1 -0
- package/dist/types/schema/SchemaColumn.d.ts +12 -0
- package/dist/types/schema/SchemaColumn.d.ts.map +1 -0
- package/dist/types/schema/SchemaColumnType.d.ts +3 -0
- package/dist/types/schema/SchemaColumnType.d.ts.map +1 -0
- package/dist/types/schema/SchemaEntities.d.ts +4 -0
- package/dist/types/schema/SchemaEntities.d.ts.map +1 -0
- package/dist/types/schema/SchemaEntity.d.ts +10 -0
- package/dist/types/schema/SchemaEntity.d.ts.map +1 -0
- package/dist/types/schema/SchemaEnums.d.ts +4 -0
- package/dist/types/schema/SchemaEnums.d.ts.map +1 -0
- package/dist/types/schema/SchemaField.d.ts +4 -0
- package/dist/types/schema/SchemaField.d.ts.map +1 -0
- package/dist/types/schema/SchemaFields.d.ts +4 -0
- package/dist/types/schema/SchemaFields.d.ts.map +1 -0
- package/dist/types/schema/SchemaLoader.d.ts +8 -0
- package/dist/types/schema/SchemaLoader.d.ts.map +1 -0
- package/dist/types/schema/SchemaPreprocessor.d.ts +9 -0
- package/dist/types/schema/SchemaPreprocessor.d.ts.map +1 -0
- package/dist/types/schema/SchemaRelation.d.ts +24 -0
- package/dist/types/schema/SchemaRelation.d.ts.map +1 -0
- package/dist/types/schema/SchemaRelationOrderBy.d.ts +5 -0
- package/dist/types/schema/SchemaRelationOrderBy.d.ts.map +1 -0
- package/dist/types/schema/SchemaStore.d.ts +7 -0
- package/dist/types/schema/SchemaStore.d.ts.map +1 -0
- package/dist/types/schema/SchemaUniqueConstraint.d.ts +5 -0
- package/dist/types/schema/SchemaUniqueConstraint.d.ts.map +1 -0
- package/dist/types/schema/index.d.ts +16 -0
- package/dist/types/schema/index.d.ts.map +1 -0
- package/dist/types/treeParameters/EventListenersStore.d.ts +36 -0
- package/dist/types/treeParameters/EventListenersStore.d.ts.map +1 -0
- package/dist/types/treeParameters/Normalized.d.ts +117 -0
- package/dist/types/treeParameters/Normalized.d.ts.map +1 -0
- package/dist/types/treeParameters/Sugared.d.ts +143 -0
- package/dist/types/treeParameters/Sugared.d.ts.map +1 -0
- package/dist/types/treeParameters/TreeParameterMerger.d.ts +18 -0
- package/dist/types/treeParameters/TreeParameterMerger.d.ts.map +1 -0
- package/dist/types/treeParameters/defaults.d.ts +16 -0
- package/dist/types/treeParameters/defaults.d.ts.map +1 -0
- package/dist/types/treeParameters/helpers/index.d.ts +2 -0
- package/dist/types/treeParameters/helpers/index.d.ts.map +1 -0
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts +3 -0
- package/dist/types/treeParameters/helpers/wrapFilterInHasOnes.d.ts.map +1 -0
- package/dist/types/treeParameters/index.d.ts +12 -0
- package/dist/types/treeParameters/index.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Alias.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Alias.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityId.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityId.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts +2 -0
- package/dist/types/treeParameters/primitives/EntityRealmKey.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedEntityCount.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedQualifiedEntityMutation.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts +2 -0
- package/dist/types/treeParameters/primitives/ExpectedRelationMutation.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/FieldName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/FieldName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/FieldValue.d.ts +5 -0
- package/dist/types/treeParameters/primitives/FieldValue.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Filter.d.ts +4 -0
- package/dist/types/treeParameters/primitives/Filter.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Json.d.ts +7 -0
- package/dist/types/treeParameters/primitives/Json.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Limit.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Limit.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Offset.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Offset.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/OrderBy.d.ts +4 -0
- package/dist/types/treeParameters/primitives/OrderBy.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts +2 -0
- package/dist/types/treeParameters/primitives/PlaceholderName.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/RemovalType.d.ts +2 -0
- package/dist/types/treeParameters/primitives/RemovalType.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/Scalar.d.ts +2 -0
- package/dist/types/treeParameters/primitives/Scalar.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts +4 -0
- package/dist/types/treeParameters/primitives/SetOnCreate.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts +2 -0
- package/dist/types/treeParameters/primitives/TreeRootId.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts +4 -0
- package/dist/types/treeParameters/primitives/UniqueWhere.d.ts.map +1 -0
- package/dist/types/treeParameters/primitives/index.d.ts +21 -0
- package/dist/types/treeParameters/primitives/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts +8 -0
- package/dist/types/types/AsyncBatchUpdatesOptions.d.ts.map +1 -0
- package/dist/types/types/BatchUpdatesOptions.d.ts +9 -0
- package/dist/types/types/BatchUpdatesOptions.d.ts.map +1 -0
- package/dist/types/types/BindingOperations.d.ts +24 -0
- package/dist/types/types/BindingOperations.d.ts.map +1 -0
- package/dist/types/types/DataBindingEvents.d.ts +6 -0
- package/dist/types/types/DataBindingEvents.d.ts.map +1 -0
- package/dist/types/types/DataBindingTransactionResult.d.ts +4 -0
- package/dist/types/types/DataBindingTransactionResult.d.ts.map +1 -0
- package/dist/types/types/EntityAccessor.d.ts +81 -0
- package/dist/types/types/EntityAccessor.d.ts.map +1 -0
- package/dist/types/types/EntityListAccessor.d.ts +84 -0
- package/dist/types/types/EntityListAccessor.d.ts.map +1 -0
- package/dist/types/types/ErrorAccessor.d.ts +30 -0
- package/dist/types/types/ErrorAccessor.d.ts.map +1 -0
- package/dist/types/types/Errorable.d.ts +5 -0
- package/dist/types/types/Errorable.d.ts.map +1 -0
- package/dist/types/types/ExtendTree.d.ts +10 -0
- package/dist/types/types/ExtendTree.d.ts.map +1 -0
- package/dist/types/types/FieldAccessor.d.ts +49 -0
- package/dist/types/types/FieldAccessor.d.ts.map +1 -0
- package/dist/types/types/GetEntityByKey.d.ts +3 -0
- package/dist/types/types/GetEntityByKey.d.ts.map +1 -0
- package/dist/types/types/GetEntityListSubTree.d.ts +5 -0
- package/dist/types/types/GetEntityListSubTree.d.ts.map +1 -0
- package/dist/types/types/GetEntitySubTree.d.ts +5 -0
- package/dist/types/types/GetEntitySubTree.d.ts.map +1 -0
- package/dist/types/types/Persist.d.ts +10 -0
- package/dist/types/types/Persist.d.ts.map +1 -0
- package/dist/types/types/PersistErrorOptions.d.ts +4 -0
- package/dist/types/types/PersistErrorOptions.d.ts.map +1 -0
- package/dist/types/types/PersistResult.d.ts +24 -0
- package/dist/types/types/PersistResult.d.ts.map +1 -0
- package/dist/types/types/PersistSuccessOptions.d.ts +5 -0
- package/dist/types/types/PersistSuccessOptions.d.ts.map +1 -0
- package/dist/types/types/QueryRequestResponse.d.ts +26 -0
- package/dist/types/types/QueryRequestResponse.d.ts.map +1 -0
- package/dist/types/types/TreeRootAccessor.d.ts +11 -0
- package/dist/types/types/TreeRootAccessor.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +21 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/Hashing.d.ts +5 -0
- package/dist/types/utils/Hashing.d.ts.map +1 -0
- package/dist/types/utils/TreeNodeUtils.d.ts +13 -0
- package/dist/types/utils/TreeNodeUtils.d.ts.map +1 -0
- package/dist/types/utils/assertNever.d.ts +2 -0
- package/dist/types/utils/assertNever.d.ts.map +1 -0
- package/dist/types/utils/createQueryBuilder.d.ts +4 -0
- package/dist/types/utils/createQueryBuilder.d.ts.map +1 -0
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts +2 -0
- package/dist/types/utils/generateEnumerabilityPreventingEntropy.d.ts.map +1 -0
- package/dist/types/utils/whereToFilter.d.ts +3 -0
- package/dist/types/utils/whereToFilter.d.ts.map +1 -0
- package/package.json +13 -13
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
class SchemaPreprocessor {
|
|
4
|
+
static processRawSchema(rawSchema) {
|
|
5
|
+
return {
|
|
6
|
+
enums: this.processRawEnums(rawSchema.enums),
|
|
7
|
+
entities: this.processRawEntities(rawSchema.entities)
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
static processRawEnums(rawEnums) {
|
|
11
|
+
const enums = /* @__PURE__ */ new Map();
|
|
12
|
+
for (const { name, values } of rawEnums) {
|
|
13
|
+
enums.set(name, new Set(values));
|
|
14
|
+
}
|
|
15
|
+
return enums;
|
|
16
|
+
}
|
|
17
|
+
static processRawEntities(rawEntities) {
|
|
18
|
+
const entities = /* @__PURE__ */ new Map();
|
|
19
|
+
for (const entity of rawEntities) {
|
|
20
|
+
entities.set(entity.name, {
|
|
21
|
+
customPrimaryAllowed: entity.customPrimaryAllowed,
|
|
22
|
+
fields: this.processRawFields(entity.fields),
|
|
23
|
+
name: entity.name,
|
|
24
|
+
unique: entity.unique.map((it) => ({ fields: new Set(it.fields) }))
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return entities;
|
|
28
|
+
}
|
|
29
|
+
static processRawFields(rawFields) {
|
|
30
|
+
const fields = /* @__PURE__ */ new Map();
|
|
31
|
+
for (const field of rawFields) {
|
|
32
|
+
fields.set(field.name, field);
|
|
33
|
+
}
|
|
34
|
+
return fields;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.SchemaPreprocessor = SchemaPreprocessor;
|
|
38
|
+
//# sourceMappingURL=SchemaPreprocessor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaPreprocessor.cjs","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;AACjE,WAAO;AAAA,MACN,OAAO,KAAK,gBAAgB,UAAU,KAAK;AAAA,MAC3C,UAAU,KAAK,mBAAmB,UAAU,QAAQ;AAAA,IAAA;AAAA,EAEtD;AAAA,EAEA,OAAe,gBAAgB,UAAwC;AACtE,UAAM,4BAAyB,IAAA;AAE/B,eAAW,EAAE,MAAM,OAAA,KAAY,UAAU;AACxC,YAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,mBAAmB,aAAgD;AACjF,UAAM,+BAA+B,IAAA;AAErC,eAAW,UAAU,aAAa;AACjC,eAAS,IAAI,OAAO,MAAM;AAAA,QACzB,sBAAsB,OAAO;AAAA,QAC7B,QAAQ,KAAK,iBAAiB,OAAO,MAAM;AAAA,QAC3C,MAAM,OAAO;AAAA,QACb,QAAQ,OAAO,OAAO,IAAI,CAAA,QAAO,EAAE,QAAQ,IAAI,IAAI,GAAG,MAAM,EAAA,EAAI;AAAA,MAAA,CAChE;AAAA,IACF;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,iBAAiB,WAA0C;AACzE,UAAM,6BAA2B,IAAA;AAEjC,eAAW,SAAS,WAAW;AAC9B,aAAO,IAAI,MAAM,MAAM,KAAK;AAAA,IAC7B;AAEA,WAAO;AAAA,EACR;AACD;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class SchemaPreprocessor {
|
|
2
|
+
static processRawSchema(rawSchema) {
|
|
3
|
+
return {
|
|
4
|
+
enums: this.processRawEnums(rawSchema.enums),
|
|
5
|
+
entities: this.processRawEntities(rawSchema.entities)
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
static processRawEnums(rawEnums) {
|
|
9
|
+
const enums = /* @__PURE__ */ new Map();
|
|
10
|
+
for (const { name, values } of rawEnums) {
|
|
11
|
+
enums.set(name, new Set(values));
|
|
12
|
+
}
|
|
13
|
+
return enums;
|
|
14
|
+
}
|
|
15
|
+
static processRawEntities(rawEntities) {
|
|
16
|
+
const entities = /* @__PURE__ */ new Map();
|
|
17
|
+
for (const entity of rawEntities) {
|
|
18
|
+
entities.set(entity.name, {
|
|
19
|
+
customPrimaryAllowed: entity.customPrimaryAllowed,
|
|
20
|
+
fields: this.processRawFields(entity.fields),
|
|
21
|
+
name: entity.name,
|
|
22
|
+
unique: entity.unique.map((it) => ({ fields: new Set(it.fields) }))
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return entities;
|
|
26
|
+
}
|
|
27
|
+
static processRawFields(rawFields) {
|
|
28
|
+
const fields = /* @__PURE__ */ new Map();
|
|
29
|
+
for (const field of rawFields) {
|
|
30
|
+
fields.set(field.name, field);
|
|
31
|
+
}
|
|
32
|
+
return fields;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
SchemaPreprocessor
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=SchemaPreprocessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaPreprocessor.js","sources":["../../../../../packages/binding-common/src/schema/SchemaPreprocessor.ts"],"sourcesContent":["import type { RawSchema } from './RawSchema'\nimport type { RawSchemaEntity, RawSchemaFields } from './RawSchemaEntity'\nimport type { RawSchemaEnum } from './RawSchemaEnum'\nimport type { SchemaEntities } from './SchemaEntities'\nimport type { SchemaEnums } from './SchemaEnums'\nimport type { SchemaFields } from './SchemaFields'\nimport type { SchemaStore } from './SchemaStore'\n\nexport class SchemaPreprocessor {\n\tpublic static processRawSchema(rawSchema: RawSchema): SchemaStore {\n\t\treturn {\n\t\t\tenums: this.processRawEnums(rawSchema.enums),\n\t\t\tentities: this.processRawEntities(rawSchema.entities),\n\t\t}\n\t}\n\n\tprivate static processRawEnums(rawEnums: RawSchemaEnum[]): SchemaEnums {\n\t\tconst enums: SchemaEnums = new Map()\n\n\t\tfor (const { name, values } of rawEnums) {\n\t\t\tenums.set(name, new Set(values))\n\t\t}\n\n\t\treturn enums\n\t}\n\n\tprivate static processRawEntities(rawEntities: RawSchemaEntity[]): SchemaEntities {\n\t\tconst entities: SchemaEntities = new Map()\n\n\t\tfor (const entity of rawEntities) {\n\t\t\tentities.set(entity.name, {\n\t\t\t\tcustomPrimaryAllowed: entity.customPrimaryAllowed,\n\t\t\t\tfields: this.processRawFields(entity.fields),\n\t\t\t\tname: entity.name,\n\t\t\t\tunique: entity.unique.map(it => ({ fields: new Set(it.fields) })),\n\t\t\t})\n\t\t}\n\n\t\treturn entities\n\t}\n\n\tprivate static processRawFields(rawFields: RawSchemaFields): SchemaFields {\n\t\tconst fields: SchemaFields = new Map()\n\n\t\tfor (const field of rawFields) {\n\t\t\tfields.set(field.name, field)\n\t\t}\n\n\t\treturn fields\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,mBAAmB;AAAA,EAC/B,OAAc,iBAAiB,WAAmC;AACjE,WAAO;AAAA,MACN,OAAO,KAAK,gBAAgB,UAAU,KAAK;AAAA,MAC3C,UAAU,KAAK,mBAAmB,UAAU,QAAQ;AAAA,IAAA;AAAA,EAEtD;AAAA,EAEA,OAAe,gBAAgB,UAAwC;AACtE,UAAM,4BAAyB,IAAA;AAE/B,eAAW,EAAE,MAAM,OAAA,KAAY,UAAU;AACxC,YAAM,IAAI,MAAM,IAAI,IAAI,MAAM,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,mBAAmB,aAAgD;AACjF,UAAM,+BAA+B,IAAA;AAErC,eAAW,UAAU,aAAa;AACjC,eAAS,IAAI,OAAO,MAAM;AAAA,QACzB,sBAAsB,OAAO;AAAA,QAC7B,QAAQ,KAAK,iBAAiB,OAAO,MAAM;AAAA,QAC3C,MAAM,OAAO;AAAA,QACb,QAAQ,OAAO,OAAO,IAAI,CAAA,QAAO,EAAE,QAAQ,IAAI,IAAI,GAAG,MAAM,EAAA,EAAI;AAAA,MAAA,CAChE;AAAA,IACF;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,OAAe,iBAAiB,WAA0C;AACzE,UAAM,6BAA2B,IAAA;AAEjC,eAAW,SAAS,WAAW;AAC9B,aAAO,IAAI,MAAM,MAAM,KAAK;AAAA,IAC7B;AAEA,WAAO;AAAA,EACR;AACD;"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
class EventListenersStore {
|
|
4
|
+
constructor(parentStoreGetter, listeners) {
|
|
5
|
+
this.parentStoreGetter = parentStoreGetter;
|
|
6
|
+
this.listeners = listeners;
|
|
7
|
+
}
|
|
8
|
+
set(event, listeners) {
|
|
9
|
+
this.listeners ?? (this.listeners = /* @__PURE__ */ new Map());
|
|
10
|
+
this.listeners.set(this.formatMapEntryKey(event), listeners);
|
|
11
|
+
}
|
|
12
|
+
delete(event) {
|
|
13
|
+
if (!this.listeners) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.listeners.delete(this.formatMapEntryKey(event));
|
|
17
|
+
}
|
|
18
|
+
deleteByType(type) {
|
|
19
|
+
if (!this.listeners) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const prefix = this.formatMapEntryKey({ type, key: "" });
|
|
23
|
+
for (const eventType of this.listeners.keys()) {
|
|
24
|
+
if (eventType.startsWith(prefix)) {
|
|
25
|
+
this.listeners.delete(eventType);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
get(event) {
|
|
30
|
+
if (!this.listeners) {
|
|
31
|
+
return void 0;
|
|
32
|
+
}
|
|
33
|
+
const ownListeners = this.listeners.get(this.formatMapEntryKey(event));
|
|
34
|
+
const parentListeners = this.parentStoreGetter?.()?.get(event);
|
|
35
|
+
if (!parentListeners) {
|
|
36
|
+
return ownListeners;
|
|
37
|
+
} else if (!ownListeners) {
|
|
38
|
+
return parentListeners;
|
|
39
|
+
}
|
|
40
|
+
return /* @__PURE__ */ new Set([...ownListeners, ...parentListeners]);
|
|
41
|
+
}
|
|
42
|
+
invoke(event, ...args) {
|
|
43
|
+
if (!this.listeners) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const listeners = this.get(event);
|
|
47
|
+
if (listeners) {
|
|
48
|
+
for (const listener of listeners) {
|
|
49
|
+
listener(...args);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
add(event, handler) {
|
|
54
|
+
const key = this.formatMapEntryKey(event);
|
|
55
|
+
let eventListeners = this.addInternal(key, handler);
|
|
56
|
+
return () => eventListeners?.delete(handler);
|
|
57
|
+
}
|
|
58
|
+
clone() {
|
|
59
|
+
if (!this.listeners) {
|
|
60
|
+
return new EventListenersStore(this.parentStoreGetter);
|
|
61
|
+
}
|
|
62
|
+
const store = new EventListenersStore(this.parentStoreGetter, /* @__PURE__ */ new Map());
|
|
63
|
+
for (const [key, value] of this.listeners.entries()) {
|
|
64
|
+
store.listeners.set(key, new Set(value));
|
|
65
|
+
}
|
|
66
|
+
return store;
|
|
67
|
+
}
|
|
68
|
+
append(other) {
|
|
69
|
+
if (!other.listeners) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
for (const [eventKey, otherListeners] of other.listeners) {
|
|
73
|
+
for (const listener of otherListeners) {
|
|
74
|
+
this.addInternal(eventKey, listener);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
formatMapEntryKey(event) {
|
|
79
|
+
return event.key ? `${event.type}_${event.key ?? ""}` : event.type;
|
|
80
|
+
}
|
|
81
|
+
addInternal(key, handler) {
|
|
82
|
+
this.listeners ?? (this.listeners = /* @__PURE__ */ new Map());
|
|
83
|
+
let eventListeners = this.listeners.get(key);
|
|
84
|
+
if (!eventListeners) {
|
|
85
|
+
eventListeners = /* @__PURE__ */ new Set();
|
|
86
|
+
this.listeners.set(key, eventListeners);
|
|
87
|
+
}
|
|
88
|
+
eventListeners.add(handler);
|
|
89
|
+
return eventListeners;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.EventListenersStore = EventListenersStore;
|
|
93
|
+
//# sourceMappingURL=EventListenersStore.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventListenersStore.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\tconstructor(\n\t\tprivate readonly parentStoreGetter?: () => EventListenersStore<Events> | undefined,\n\t\tprivate listeners?: Map<string, Set<Events[any]>>,\n\t) {}\n\n\tset<Type extends keyof Events>(event: { type: Type; key?: string }, listeners: Set<Events[Type]>): void {\n\t\tthis.listeners ??= new Map()\n\t\tthis.listeners.set(this.formatMapEntryKey(event), listeners)\n\t}\n\n\tdelete<Type extends keyof Events>(event: { type: Type; key?: string }) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tthis.listeners.delete(this.formatMapEntryKey(event))\n\t}\n\n\tdeleteByType<Type extends keyof Events>(type: Type) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst prefix = this.formatMapEntryKey({ type, key: '' })\n\t\tfor (const eventType of this.listeners.keys()) {\n\t\t\tif (eventType.startsWith(prefix)) {\n\t\t\t\tthis.listeners.delete(eventType)\n\t\t\t}\n\t\t}\n\t}\n\n\tget<Type extends keyof Events>(event: { type: Type; key?: string }): Set<Events[Type]> | undefined {\n\t\tif (!this.listeners) {\n\t\t\treturn undefined\n\t\t}\n\t\tconst ownListeners = this.listeners.get(this.formatMapEntryKey(event))\n\t\tconst parentListeners = this.parentStoreGetter?.()?.get(event)\n\t\tif (!parentListeners) {\n\t\t\treturn ownListeners\n\t\t} else if (!ownListeners) {\n\t\t\treturn parentListeners\n\t\t}\n\t\treturn new Set([...ownListeners, ...parentListeners])\n\t}\n\n\tinvoke<Type extends keyof Events>(event: { type: Type; key?: string }, ...args: Parameters<Events[Type]>): void {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst listeners = this.get(event)\n\t\tif (listeners) {\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener(...args)\n\t\t\t}\n\t\t}\n\t}\n\n\tadd<Type extends keyof Events>(event: { type: Type; key?: string }, handler: Events[Type]): () => void {\n\t\tconst key = this.formatMapEntryKey(event)\n\t\tlet eventListeners = this.addInternal(key, handler)\n\t\treturn () => eventListeners?.delete(handler)\n\t}\n\n\tclone(): EventListenersStore<Events> {\n\t\tif (!this.listeners) {\n\t\t\treturn new EventListenersStore<Events>(this.parentStoreGetter)\n\t\t}\n\t\tconst store: EventListenersStore<Events> = new EventListenersStore(this.parentStoreGetter, new Map())\n\t\tfor (const [key, value] of this.listeners.entries()) {\n\t\t\tstore.listeners!.set(key, new Set(value))\n\t\t}\n\t\treturn store\n\t}\n\n\tappend(other: EventListenersStore<Events>) {\n\t\tif (!other.listeners) {\n\t\t\treturn\n\t\t}\n\t\tfor (const [eventKey, otherListeners] of other.listeners) {\n\t\t\tfor (const listener of otherListeners) {\n\t\t\t\tthis.addInternal(eventKey, listener)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate formatMapEntryKey(event: { type: keyof Events; key?: string }): string {\n\t\treturn event.key ? `${(event.type as string)}_${event.key ?? ''}` : (event.type as string)\n\t}\n\n\tprivate addInternal<Type extends keyof Events>(key: string, handler: Events[Type]) {\n\t\tthis.listeners ??= new Map()\n\t\tlet eventListeners = this.listeners.get(key)\n\t\tif (!eventListeners) {\n\t\t\teventListeners = new Set()\n\t\t\tthis.listeners.set(key, eventListeners)\n\t\t}\n\t\teventListeners.add(handler)\n\t\treturn eventListeners\n\t}\n}\n"],"names":[],"mappings":";;AAKO,MAAM,oBAAqD;AAAA,EACjE,YACkB,mBACT,WACP;AAFgB,SAAA,oBAAA;AACT,SAAA,YAAA;AAAA,EACN;AAAA,EAEH,IAA+B,OAAqC,WAAoC;AACvG,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,SAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,GAAG,SAAS;AAAA,EAC5D;AAAA,EAEA,OAAkC,OAAqC;AACtE,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,SAAK,UAAU,OAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,EACpD;AAAA,EAEA,aAAwC,MAAY;AACnD,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,kBAAkB,EAAE,MAAM,KAAK,IAAI;AACvD,eAAW,aAAa,KAAK,UAAU,KAAA,GAAQ;AAC9C,UAAI,UAAU,WAAW,MAAM,GAAG;AACjC,aAAK,UAAU,OAAO,SAAS;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAoE;AAClG,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO;AAAA,IACR;AACA,UAAM,eAAe,KAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,CAAC;AACrE,UAAM,kBAAkB,KAAK,oBAAA,GAAuB,IAAI,KAAK;AAC7D,QAAI,CAAC,iBAAiB;AACrB,aAAO;AAAA,IACR,WAAW,CAAC,cAAc;AACzB,aAAO;AAAA,IACR;AACA,+BAAW,IAAI,CAAC,GAAG,cAAc,GAAG,eAAe,CAAC;AAAA,EACrD;AAAA,EAEA,OAAkC,UAAwC,MAAsC;AAC/G,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,YAAY,KAAK,IAAI,KAAK;AAChC,QAAI,WAAW;AACd,iBAAW,YAAY,WAAW;AACjC,iBAAS,GAAG,IAAI;AAAA,MACjB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAqC,SAAmC;AACtG,UAAM,MAAM,KAAK,kBAAkB,KAAK;AACxC,QAAI,iBAAiB,KAAK,YAAY,KAAK,OAAO;AAClD,WAAO,MAAM,gBAAgB,OAAO,OAAO;AAAA,EAC5C;AAAA,EAEA,QAAqC;AACpC,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO,IAAI,oBAA4B,KAAK,iBAAiB;AAAA,IAC9D;AACA,UAAM,QAAqC,IAAI,oBAAoB,KAAK,mBAAmB,oBAAI,KAAK;AACpG,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,WAAW;AACpD,YAAM,UAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,OAAoC;AAC1C,QAAI,CAAC,MAAM,WAAW;AACrB;AAAA,IACD;AACA,eAAW,CAAC,UAAU,cAAc,KAAK,MAAM,WAAW;AACzD,iBAAW,YAAY,gBAAgB;AACtC,aAAK,YAAY,UAAU,QAAQ;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,kBAAkB,OAAqD;AAC9E,WAAO,MAAM,MAAM,GAAI,MAAM,IAAe,IAAI,MAAM,OAAO,EAAE,KAAM,MAAM;AAAA,EAC5E;AAAA,EAEQ,YAAuC,KAAa,SAAuB;AAClF,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,QAAI,iBAAiB,KAAK,UAAU,IAAI,GAAG;AAC3C,QAAI,CAAC,gBAAgB;AACpB,2CAAqB,IAAA;AACrB,WAAK,UAAU,IAAI,KAAK,cAAc;AAAA,IACvC;AACA,mBAAe,IAAI,OAAO;AAC1B,WAAO;AAAA,EACR;AACD;;"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
class EventListenersStore {
|
|
2
|
+
constructor(parentStoreGetter, listeners) {
|
|
3
|
+
this.parentStoreGetter = parentStoreGetter;
|
|
4
|
+
this.listeners = listeners;
|
|
5
|
+
}
|
|
6
|
+
set(event, listeners) {
|
|
7
|
+
this.listeners ?? (this.listeners = /* @__PURE__ */ new Map());
|
|
8
|
+
this.listeners.set(this.formatMapEntryKey(event), listeners);
|
|
9
|
+
}
|
|
10
|
+
delete(event) {
|
|
11
|
+
if (!this.listeners) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
this.listeners.delete(this.formatMapEntryKey(event));
|
|
15
|
+
}
|
|
16
|
+
deleteByType(type) {
|
|
17
|
+
if (!this.listeners) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const prefix = this.formatMapEntryKey({ type, key: "" });
|
|
21
|
+
for (const eventType of this.listeners.keys()) {
|
|
22
|
+
if (eventType.startsWith(prefix)) {
|
|
23
|
+
this.listeners.delete(eventType);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
get(event) {
|
|
28
|
+
if (!this.listeners) {
|
|
29
|
+
return void 0;
|
|
30
|
+
}
|
|
31
|
+
const ownListeners = this.listeners.get(this.formatMapEntryKey(event));
|
|
32
|
+
const parentListeners = this.parentStoreGetter?.()?.get(event);
|
|
33
|
+
if (!parentListeners) {
|
|
34
|
+
return ownListeners;
|
|
35
|
+
} else if (!ownListeners) {
|
|
36
|
+
return parentListeners;
|
|
37
|
+
}
|
|
38
|
+
return /* @__PURE__ */ new Set([...ownListeners, ...parentListeners]);
|
|
39
|
+
}
|
|
40
|
+
invoke(event, ...args) {
|
|
41
|
+
if (!this.listeners) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const listeners = this.get(event);
|
|
45
|
+
if (listeners) {
|
|
46
|
+
for (const listener of listeners) {
|
|
47
|
+
listener(...args);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
add(event, handler) {
|
|
52
|
+
const key = this.formatMapEntryKey(event);
|
|
53
|
+
let eventListeners = this.addInternal(key, handler);
|
|
54
|
+
return () => eventListeners?.delete(handler);
|
|
55
|
+
}
|
|
56
|
+
clone() {
|
|
57
|
+
if (!this.listeners) {
|
|
58
|
+
return new EventListenersStore(this.parentStoreGetter);
|
|
59
|
+
}
|
|
60
|
+
const store = new EventListenersStore(this.parentStoreGetter, /* @__PURE__ */ new Map());
|
|
61
|
+
for (const [key, value] of this.listeners.entries()) {
|
|
62
|
+
store.listeners.set(key, new Set(value));
|
|
63
|
+
}
|
|
64
|
+
return store;
|
|
65
|
+
}
|
|
66
|
+
append(other) {
|
|
67
|
+
if (!other.listeners) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
for (const [eventKey, otherListeners] of other.listeners) {
|
|
71
|
+
for (const listener of otherListeners) {
|
|
72
|
+
this.addInternal(eventKey, listener);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
formatMapEntryKey(event) {
|
|
77
|
+
return event.key ? `${event.type}_${event.key ?? ""}` : event.type;
|
|
78
|
+
}
|
|
79
|
+
addInternal(key, handler) {
|
|
80
|
+
this.listeners ?? (this.listeners = /* @__PURE__ */ new Map());
|
|
81
|
+
let eventListeners = this.listeners.get(key);
|
|
82
|
+
if (!eventListeners) {
|
|
83
|
+
eventListeners = /* @__PURE__ */ new Set();
|
|
84
|
+
this.listeners.set(key, eventListeners);
|
|
85
|
+
}
|
|
86
|
+
eventListeners.add(handler);
|
|
87
|
+
return eventListeners;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
EventListenersStore
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=EventListenersStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventListenersStore.js","sources":["../../../../../packages/binding-common/src/treeParameters/EventListenersStore.ts"],"sourcesContent":["type AnyFunction = (...args: any[]) => any\nexport type GenericEventsMap = {\n\t[K in string]: (...args: any[]) => void | AnyFunction | Promise<void | AnyFunction>\n}\n\nexport class EventListenersStore<Events extends GenericEventsMap> {\n\tconstructor(\n\t\tprivate readonly parentStoreGetter?: () => EventListenersStore<Events> | undefined,\n\t\tprivate listeners?: Map<string, Set<Events[any]>>,\n\t) {}\n\n\tset<Type extends keyof Events>(event: { type: Type; key?: string }, listeners: Set<Events[Type]>): void {\n\t\tthis.listeners ??= new Map()\n\t\tthis.listeners.set(this.formatMapEntryKey(event), listeners)\n\t}\n\n\tdelete<Type extends keyof Events>(event: { type: Type; key?: string }) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tthis.listeners.delete(this.formatMapEntryKey(event))\n\t}\n\n\tdeleteByType<Type extends keyof Events>(type: Type) {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst prefix = this.formatMapEntryKey({ type, key: '' })\n\t\tfor (const eventType of this.listeners.keys()) {\n\t\t\tif (eventType.startsWith(prefix)) {\n\t\t\t\tthis.listeners.delete(eventType)\n\t\t\t}\n\t\t}\n\t}\n\n\tget<Type extends keyof Events>(event: { type: Type; key?: string }): Set<Events[Type]> | undefined {\n\t\tif (!this.listeners) {\n\t\t\treturn undefined\n\t\t}\n\t\tconst ownListeners = this.listeners.get(this.formatMapEntryKey(event))\n\t\tconst parentListeners = this.parentStoreGetter?.()?.get(event)\n\t\tif (!parentListeners) {\n\t\t\treturn ownListeners\n\t\t} else if (!ownListeners) {\n\t\t\treturn parentListeners\n\t\t}\n\t\treturn new Set([...ownListeners, ...parentListeners])\n\t}\n\n\tinvoke<Type extends keyof Events>(event: { type: Type; key?: string }, ...args: Parameters<Events[Type]>): void {\n\t\tif (!this.listeners) {\n\t\t\treturn\n\t\t}\n\t\tconst listeners = this.get(event)\n\t\tif (listeners) {\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener(...args)\n\t\t\t}\n\t\t}\n\t}\n\n\tadd<Type extends keyof Events>(event: { type: Type; key?: string }, handler: Events[Type]): () => void {\n\t\tconst key = this.formatMapEntryKey(event)\n\t\tlet eventListeners = this.addInternal(key, handler)\n\t\treturn () => eventListeners?.delete(handler)\n\t}\n\n\tclone(): EventListenersStore<Events> {\n\t\tif (!this.listeners) {\n\t\t\treturn new EventListenersStore<Events>(this.parentStoreGetter)\n\t\t}\n\t\tconst store: EventListenersStore<Events> = new EventListenersStore(this.parentStoreGetter, new Map())\n\t\tfor (const [key, value] of this.listeners.entries()) {\n\t\t\tstore.listeners!.set(key, new Set(value))\n\t\t}\n\t\treturn store\n\t}\n\n\tappend(other: EventListenersStore<Events>) {\n\t\tif (!other.listeners) {\n\t\t\treturn\n\t\t}\n\t\tfor (const [eventKey, otherListeners] of other.listeners) {\n\t\t\tfor (const listener of otherListeners) {\n\t\t\t\tthis.addInternal(eventKey, listener)\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate formatMapEntryKey(event: { type: keyof Events; key?: string }): string {\n\t\treturn event.key ? `${(event.type as string)}_${event.key ?? ''}` : (event.type as string)\n\t}\n\n\tprivate addInternal<Type extends keyof Events>(key: string, handler: Events[Type]) {\n\t\tthis.listeners ??= new Map()\n\t\tlet eventListeners = this.listeners.get(key)\n\t\tif (!eventListeners) {\n\t\t\teventListeners = new Set()\n\t\t\tthis.listeners.set(key, eventListeners)\n\t\t}\n\t\teventListeners.add(handler)\n\t\treturn eventListeners\n\t}\n}\n"],"names":[],"mappings":"AAKO,MAAM,oBAAqD;AAAA,EACjE,YACkB,mBACT,WACP;AAFgB,SAAA,oBAAA;AACT,SAAA,YAAA;AAAA,EACN;AAAA,EAEH,IAA+B,OAAqC,WAAoC;AACvG,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,SAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,GAAG,SAAS;AAAA,EAC5D;AAAA,EAEA,OAAkC,OAAqC;AACtE,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,SAAK,UAAU,OAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,EACpD;AAAA,EAEA,aAAwC,MAAY;AACnD,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,SAAS,KAAK,kBAAkB,EAAE,MAAM,KAAK,IAAI;AACvD,eAAW,aAAa,KAAK,UAAU,KAAA,GAAQ;AAC9C,UAAI,UAAU,WAAW,MAAM,GAAG;AACjC,aAAK,UAAU,OAAO,SAAS;AAAA,MAChC;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAoE;AAClG,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO;AAAA,IACR;AACA,UAAM,eAAe,KAAK,UAAU,IAAI,KAAK,kBAAkB,KAAK,CAAC;AACrE,UAAM,kBAAkB,KAAK,oBAAA,GAAuB,IAAI,KAAK;AAC7D,QAAI,CAAC,iBAAiB;AACrB,aAAO;AAAA,IACR,WAAW,CAAC,cAAc;AACzB,aAAO;AAAA,IACR;AACA,+BAAW,IAAI,CAAC,GAAG,cAAc,GAAG,eAAe,CAAC;AAAA,EACrD;AAAA,EAEA,OAAkC,UAAwC,MAAsC;AAC/G,QAAI,CAAC,KAAK,WAAW;AACpB;AAAA,IACD;AACA,UAAM,YAAY,KAAK,IAAI,KAAK;AAChC,QAAI,WAAW;AACd,iBAAW,YAAY,WAAW;AACjC,iBAAS,GAAG,IAAI;AAAA,MACjB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAA+B,OAAqC,SAAmC;AACtG,UAAM,MAAM,KAAK,kBAAkB,KAAK;AACxC,QAAI,iBAAiB,KAAK,YAAY,KAAK,OAAO;AAClD,WAAO,MAAM,gBAAgB,OAAO,OAAO;AAAA,EAC5C;AAAA,EAEA,QAAqC;AACpC,QAAI,CAAC,KAAK,WAAW;AACpB,aAAO,IAAI,oBAA4B,KAAK,iBAAiB;AAAA,IAC9D;AACA,UAAM,QAAqC,IAAI,oBAAoB,KAAK,mBAAmB,oBAAI,KAAK;AACpG,eAAW,CAAC,KAAK,KAAK,KAAK,KAAK,UAAU,WAAW;AACpD,YAAM,UAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC;AAAA,IACzC;AACA,WAAO;AAAA,EACR;AAAA,EAEA,OAAO,OAAoC;AAC1C,QAAI,CAAC,MAAM,WAAW;AACrB;AAAA,IACD;AACA,eAAW,CAAC,UAAU,cAAc,KAAK,MAAM,WAAW;AACzD,iBAAW,YAAY,gBAAgB;AACtC,aAAK,YAAY,UAAU,QAAQ;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,kBAAkB,OAAqD;AAC9E,WAAO,MAAM,MAAM,GAAI,MAAM,IAAe,IAAI,MAAM,OAAO,EAAE,KAAM,MAAM;AAAA,EAC5E;AAAA,EAEQ,YAAuC,KAAa,SAAuB;AAClF,SAAK,cAAL,KAAK,YAAc,oBAAI,IAAA;AACvB,QAAI,iBAAiB,KAAK,UAAU,IAAI,GAAG;AAC3C,QAAI,CAAC,gBAAgB;AACpB,2CAAqB,IAAA;AACrB,WAAK,UAAU,IAAI,KAAK,cAAc;AAAA,IACvC;AACA,mBAAe,IAAI,OAAO;AAC1B,WAAO;AAAA,EACR;AACD;"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const BindingError = require("../BindingError.cjs");
|
|
4
|
+
class TreeParameterMerger {
|
|
5
|
+
static mergeHasOneRelationsWithSamePlaceholders(original, fresh) {
|
|
6
|
+
return {
|
|
7
|
+
// Encoded within the placeholder
|
|
8
|
+
field: original.field,
|
|
9
|
+
filter: original.filter,
|
|
10
|
+
reducedBy: original.reducedBy,
|
|
11
|
+
// Not encoded within the placeholder
|
|
12
|
+
expectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),
|
|
13
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
14
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
15
|
+
meta: this.mergeFieldMeta(original.meta, fresh.meta),
|
|
16
|
+
// forceCreation: original.forceCreation || fresh.forceCreation,
|
|
17
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
static mergeHasManyRelationsWithSamePlaceholders(original, fresh) {
|
|
21
|
+
if (original.initialEntityCount !== fresh.initialEntityCount) {
|
|
22
|
+
throw new BindingError.BindingError(
|
|
23
|
+
`Detected hasMany relations on the same field '${original.field}' with different preferred initial entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
// Encoded within the placeholder
|
|
28
|
+
field: original.field,
|
|
29
|
+
filter: original.filter,
|
|
30
|
+
orderBy: original.orderBy,
|
|
31
|
+
offset: original.offset,
|
|
32
|
+
limit: original.limit,
|
|
33
|
+
// Not encoded within the placeholder
|
|
34
|
+
expectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),
|
|
35
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
36
|
+
meta: this.mergeFieldMeta(original.meta, fresh.meta),
|
|
37
|
+
// forceCreation: original.forceCreation || fresh.forceCreation,
|
|
38
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
39
|
+
initialEntityCount: original.initialEntityCount,
|
|
40
|
+
// Handled above
|
|
41
|
+
childEventListeners: this.mergeEventStore(
|
|
42
|
+
original.childEventListeners,
|
|
43
|
+
fresh.childEventListeners
|
|
44
|
+
),
|
|
45
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
static mergeEntitySubTreeParametersWithSamePlaceholders(original, fresh) {
|
|
49
|
+
if (original.isCreating) {
|
|
50
|
+
if (!fresh.isCreating) {
|
|
51
|
+
throw new BindingError.BindingError();
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
// Encoded within the placeholder
|
|
55
|
+
isCreating: original.isCreating,
|
|
56
|
+
isUnpersisted: original.isUnpersisted && fresh.isUnpersisted,
|
|
57
|
+
entityName: original.entityName,
|
|
58
|
+
// Not encoded within the placeholder
|
|
59
|
+
alias: this.mergeSubTreeAliases(original.alias, fresh.alias),
|
|
60
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
61
|
+
// forceCreation: original.value.forceCreation || fresh.value.forceCreation,
|
|
62
|
+
expectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),
|
|
63
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
64
|
+
hasOneRelationPath: original.hasOneRelationPath,
|
|
65
|
+
// TODO this is completely wrong.
|
|
66
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
// Encoded within the placeholder
|
|
71
|
+
isCreating: original.isCreating,
|
|
72
|
+
where: original.where,
|
|
73
|
+
entityName: original.entityName,
|
|
74
|
+
filter: original.filter,
|
|
75
|
+
// Not encoded within the placeholder
|
|
76
|
+
alias: this.mergeSubTreeAliases(original.alias, fresh.alias),
|
|
77
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
78
|
+
// forceCreation: original.value.forceCreation || fresh.value.forceCreation,
|
|
79
|
+
expectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),
|
|
80
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
81
|
+
hasOneRelationPath: original.hasOneRelationPath,
|
|
82
|
+
// TODO this is completely wrong.
|
|
83
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
static mergeEntityListSubTreeParametersWithSamePlaceholders(original, fresh) {
|
|
87
|
+
if (original.initialEntityCount !== fresh.initialEntityCount) {
|
|
88
|
+
throw new BindingError.BindingError(
|
|
89
|
+
`Detected sub trees of the same entity '${original.entityName}' with different preferred initial entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
if (original.isCreating) {
|
|
93
|
+
if (!fresh.isCreating) {
|
|
94
|
+
throw new BindingError.BindingError();
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
// Encoded within the placeholder
|
|
98
|
+
isCreating: original.isCreating,
|
|
99
|
+
isUnpersisted: original.isUnpersisted && fresh.isUnpersisted,
|
|
100
|
+
entityName: original.entityName,
|
|
101
|
+
// Not encoded within the placeholder
|
|
102
|
+
alias: this.mergeSubTreeAliases(original.alias, fresh.alias),
|
|
103
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
104
|
+
// forceCreation: original.value.forceCreation || fresh.value.forceCreation,
|
|
105
|
+
expectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),
|
|
106
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
107
|
+
hasOneRelationPath: original.hasOneRelationPath,
|
|
108
|
+
// TODO this is completely wrong.
|
|
109
|
+
childEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),
|
|
110
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),
|
|
111
|
+
initialEntityCount: original.initialEntityCount
|
|
112
|
+
// Handled above
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
// Encoded within the placeholder
|
|
117
|
+
isCreating: original.isCreating,
|
|
118
|
+
entityName: original.entityName,
|
|
119
|
+
filter: original.filter,
|
|
120
|
+
orderBy: original.orderBy,
|
|
121
|
+
offset: original.offset,
|
|
122
|
+
limit: original.limit,
|
|
123
|
+
// Not encoded within the placeholder
|
|
124
|
+
alias: this.mergeSubTreeAliases(original.alias, fresh.alias),
|
|
125
|
+
setOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),
|
|
126
|
+
// forceCreation: original.value.forceCreation || fresh.value.forceCreation,
|
|
127
|
+
expectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),
|
|
128
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
129
|
+
hasOneRelationPath: original.hasOneRelationPath,
|
|
130
|
+
// TODO this is completely wrong.
|
|
131
|
+
childEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),
|
|
132
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),
|
|
133
|
+
initialEntityCount: original.initialEntityCount
|
|
134
|
+
// Handled above
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
static mergeSingleField(original, fresh) {
|
|
138
|
+
if (original.defaultValue !== void 0 && fresh.defaultValue !== void 0 && original.defaultValue !== fresh.defaultValue) {
|
|
139
|
+
throw new BindingError.BindingError(
|
|
140
|
+
`MarkerTreeGenerator merging: multiple fields "${original.field}" with different defaultValue found: ${JSON.stringify([original.defaultValue, fresh.defaultValue])}, `
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
field: original.field,
|
|
145
|
+
isNonbearing: original.isNonbearing && fresh.isNonbearing,
|
|
146
|
+
defaultValue: original.defaultValue ?? fresh.defaultValue,
|
|
147
|
+
meta: this.mergeFieldMeta(original.meta, fresh.meta),
|
|
148
|
+
eventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners)
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
static mergeSetOnCreate(original, fresh) {
|
|
152
|
+
if (original === void 0 && fresh === void 0) {
|
|
153
|
+
return void 0;
|
|
154
|
+
}
|
|
155
|
+
if (original === void 0) {
|
|
156
|
+
return fresh;
|
|
157
|
+
}
|
|
158
|
+
if (fresh === void 0) {
|
|
159
|
+
return original;
|
|
160
|
+
}
|
|
161
|
+
const originalCopy = { ...original };
|
|
162
|
+
for (const field in fresh) {
|
|
163
|
+
if (field in originalCopy) {
|
|
164
|
+
const fromOriginal = originalCopy[field];
|
|
165
|
+
const fromFresh = fresh[field];
|
|
166
|
+
if (typeof fromOriginal === "object") {
|
|
167
|
+
if (typeof fromFresh === "object") {
|
|
168
|
+
const merged = this.mergeSetOnCreate(fromOriginal, fromFresh);
|
|
169
|
+
if (merged !== void 0) {
|
|
170
|
+
originalCopy[field] = merged;
|
|
171
|
+
}
|
|
172
|
+
continue;
|
|
173
|
+
} else {
|
|
174
|
+
throw new BindingError.BindingError();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (typeof fromFresh === "string" || typeof fromFresh === "number") {
|
|
178
|
+
if (fromOriginal === fromFresh) {
|
|
179
|
+
continue;
|
|
180
|
+
} else {
|
|
181
|
+
throw new BindingError.BindingError();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
throw new BindingError.BindingError();
|
|
185
|
+
} else {
|
|
186
|
+
originalCopy[field] = fresh[field];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return originalCopy;
|
|
190
|
+
}
|
|
191
|
+
static mergeSets(original, fresh) {
|
|
192
|
+
const combinedSet = new Set(original);
|
|
193
|
+
for (const item of fresh) {
|
|
194
|
+
combinedSet.add(item);
|
|
195
|
+
}
|
|
196
|
+
return combinedSet;
|
|
197
|
+
}
|
|
198
|
+
static mergeParentEntityParameters(original, fresh) {
|
|
199
|
+
if (original === fresh) {
|
|
200
|
+
return original;
|
|
201
|
+
}
|
|
202
|
+
if (original === void 0) {
|
|
203
|
+
return fresh;
|
|
204
|
+
}
|
|
205
|
+
if (fresh === void 0) {
|
|
206
|
+
return original;
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
eventListeners: TreeParameterMerger.mergeEventStore(
|
|
210
|
+
original.eventListeners,
|
|
211
|
+
fresh.eventListeners
|
|
212
|
+
)
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
static mergeInParentEntity(original, key, parentEntity) {
|
|
216
|
+
if (!parentEntity) {
|
|
217
|
+
return original;
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
...original,
|
|
221
|
+
[key]: TreeParameterMerger.mergeEventStore(original[key], parentEntity.eventListeners)
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
static mergeEventStore(original, fresh) {
|
|
225
|
+
if (original === void 0) {
|
|
226
|
+
if (fresh === void 0) {
|
|
227
|
+
return void 0;
|
|
228
|
+
}
|
|
229
|
+
return fresh;
|
|
230
|
+
}
|
|
231
|
+
if (fresh === void 0) {
|
|
232
|
+
return original;
|
|
233
|
+
}
|
|
234
|
+
const store = original.clone();
|
|
235
|
+
store.append(fresh);
|
|
236
|
+
return store;
|
|
237
|
+
}
|
|
238
|
+
static mergeExpectedRelationMutation(original, fresh) {
|
|
239
|
+
if (original === fresh) {
|
|
240
|
+
return original;
|
|
241
|
+
}
|
|
242
|
+
if (original === "none") {
|
|
243
|
+
return fresh;
|
|
244
|
+
}
|
|
245
|
+
if (fresh === "none") {
|
|
246
|
+
return original;
|
|
247
|
+
}
|
|
248
|
+
return "anyMutation";
|
|
249
|
+
}
|
|
250
|
+
static mergeExpectedQualifiedEntityMutation(original, fresh) {
|
|
251
|
+
if (original === fresh) {
|
|
252
|
+
return original;
|
|
253
|
+
}
|
|
254
|
+
if (original === "none") {
|
|
255
|
+
return fresh;
|
|
256
|
+
}
|
|
257
|
+
if (fresh === "none") {
|
|
258
|
+
return original;
|
|
259
|
+
}
|
|
260
|
+
return "anyMutation";
|
|
261
|
+
}
|
|
262
|
+
static mergeSubTreeAliases(original, fresh) {
|
|
263
|
+
if (original === void 0) {
|
|
264
|
+
return fresh;
|
|
265
|
+
}
|
|
266
|
+
if (fresh === void 0) {
|
|
267
|
+
return original;
|
|
268
|
+
}
|
|
269
|
+
return this.mergeSets(original, fresh);
|
|
270
|
+
}
|
|
271
|
+
static mergeFieldMeta(original, fresh) {
|
|
272
|
+
return [...original, ...fresh].filter((key, index, array) => array.indexOf(key) === index);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
exports.TreeParameterMerger = TreeParameterMerger;
|
|
276
|
+
//# sourceMappingURL=TreeParameterMerger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeParameterMerger.cjs","sources":["../../../../../packages/binding-common/src/treeParameters/TreeParameterMerger.ts"],"sourcesContent":["import { Writable } from '@contember/client'\nimport type {\n\tAlias,\n\tEntityEventListenerStore,\n\tEventListenersStore,\n\tExpectedQualifiedEntityMutation,\n\tExpectedRelationMutation,\n\tFieldMeta,\n\tGenericEventsMap,\n\tHasManyRelation,\n\tHasOneRelation,\n\tParentEntityParameters,\n\tQualifiedEntityList,\n\tQualifiedSingleEntity,\n\tRelativeSingleField,\n\tSetOnCreate,\n\tUnconstrainedQualifiedEntityList,\n\tUnconstrainedQualifiedSingleEntity,\n\tUniqueWhere,\n} from '../treeParameters'\nimport { BindingError } from '../BindingError'\n\nexport class TreeParameterMerger {\n\tpublic static mergeHasOneRelationsWithSamePlaceholders(\n\t\toriginal: HasOneRelation,\n\t\tfresh: HasOneRelation,\n\t): HasOneRelation {\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\treducedBy: original.reducedBy,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeHasManyRelationsWithSamePlaceholders(\n\t\toriginal: HasManyRelation,\n\t\tfresh: HasManyRelation,\n\t): HasManyRelation {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected hasMany relations on the same field '${original.field}' with different preferred initial `\n\t\t\t\t\t+ `entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tfield: original.field,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\texpectedMutation: this.mergeExpectedRelationMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\t// forceCreation: original.forceCreation || fresh.forceCreation,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\tchildEventListeners: this.mergeEventStore(\n\t\t\t\toriginal.childEventListeners,\n\t\t\t\tfresh.childEventListeners,\n\t\t\t),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntitySubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t\tfresh: QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity,\n\t): QualifiedSingleEntity | UnconstrainedQualifiedSingleEntity {\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\twhere: original.where,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeEntityListSubTreeParametersWithSamePlaceholders(\n\t\toriginal: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t\tfresh: QualifiedEntityList | UnconstrainedQualifiedEntityList,\n\t): QualifiedEntityList | UnconstrainedQualifiedEntityList {\n\t\tif (original.initialEntityCount !== fresh.initialEntityCount) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`Detected sub trees of the same entity '${original.entityName}' with different preferred initial `\n\t\t\t\t\t+ `entity counts: '${original.initialEntityCount}' and '${fresh.initialEntityCount}' respectively.`,\n\t\t\t)\n\t\t}\n\n\t\tif (original.isCreating) {\n\t\t\tif (!fresh.isCreating) {\n\t\t\t\tthrow new BindingError()\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// Encoded within the placeholder\n\t\t\t\tisCreating: original.isCreating,\n\t\t\t\tisUnpersisted: original.isUnpersisted && fresh.isUnpersisted,\n\t\t\t\tentityName: original.entityName,\n\n\t\t\t\t// Not encoded within the placeholder\n\t\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t// Encoded within the placeholder\n\t\t\tisCreating: original.isCreating,\n\t\t\tentityName: original.entityName,\n\t\t\tfilter: original.filter,\n\t\t\torderBy: original.orderBy,\n\t\t\toffset: original.offset,\n\t\t\tlimit: original.limit,\n\n\t\t\t// Not encoded within the placeholder\n\t\t\talias: this.mergeSubTreeAliases(original.alias, fresh.alias),\n\t\t\tsetOnCreate: this.mergeSetOnCreate(original.setOnCreate, fresh.setOnCreate),\n\t\t\t// forceCreation: original.value.forceCreation || fresh.value.forceCreation,\n\t\t\texpectedMutation: this.mergeExpectedQualifiedEntityMutation(original.expectedMutation, fresh.expectedMutation),\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\thasOneRelationPath: original.hasOneRelationPath, // TODO this is completely wrong.\n\t\t\tchildEventListeners: this.mergeEventStore(original.childEventListeners, fresh.childEventListeners),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t\tinitialEntityCount: original.initialEntityCount, // Handled above\n\t\t}\n\t}\n\n\tpublic static mergeSingleField(\n\t\toriginal: Omit<RelativeSingleField, 'hasOneRelationPath'>,\n\t\tfresh: Omit<RelativeSingleField, 'hasOneRelationPath'>,\n\t): Omit<RelativeSingleField, 'hasOneRelationPath'> {\n\t\tif (original.defaultValue !== undefined && fresh.defaultValue !== undefined && original.defaultValue !== fresh.defaultValue) {\n\t\t\tthrow new BindingError(\n\t\t\t\t`MarkerTreeGenerator merging: multiple fields \"${original.field}\" with different defaultValue found: ${\n\t\t\t\t\tJSON.stringify([original.defaultValue, fresh.defaultValue])\n\t\t\t\t}, `,\n\t\t\t)\n\t\t}\n\t\treturn {\n\t\t\tfield: original.field,\n\t\t\tisNonbearing: original.isNonbearing && fresh.isNonbearing,\n\t\t\tdefaultValue: original.defaultValue ?? fresh.defaultValue,\n\t\t\tmeta: this.mergeFieldMeta(original.meta, fresh.meta),\n\t\t\teventListeners: this.mergeEventStore(original.eventListeners, fresh.eventListeners),\n\t\t}\n\t}\n\n\tpublic static mergeSetOnCreate(original: SetOnCreate, fresh: SetOnCreate): SetOnCreate {\n\t\tif (original === undefined && fresh === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\tconst originalCopy: Writable<UniqueWhere> = { ...original }\n\n\t\tfor (const field in fresh) {\n\t\t\tif (field in originalCopy) {\n\t\t\t\tconst fromOriginal = originalCopy[field]\n\t\t\t\tconst fromFresh = fresh[field]\n\t\t\t\tif (typeof fromOriginal === 'object') {\n\t\t\t\t\tif (typeof fromFresh === 'object') {\n\t\t\t\t\t\tconst merged = this.mergeSetOnCreate(fromOriginal, fromFresh)\n\t\t\t\t\t\tif (merged !== undefined) {\n\t\t\t\t\t\t\toriginalCopy[field] = merged\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (typeof fromFresh === 'string' || typeof fromFresh === 'number') {\n\t\t\t\t\tif (fromOriginal === fromFresh) {\n\t\t\t\t\t\t// Good, do nothing.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthrow new BindingError() // TODO msg\n\t\t\t} else {\n\t\t\t\toriginalCopy[field] = fresh[field]\n\t\t\t}\n\t\t}\n\n\t\treturn originalCopy\n\t}\n\n\tprivate static mergeSets<T>(original: Set<T>, fresh: Set<T>): Set<T> {\n\t\tconst combinedSet = new Set(original)\n\t\tfor (const item of fresh) {\n\t\t\tcombinedSet.add(item)\n\t\t}\n\t\treturn combinedSet\n\t}\n\n\tpublic static mergeParentEntityParameters(\n\t\toriginal: ParentEntityParameters | undefined,\n\t\tfresh: ParentEntityParameters | undefined,\n\t): ParentEntityParameters | undefined {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn {\n\t\t\teventListeners: TreeParameterMerger.mergeEventStore(\n\t\t\t\toriginal.eventListeners,\n\t\t\t\tfresh.eventListeners,\n\t\t\t),\n\t\t}\n\t}\n\n\tpublic static mergeInParentEntity<\n\t\tOriginal extends Record<Key, EntityEventListenerStore | undefined>,\n\t\tKey extends keyof Original,\n\t>(original: Original, key: Key, parentEntity: ParentEntityParameters | undefined): Original {\n\t\tif (!parentEntity) {\n\t\t\treturn original\n\t\t}\n\n\t\treturn {\n\t\t\t...original,\n\t\t\t[key]: TreeParameterMerger.mergeEventStore(original[key], parentEntity.eventListeners),\n\t\t}\n\t}\n\n\tprivate static mergeEventStore<Events extends GenericEventsMap>(\n\t\toriginal: EventListenersStore<Events> | undefined,\n\t\tfresh: EventListenersStore<Events> | undefined,\n\t): EventListenersStore<Events> | undefined {\n\t\tif (original === undefined) {\n\t\t\tif (fresh === undefined) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\treturn fresh\n\t\t}\n\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\n\t\tconst store = original.clone()\n\t\tstore.append(fresh)\n\n\t\treturn store\n\t}\n\n\tprivate static mergeExpectedRelationMutation(\n\t\toriginal: ExpectedRelationMutation,\n\t\tfresh: ExpectedRelationMutation,\n\t): ExpectedRelationMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeExpectedQualifiedEntityMutation(\n\t\toriginal: ExpectedQualifiedEntityMutation,\n\t\tfresh: ExpectedQualifiedEntityMutation,\n\t): ExpectedQualifiedEntityMutation {\n\t\tif (original === fresh) {\n\t\t\treturn original\n\t\t}\n\t\tif (original === 'none') {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === 'none') {\n\t\t\treturn original\n\t\t}\n\t\treturn 'anyMutation'\n\t}\n\n\tprivate static mergeSubTreeAliases(\n\t\toriginal: Set<Alias> | undefined,\n\t\tfresh: Set<Alias> | undefined,\n\t): Set<Alias> | undefined {\n\t\tif (original === undefined) {\n\t\t\treturn fresh\n\t\t}\n\t\tif (fresh === undefined) {\n\t\t\treturn original\n\t\t}\n\t\treturn this.mergeSets(original, fresh)\n\t}\n\n\tprivate static mergeFieldMeta(\n\t\toriginal: FieldMeta,\n\t\tfresh: FieldMeta,\n\t): FieldMeta {\n\t\treturn [...original, ...fresh].filter((key, index, array) => array.indexOf(key) === index)\n\t}\n}\n"],"names":["BindingError"],"mappings":"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"}
|