@eclipse-glsp/server 1.1.0-next.3d7585d.42
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/LICENSE +642 -0
- package/README.md +8 -0
- package/browser.d.ts +16 -0
- package/browser.js +18 -0
- package/lib/browser/di/app-module.d.ts +24 -0
- package/lib/browser/di/app-module.d.ts.map +1 -0
- package/lib/browser/di/app-module.js +55 -0
- package/lib/browser/di/app-module.js.map +1 -0
- package/lib/browser/di/console-logger.d.ts +29 -0
- package/lib/browser/di/console-logger.d.ts.map +1 -0
- package/lib/browser/di/console-logger.js +81 -0
- package/lib/browser/di/console-logger.js.map +1 -0
- package/lib/browser/index.d.ts +20 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +36 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/launch/worker-server-launcher.d.ts +26 -0
- package/lib/browser/launch/worker-server-launcher.d.ts.map +1 -0
- package/lib/browser/launch/worker-server-launcher.js +65 -0
- package/lib/browser/launch/worker-server-launcher.js.map +1 -0
- package/lib/common/actions/action-dispatcher.d.ts +74 -0
- package/lib/common/actions/action-dispatcher.d.ts.map +1 -0
- package/lib/common/actions/action-dispatcher.js +128 -0
- package/lib/common/actions/action-dispatcher.js.map +1 -0
- package/lib/common/actions/action-dispatcher.spec.d.ts +2 -0
- package/lib/common/actions/action-dispatcher.spec.d.ts.map +1 -0
- package/lib/common/actions/action-dispatcher.spec.js +264 -0
- package/lib/common/actions/action-dispatcher.spec.js.map +1 -0
- package/lib/common/actions/action-handler-registry.d.ts +40 -0
- package/lib/common/actions/action-handler-registry.d.ts.map +1 -0
- package/lib/common/actions/action-handler-registry.js +65 -0
- package/lib/common/actions/action-handler-registry.js.map +1 -0
- package/lib/common/actions/action-handler-registry.spec.d.ts +2 -0
- package/lib/common/actions/action-handler-registry.spec.d.ts.map +1 -0
- package/lib/common/actions/action-handler-registry.spec.js +50 -0
- package/lib/common/actions/action-handler-registry.spec.js.map +1 -0
- package/lib/common/actions/action-handler.d.ts +55 -0
- package/lib/common/actions/action-handler.d.ts.map +1 -0
- package/lib/common/actions/action-handler.js +7 -0
- package/lib/common/actions/action-handler.js.map +1 -0
- package/lib/common/actions/client-action-handler.d.ts +30 -0
- package/lib/common/actions/client-action-handler.d.ts.map +1 -0
- package/lib/common/actions/client-action-handler.js +56 -0
- package/lib/common/actions/client-action-handler.js.map +1 -0
- package/lib/common/actions/global-action-provider.d.ts +30 -0
- package/lib/common/actions/global-action-provider.d.ts.map +1 -0
- package/lib/common/actions/global-action-provider.js +81 -0
- package/lib/common/actions/global-action-provider.js.map +1 -0
- package/lib/common/actions/global-action-provider.spec.d.ts +2 -0
- package/lib/common/actions/global-action-provider.spec.d.ts.map +1 -0
- package/lib/common/actions/global-action-provider.spec.js +70 -0
- package/lib/common/actions/global-action-provider.spec.js.map +1 -0
- package/lib/common/command/command-stack.d.ts +37 -0
- package/lib/common/command/command-stack.d.ts.map +1 -0
- package/lib/common/command/command-stack.js +48 -0
- package/lib/common/command/command-stack.js.map +1 -0
- package/lib/common/command/command.d.ts +37 -0
- package/lib/common/command/command.d.ts.map +1 -0
- package/lib/common/command/command.js +18 -0
- package/lib/common/command/command.js.map +1 -0
- package/lib/common/di/binding-target.d.ts +73 -0
- package/lib/common/di/binding-target.d.ts.map +1 -0
- package/lib/common/di/binding-target.js +143 -0
- package/lib/common/di/binding-target.js.map +1 -0
- package/lib/common/di/binding-target.spec.d.ts +2 -0
- package/lib/common/di/binding-target.spec.d.ts.map +1 -0
- package/lib/common/di/binding-target.spec.js +121 -0
- package/lib/common/di/binding-target.spec.js.map +1 -0
- package/lib/common/di/client-session-module.d.ts +19 -0
- package/lib/common/di/client-session-module.d.ts.map +1 -0
- package/lib/common/di/client-session-module.js +34 -0
- package/lib/common/di/client-session-module.js.map +1 -0
- package/lib/common/di/diagram-module.d.ts +127 -0
- package/lib/common/di/diagram-module.d.ts.map +1 -0
- package/lib/common/di/diagram-module.js +283 -0
- package/lib/common/di/diagram-module.js.map +1 -0
- package/lib/common/di/glsp-module.d.ts +47 -0
- package/lib/common/di/glsp-module.d.ts.map +1 -0
- package/lib/common/di/glsp-module.js +59 -0
- package/lib/common/di/glsp-module.js.map +1 -0
- package/lib/common/di/multi-binding.d.ts +41 -0
- package/lib/common/di/multi-binding.d.ts.map +1 -0
- package/lib/common/di/multi-binding.js +82 -0
- package/lib/common/di/multi-binding.js.map +1 -0
- package/lib/common/di/multi-bindings.spec.d.ts +2 -0
- package/lib/common/di/multi-bindings.spec.d.ts.map +1 -0
- package/lib/common/di/multi-bindings.spec.js +137 -0
- package/lib/common/di/multi-bindings.spec.js.map +1 -0
- package/lib/common/di/server-module.d.ts +73 -0
- package/lib/common/di/server-module.d.ts.map +1 -0
- package/lib/common/di/server-module.js +103 -0
- package/lib/common/di/server-module.js.map +1 -0
- package/lib/common/di/service-identifiers.d.ts +29 -0
- package/lib/common/di/service-identifiers.d.ts.map +1 -0
- package/lib/common/di/service-identifiers.js +14 -0
- package/lib/common/di/service-identifiers.js.map +1 -0
- package/lib/common/diagram/diagram-configuration.d.ts +89 -0
- package/lib/common/diagram/diagram-configuration.d.ts.map +1 -0
- package/lib/common/diagram/diagram-configuration.js +30 -0
- package/lib/common/diagram/diagram-configuration.js.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.d.ts +25 -0
- package/lib/common/diagram/request-type-hints-action-handler.d.ts.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.js +53 -0
- package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +2 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +1 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.js +57 -0
- package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +1 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +26 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts.map +1 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +61 -0
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -0
- package/lib/common/features/contextactions/command-palette-action-provider.d.ts +63 -0
- package/lib/common/features/contextactions/command-palette-action-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/command-palette-action-provider.js +72 -0
- package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.d.ts +12 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.js +70 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +2 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +34 -0
- package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider.d.ts +34 -0
- package/lib/common/features/contextactions/context-actions-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-actions-provider.js +5 -0
- package/lib/common/features/contextactions/context-actions-provider.js.map +1 -0
- package/lib/common/features/contextactions/context-menu-item-provider.d.ts +43 -0
- package/lib/common/features/contextactions/context-menu-item-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/context-menu-item-provider.js +36 -0
- package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.d.ts +24 -0
- package/lib/common/features/contextactions/request-context-actions-handler.d.ts.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.js +53 -0
- package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +2 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.js +63 -0
- package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.d.ts +50 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.d.ts.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.js +88 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +2 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +1 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +48 -0
- package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.d.ts +14 -0
- package/lib/common/features/directediting/context-edit-validator-registry.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.js +57 -0
- package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +2 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.js +44 -0
- package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +1 -0
- package/lib/common/features/directediting/context-edit-validator.d.ts +25 -0
- package/lib/common/features/directediting/context-edit-validator.d.ts.map +1 -0
- package/lib/common/features/directediting/context-edit-validator.js +40 -0
- package/lib/common/features/directediting/context-edit-validator.js.map +1 -0
- package/lib/common/features/directediting/label-edit-validator.d.ts +32 -0
- package/lib/common/features/directediting/label-edit-validator.d.ts.map +1 -0
- package/lib/common/features/directediting/label-edit-validator.js +21 -0
- package/lib/common/features/directediting/label-edit-validator.js.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.d.ts +26 -0
- package/lib/common/features/directediting/request-edit-validation-handler.d.ts.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.js +61 -0
- package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +2 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +1 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.js +97 -0
- package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +1 -0
- package/lib/common/features/layout/layout-engine.d.ts +29 -0
- package/lib/common/features/layout/layout-engine.d.ts.map +1 -0
- package/lib/common/features/layout/layout-engine.js +20 -0
- package/lib/common/features/layout/layout-engine.js.map +1 -0
- package/lib/common/features/layout/layout-operation-handler.d.ts +28 -0
- package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
- package/lib/common/features/layout/layout-operation-handler.js +66 -0
- package/lib/common/features/layout/layout-operation-handler.js.map +1 -0
- package/lib/common/features/model/gmodel-factory.d.ts +39 -0
- package/lib/common/features/model/gmodel-factory.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-factory.js +39 -0
- package/lib/common/features/model/gmodel-factory.js.map +1 -0
- package/lib/common/features/model/gmodel-index.d.ts +107 -0
- package/lib/common/features/model/gmodel-index.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-index.js +193 -0
- package/lib/common/features/model/gmodel-index.js.map +1 -0
- package/lib/common/features/model/gmodel-serializer.d.ts +67 -0
- package/lib/common/features/model/gmodel-serializer.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-serializer.js +143 -0
- package/lib/common/features/model/gmodel-serializer.js.map +1 -0
- package/lib/common/features/model/gmodel-serializer.spec.d.ts +2 -0
- package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +1 -0
- package/lib/common/features/model/gmodel-serializer.spec.js +124 -0
- package/lib/common/features/model/gmodel-serializer.spec.js.map +1 -0
- package/lib/common/features/model/model-state.d.ts +53 -0
- package/lib/common/features/model/model-state.d.ts.map +1 -0
- package/lib/common/features/model/model-state.js +75 -0
- package/lib/common/features/model/model-state.js.map +1 -0
- package/lib/common/features/model/model-submission-handler.d.ts +56 -0
- package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
- package/lib/common/features/model/model-submission-handler.js +97 -0
- package/lib/common/features/model/model-submission-handler.js.map +1 -0
- package/lib/common/features/model/request-model-action-handler.d.ts +37 -0
- package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/model/request-model-action-handler.js +83 -0
- package/lib/common/features/model/request-model-action-handler.js.map +1 -0
- package/lib/common/features/model/save-model-action-handler.d.ts +26 -0
- package/lib/common/features/model/save-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/model/save-model-action-handler.js +54 -0
- package/lib/common/features/model/save-model-action-handler.js.map +1 -0
- package/lib/common/features/model/source-model-storage.d.ts +47 -0
- package/lib/common/features/model/source-model-storage.d.ts.map +1 -0
- package/lib/common/features/model/source-model-storage.js +5 -0
- package/lib/common/features/model/source-model-storage.js.map +1 -0
- package/lib/common/features/navigation/json-opener-options.d.ts +36 -0
- package/lib/common/features/navigation/json-opener-options.d.ts.map +1 -0
- package/lib/common/features/navigation/json-opener-options.js +60 -0
- package/lib/common/features/navigation/json-opener-options.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.d.ts +12 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.js +47 -0
- package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider.d.ts +48 -0
- package/lib/common/features/navigation/navigation-target-provider.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-provider.js +5 -0
- package/lib/common/features/navigation/navigation-target-provider.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolution.d.ts +23 -0
- package/lib/common/features/navigation/navigation-target-resolution.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolution.js +12 -0
- package/lib/common/features/navigation/navigation-target-resolution.js.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolver.d.ts +31 -0
- package/lib/common/features/navigation/navigation-target-resolver.d.ts.map +1 -0
- package/lib/common/features/navigation/navigation-target-resolver.js +49 -0
- package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts +24 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts.map +1 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js +55 -0
- package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts +26 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts.map +1 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +59 -0
- package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -0
- package/lib/common/features/popup/popup-model-factory.d.ts +36 -0
- package/lib/common/features/popup/popup-model-factory.d.ts.map +1 -0
- package/lib/common/features/popup/popup-model-factory.js +20 -0
- package/lib/common/features/popup/popup-model-factory.js.map +1 -0
- package/lib/common/features/popup/request-popup-model-action-handler.d.ts +31 -0
- package/lib/common/features/popup/request-popup-model-action-handler.d.ts.map +1 -0
- package/lib/common/features/popup/request-popup-model-action-handler.js +77 -0
- package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -0
- package/lib/common/features/validation/model-validator.d.ts +33 -0
- package/lib/common/features/validation/model-validator.d.ts.map +1 -0
- package/lib/common/features/validation/model-validator.js +5 -0
- package/lib/common/features/validation/model-validator.js.map +1 -0
- package/lib/common/features/validation/request-markers-handler.d.ts +11 -0
- package/lib/common/features/validation/request-markers-handler.d.ts.map +1 -0
- package/lib/common/features/validation/request-markers-handler.js +70 -0
- package/lib/common/features/validation/request-markers-handler.js.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts +9 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.js +55 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts +2 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts.map +1 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js +38 -0
- package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js.map +1 -0
- package/lib/common/gmodel/change-bounds-operation-handler.d.ts +10 -0
- package/lib/common/gmodel/change-bounds-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/change-bounds-operation-handler.js +71 -0
- package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.d.ts +24 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.js +53 -0
- package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
- package/lib/common/gmodel/computed-bounds-action-handler.d.ts +29 -0
- package/lib/common/gmodel/computed-bounds-action-handler.d.ts.map +1 -0
- package/lib/common/gmodel/computed-bounds-action-handler.js +50 -0
- package/lib/common/gmodel/computed-bounds-action-handler.js.map +1 -0
- package/lib/common/gmodel/delete-operation-handler.d.ts +32 -0
- package/lib/common/gmodel/delete-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/delete-operation-handler.js +116 -0
- package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +31 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +65 -0
- package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts +31 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js +58 -0
- package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -0
- package/lib/common/gmodel/gmodel-diagram-module.d.ts +31 -0
- package/lib/common/gmodel/gmodel-diagram-module.d.ts.map +1 -0
- package/lib/common/gmodel/gmodel-diagram-module.js +86 -0
- package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
- package/lib/common/gmodel/index.d.ts +26 -0
- package/lib/common/gmodel/index.d.ts.map +1 -0
- package/lib/common/gmodel/index.js +42 -0
- package/lib/common/gmodel/index.js.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts +35 -0
- package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/paste-operation-handler.js +131 -0
- package/lib/common/gmodel/paste-operation-handler.js.map +1 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts +9 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts.map +1 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.js +67 -0
- package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
- package/lib/common/index.d.ts +88 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +104 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/launch/glsp-server-launcher.d.ts +34 -0
- package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -0
- package/lib/common/launch/glsp-server-launcher.js +64 -0
- package/lib/common/launch/glsp-server-launcher.js.map +1 -0
- package/lib/common/operations/compound-operation-handler.d.ts +25 -0
- package/lib/common/operations/compound-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/compound-operation-handler.js +54 -0
- package/lib/common/operations/compound-operation-handler.js.map +1 -0
- package/lib/common/operations/create-operation-handler.d.ts +64 -0
- package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/create-operation-handler.js +90 -0
- package/lib/common/operations/create-operation-handler.js.map +1 -0
- package/lib/common/operations/cut-operation-handler.d.ts +25 -0
- package/lib/common/operations/cut-operation-handler.d.ts.map +1 -0
- package/lib/common/operations/cut-operation-handler.js +53 -0
- package/lib/common/operations/cut-operation-handler.js.map +1 -0
- package/lib/common/operations/operation-action-handler.d.ts +33 -0
- package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-action-handler.js +94 -0
- package/lib/common/operations/operation-action-handler.js.map +1 -0
- package/lib/common/operations/operation-handler-registry.d.ts +29 -0
- package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
- package/lib/common/operations/operation-handler-registry.js +58 -0
- package/lib/common/operations/operation-handler-registry.js.map +1 -0
- package/lib/common/operations/operation-handler-registry.spec.d.ts +2 -0
- package/lib/common/operations/operation-handler-registry.spec.d.ts.map +1 -0
- package/lib/common/operations/operation-handler-registry.spec.js +50 -0
- package/lib/common/operations/operation-handler-registry.spec.js.map +1 -0
- package/lib/common/operations/operation-handler.d.ts +50 -0
- package/lib/common/operations/operation-handler.d.ts.map +1 -0
- package/lib/common/operations/operation-handler.js +7 -0
- package/lib/common/operations/operation-handler.js.map +1 -0
- package/lib/common/protocol/glsp-client-proxy.d.ts +45 -0
- package/lib/common/protocol/glsp-client-proxy.d.ts.map +1 -0
- package/lib/common/protocol/glsp-client-proxy.js +53 -0
- package/lib/common/protocol/glsp-client-proxy.js.map +1 -0
- package/lib/common/protocol/glsp-server-listener.d.ts +37 -0
- package/lib/common/protocol/glsp-server-listener.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server-listener.js +5 -0
- package/lib/common/protocol/glsp-server-listener.js.map +1 -0
- package/lib/common/protocol/glsp-server.d.ts +150 -0
- package/lib/common/protocol/glsp-server.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server.js +188 -0
- package/lib/common/protocol/glsp-server.js.map +1 -0
- package/lib/common/protocol/glsp-server.spec.d.ts +2 -0
- package/lib/common/protocol/glsp-server.spec.d.ts.map +1 -0
- package/lib/common/protocol/glsp-server.spec.js +119 -0
- package/lib/common/protocol/glsp-server.spec.js.map +1 -0
- package/lib/common/session/client-session-factory.d.ts +42 -0
- package/lib/common/session/client-session-factory.d.ts.map +1 -0
- package/lib/common/session/client-session-factory.js +54 -0
- package/lib/common/session/client-session-factory.js.map +1 -0
- package/lib/common/session/client-session-factory.spec.d.ts +2 -0
- package/lib/common/session/client-session-factory.spec.d.ts.map +1 -0
- package/lib/common/session/client-session-factory.spec.js +56 -0
- package/lib/common/session/client-session-factory.spec.js.map +1 -0
- package/lib/common/session/client-session-initializer.d.ts +26 -0
- package/lib/common/session/client-session-initializer.d.ts.map +1 -0
- package/lib/common/session/client-session-initializer.js +5 -0
- package/lib/common/session/client-session-initializer.js.map +1 -0
- package/lib/common/session/client-session-listener.d.ts +40 -0
- package/lib/common/session/client-session-listener.d.ts.map +1 -0
- package/lib/common/session/client-session-listener.js +3 -0
- package/lib/common/session/client-session-listener.js.map +1 -0
- package/lib/common/session/client-session-manager.d.ts +102 -0
- package/lib/common/session/client-session-manager.d.ts.map +1 -0
- package/lib/common/session/client-session-manager.js +116 -0
- package/lib/common/session/client-session-manager.js.map +1 -0
- package/lib/common/session/client-session-manager.spec.d.ts +2 -0
- package/lib/common/session/client-session-manager.spec.d.ts.map +1 -0
- package/lib/common/session/client-session-manager.spec.js +74 -0
- package/lib/common/session/client-session-manager.spec.js.map +1 -0
- package/lib/common/session/client-session.d.ts +52 -0
- package/lib/common/session/client-session.d.ts.map +1 -0
- package/lib/common/session/client-session.js +34 -0
- package/lib/common/session/client-session.js.map +1 -0
- package/lib/common/test/mock-util.d.ts +110 -0
- package/lib/common/test/mock-util.d.ts.map +1 -0
- package/lib/common/test/mock-util.js +211 -0
- package/lib/common/test/mock-util.js.map +1 -0
- package/lib/common/utils/args-util.d.ts +38 -0
- package/lib/common/utils/args-util.d.ts.map +1 -0
- package/lib/common/utils/args-util.js +81 -0
- package/lib/common/utils/args-util.js.map +1 -0
- package/lib/common/utils/client-options-util.d.ts +20 -0
- package/lib/common/utils/client-options-util.d.ts.map +1 -0
- package/lib/common/utils/client-options-util.js +26 -0
- package/lib/common/utils/client-options-util.js.map +1 -0
- package/lib/common/utils/glsp-server-error.d.ts +21 -0
- package/lib/common/utils/glsp-server-error.d.ts.map +1 -0
- package/lib/common/utils/glsp-server-error.js +33 -0
- package/lib/common/utils/glsp-server-error.js.map +1 -0
- package/lib/common/utils/layout-util.d.ts +74 -0
- package/lib/common/utils/layout-util.d.ts.map +1 -0
- package/lib/common/utils/layout-util.js +166 -0
- package/lib/common/utils/layout-util.js.map +1 -0
- package/lib/common/utils/logger.d.ts +27 -0
- package/lib/common/utils/logger.d.ts.map +1 -0
- package/lib/common/utils/logger.js +67 -0
- package/lib/common/utils/logger.js.map +1 -0
- package/lib/common/utils/promise-queue.d.ts +48 -0
- package/lib/common/utils/promise-queue.d.ts.map +1 -0
- package/lib/common/utils/promise-queue.js +93 -0
- package/lib/common/utils/promise-queue.js.map +1 -0
- package/lib/common/utils/promise-queue.spec.d.ts +2 -0
- package/lib/common/utils/promise-queue.spec.d.ts.map +1 -0
- package/lib/common/utils/promise-queue.spec.js +117 -0
- package/lib/common/utils/promise-queue.spec.js.map +1 -0
- package/lib/common/utils/registry.d.ts +73 -0
- package/lib/common/utils/registry.d.ts.map +1 -0
- package/lib/common/utils/registry.js +160 -0
- package/lib/common/utils/registry.js.map +1 -0
- package/lib/common/utils/registry.spec.d.ts +2 -0
- package/lib/common/utils/registry.spec.d.ts.map +1 -0
- package/lib/common/utils/registry.spec.js +199 -0
- package/lib/common/utils/registry.spec.js.map +1 -0
- package/lib/node/abstract-json-model-storage.d.ts +45 -0
- package/lib/node/abstract-json-model-storage.d.ts.map +1 -0
- package/lib/node/abstract-json-model-storage.js +103 -0
- package/lib/node/abstract-json-model-storage.js.map +1 -0
- package/lib/node/di/app-module.d.ts +36 -0
- package/lib/node/di/app-module.d.ts.map +1 -0
- package/lib/node/di/app-module.js +91 -0
- package/lib/node/di/app-module.js.map +1 -0
- package/lib/node/di/winston-logger.d.ts +32 -0
- package/lib/node/di/winston-logger.d.ts.map +1 -0
- package/lib/node/di/winston-logger.js +57 -0
- package/lib/node/di/winston-logger.js.map +1 -0
- package/lib/node/gmodel/gmodel-storage.d.ts +34 -0
- package/lib/node/gmodel/gmodel-storage.d.ts.map +1 -0
- package/lib/node/gmodel/gmodel-storage.js +68 -0
- package/lib/node/gmodel/gmodel-storage.js.map +1 -0
- package/lib/node/index.d.ts +24 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +40 -0
- package/lib/node/index.js.map +1 -0
- package/lib/node/launch/cli-parser.d.ts +34 -0
- package/lib/node/launch/cli-parser.d.ts.map +1 -0
- package/lib/node/launch/cli-parser.js +71 -0
- package/lib/node/launch/cli-parser.js.map +1 -0
- package/lib/node/launch/cli-parser.spec.d.ts +2 -0
- package/lib/node/launch/cli-parser.spec.d.ts.map +1 -0
- package/lib/node/launch/cli-parser.spec.js +56 -0
- package/lib/node/launch/cli-parser.spec.js.map +1 -0
- package/lib/node/launch/socket-cli-parser.d.ts +9 -0
- package/lib/node/launch/socket-cli-parser.d.ts.map +1 -0
- package/lib/node/launch/socket-cli-parser.js +43 -0
- package/lib/node/launch/socket-cli-parser.js.map +1 -0
- package/lib/node/launch/socket-cli-parser.spec.d.ts +2 -0
- package/lib/node/launch/socket-cli-parser.spec.d.ts.map +1 -0
- package/lib/node/launch/socket-cli-parser.spec.js +66 -0
- package/lib/node/launch/socket-cli-parser.spec.js.map +1 -0
- package/lib/node/launch/socket-server-launcher.d.ts +34 -0
- package/lib/node/launch/socket-server-launcher.d.ts.map +1 -0
- package/lib/node/launch/socket-server-launcher.js +104 -0
- package/lib/node/launch/socket-server-launcher.js.map +1 -0
- package/lib/node/launch/socket-server-launcher.spec.d.ts +17 -0
- package/lib/node/launch/socket-server-launcher.spec.d.ts.map +1 -0
- package/lib/node/launch/socket-server-launcher.spec.js +70 -0
- package/lib/node/launch/socket-server-launcher.spec.js.map +1 -0
- package/node.d.ts +16 -0
- package/node.js +18 -0
- package/package.json +76 -0
- package/src/browser/di/app-module.ts +55 -0
- package/src/browser/di/console-logger.ts +71 -0
- package/src/browser/index.ts +19 -0
- package/src/browser/launch/worker-server-launcher.ts +58 -0
- package/src/common/actions/action-dispatcher.spec.ts +290 -0
- package/src/common/actions/action-dispatcher.ts +152 -0
- package/src/common/actions/action-handler-registry.spec.ts +52 -0
- package/src/common/actions/action-handler-registry.ts +60 -0
- package/src/common/actions/action-handler.ts +62 -0
- package/src/common/actions/client-action-handler.ts +50 -0
- package/src/common/actions/global-action-provider.spec.ts +79 -0
- package/src/common/actions/global-action-provider.ts +72 -0
- package/src/common/command/command-stack.ts +74 -0
- package/src/common/command/command.ts +39 -0
- package/src/common/di/binding-target.spec.ts +147 -0
- package/src/common/di/binding-target.ts +188 -0
- package/src/common/di/client-session-module.ts +29 -0
- package/src/common/di/diagram-module.ts +397 -0
- package/src/common/di/glsp-module.ts +66 -0
- package/src/common/di/multi-binding.ts +89 -0
- package/src/common/di/multi-bindings.spec.ts +133 -0
- package/src/common/di/server-module.ts +131 -0
- package/src/common/di/service-identifiers.ts +39 -0
- package/src/common/diagram/diagram-configuration.ts +97 -0
- package/src/common/diagram/request-type-hints-action-handler.spec.ts +59 -0
- package/src/common/diagram/request-type-hints-action-handler.ts +36 -0
- package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +51 -0
- package/src/common/features/contextactions/command-palette-action-provider.ts +94 -0
- package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +69 -0
- package/src/common/features/contextactions/context-actions-provider-registry.ts +47 -0
- package/src/common/features/contextactions/context-actions-provider.ts +36 -0
- package/src/common/features/contextactions/context-menu-item-provider.ts +52 -0
- package/src/common/features/contextactions/request-context-actions-handler.spec.ts +75 -0
- package/src/common/features/contextactions/request-context-actions-handler.ts +37 -0
- package/src/common/features/contextactions/tool-palette-item-provider.spec.ts +46 -0
- package/src/common/features/contextactions/tool-palette-item-provider.ts +90 -0
- package/src/common/features/directediting/context-edit-validator-registry.spec.ts +54 -0
- package/src/common/features/directediting/context-edit-validator-registry.ts +43 -0
- package/src/common/features/directediting/context-edit-validator.ts +55 -0
- package/src/common/features/directediting/label-edit-validator.ts +35 -0
- package/src/common/features/directediting/request-edit-validation-handler.spec.ts +131 -0
- package/src/common/features/directediting/request-edit-validation-handler.ts +43 -0
- package/src/common/features/layout/layout-engine.ts +31 -0
- package/src/common/features/layout/layout-operation-handler.ts +47 -0
- package/src/common/features/model/gmodel-factory.ts +60 -0
- package/src/common/features/model/gmodel-index.ts +195 -0
- package/src/common/features/model/gmodel-serializer.spec.ts +141 -0
- package/src/common/features/model/gmodel-serializer.ts +175 -0
- package/src/common/features/model/model-state.ts +101 -0
- package/src/common/features/model/model-submission-handler.ts +106 -0
- package/src/common/features/model/request-model-action-handler.ts +67 -0
- package/src/common/features/model/save-model-action-handler.ts +38 -0
- package/src/common/features/model/source-model-storage.ts +49 -0
- package/src/common/features/navigation/json-opener-options.ts +69 -0
- package/src/common/features/navigation/navigation-target-provider-registry.ts +36 -0
- package/src/common/features/navigation/navigation-target-provider.ts +50 -0
- package/src/common/features/navigation/navigation-target-resolution.ts +22 -0
- package/src/common/features/navigation/navigation-target-resolver.ts +61 -0
- package/src/common/features/navigation/request-navigation-targets-action-handler.ts +39 -0
- package/src/common/features/navigation/resolve-navigation-targets-action-handler.ts +42 -0
- package/src/common/features/popup/popup-model-factory.ts +38 -0
- package/src/common/features/popup/request-popup-model-action-handler.ts +60 -0
- package/src/common/features/validation/model-validator.ts +34 -0
- package/src/common/features/validation/request-markers-handler.ts +51 -0
- package/src/common/gmodel/README.md +7 -0
- package/src/common/gmodel/apply-label-edit-operation-handler.spec.ts +40 -0
- package/src/common/gmodel/apply-label-edit-operation-handler.ts +38 -0
- package/src/common/gmodel/change-bounds-operation-handler.ts +58 -0
- package/src/common/gmodel/change-routing-points-operation-handler.ts +39 -0
- package/src/common/gmodel/computed-bounds-action-handler.ts +51 -0
- package/src/common/gmodel/delete-operation-handler.ts +115 -0
- package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +58 -0
- package/src/common/gmodel/gmodel-create-node-operation-handler.ts +47 -0
- package/src/common/gmodel/gmodel-diagram-module.ts +81 -0
- package/src/common/gmodel/index.ts +26 -0
- package/src/common/gmodel/paste-operation-handler.ts +119 -0
- package/src/common/gmodel/reconnect-edge-operation-handler.ts +55 -0
- package/src/common/index.ts +88 -0
- package/src/common/launch/glsp-server-launcher.ts +70 -0
- package/src/common/operations/compound-operation-handler.ts +38 -0
- package/src/common/operations/create-operation-handler.ts +106 -0
- package/src/common/operations/cut-operation-handler.ts +38 -0
- package/src/common/operations/operation-action-handler.ts +69 -0
- package/src/common/operations/operation-handler-registry.spec.ts +50 -0
- package/src/common/operations/operation-handler-registry.ts +51 -0
- package/src/common/operations/operation-handler.ts +57 -0
- package/src/common/protocol/glsp-client-proxy.ts +65 -0
- package/src/common/protocol/glsp-server-listener.ts +39 -0
- package/src/common/protocol/glsp-server.spec.ts +150 -0
- package/src/common/protocol/glsp-server.ts +320 -0
- package/src/common/session/client-session-factory.spec.ts +60 -0
- package/src/common/session/client-session-factory.ts +70 -0
- package/src/common/session/client-session-initializer.ts +27 -0
- package/src/common/session/client-session-listener.ts +41 -0
- package/src/common/session/client-session-manager.spec.ts +82 -0
- package/src/common/session/client-session-manager.ts +182 -0
- package/src/common/session/client-session.ts +62 -0
- package/src/common/test/mock-util.ts +256 -0
- package/src/common/utils/args-util.ts +98 -0
- package/src/common/utils/client-options-util.ts +22 -0
- package/src/common/utils/glsp-server-error.ts +27 -0
- package/src/common/utils/layout-util.ts +164 -0
- package/src/common/utils/logger.ts +72 -0
- package/src/common/utils/promise-queue.spec.ts +138 -0
- package/src/common/utils/promise-queue.ts +103 -0
- package/src/common/utils/registry.spec.ts +223 -0
- package/src/common/utils/registry.ts +154 -0
- package/src/node/abstract-json-model-storage.ts +114 -0
- package/src/node/di/app-module.ts +102 -0
- package/src/node/di/winston-logger.ts +76 -0
- package/src/node/gmodel/gmodel-storage.ts +53 -0
- package/src/node/index.ts +23 -0
- package/src/node/launch/cli-parser.spec.ts +61 -0
- package/src/node/launch/cli-parser.ts +86 -0
- package/src/node/launch/socket-cli-parser.spec.ts +73 -0
- package/src/node/launch/socket-cli-parser.ts +52 -0
- package/src/node/launch/socket-server-launcher.spec.ts +68 -0
- package/src/node/launch/socket-server-launcher.ts +90 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { GAlignable, GBoundsAware, GEdge, GGraph, GModelElement, GModelRoot, isGAlignable, isGBoundsAware } from '@eclipse-glsp/graph';
|
|
18
|
+
import { ElementAndAlignment, ElementAndBounds, ElementAndRoutingPoints, Point } from '@eclipse-glsp/protocol';
|
|
19
|
+
import { GModelIndex } from '../features/model/gmodel-index';
|
|
20
|
+
import { ArgsUtil } from './args-util';
|
|
21
|
+
import { getOrThrow, GLSPServerError } from './glsp-server-error';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Applies the new bounds to the model.
|
|
25
|
+
*
|
|
26
|
+
* @param bounds The new bounds.
|
|
27
|
+
* @param index The model index.
|
|
28
|
+
* @returns The changed element.
|
|
29
|
+
*/
|
|
30
|
+
export function applyBounds(bounds: ElementAndBounds, index: GModelIndex): GBoundsAware | undefined {
|
|
31
|
+
const element = getOrThrow(index.get(bounds.elementId), 'Model element not found! ID: ' + bounds.elementId);
|
|
32
|
+
if (isGBoundsAware(element)) {
|
|
33
|
+
if (bounds.newPosition !== undefined) {
|
|
34
|
+
element.position = bounds.newPosition;
|
|
35
|
+
}
|
|
36
|
+
element.size = bounds.newSize;
|
|
37
|
+
return element;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Applies the new alignment to the model.
|
|
44
|
+
*
|
|
45
|
+
* @param alignment The new alignment.
|
|
46
|
+
* @param index The model index.
|
|
47
|
+
* @returns The changed element.
|
|
48
|
+
*/
|
|
49
|
+
export function applyAlignment(alignment: ElementAndAlignment, index: GModelIndex): GAlignable | undefined {
|
|
50
|
+
const element = getOrThrow(index.get(alignment.elementId), 'Model element not found! ID: ' + alignment.elementId);
|
|
51
|
+
if (isGAlignable(element)) {
|
|
52
|
+
element.alignment = alignment.newAlignment;
|
|
53
|
+
return element;
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Applies the new route to the model.
|
|
60
|
+
*
|
|
61
|
+
* @param route The new route.
|
|
62
|
+
* @param index The model index.
|
|
63
|
+
* @returns The changed element.
|
|
64
|
+
*/
|
|
65
|
+
export function applyRoute(route: ElementAndRoutingPoints, index: GModelIndex): GEdge {
|
|
66
|
+
const routingPoints = route.newRoutingPoints ?? [];
|
|
67
|
+
if (routingPoints.length < 2) {
|
|
68
|
+
throw new GLSPServerError('Invalid Route!');
|
|
69
|
+
}
|
|
70
|
+
// first and last point mark the source and target point
|
|
71
|
+
const edge = applyRoutingPoints(route, index);
|
|
72
|
+
const edgeRoutingPoints = edge.routingPoints;
|
|
73
|
+
|
|
74
|
+
const args = edge.args ?? {};
|
|
75
|
+
const source = edgeRoutingPoints.shift()!;
|
|
76
|
+
const target = edgeRoutingPoints.pop()!;
|
|
77
|
+
args[ArgsUtil.KEY_EDGE_SOURCE_POINT_X] = source.x;
|
|
78
|
+
args[ArgsUtil.KEY_EDGE_SOURCE_POINT_Y] = source.y;
|
|
79
|
+
args[ArgsUtil.KEY_EDGE_TARGET_POINT_X] = target.x;
|
|
80
|
+
args[ArgsUtil.KEY_EDGE_TARGET_POINT_Y] = target.y;
|
|
81
|
+
return edge;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Returns the complete route of the given edge. The route, as opposed to the routing points, also contain the source
|
|
86
|
+
* and target point.
|
|
87
|
+
*
|
|
88
|
+
* @param edge The edge from which we get the route
|
|
89
|
+
* @returns complete edge route
|
|
90
|
+
*/
|
|
91
|
+
export function getRoute(edge: GEdge): ElementAndRoutingPoints {
|
|
92
|
+
const sourcePoint = ArgsUtil.getEdgeSourcePoint(edge.args);
|
|
93
|
+
if (!sourcePoint) {
|
|
94
|
+
throw new GLSPServerError('Cannot get route without source point!');
|
|
95
|
+
}
|
|
96
|
+
const targetPoint = ArgsUtil.getEdgeTargetPoint(edge.args);
|
|
97
|
+
if (!targetPoint) {
|
|
98
|
+
throw new GLSPServerError('Cannot get route without target point!');
|
|
99
|
+
}
|
|
100
|
+
const route: Point[] = [];
|
|
101
|
+
route.push(sourcePoint);
|
|
102
|
+
route.push(...edge.routingPoints);
|
|
103
|
+
route.push(targetPoint);
|
|
104
|
+
return { elementId: edge.id, newRoutingPoints: route };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function applyRoutingPoints(routingPoints: ElementAndRoutingPoints, index: GModelIndex): GEdge {
|
|
108
|
+
const edge = getOrThrow(index.findByClass(routingPoints.elementId, GEdge), 'Model element not found! ID: ' + routingPoints.elementId);
|
|
109
|
+
edge.routingPoints = routingPoints.newRoutingPoints ?? [];
|
|
110
|
+
return edge;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the relative location of the given absolute location within the container.
|
|
114
|
+
*
|
|
115
|
+
* @param absoluteLocation absolute location
|
|
116
|
+
* @param container container
|
|
117
|
+
* @return relative location if it can be determined, absolute location in case of error and null if the container
|
|
118
|
+
* cannot contain any location.
|
|
119
|
+
*/
|
|
120
|
+
export function getRelativeLocation(absoluteLocation: Point, container: GModelElement): Point | undefined {
|
|
121
|
+
const allowNegativeCoordinates = container instanceof GGraph;
|
|
122
|
+
if (isGBoundsAware(container)) {
|
|
123
|
+
const relativePosition = absoluteToRelative(absoluteLocation, container);
|
|
124
|
+
const relativeLocation = allowNegativeCoordinates
|
|
125
|
+
? relativePosition
|
|
126
|
+
: { x: Math.max(0, relativePosition.x), y: Math.max(0, relativePosition.y) };
|
|
127
|
+
return relativeLocation;
|
|
128
|
+
}
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Convert a point in absolute coordinates to a point relative to the specified GBoundsAware.
|
|
134
|
+
* Note: this method only works if the specified {@link GBoundsAware} is part of a
|
|
135
|
+
* hierarchy of {@link GBoundsAware}. If any of its parents (recursively) does not implement
|
|
136
|
+
* {@link GBoundsAware}, this method will throw an exception.
|
|
137
|
+
*
|
|
138
|
+
* @param absolutePoint
|
|
139
|
+
* @param modelElement
|
|
140
|
+
* @returns
|
|
141
|
+
* A new point, relative to the coordinates space of the specified {@link GBoundsAware}
|
|
142
|
+
* @throws Error if the modelElement is not part of a {@link GBoundsAware} hierarchy
|
|
143
|
+
*/
|
|
144
|
+
export function absoluteToRelative(absolutePoint: Point, modelElement: GModelElement & GBoundsAware): Point {
|
|
145
|
+
let parentElement;
|
|
146
|
+
if (!(modelElement instanceof GModelRoot)) {
|
|
147
|
+
parentElement = modelElement.parent;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
let relativeToParent: Point;
|
|
151
|
+
if (!parentElement) {
|
|
152
|
+
relativeToParent = { x: absolutePoint.x, y: absolutePoint.y };
|
|
153
|
+
} else {
|
|
154
|
+
if (!isGBoundsAware(parentElement)) {
|
|
155
|
+
throw new Error(`The element is not part of a GBoundsAware hierarchy: ${modelElement}`);
|
|
156
|
+
}
|
|
157
|
+
relativeToParent = absoluteToRelative(absolutePoint, parentElement);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const x = modelElement.position?.x ?? 0;
|
|
161
|
+
const y = modelElement.position?.y ?? 0;
|
|
162
|
+
|
|
163
|
+
return { x: relativeToParent.x - x, y: relativeToParent.y - y };
|
|
164
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { injectable } from 'inversify';
|
|
17
|
+
|
|
18
|
+
@injectable()
|
|
19
|
+
export abstract class Logger {
|
|
20
|
+
abstract logLevel: LogLevel;
|
|
21
|
+
|
|
22
|
+
abstract caller?: string;
|
|
23
|
+
|
|
24
|
+
abstract info(message: string, ...params: any[]): void;
|
|
25
|
+
|
|
26
|
+
abstract warn(message: string, ...params: any[]): void;
|
|
27
|
+
|
|
28
|
+
abstract error(message: string, ...params: any[]): void;
|
|
29
|
+
|
|
30
|
+
abstract debug(message: string, ...params: any[]): void;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class NullLogger extends Logger {
|
|
34
|
+
logLevel: LogLevel;
|
|
35
|
+
caller?: string | undefined;
|
|
36
|
+
info(message: string, ...params: any[]): void {
|
|
37
|
+
// no-op
|
|
38
|
+
}
|
|
39
|
+
warn(message: string, ...params: any[]): void {
|
|
40
|
+
// no-op
|
|
41
|
+
}
|
|
42
|
+
error(message: string, ...params: any[]): void {
|
|
43
|
+
// no-op
|
|
44
|
+
}
|
|
45
|
+
debug(message: string, ...params: any[]): void {
|
|
46
|
+
// no-op
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const LoggerFactory = Symbol('LoggerFactory');
|
|
51
|
+
|
|
52
|
+
export type LoggerFactory = (caller: string) => Logger;
|
|
53
|
+
|
|
54
|
+
export enum LogLevel {
|
|
55
|
+
none = 0,
|
|
56
|
+
error = 1,
|
|
57
|
+
warn = 2,
|
|
58
|
+
info = 3,
|
|
59
|
+
debug = 4
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function asLogLevel(level: string | number): LogLevel | undefined {
|
|
63
|
+
let levelKey = level;
|
|
64
|
+
if (typeof levelKey === 'string') {
|
|
65
|
+
levelKey = levelKey.toLowerCase();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (levelKey in LogLevel) {
|
|
69
|
+
return (LogLevel as any)[level];
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { delay } from '../test/mock-util';
|
|
17
|
+
import { PromiseQueue } from './promise-queue';
|
|
18
|
+
import { expect } from 'chai';
|
|
19
|
+
|
|
20
|
+
// Helper types and functions that are needed for test setup
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Helper class to inspect the state of promise during its resolve() execution.
|
|
24
|
+
*/
|
|
25
|
+
class PromiseState {
|
|
26
|
+
private _started = false;
|
|
27
|
+
private _stopped = false;
|
|
28
|
+
onStartRunnable?: () => void;
|
|
29
|
+
onStopRunnable?: () => void;
|
|
30
|
+
|
|
31
|
+
start(): void {
|
|
32
|
+
this._started = true;
|
|
33
|
+
if (this.onStartRunnable) {
|
|
34
|
+
this.onStartRunnable();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
stop(): void {
|
|
39
|
+
this._stopped = true;
|
|
40
|
+
if (this.onStopRunnable) {
|
|
41
|
+
this.onStopRunnable();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
onStart(runnable: () => void): void {
|
|
46
|
+
this.onStartRunnable = runnable;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
onStop(runnable: () => void): void {
|
|
50
|
+
this.onStopRunnable = runnable;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
get started(): boolean {
|
|
54
|
+
return this._started;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
get stopped(): boolean {
|
|
58
|
+
return this._stopped;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
interface TestPromise {
|
|
63
|
+
state: PromiseState;
|
|
64
|
+
promise: () => Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function newTestPromise(resolveTime: number): TestPromise {
|
|
68
|
+
const state = new PromiseState();
|
|
69
|
+
const promise = async (): Promise<void> => {
|
|
70
|
+
state.start();
|
|
71
|
+
await delay(resolveTime);
|
|
72
|
+
state.stop();
|
|
73
|
+
};
|
|
74
|
+
return { state, promise };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
let queue = new PromiseQueue();
|
|
78
|
+
|
|
79
|
+
// Test execution
|
|
80
|
+
describe('test PromiseQueue', () => {
|
|
81
|
+
beforeEach(() => {
|
|
82
|
+
queue = new PromiseQueue();
|
|
83
|
+
});
|
|
84
|
+
it('enqueue - one element', async () => {
|
|
85
|
+
const { state, promise } = newTestPromise(100);
|
|
86
|
+
state.onStart(() => {
|
|
87
|
+
expect(queue.isBusy).true;
|
|
88
|
+
});
|
|
89
|
+
const queEnd = queue.enqueue(promise);
|
|
90
|
+
expect(queue.isEmpty).true;
|
|
91
|
+
await queEnd;
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it('enqueue - two elements', async () => {
|
|
95
|
+
const p1 = newTestPromise(100);
|
|
96
|
+
p1.state.onStop(() => expect(p2.state.started).false);
|
|
97
|
+
|
|
98
|
+
const p2 = newTestPromise(100);
|
|
99
|
+
|
|
100
|
+
p2.state.onStart(() => {
|
|
101
|
+
expect(queue.isEmpty).true;
|
|
102
|
+
expect(p1.state.stopped).true;
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
queue.enqueue(p1.promise);
|
|
106
|
+
const queEnd = queue.enqueue(p2.promise);
|
|
107
|
+
expect(queue.size).to.be.equal(1);
|
|
108
|
+
await queEnd;
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('enqueue - three elements (first promise in queue has longest resolve time)', async () => {
|
|
112
|
+
const p1 = newTestPromise(300);
|
|
113
|
+
p1.state.onStop(() => {
|
|
114
|
+
expect(p2.state.started).false;
|
|
115
|
+
expect(p3.state.started).false;
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const p2 = newTestPromise(200);
|
|
119
|
+
p2.state.onStart(() => {
|
|
120
|
+
expect(queue.size).to.be.equal(1);
|
|
121
|
+
expect(p1.state.stopped).true;
|
|
122
|
+
expect(p3.state.started).false;
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const p3 = newTestPromise(100);
|
|
126
|
+
p3.state.onStart(() => {
|
|
127
|
+
expect(queue.isEmpty).true;
|
|
128
|
+
expect(p2.state.stopped).true;
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
queue.enqueue(p1.promise);
|
|
132
|
+
queue.enqueue(p2.promise);
|
|
133
|
+
expect(queue.size).to.be.equal(1);
|
|
134
|
+
const queueEnd = queue.enqueue(p3.promise);
|
|
135
|
+
expect(queue.size).to.be.equal(2);
|
|
136
|
+
await queueEnd;
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Description for promises that are put into a queue and
|
|
19
|
+
* resolved once dequeued.
|
|
20
|
+
*/
|
|
21
|
+
export interface PromiseQueueElement<T = void> {
|
|
22
|
+
promise: () => Promise<T>;
|
|
23
|
+
resolve: (value: T) => void;
|
|
24
|
+
reject: (reason?: any) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A data structure that enables controlled,sequential resolving
|
|
29
|
+
* of promises. Promises that are put in this queue are processed one by one.
|
|
30
|
+
* i.e. After the first promise in the queue is resolved, it will be removed from the queue and the resolving of the
|
|
31
|
+
* the next promise (if present) will start. The queue can only resolve one promise at a given time.
|
|
32
|
+
*/
|
|
33
|
+
export class PromiseQueue<T = void> {
|
|
34
|
+
protected queue: PromiseQueueElement<T>[] = [];
|
|
35
|
+
protected busy = false;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Add a {@link PromiseQueueElement} to the queue
|
|
39
|
+
* @param promise The element that should be queued
|
|
40
|
+
* @param atStart if `true` the element is added to the start of queue, otherwise it's added at queue end.
|
|
41
|
+
* @returns A promise of the queued promise that resolves once dequeued.
|
|
42
|
+
*/
|
|
43
|
+
enqueue(promise: () => Promise<T>): Promise<T> {
|
|
44
|
+
return new Promise((resolve, reject) => {
|
|
45
|
+
const element = {
|
|
46
|
+
promise,
|
|
47
|
+
resolve,
|
|
48
|
+
reject
|
|
49
|
+
};
|
|
50
|
+
this.queue.push(element);
|
|
51
|
+
this.dequeue();
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
protected dequeue(): boolean {
|
|
56
|
+
if (this.busy) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const element = this.queue.shift();
|
|
61
|
+
if (!element) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
this.busy = true;
|
|
67
|
+
this.resolveQueuedPromise(element);
|
|
68
|
+
} catch (error) {
|
|
69
|
+
element.reject(error);
|
|
70
|
+
this.busy = false;
|
|
71
|
+
this.dequeue();
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
protected async resolveQueuedPromise(element: PromiseQueueElement<T>): Promise<void> {
|
|
77
|
+
try {
|
|
78
|
+
const value = await element.promise();
|
|
79
|
+
return element.resolve(value);
|
|
80
|
+
} catch (error) {
|
|
81
|
+
element.reject(error);
|
|
82
|
+
} finally {
|
|
83
|
+
this.busy = false;
|
|
84
|
+
this.dequeue();
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get isBusy(): boolean {
|
|
89
|
+
return this.busy;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get size(): number {
|
|
93
|
+
return this.queue.length;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
get isEmpty(): boolean {
|
|
97
|
+
return this.queue.length === 0;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
clear(): void {
|
|
101
|
+
this.queue = [];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2022-2023 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
import { MultiRegistry, Registry } from './registry';
|
|
17
|
+
import { expect } from 'chai';
|
|
18
|
+
|
|
19
|
+
describe('Test Registry', () => {
|
|
20
|
+
let registry: Registry<string, string>;
|
|
21
|
+
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
registry = new Registry();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('register - with new key-value pair', () => {
|
|
27
|
+
const key = 'key';
|
|
28
|
+
const value = 'value';
|
|
29
|
+
expect(registry.register(key, value)).true;
|
|
30
|
+
expect(registry.get(key), value);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('register - with key-value pair with a already registered key', () => {
|
|
34
|
+
// Setup
|
|
35
|
+
const key = 'key';
|
|
36
|
+
const value = 'value';
|
|
37
|
+
expect(registry.register(key, value)).true;
|
|
38
|
+
// Test execution
|
|
39
|
+
expect(registry.register(key, 'newValue')).false;
|
|
40
|
+
expect(registry.get(key), value);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('deregister - with registered key', () => {
|
|
44
|
+
// Setup
|
|
45
|
+
const key = 'key';
|
|
46
|
+
const value = 'value';
|
|
47
|
+
expect(registry.register(key, value)).true;
|
|
48
|
+
// Test execution
|
|
49
|
+
expect(registry.deregister(key)).true;
|
|
50
|
+
expect(registry.get(key), undefined);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('deregister - with unregistered key', () => {
|
|
54
|
+
expect(registry.deregister('unregisteredKey')).false;
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('haskey - with registered key', () => {
|
|
58
|
+
// Setup
|
|
59
|
+
const key = 'key';
|
|
60
|
+
const value = 'value';
|
|
61
|
+
expect(registry.register(key, value)).true;
|
|
62
|
+
// Test execution
|
|
63
|
+
expect(registry.hasKey(key)).true;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('haskey - with unregistered key', () => {
|
|
67
|
+
expect(registry.deregister('unregisteredKey')).false;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('get - with registered key', () => {
|
|
71
|
+
// Setup
|
|
72
|
+
const key = 'key';
|
|
73
|
+
const value = 'value';
|
|
74
|
+
expect(registry.register(key, value)).true;
|
|
75
|
+
// Test execution
|
|
76
|
+
expect(registry.get(key), value);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('get - with unregistered key', () => {
|
|
80
|
+
expect(registry.get('unregisteredKey'), undefined);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it('getAll - should return three values', () => {
|
|
84
|
+
// Setup
|
|
85
|
+
const e1 = { key: 'key1', value: 'value1' };
|
|
86
|
+
const e2 = { key: 'key2', value: 'value2' };
|
|
87
|
+
const e3 = { key: 'key3', value: 'value3' };
|
|
88
|
+
registry.register(e1.key, e1.value);
|
|
89
|
+
registry.register(e2.key, e2.value);
|
|
90
|
+
registry.register(e3.key, e3.value);
|
|
91
|
+
// Test execution
|
|
92
|
+
const result = registry.getAll();
|
|
93
|
+
expect(result).to.have.length(3);
|
|
94
|
+
expect(result.includes(e1.value)).true;
|
|
95
|
+
expect(result.includes(e2.value)).true;
|
|
96
|
+
expect(result.includes(e3.value)).true;
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('keys - should return three keys', () => {
|
|
100
|
+
// Setup
|
|
101
|
+
const e1 = { key: 'key1', value: 'value1' };
|
|
102
|
+
const e2 = { key: 'key2', value: 'value2' };
|
|
103
|
+
const e3 = { key: 'key3', value: 'value3' };
|
|
104
|
+
registry.register(e1.key, e1.value);
|
|
105
|
+
registry.register(e2.key, e2.value);
|
|
106
|
+
registry.register(e3.key, e3.value);
|
|
107
|
+
// Test execution
|
|
108
|
+
const result = registry.keys();
|
|
109
|
+
expect(result).to.have.length(3);
|
|
110
|
+
expect(result.includes(e1.key)).true;
|
|
111
|
+
expect(result.includes(e2.key)).true;
|
|
112
|
+
expect(result.includes(e3.key)).true;
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
describe('Test MapMultiRegistry', () => {
|
|
117
|
+
let multiRegistry: MultiRegistry<string, string>;
|
|
118
|
+
|
|
119
|
+
beforeEach(() => {
|
|
120
|
+
multiRegistry = new MultiRegistry();
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('register - with new key-value pair', () => {
|
|
124
|
+
// Setup
|
|
125
|
+
const e1 = { key: 'key', value: 'value' };
|
|
126
|
+
const e2 = { key: e1.key, value: 'value2' };
|
|
127
|
+
|
|
128
|
+
multiRegistry.register(e1.key, e1.value);
|
|
129
|
+
multiRegistry.register(e2.key, e2.value);
|
|
130
|
+
|
|
131
|
+
const resultValue = multiRegistry.get(e1.key);
|
|
132
|
+
expect(resultValue).to.not.be.undefined;
|
|
133
|
+
expect(resultValue!.length).to.be.equal(2);
|
|
134
|
+
expect(resultValue!.includes(e1.value)).true;
|
|
135
|
+
expect(resultValue!.includes(e2.value)).true;
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('deregister - with registered key', () => {
|
|
139
|
+
// Setup
|
|
140
|
+
const key = 'key';
|
|
141
|
+
const existingValue = ['value', 'value2'];
|
|
142
|
+
multiRegistry.register(key, existingValue[0]);
|
|
143
|
+
multiRegistry.register(key, existingValue[1]);
|
|
144
|
+
// Test execution
|
|
145
|
+
expect(multiRegistry.deregister(key, existingValue[1])).true;
|
|
146
|
+
const result = multiRegistry.get(key);
|
|
147
|
+
expect(result.length).to.be.equal(1);
|
|
148
|
+
expect(result[0], existingValue[0]);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it('deregister - with unregistered key', () => {
|
|
152
|
+
expect(multiRegistry.deregister('unregisteredKey', 'someValue')).false;
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
it('deregisterAll - with registered key', () => {
|
|
156
|
+
// Setup
|
|
157
|
+
const key = 'key';
|
|
158
|
+
const existingValue = ['value', 'value2'];
|
|
159
|
+
multiRegistry.register(key, existingValue[0]);
|
|
160
|
+
multiRegistry.register(key, existingValue[1]);
|
|
161
|
+
expect(multiRegistry.deregisterAll(key)).true;
|
|
162
|
+
expect(multiRegistry.get(key)).to.have.length(0);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it('deregisterAll - with unregistered key', () => {
|
|
166
|
+
expect(multiRegistry.deregisterAll('unregisteredKey')).false;
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
it('haskey - with registered key', () => {
|
|
170
|
+
// Setup
|
|
171
|
+
const key = 'key';
|
|
172
|
+
const existingValue = 'value';
|
|
173
|
+
multiRegistry.register(key, existingValue);
|
|
174
|
+
// Test execution
|
|
175
|
+
expect(multiRegistry.hasKey(key)).true;
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it('haskey - with unregistered key', () => {
|
|
179
|
+
expect(multiRegistry.hasKey('unregisteredKey')).false;
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
it('get - with registered key', () => {
|
|
183
|
+
// Setup
|
|
184
|
+
const key = 'key';
|
|
185
|
+
const existingValue = 'value';
|
|
186
|
+
multiRegistry.register(key, existingValue);
|
|
187
|
+
// Test execution
|
|
188
|
+
expect(multiRegistry.get(key).length).to.be.equal(1);
|
|
189
|
+
expect(multiRegistry.get(key).includes(existingValue)).true;
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
it('get - with unregistered key', () => {
|
|
193
|
+
expect(multiRegistry.get('unregisteredKey')).to.have.length(0);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
it('getAll', () => {
|
|
197
|
+
// Setup
|
|
198
|
+
const e1 = { key: 'key1', value: ['value1', 'value2'] };
|
|
199
|
+
const e2 = { key: 'key2', value: ['value3'] };
|
|
200
|
+
multiRegistry.register(e1.key, e1.value[0]);
|
|
201
|
+
multiRegistry.register(e1.key, e1.value[1]);
|
|
202
|
+
multiRegistry.register(e2.key, e2.value[0]);
|
|
203
|
+
// Test execution
|
|
204
|
+
const result = multiRegistry.getAll();
|
|
205
|
+
expect(result).to.have.length(3);
|
|
206
|
+
expect(e1.value.every(v => result.includes(v))).true;
|
|
207
|
+
expect(e2.value.every(v => result.includes(v))).true;
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
it('keys', () => {
|
|
211
|
+
// Setup
|
|
212
|
+
const e1 = { key: 'key1', value: ['value1', 'value2'] };
|
|
213
|
+
const e2 = { key: 'key2', value: ['value3'] };
|
|
214
|
+
multiRegistry.register(e1.key, e1.value[0]);
|
|
215
|
+
multiRegistry.register(e1.key, e1.value[1]);
|
|
216
|
+
multiRegistry.register(e2.key, e2.value[0]);
|
|
217
|
+
// Test execution
|
|
218
|
+
const result = multiRegistry.keys();
|
|
219
|
+
expect(result.length).to.be.equal(2);
|
|
220
|
+
expect(result.includes(e1.key)).true;
|
|
221
|
+
expect(result.includes(e2.key)).true;
|
|
222
|
+
});
|
|
223
|
+
});
|