@visactor/vrender-core 0.16.19 → 0.16.20-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/allocator/bounds-allocate.d.ts +13 -0
- package/cjs/allocator/bounds-allocate.js +38 -0
- package/cjs/allocator/bounds-allocate.js.map +1 -0
- package/cjs/allocator/canvas-allocate.d.ts +4 -0
- package/cjs/allocator/canvas-allocate.js +19 -6
- package/cjs/allocator/canvas-allocate.js.map +1 -1
- package/cjs/allocator/graphic-allocate.d.ts +56 -1
- package/cjs/allocator/graphic-allocate.js +163 -1
- package/cjs/allocator/graphic-allocate.js.map +1 -1
- package/cjs/animate/Ticker/default-ticker.js +1 -1
- package/cjs/animate/Ticker/default-ticker.js.map +1 -1
- package/cjs/animate/config.js +1 -2
- package/cjs/animate/custom-animate.js +2 -1
- package/cjs/canvas/contributions/base-canvas.js +4 -2
- package/cjs/canvas/contributions/base-canvas.js.map +1 -1
- package/cjs/common/Reflect-metadata.js +349 -359
- package/cjs/common/Reflect-metadata.js.map +1 -1
- package/cjs/common/bezier-utils.js +2 -1
- package/cjs/common/inversify/annotation/inject.d.ts +1 -0
- package/cjs/common/inversify/annotation/inject.js +10 -0
- package/cjs/common/inversify/annotation/inject.js.map +1 -0
- package/cjs/common/inversify/annotation/inject_base.d.ts +14 -0
- package/cjs/common/inversify/annotation/inject_base.js +39 -0
- package/cjs/common/inversify/annotation/inject_base.js.map +1 -0
- package/cjs/common/inversify/annotation/injectable.d.ts +1 -0
- package/cjs/common/{inversify-lite/annotation/post_construct.js → inversify/annotation/injectable.js} +15 -5
- package/cjs/common/inversify/annotation/injectable.js.map +1 -0
- package/cjs/common/inversify/annotation/multi_inject.d.ts +1 -0
- package/cjs/common/inversify/annotation/multi_inject.js +10 -0
- package/cjs/common/inversify/annotation/multi_inject.js.map +1 -0
- package/cjs/common/inversify/annotation/named.d.ts +1 -0
- package/cjs/common/inversify/annotation/named.js +14 -0
- package/cjs/common/inversify/annotation/named.js.map +1 -0
- package/cjs/common/inversify/binding.d.ts +18 -0
- package/cjs/common/inversify/binding.js +26 -0
- package/cjs/common/inversify/binding.js.map +1 -0
- package/cjs/common/inversify/container.d.ts +28 -0
- package/cjs/common/inversify/container.js +155 -0
- package/cjs/common/inversify/container.js.map +1 -0
- package/cjs/common/inversify/cotainer-module.d.ts +6 -0
- package/cjs/common/inversify/cotainer-module.js +16 -0
- package/cjs/common/inversify/cotainer-module.js.map +1 -0
- package/cjs/common/inversify/index.d.ts +7 -0
- package/cjs/common/inversify/index.js +75 -0
- package/cjs/common/inversify/index.js.map +1 -0
- package/cjs/common/inversify/interfaces.d.ts +218 -0
- package/cjs/common/inversify/interfaces.js +6 -0
- package/cjs/common/inversify/interfaces.js.map +1 -0
- package/cjs/common/inversify/literal_types.d.ts +5 -0
- package/cjs/common/inversify/literal_types.js +34 -0
- package/cjs/common/inversify/literal_types.js.map +1 -0
- package/cjs/common/inversify/meta-data.d.ts +6 -0
- package/cjs/common/inversify/meta-data.js +19 -0
- package/cjs/common/inversify/meta-data.js.map +1 -0
- package/cjs/common/inversify/metadata_keys.d.ts +12 -0
- package/cjs/common/inversify/metadata_keys.js +15 -0
- package/cjs/common/inversify/metadata_keys.js.map +1 -0
- package/cjs/common/inversify/metadata_reader.d.ts +6 -0
- package/cjs/common/inversify/metadata_reader.js +28 -0
- package/cjs/common/inversify/metadata_reader.js.map +1 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.js +29 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.js +40 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -0
- package/cjs/common/inversify/syntax/constraint_helpers.d.ts +2 -0
- package/cjs/common/inversify/syntax/constraint_helpers.js +20 -0
- package/cjs/common/inversify/syntax/constraint_helpers.js.map +1 -0
- package/cjs/common/inversify-lite/container/container.js +1 -3
- package/cjs/common/inversify-lite/container/container.js.map +1 -1
- package/cjs/common/inversify-lite/index.d.ts +1 -8
- package/cjs/common/inversify-lite/index.js +1 -64
- package/cjs/common/inversify-lite/index.js.map +1 -1
- package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
- package/cjs/common/inversify-lite/interfaces/interfaces.js.map +1 -1
- package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -2
- package/cjs/common/inversify-lite/planning/queryable_string.js +0 -10
- package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
- package/cjs/common/inversify-lite/resolution/resolver.js.map +1 -1
- package/cjs/common/shape/rect.js +2 -1
- package/cjs/common/shape/rect.js.map +1 -1
- package/cjs/common/sort.js +1 -2
- package/cjs/common/split-path.js +2 -1
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/empty-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/cjs/core/contributions/textMeasure/modules.js +1 -2
- package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
- package/cjs/core/core-modules.js +5 -6
- package/cjs/core/core-modules.js.map +1 -1
- package/cjs/core/global.d.ts +4 -0
- package/cjs/core/global.js +8 -5
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/graphic-utils.d.ts +7 -4
- package/cjs/core/graphic-utils.js +18 -14
- package/cjs/core/graphic-utils.js.map +1 -1
- package/cjs/core/layer-service.d.ts +5 -2
- package/cjs/core/layer-service.js +13 -13
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/core/stage.d.ts +7 -4
- package/cjs/core/stage.js +38 -34
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.d.ts +2 -2
- package/cjs/core/window.js +7 -12
- package/cjs/core/window.js.map +1 -1
- package/cjs/event/event-manager.js +3 -2
- package/cjs/event/event-manager.js.map +1 -1
- package/cjs/graphic/config.d.ts +1 -2
- package/cjs/graphic/config.js +7 -5
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/graphic-service/arc-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/arc-contribution.js +0 -18
- package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/area-contribution.d.ts +1 -1
- package/cjs/graphic/graphic-service/area-contribution.js +1 -4
- package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/circle-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/circle-contribution.js +0 -18
- package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/common-contribution.js +2 -11
- package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-module.js +2 -17
- package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -7
- package/cjs/graphic/graphic-service/graphic-service.js +24 -30
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic-service/path-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/path-contribution.js +0 -18
- package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/rect-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/rect-contribution.js +0 -18
- package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/symbol-contribution.d.ts +0 -1
- package/cjs/graphic/graphic-service/symbol-contribution.js +4 -13
- package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/cjs/graphic/graphic.js +3 -2
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +1 -0
- package/cjs/graphic/group.js +7 -3
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/rect.d.ts +2 -3
- package/cjs/graphic/rect.js +3 -5
- package/cjs/graphic/rect.js.map +1 -1
- package/cjs/graphic/symbol.js +7 -4
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/theme.d.ts +4 -4
- package/cjs/graphic/theme.js +25 -26
- package/cjs/graphic/theme.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/interface/allocator.d.ts +1 -0
- package/cjs/interface/allocator.js.map +1 -1
- package/cjs/interface/global.d.ts +1 -0
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/graphic/rect.d.ts +2 -0
- package/cjs/interface/graphic/rect.js.map +1 -1
- package/cjs/interface/graphic.d.ts +1 -4
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/render.d.ts +2 -2
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/stage.d.ts +2 -1
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/modules.d.ts +1 -2
- package/cjs/modules.js +8 -8
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/global-picker-service.d.ts +2 -2
- package/cjs/picker/global-picker-service.js +4 -9
- package/cjs/picker/global-picker-service.js.map +1 -1
- package/cjs/picker/pick-modules.js +2 -4
- package/cjs/picker/pick-modules.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +2 -2
- package/cjs/picker/picker-service.js +6 -6
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/plugin-modules.js +1 -2
- package/cjs/plugins/plugin-modules.js.map +1 -1
- package/cjs/render/contributions/render/arc-render.js +2 -1
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/area-render.d.ts +1 -0
- package/cjs/render/contributions/render/area-render.js +44 -6
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.d.ts +1 -1
- package/cjs/render/contributions/render/base-render.js +15 -18
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-render.js +2 -1
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +7 -30
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
- package/cjs/render/contributions/render/contributions/area-contribution-render.js +7 -21
- package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +2 -0
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +9 -9
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +7 -30
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/constants.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/constants.js +2 -2
- package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
- package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/group-contribution-render.js +6 -12
- package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/image-contribution-render.js +6 -12
- package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
- package/cjs/render/contributions/render/contributions/path-contribution-render.js +4 -25
- package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +4 -25
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +17 -37
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +6 -27
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js +25 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +7 -6
- package/cjs/render/contributions/render/draw-contribution.js +31 -22
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/draw-interceptor.d.ts +9 -1
- package/cjs/render/contributions/render/draw-interceptor.js +41 -27
- package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
- package/cjs/render/contributions/render/group-render.js +3 -2
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-render.js +2 -1
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
- package/cjs/render/contributions/render/incremental-draw-contribution.js +8 -11
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/line-render.d.ts +1 -0
- package/cjs/render/contributions/render/line-render.js +21 -6
- package/cjs/render/contributions/render/line-render.js.map +1 -1
- package/cjs/render/contributions/render/module.js +32 -87
- package/cjs/render/contributions/render/module.js.map +1 -1
- package/cjs/render/contributions/render/path-render.d.ts +2 -1
- package/cjs/render/contributions/render/path-render.js +8 -5
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-render.js +2 -1
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.d.ts +2 -1
- package/cjs/render/contributions/render/rect-render.js +11 -5
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/render-slector.d.ts +1 -4
- package/cjs/render/contributions/render/render-slector.js +0 -20
- package/cjs/render/contributions/render/render-slector.js.map +1 -1
- package/cjs/render/contributions/render/richtext-render.d.ts +1 -0
- package/cjs/render/contributions/render/richtext-render.js +12 -7
- package/cjs/render/contributions/render/richtext-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.js +2 -1
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/text-render.js +12 -9
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/contributions/render/utils.js +2 -2
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/render/render-modules.js +1 -1
- package/cjs/render/render-modules.js.map +1 -1
- package/cjs/render/render-service.js +1 -1
- package/cjs/render/render-service.js.map +1 -1
- package/dist/index.js +5444 -6358
- package/dist/index.min.js +1 -1
- package/es/allocator/bounds-allocate.d.ts +13 -0
- package/es/allocator/bounds-allocate.js +32 -0
- package/es/allocator/bounds-allocate.js.map +1 -0
- package/es/allocator/canvas-allocate.d.ts +4 -0
- package/es/allocator/canvas-allocate.js +19 -6
- package/es/allocator/canvas-allocate.js.map +1 -1
- package/es/allocator/graphic-allocate.d.ts +56 -1
- package/es/allocator/graphic-allocate.js +155 -1
- package/es/allocator/graphic-allocate.js.map +1 -1
- package/es/animate/Ticker/default-ticker.js +1 -1
- package/es/animate/Ticker/default-ticker.js.map +1 -1
- package/es/animate/config.js +1 -2
- package/es/animate/custom-animate.js +2 -1
- package/es/canvas/contributions/base-canvas.js +4 -2
- package/es/canvas/contributions/base-canvas.js.map +1 -1
- package/es/common/Reflect-metadata.js +349 -359
- package/es/common/Reflect-metadata.js.map +1 -1
- package/es/common/bezier-utils.js +2 -1
- package/es/common/inversify/annotation/inject.d.ts +1 -0
- package/es/common/inversify/annotation/inject.js +6 -0
- package/es/common/inversify/annotation/inject.js.map +1 -0
- package/es/common/inversify/annotation/inject_base.d.ts +14 -0
- package/es/common/inversify/annotation/inject_base.js +29 -0
- package/es/common/inversify/annotation/inject_base.js.map +1 -0
- package/es/common/inversify/annotation/injectable.d.ts +1 -0
- package/es/common/inversify/annotation/injectable.js +10 -0
- package/es/common/inversify/annotation/injectable.js.map +1 -0
- package/es/common/inversify/annotation/multi_inject.d.ts +1 -0
- package/es/common/inversify/annotation/multi_inject.js +6 -0
- package/es/common/inversify/annotation/multi_inject.js.map +1 -0
- package/es/common/inversify/annotation/named.d.ts +1 -0
- package/es/common/inversify/annotation/named.js +10 -0
- package/es/common/inversify/annotation/named.js.map +1 -0
- package/es/common/inversify/binding.d.ts +18 -0
- package/es/common/inversify/binding.js +22 -0
- package/es/common/inversify/binding.js.map +1 -0
- package/es/common/inversify/container.d.ts +28 -0
- package/es/common/inversify/container.js +155 -0
- package/es/common/inversify/container.js.map +1 -0
- package/es/common/inversify/cotainer-module.d.ts +6 -0
- package/es/common/inversify/cotainer-module.js +8 -0
- package/es/common/inversify/cotainer-module.js.map +1 -0
- package/es/common/inversify/index.d.ts +7 -0
- package/es/common/inversify/index.js +14 -0
- package/es/common/inversify/index.js.map +1 -0
- package/es/common/inversify/interfaces.d.ts +218 -0
- package/es/common/inversify/interfaces.js +2 -0
- package/es/common/inversify/interfaces.js.map +1 -0
- package/es/common/inversify/literal_types.d.ts +5 -0
- package/es/common/inversify/literal_types.js +20 -0
- package/es/common/inversify/literal_types.js.map +1 -0
- package/es/common/inversify/meta-data.d.ts +6 -0
- package/es/common/inversify/meta-data.js +11 -0
- package/es/common/inversify/meta-data.js.map +1 -0
- package/es/common/inversify/metadata_keys.d.ts +12 -0
- package/es/common/inversify/metadata_keys.js +28 -0
- package/es/common/inversify/metadata_keys.js.map +1 -0
- package/es/common/inversify/metadata_reader.d.ts +6 -0
- package/es/common/inversify/metadata_reader.js +18 -0
- package/es/common/inversify/metadata_reader.js.map +1 -0
- package/es/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
- package/es/common/inversify/syntax/binding_in_syntax.js +24 -0
- package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -0
- package/es/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
- package/es/common/inversify/syntax/binding_to_syntax.js +36 -0
- package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -0
- package/es/common/inversify/syntax/constraint_helpers.d.ts +2 -0
- package/es/common/inversify/syntax/constraint_helpers.js +18 -0
- package/es/common/inversify/syntax/constraint_helpers.js.map +1 -0
- package/es/common/inversify-lite/container/container.js +2 -4
- package/es/common/inversify-lite/container/container.js.map +1 -1
- package/es/common/inversify-lite/index.d.ts +1 -8
- package/es/common/inversify-lite/index.js +1 -15
- package/es/common/inversify-lite/index.js.map +1 -1
- package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
- package/es/common/inversify-lite/interfaces/interfaces.js.map +1 -1
- package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -2
- package/es/common/inversify-lite/planning/queryable_string.js +0 -10
- package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
- package/es/common/inversify-lite/resolution/resolver.js.map +1 -1
- package/es/common/shape/rect.js +2 -1
- package/es/common/shape/rect.js.map +1 -1
- package/es/common/sort.js +1 -2
- package/es/common/split-path.js +2 -1
- package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/canvas2d-contribution.js +5 -9
- package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/empty-contribution.js +5 -9
- package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -9
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/es/core/contributions/textMeasure/modules.js +1 -1
- package/es/core/contributions/textMeasure/modules.js.map +1 -1
- package/es/core/core-modules.js +4 -6
- package/es/core/core-modules.js.map +1 -1
- package/es/core/global.d.ts +4 -0
- package/es/core/global.js +8 -4
- package/es/core/global.js.map +1 -1
- package/es/core/graphic-utils.d.ts +7 -4
- package/es/core/graphic-utils.js +20 -15
- package/es/core/graphic-utils.js.map +1 -1
- package/es/core/layer-service.d.ts +5 -2
- package/es/core/layer-service.js +14 -13
- package/es/core/layer-service.js.map +1 -1
- package/es/core/stage.d.ts +7 -4
- package/es/core/stage.js +42 -36
- package/es/core/stage.js.map +1 -1
- package/es/core/window.d.ts +2 -2
- package/es/core/window.js +8 -12
- package/es/core/window.js.map +1 -1
- package/es/event/event-manager.js +3 -2
- package/es/event/event-manager.js.map +1 -1
- package/es/graphic/config.d.ts +1 -2
- package/es/graphic/config.js +6 -6
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/graphic-service/arc-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/arc-contribution.js +0 -15
- package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/es/graphic/graphic-service/area-contribution.d.ts +1 -1
- package/es/graphic/graphic-service/area-contribution.js +2 -1
- package/es/graphic/graphic-service/area-contribution.js.map +1 -1
- package/es/graphic/graphic-service/circle-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/circle-contribution.js +0 -15
- package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/es/graphic/graphic-service/common-contribution.js +2 -14
- package/es/graphic/graphic-service/common-contribution.js.map +1 -1
- package/es/graphic/graphic-service/graphic-module.js +1 -23
- package/es/graphic/graphic-service/graphic-module.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.d.ts +2 -7
- package/es/graphic/graphic-service/graphic-service.js +25 -32
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic-service/path-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/path-contribution.js +0 -15
- package/es/graphic/graphic-service/path-contribution.js.map +1 -1
- package/es/graphic/graphic-service/rect-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/rect-contribution.js +0 -15
- package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/es/graphic/graphic-service/symbol-contribution.d.ts +0 -1
- package/es/graphic/graphic-service/symbol-contribution.js +2 -16
- package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/es/graphic/graphic.js +3 -2
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +1 -0
- package/es/graphic/group.js +8 -1
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/rect.d.ts +2 -3
- package/es/graphic/rect.js +3 -7
- package/es/graphic/rect.js.map +1 -1
- package/es/graphic/symbol.js +6 -4
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/theme.d.ts +4 -4
- package/es/graphic/theme.js +26 -27
- package/es/graphic/theme.js.map +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +4 -0
- package/es/index.js.map +1 -1
- package/es/interface/allocator.d.ts +1 -0
- package/es/interface/allocator.js.map +1 -1
- package/es/interface/global.d.ts +1 -0
- package/es/interface/global.js.map +1 -1
- package/es/interface/graphic/rect.d.ts +2 -0
- package/es/interface/graphic/rect.js.map +1 -1
- package/es/interface/graphic.d.ts +1 -4
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/render.d.ts +2 -2
- package/es/interface/render.js.map +1 -1
- package/es/interface/stage.d.ts +2 -1
- package/es/interface/stage.js.map +1 -1
- package/es/modules.d.ts +1 -2
- package/es/modules.js +0 -4
- package/es/modules.js.map +1 -1
- package/es/picker/global-picker-service.d.ts +2 -2
- package/es/picker/global-picker-service.js +5 -9
- package/es/picker/global-picker-service.js.map +1 -1
- package/es/picker/pick-modules.js +1 -4
- package/es/picker/pick-modules.js.map +1 -1
- package/es/picker/picker-service.d.ts +2 -2
- package/es/picker/picker-service.js +5 -5
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/plugin-modules.js +1 -2
- package/es/plugins/plugin-modules.js.map +1 -1
- package/es/render/contributions/render/arc-render.js +3 -0
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/area-render.d.ts +1 -0
- package/es/render/contributions/render/area-render.js +45 -5
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.d.ts +1 -1
- package/es/render/contributions/render/base-render.js +15 -22
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-render.js +3 -0
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/arc-contribution-render.js +6 -32
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
- package/es/render/contributions/render/contributions/area-contribution-render.js +5 -23
- package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.d.ts +2 -0
- package/es/render/contributions/render/contributions/base-contribution-render.js +6 -10
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/circle-contribution-render.js +6 -32
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/constants.d.ts +1 -0
- package/es/render/contributions/render/contributions/constants.js +2 -0
- package/es/render/contributions/render/contributions/constants.js.map +1 -1
- package/es/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
- package/es/render/contributions/render/contributions/group-contribution-render.js +3 -13
- package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
- package/es/render/contributions/render/contributions/image-contribution-render.js +4 -14
- package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
- package/es/render/contributions/render/contributions/path-contribution-render.js +3 -29
- package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
- package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -29
- package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
- package/es/render/contributions/render/contributions/rect-contribution-render.js +19 -46
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +6 -24
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js +24 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +7 -6
- package/es/render/contributions/render/draw-contribution.js +35 -24
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/draw-interceptor.d.ts +9 -1
- package/es/render/contributions/render/draw-interceptor.js +38 -35
- package/es/render/contributions/render/draw-interceptor.js.map +1 -1
- package/es/render/contributions/render/group-render.js +4 -1
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-render.js +3 -1
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
- package/es/render/contributions/render/incremental-draw-contribution.js +5 -11
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/line-render.d.ts +1 -0
- package/es/render/contributions/render/line-render.js +21 -6
- package/es/render/contributions/render/line-render.js.map +1 -1
- package/es/render/contributions/render/module.js +29 -83
- package/es/render/contributions/render/module.js.map +1 -1
- package/es/render/contributions/render/path-render.d.ts +2 -1
- package/es/render/contributions/render/path-render.js +8 -4
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-render.js +3 -0
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/rect-render.d.ts +2 -1
- package/es/render/contributions/render/rect-render.js +11 -3
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/render-slector.d.ts +1 -4
- package/es/render/contributions/render/render-slector.js +0 -15
- package/es/render/contributions/render/render-slector.js.map +1 -1
- package/es/render/contributions/render/richtext-render.d.ts +1 -0
- package/es/render/contributions/render/richtext-render.js +12 -6
- package/es/render/contributions/render/richtext-render.js.map +1 -1
- package/es/render/contributions/render/symbol-render.js +3 -0
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/text-render.js +13 -9
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/contributions/render/utils.js +2 -2
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/render/render-modules.js +1 -1
- package/es/render/render-modules.js.map +1 -1
- package/es/render/render-service.js +1 -1
- package/es/render/render-service.js.map +1 -1
- package/package.json +3 -1
- package/cjs/common/inversify-lite/annotation/post_construct.d.ts +0 -4
- package/cjs/common/inversify-lite/annotation/post_construct.js.map +0 -1
- package/es/common/inversify-lite/annotation/post_construct.d.ts +0 -4
- package/es/common/inversify-lite/annotation/post_construct.js +0 -10
- package/es/common/inversify-lite/annotation/post_construct.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify/metadata_reader.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,EAAe,MAAM,iBAAiB,CAAC;AAEnE,MAAM,cAAc;IAClB,sBAAsB,CAAC,eAAgC;QAErD,MAAM,yBAAyB,GAAI,OAAe,CAAC,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAG7F,MAAM,qBAAqB,GAAI,OAAe,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEpF,OAAO;YACL,yBAAyB;YACzB,qBAAqB,EAAE,qBAAqB,IAAI,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,eAAgC;QAIpD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,OAAO,EAAE,cAAc,EAAE,CAAC","file":"metadata_reader.js","sourcesContent":["import type { interfaces } from './interfaces';\nimport Reflect from '../Reflect-metadata';\nimport { PARAM_TYPES, TAGGED, TAGGED_PROP } from './metadata_keys';\n\nclass MetadataReader implements interfaces.MetadataReader {\n getConstructorMetadata(constructorFunc: NewableFunction): interfaces.ConstructorMetadata {\n // TypeScript compiler generated annotations\n const compilerGeneratedMetadata = (Reflect as any).getMetadata(PARAM_TYPES, constructorFunc);\n\n // User generated constructor annotations\n const userGeneratedMetadata = (Reflect as any).getMetadata(TAGGED, constructorFunc);\n\n return {\n compilerGeneratedMetadata,\n userGeneratedMetadata: userGeneratedMetadata || {}\n };\n }\n\n getPropertiesMetadata(constructorFunc: NewableFunction): interfaces.MetadataMap {\n // // User generated properties annotations\n // const userGeneratedMetadata = (Reflect as any).getMetadata(TAGGED_PROP, constructorFunc) || [];\n // return userGeneratedMetadata;\n throw new Error('暂未实现');\n }\n}\n\nexport { MetadataReader };\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { interfaces } from '../interfaces';
|
|
2
|
+
declare class BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {
|
|
3
|
+
private _binding;
|
|
4
|
+
constructor(binding: interfaces.Binding<T>);
|
|
5
|
+
inRequestScope(): interfaces.BindingInSyntax<T>;
|
|
6
|
+
inSingletonScope(): interfaces.BindingInSyntax<T>;
|
|
7
|
+
inTransientScope(): interfaces.BindingInSyntax<T>;
|
|
8
|
+
whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
|
|
9
|
+
}
|
|
10
|
+
export { BindingInSyntax };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BindingScopeEnum } from "../literal_types";
|
|
2
|
+
|
|
3
|
+
import { namedConstraint } from "./constraint_helpers";
|
|
4
|
+
|
|
5
|
+
class BindingInSyntax {
|
|
6
|
+
constructor(binding) {
|
|
7
|
+
this._binding = binding;
|
|
8
|
+
}
|
|
9
|
+
inRequestScope() {
|
|
10
|
+
throw new Error("暂未实现");
|
|
11
|
+
}
|
|
12
|
+
inSingletonScope() {
|
|
13
|
+
return this._binding.scope = BindingScopeEnum.Singleton, this;
|
|
14
|
+
}
|
|
15
|
+
inTransientScope() {
|
|
16
|
+
return this._binding.scope = BindingScopeEnum.Transient, this;
|
|
17
|
+
}
|
|
18
|
+
whenTargetNamed(name) {
|
|
19
|
+
return this._binding.constraint = namedConstraint(name), this;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { BindingInSyntax };
|
|
24
|
+
//# sourceMappingURL=binding_in_syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify/syntax/binding_in_syntax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,eAAe;IAGnB,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,cAAc;QAGZ,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,IAA8B;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC","file":"binding_in_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum } from '../literal_types';\nimport { namedConstraint } from './constraint_helpers';\n\nclass BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n inRequestScope(): interfaces.BindingInSyntax<T> {\n // this._binding.scope = BindingScopeEnum.Request;\n // return new BindingWhenOnSyntax<T>(this._binding);\n throw new Error('暂未实现');\n }\n\n inSingletonScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Singleton;\n return this;\n }\n\n inTransientScope(): interfaces.BindingInSyntax<T> {\n this._binding.scope = BindingScopeEnum.Transient;\n return this;\n }\n\n whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T> {\n this._binding.constraint = namedConstraint(name);\n return this;\n }\n}\n\nexport { BindingInSyntax };\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { interfaces } from '../interfaces';
|
|
2
|
+
declare class BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {
|
|
3
|
+
private _binding;
|
|
4
|
+
constructor(binding: interfaces.Binding<T>);
|
|
5
|
+
to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T>;
|
|
6
|
+
toSelf(): interfaces.BindingInWhenOnSyntax<T>;
|
|
7
|
+
toDynamicValue(func: interfaces.DynamicValue<T>): interfaces.BindingInWhenOnSyntax<T>;
|
|
8
|
+
toConstantValue(value: T): interfaces.BindingInSyntax<T>;
|
|
9
|
+
toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingInWhenOnSyntax<T>;
|
|
10
|
+
toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void;
|
|
11
|
+
}
|
|
12
|
+
export { BindingToSyntax };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BindingScopeEnum, BindingTypeEnum } from "../literal_types";
|
|
2
|
+
|
|
3
|
+
import { BindingInSyntax } from "./binding_in_syntax";
|
|
4
|
+
|
|
5
|
+
class BindingToSyntax {
|
|
6
|
+
constructor(binding) {
|
|
7
|
+
this._binding = binding;
|
|
8
|
+
}
|
|
9
|
+
to(constructor) {
|
|
10
|
+
return this._binding.type = BindingTypeEnum.Instance, this._binding.implementationType = constructor,
|
|
11
|
+
new BindingInSyntax(this._binding);
|
|
12
|
+
}
|
|
13
|
+
toSelf() {
|
|
14
|
+
const self = this._binding.serviceIdentifier;
|
|
15
|
+
return this.to(self);
|
|
16
|
+
}
|
|
17
|
+
toDynamicValue(func) {
|
|
18
|
+
return this._binding.type = BindingTypeEnum.DynamicValue, this._binding.cache = null,
|
|
19
|
+
this._binding.dynamicValue = func, this._binding.implementationType = null, new BindingInSyntax(this._binding);
|
|
20
|
+
}
|
|
21
|
+
toConstantValue(value) {
|
|
22
|
+
return this._binding.type = BindingTypeEnum.ConstantValue, this._binding.cache = value,
|
|
23
|
+
this._binding.dynamicValue = null, this._binding.implementationType = null, this._binding.scope = BindingScopeEnum.Singleton,
|
|
24
|
+
new BindingInSyntax(this._binding);
|
|
25
|
+
}
|
|
26
|
+
toFactory(factory) {
|
|
27
|
+
return this._binding.type = BindingTypeEnum.Factory, this._binding.factory = factory,
|
|
28
|
+
this._binding.scope = BindingScopeEnum.Singleton, new BindingInSyntax(this._binding);
|
|
29
|
+
}
|
|
30
|
+
toService(service) {
|
|
31
|
+
this.toDynamicValue((context => context.container.get(service)));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { BindingToSyntax };
|
|
36
|
+
//# sourceMappingURL=binding_to_syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify/syntax/binding_to_syntax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,eAAe;IAMnB,YAAY,OAA8B;QACxC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,EAAE,CAAC,WAAkC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAC/C,OAAO,IAAI,eAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC7C,OAAO,IAAI,CAAC,EAAE,CAAC,IAAW,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAgC;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,OAAO,IAAI,eAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,KAAQ;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,aAAa,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,eAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAK,OAAsC;QAClD,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACjD,OAAO,IAAI,eAAe,CAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,OAAyE;QACjF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAI,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC","file":"binding_to_syntax.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { BindingScopeEnum, BindingTypeEnum } from '../literal_types';\nimport { BindingInSyntax } from './binding_in_syntax';\n\nclass BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n private _binding: interfaces.Binding<T>;\n\n constructor(binding: interfaces.Binding<T>) {\n this._binding = binding;\n }\n\n to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Instance;\n this._binding.implementationType = constructor;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toSelf(): interfaces.BindingInWhenOnSyntax<T> {\n const self = this._binding.serviceIdentifier;\n return this.to(self as any);\n }\n\n toDynamicValue(func: interfaces.DynamicValue<T>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.DynamicValue;\n this._binding.cache = null;\n this._binding.dynamicValue = func;\n this._binding.implementationType = null;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toConstantValue(value: T): interfaces.BindingInSyntax<T> {\n this._binding.type = BindingTypeEnum.ConstantValue;\n this._binding.cache = value;\n this._binding.dynamicValue = null;\n this._binding.implementationType = null;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingInWhenOnSyntax<T> {\n this._binding.type = BindingTypeEnum.Factory;\n this._binding.factory = factory;\n this._binding.scope = BindingScopeEnum.Singleton;\n return new BindingInSyntax<T>(this._binding);\n }\n\n toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void {\n this.toDynamicValue(context => context.container.get<T>(service));\n }\n}\n\nexport { BindingToSyntax };\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Metadata } from "../meta-data";
|
|
2
|
+
|
|
3
|
+
import { NAMED_TAG } from "../metadata_keys";
|
|
4
|
+
|
|
5
|
+
const taggedConstraint = key => value => {
|
|
6
|
+
const constraint = request => {
|
|
7
|
+
if (null == request) return !1;
|
|
8
|
+
if (request.key === key && request.value === value) return !0;
|
|
9
|
+
if (null == request.constructorArgsMetadata) return !1;
|
|
10
|
+
const constructorArgsMetadata = request.constructorArgsMetadata;
|
|
11
|
+
for (let i = 0; i < constructorArgsMetadata.length; i++) if (constructorArgsMetadata[i].key === key && constructorArgsMetadata[i].value === value) return !0;
|
|
12
|
+
return !1;
|
|
13
|
+
};
|
|
14
|
+
return constraint.metaData = new Metadata(key, value), constraint;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const namedConstraint = taggedConstraint(NAMED_TAG);
|
|
18
|
+
//# sourceMappingURL=constraint_helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify/syntax/constraint_helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,GAA6B,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE;IAC7E,MAAM,UAAU,GAAkC,CAAC,OAAY,EAAE,EAAE;QACjE,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;YAClD,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,CAAC,uBAAuB,IAAI,IAAI,EAAE;YAC3C,OAAO,KAAK,CAAC;SACd;QACD,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvD,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,EAAE;gBACxF,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAGF,UAAU,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE/C,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC","file":"constraint_helpers.js","sourcesContent":["import type { interfaces } from '../interfaces';\nimport { Metadata } from '../meta-data';\nimport { NAMED_TAG } from '../metadata_keys';\n\nconst taggedConstraint = (key: string | number | symbol) => (value: unknown) => {\n const constraint: interfaces.ConstraintFunction = (request: any) => {\n if (request == null) {\n return false;\n }\n if (request.key === key && request.value === value) {\n return true;\n }\n if (request.constructorArgsMetadata == null) {\n return false;\n }\n const constructorArgsMetadata = request.constructorArgsMetadata;\n for (let i = 0; i < constructorArgsMetadata.length; i++) {\n if (constructorArgsMetadata[i].key === key && constructorArgsMetadata[i].value === value) {\n return true;\n }\n }\n return false;\n };\n // request !== null && request.target !== null && request.target.matchesTag(key)(value);\n\n constraint.metaData = new Metadata(key, value);\n\n return constraint;\n};\n\nexport const namedConstraint = taggedConstraint(NAMED_TAG);\n"]}
|
|
@@ -40,7 +40,7 @@ import { resolve } from "../resolution/resolver";
|
|
|
40
40
|
|
|
41
41
|
import { BindingToSyntax } from "../syntax/binding_to_syntax";
|
|
42
42
|
|
|
43
|
-
import { isPromise
|
|
43
|
+
import { isPromise } from "../utils/async";
|
|
44
44
|
|
|
45
45
|
import { id } from "../utils/id";
|
|
46
46
|
|
|
@@ -216,9 +216,7 @@ class Container {
|
|
|
216
216
|
return this._planAndResolve()(planAndResolveArgs);
|
|
217
217
|
}
|
|
218
218
|
_getButThrowIfAsync(getArgs) {
|
|
219
|
-
|
|
220
|
-
if (isPromiseOrContainsPromise(result)) throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));
|
|
221
|
-
return result;
|
|
219
|
+
return this._get(getArgs);
|
|
222
220
|
}
|
|
223
221
|
_getAllArgs(serviceIdentifier) {
|
|
224
222
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/inversify-lite/container/container.ts"],"names":[],"mappings":"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","file":"container.js","sourcesContent":["import { Binding } from '../bindings/binding';\nimport * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\nimport * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { MetadataReader } from '../planning/metadata_reader';\nimport { createMockRequest, getBindingDictionary, plan } from '../planning/planner';\nimport { resolve } from '../resolution/resolver';\nimport { BindingToSyntax } from '../syntax/binding_to_syntax';\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\nimport { id } from '../utils/id';\nimport { getServiceIdentifierAsString } from '../utils/serialization';\nimport { Lookup } from './lookup';\nimport Reflect from '../../Reflect-metadata';\n// import { ModuleActivationStore } from './module_activation_store';\n\ntype GetArgs<T> = Omit<interfaces.NextArgs<T>, 'contextInterceptor' | 'targetType'>;\n\nclass Container implements interfaces.Container {\n id: number;\n parent: interfaces.Container | null;\n readonly options: interfaces.ContainerOptions;\n // private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>>;\n // private _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>>;\n // private _deactivations: interfaces.Lookup<interfaces.BindingDeactivation<unknown>>;\n private _metadataReader: interfaces.MetadataReader;\n // private _moduleActivationStore: interfaces.ModuleActivationStore;\n\n static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...containers: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<unknown>>[] = [\n container1,\n container2,\n ...containers\n ].map(targetContainer => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<unknown>>,\n destination: interfaces.Lookup<interfaces.Binding<unknown>>\n ) {\n origin.traverse((_key, value) => {\n value.forEach(binding => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n }\n\n targetContainers.forEach(targetBindingDictionary => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== 'object') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (typeof options.autoBindInjectable !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (typeof options.skipBaseClassChecks !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<unknown>>();\n // this._middleware = null;\n // this._activations = new Lookup<interfaces.BindingActivation<unknown>>();\n // this._deactivations = new Lookup<interfaces.BindingDeactivation<unknown>>();\n this.parent = null;\n this._metadataReader = new MetadataReader();\n // this._moduleActivationStore = new ModuleActivationStore();\n }\n\n load(...modules: interfaces.ContainerModule[]) {\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction as interfaces.Bind,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction as interfaces.Rebind\n // containerModuleHelpers.unbindAsyncFunction,\n // containerModuleHelpers.onActivationFunction as interfaces.Container['onActivation'],\n // containerModuleHelpers.onDeactivationFunction as interfaces.Container['onDeactivation']\n );\n }\n }\n\n unload(...modules: interfaces.ContainerModuleBase[]): void {\n modules.forEach(module => {\n const deactivations = this._removeModuleBindings(module.id);\n this._deactivateSingletons(deactivations);\n\n // this._removeModuleHandlers(module.id);\n });\n }\n\n // Registers a type binding\n bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding as Binding<unknown>);\n return new BindingToSyntax<T>(binding);\n }\n\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // public async rebindAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>\n // ): Promise<interfaces.BindingToSyntax<T>> {\n // await this.unbindAsync(serviceIdentifier);\n // return this.bind(serviceIdentifier);\n // }\n\n // Removes a type binding from the registry by its key\n unbind(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n this._deactivateSingletons(bindings);\n }\n\n this._removeServiceFromDictionary(serviceIdentifier);\n }\n\n // public async unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void> {\n // if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n // const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n // await this._deactivateSingletonsAsync(bindings);\n // }\n\n // this._removeServiceFromDictionary(serviceIdentifier);\n // }\n\n // Removes all the type bindings from the registry\n unbindAll(): void {\n this._bindingDictionary.traverse((_key, value) => {\n this._deactivateSingletons(value);\n });\n\n this._bindingDictionary = new Lookup<Binding<unknown>>();\n }\n\n // public async unbindAllAsync(): Promise<void> {\n // const promises: Promise<void>[] = [];\n\n // this._bindingDictionary.traverse((_key, value) => {\n // promises.push(this._deactivateSingletonsAsync(value));\n // });\n\n // await Promise.all(promises);\n\n // this._bindingDictionary = new Lookup<Binding<unknown>>();\n // }\n\n // public onActivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onActivation: interfaces.BindingActivation<T>\n // ) {\n // this._activations.add(serviceIdentifier, onActivation as interfaces.BindingActivation<unknown>);\n // }\n\n // public onDeactivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onDeactivation: interfaces.BindingDeactivation<T>\n // ) {\n // this._deactivations.add(serviceIdentifier, onDeactivation as interfaces.BindingDeactivation<unknown>);\n // }\n\n // Allows to check if there are bindings available for serviceIdentifier\n isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n // check binding dependency only in current container\n isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean {\n return this._bindingDictionary.hasKey(serviceIdentifier);\n }\n\n isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n isBoundTagged(\n serviceIdentifier: interfaces.ServiceIdentifier,\n key: string | number | symbol,\n value: unknown\n ): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some(b => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n\n return this._getButThrowIfAsync<T>(getArgs) as T;\n }\n\n async getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T> {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n\n return this._get<T>(getArgs) as Promise<T> | T;\n }\n\n getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T;\n }\n\n // public async getTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n // return this._get<T>(getArgs) as Promise<T> | T;\n // }\n\n getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T> {\n // return this.getTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n const getArgs = this._getAllArgs(serviceIdentifier);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]> {\n // const getArgs = this._getAllArgs(serviceIdentifier);\n\n // return this._getAll(getArgs);\n // }\n\n getAllTagged<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n key: string | number | symbol,\n value: unknown\n ): T[] {\n const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n // return this._getAll(getArgs);\n // }\n\n getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getAllNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T[]> {\n // return this.getAllTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const isBound = this.isBound(constructorFunction);\n if (!isBound) {\n this.bind<T>(constructorFunction).toSelf();\n }\n const resolved = this.get<T>(constructorFunction);\n if (!isBound) {\n this.unbind(constructorFunction);\n }\n return resolved;\n }\n\n private _preDestroy<T>(constructor: NewableFunction, instance: T): Promise<void> | void {\n if ((Reflect as any).hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {\n const data: interfaces.Metadata = (Reflect as any).getMetadata(METADATA_KEY.PRE_DESTROY, constructor);\n return (instance as interfaces.Instance<T>)[data.value as string]?.();\n }\n }\n // private _removeModuleHandlers(moduleId: number): void {\n // const moduleActivationsHandlers = this._moduleActivationStore.remove(moduleId);\n\n // this._activations.removeIntersection(moduleActivationsHandlers.onActivations);\n // this._deactivations.removeIntersection(moduleActivationsHandlers.onDeactivations);\n // }\n\n private _removeModuleBindings(moduleId: number): interfaces.Binding<unknown>[] {\n return this._bindingDictionary.removeByCondition(binding => binding.moduleId === moduleId);\n }\n\n private _deactivate<T>(binding: Binding<T>, instance: T): void | Promise<void> {\n const constructor: NewableFunction = Object.getPrototypeOf(instance).constructor;\n try {\n // if (this._deactivations.hasKey(binding.serviceIdentifier)) {\n // const result = this._deactivateContainer(instance, this._deactivations.get(binding.serviceIdentifier).values());\n\n // if (isPromise(result)) {\n // return this._handleDeactivationError(\n // result.then(() =>\n // this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(binding, instance, constructor)\n // ),\n // constructor\n // );\n // }\n // }\n\n const propagateDeactivationResult = this._propagateContainerDeactivationThenBindingAndPreDestroy(\n binding,\n instance,\n constructor\n );\n\n if (isPromise(propagateDeactivationResult)) {\n return this._handleDeactivationError(propagateDeactivationResult, constructor);\n }\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n private async _handleDeactivationError(asyncResult: Promise<void>, constructor: NewableFunction): Promise<void> {\n try {\n await asyncResult;\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n // private _deactivateContainer<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): void | Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // const result = deactivation.value(instance);\n\n // if (isPromise(result)) {\n // return result.then(() => this._deactivateContainerAsync(instance, deactivationsIterator));\n // }\n\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n // private async _deactivateContainerAsync<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // await deactivation.value(instance);\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n private _getContainerModuleHelpersFactory() {\n const setModuleId = (\n bindingToSyntax: interfaces.BindingToSyntax<unknown>,\n moduleId: interfaces.ContainerModuleBase['id']\n ) => {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n (\n bindingToSyntax as unknown as { _binding: { moduleId: interfaces.ContainerModuleBase['id'] } }\n )._binding.moduleId = moduleId;\n };\n\n const getBindFunction =\n <T>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n const getUnbindFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.unbind(serviceIdentifier);\n };\n\n const getUnbindAsyncFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return null as any;\n // return this.unbindAsync(serviceIdentifier);\n };\n\n const getIsboundFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.isBound(serviceIdentifier);\n };\n\n const getRebindFunction =\n <T = unknown>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n // const getOnActivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onActivation: interfaces.BindingActivation) => {\n // this._moduleActivationStore.addActivation(moduleId, serviceIdentifier, onActivation);\n // this.onActivation(serviceIdentifier, onActivation);\n // };\n\n // const getOnDeactivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onDeactivation: interfaces.BindingDeactivation) => {\n // this._moduleActivationStore.addDeactivation(moduleId, serviceIdentifier, onDeactivation);\n // this.onDeactivation(serviceIdentifier, onDeactivation);\n // };\n\n return (mId: interfaces.ContainerModuleBase['id']) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(),\n // onActivationFunction: getOnActivationFunction(mId),\n // onDeactivationFunction: getOnDeactivationFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(),\n unbindAsyncFunction: getUnbindAsyncFunction()\n });\n }\n // private _getAll<T>(getArgs: GetArgs<T>): Promise<T[]> {\n // return Promise.all(this._get<T>(getArgs) as (Promise<T> | T)[]);\n // }\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(getArgs: GetArgs<T>): interfaces.ContainerResolution<T> {\n const planAndResolveArgs: interfaces.NextArgs<T> = {\n ...getArgs,\n contextInterceptor: context => context,\n targetType: TargetTypeEnum.Variable\n };\n // if (this._middleware) {\n // const middlewareResult = this._middleware(planAndResolveArgs);\n // if (middlewareResult === undefined || middlewareResult === null) {\n // throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n // }\n // return middlewareResult as interfaces.ContainerResolution<T>;\n // }\n\n return this._planAndResolve<T>()(planAndResolveArgs);\n }\n\n private _getButThrowIfAsync<T>(getArgs: GetArgs<T>): T | T[] {\n const result = this._get<T>(getArgs);\n\n if (isPromiseOrContainsPromise<T>(result)) {\n throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));\n }\n\n return result as T | T[];\n }\n\n private _getAllArgs<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): GetArgs<T> {\n const getAllArgs: GetArgs<T> = {\n avoidConstraints: true,\n isMultiInject: true,\n serviceIdentifier\n };\n\n return getAllArgs;\n }\n\n private _getNotAllArgs<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n isMultiInject: boolean,\n key?: string | number | symbol | undefined,\n value?: unknown\n ): GetArgs<T> {\n const getNotAllArgs: GetArgs<T> = {\n avoidConstraints: false,\n isMultiInject,\n serviceIdentifier,\n key,\n value\n };\n\n return getNotAllArgs;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T = unknown>(): (args: interfaces.NextArgs<T>) => interfaces.ContainerResolution<T> {\n return (args: interfaces.NextArgs<T>) => {\n // create a plan\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n\n // resolve plan\n const result = resolve<T>(context);\n\n return result;\n };\n }\n\n private _deactivateIfSingleton(binding: Binding<unknown>): Promise<void> | void {\n if (!binding.activated) {\n return;\n }\n\n if (isPromise(binding.cache)) {\n return binding.cache.then(resolved => this._deactivate(binding, resolved));\n }\n\n return this._deactivate(binding, binding.cache);\n }\n\n private _deactivateSingletons(bindings: Binding<unknown>[]): void {\n for (const binding of bindings) {\n const result = this._deactivateIfSingleton(binding);\n\n if (isPromise(result)) {\n throw new Error(ERROR_MSGS.ASYNC_UNBIND_REQUIRED);\n }\n }\n }\n\n // private async _deactivateSingletonsAsync(bindings: Binding<unknown>[]): Promise<void> {\n // await Promise.all(bindings.map(b => this._deactivateIfSingleton(b)));\n // }\n\n private _propagateContainerDeactivationThenBindingAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (this.parent) {\n return this._deactivate.bind(this.parent)(binding, instance);\n }\n return this._bindingDeactivationAndPreDestroy(binding, instance, constructor);\n }\n\n // private async _propagateContainerDeactivationThenBindingAndPreDestroyAsync<T>(\n // binding: Binding<T>,\n // instance: T,\n // constructor: NewableFunction\n // ): Promise<void> {\n // if (this.parent) {\n // await this._deactivate.bind(this.parent)(binding, instance);\n // } else {\n // await this._bindingDeactivationAndPreDestroyAsync(binding, instance, constructor);\n // }\n // }\n\n private _removeServiceFromDictionary(serviceIdentifier: interfaces.ServiceIdentifier): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n private _bindingDeactivationAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n const result = binding.onDeactivation(instance);\n\n if (isPromise(result)) {\n return result.then(() => this._preDestroy(constructor, instance));\n }\n }\n\n return this._preDestroy(constructor, instance);\n }\n\n private async _bindingDeactivationAndPreDestroyAsync<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n await binding.onDeactivation(instance);\n }\n\n await this._preDestroy(constructor, instance);\n }\n}\n\nexport { Container };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify-lite/container/container.ts"],"names":[],"mappings":"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","file":"container.js","sourcesContent":["import { Binding } from '../bindings/binding';\nimport * as ERROR_MSGS from '../constants/error_msgs';\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\nimport * as METADATA_KEY from '../constants/metadata_keys';\nimport type { interfaces } from '../interfaces/interfaces';\nimport { MetadataReader } from '../planning/metadata_reader';\nimport { createMockRequest, getBindingDictionary, plan } from '../planning/planner';\nimport { resolve } from '../resolution/resolver';\nimport { BindingToSyntax } from '../syntax/binding_to_syntax';\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\nimport { id } from '../utils/id';\nimport { getServiceIdentifierAsString } from '../utils/serialization';\nimport { Lookup } from './lookup';\nimport Reflect from '../../Reflect-metadata';\n// import { ModuleActivationStore } from './module_activation_store';\n\ntype GetArgs<T> = Omit<interfaces.NextArgs<T>, 'contextInterceptor' | 'targetType'>;\n\nclass Container implements interfaces.Container {\n id: number;\n parent: interfaces.Container | null;\n readonly options: interfaces.ContainerOptions;\n // private _middleware: interfaces.Next | null;\n private _bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>>;\n // private _activations: interfaces.Lookup<interfaces.BindingActivation<unknown>>;\n // private _deactivations: interfaces.Lookup<interfaces.BindingDeactivation<unknown>>;\n private _metadataReader: interfaces.MetadataReader;\n // private _moduleActivationStore: interfaces.ModuleActivationStore;\n\n static merge(\n container1: interfaces.Container,\n container2: interfaces.Container,\n ...containers: interfaces.Container[]\n ): interfaces.Container {\n const container = new Container();\n const targetContainers: interfaces.Lookup<interfaces.Binding<unknown>>[] = [\n container1,\n container2,\n ...containers\n ].map(targetContainer => getBindingDictionary(targetContainer));\n const bindingDictionary: interfaces.Lookup<interfaces.Binding<unknown>> = getBindingDictionary(container);\n\n function copyDictionary(\n origin: interfaces.Lookup<interfaces.Binding<unknown>>,\n destination: interfaces.Lookup<interfaces.Binding<unknown>>\n ) {\n origin.traverse((_key, value) => {\n value.forEach(binding => {\n destination.add(binding.serviceIdentifier, binding.clone());\n });\n });\n }\n\n targetContainers.forEach(targetBindingDictionary => {\n copyDictionary(targetBindingDictionary, bindingDictionary);\n });\n\n return container;\n }\n\n constructor(containerOptions?: interfaces.ContainerOptions) {\n const options = containerOptions || {};\n if (typeof options !== 'object') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT}`);\n }\n\n if (options.defaultScope === undefined) {\n options.defaultScope = BindingScopeEnum.Transient;\n } else if (\n options.defaultScope !== BindingScopeEnum.Singleton &&\n options.defaultScope !== BindingScopeEnum.Transient &&\n options.defaultScope !== BindingScopeEnum.Request\n ) {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE}`);\n }\n\n if (options.autoBindInjectable === undefined) {\n options.autoBindInjectable = false;\n } else if (typeof options.autoBindInjectable !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE}`);\n }\n\n if (options.skipBaseClassChecks === undefined) {\n options.skipBaseClassChecks = false;\n } else if (typeof options.skipBaseClassChecks !== 'boolean') {\n throw new Error(`${ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK}`);\n }\n\n this.options = {\n autoBindInjectable: options.autoBindInjectable,\n defaultScope: options.defaultScope,\n skipBaseClassChecks: options.skipBaseClassChecks\n };\n\n this.id = id();\n this._bindingDictionary = new Lookup<interfaces.Binding<unknown>>();\n // this._middleware = null;\n // this._activations = new Lookup<interfaces.BindingActivation<unknown>>();\n // this._deactivations = new Lookup<interfaces.BindingDeactivation<unknown>>();\n this.parent = null;\n this._metadataReader = new MetadataReader();\n // this._moduleActivationStore = new ModuleActivationStore();\n }\n\n load(...modules: interfaces.ContainerModule[]) {\n const getHelpers = this._getContainerModuleHelpersFactory();\n\n for (const currentModule of modules) {\n const containerModuleHelpers = getHelpers(currentModule.id);\n\n currentModule.registry(\n containerModuleHelpers.bindFunction as interfaces.Bind,\n containerModuleHelpers.unbindFunction,\n containerModuleHelpers.isboundFunction,\n containerModuleHelpers.rebindFunction as interfaces.Rebind\n // containerModuleHelpers.unbindAsyncFunction,\n // containerModuleHelpers.onActivationFunction as interfaces.Container['onActivation'],\n // containerModuleHelpers.onDeactivationFunction as interfaces.Container['onDeactivation']\n );\n }\n }\n\n unload(...modules: interfaces.ContainerModuleBase[]): void {\n modules.forEach(module => {\n const deactivations = this._removeModuleBindings(module.id);\n this._deactivateSingletons(deactivations);\n\n // this._removeModuleHandlers(module.id);\n });\n }\n\n // Registers a type binding\n bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n const scope = this.options.defaultScope || BindingScopeEnum.Transient;\n const binding = new Binding<T>(serviceIdentifier, scope);\n this._bindingDictionary.add(serviceIdentifier, binding as Binding<unknown>);\n return new BindingToSyntax<T>(binding);\n }\n\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T> {\n this.unbind(serviceIdentifier);\n return this.bind(serviceIdentifier);\n }\n\n // public async rebindAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>\n // ): Promise<interfaces.BindingToSyntax<T>> {\n // await this.unbindAsync(serviceIdentifier);\n // return this.bind(serviceIdentifier);\n // }\n\n // Removes a type binding from the registry by its key\n unbind(serviceIdentifier: interfaces.ServiceIdentifier): void {\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n this._deactivateSingletons(bindings);\n }\n\n this._removeServiceFromDictionary(serviceIdentifier);\n }\n\n // public async unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void> {\n // if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n // const bindings = this._bindingDictionary.get(serviceIdentifier);\n\n // await this._deactivateSingletonsAsync(bindings);\n // }\n\n // this._removeServiceFromDictionary(serviceIdentifier);\n // }\n\n // Removes all the type bindings from the registry\n unbindAll(): void {\n this._bindingDictionary.traverse((_key, value) => {\n this._deactivateSingletons(value);\n });\n\n this._bindingDictionary = new Lookup<Binding<unknown>>();\n }\n\n // public async unbindAllAsync(): Promise<void> {\n // const promises: Promise<void>[] = [];\n\n // this._bindingDictionary.traverse((_key, value) => {\n // promises.push(this._deactivateSingletonsAsync(value));\n // });\n\n // await Promise.all(promises);\n\n // this._bindingDictionary = new Lookup<Binding<unknown>>();\n // }\n\n // public onActivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onActivation: interfaces.BindingActivation<T>\n // ) {\n // this._activations.add(serviceIdentifier, onActivation as interfaces.BindingActivation<unknown>);\n // }\n\n // public onDeactivation<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // onDeactivation: interfaces.BindingDeactivation<T>\n // ) {\n // this._deactivations.add(serviceIdentifier, onDeactivation as interfaces.BindingDeactivation<unknown>);\n // }\n\n // Allows to check if there are bindings available for serviceIdentifier\n isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean {\n let bound = this._bindingDictionary.hasKey(serviceIdentifier);\n if (!bound && this.parent) {\n bound = this.parent.isBound(serviceIdentifier);\n }\n return bound;\n }\n\n // check binding dependency only in current container\n isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean {\n return this._bindingDictionary.hasKey(serviceIdentifier);\n }\n\n isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean {\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // Check if a binding with a complex constraint is available without throwing a error. Ancestors are also verified.\n isBoundTagged(\n serviceIdentifier: interfaces.ServiceIdentifier,\n key: string | number | symbol,\n value: unknown\n ): boolean {\n let bound = false;\n\n // verify if there are bindings available for serviceIdentifier on current binding dictionary\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\n const bindings = this._bindingDictionary.get(serviceIdentifier);\n const request = createMockRequest(this, serviceIdentifier, key, value);\n bound = bindings.some(b => b.constraint(request));\n }\n\n // verify if there is a parent container that could solve the request\n if (!bound && this.parent) {\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\n }\n\n return bound;\n }\n\n applyCustomMetadataReader(metadataReader: interfaces.MetadataReader) {\n this._metadataReader = metadataReader;\n }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier must be associated with only one binding\n // use getAll when the runtime identifier is associated with multiple bindings\n get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T {\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n // const getArgs = {\n // avoidConstraints: false,\n // isMultiInject: false,\n // serviceIdentifier\n // };\n\n const data = this._getButThrowIfAsync<T>(getArgs) as T;\n // const delta = performance.now() - t;\n // window.aaa += delta;\n\n return data;\n }\n\n async getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T> {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false);\n\n return this._get<T>(getArgs) as Promise<T> | T;\n }\n\n getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T {\n const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T;\n }\n\n // public async getTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\n\n // return this._get<T>(getArgs) as Promise<T> | T;\n // }\n\n getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T {\n return this.getTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T> {\n // return this.getTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n // Resolves a dependency by its runtime identifier\n // The runtime identifier can be associated with one or multiple bindings\n getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[] {\n const getArgs = this._getAllArgs(serviceIdentifier);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]> {\n // const getArgs = this._getAllArgs(serviceIdentifier);\n\n // return this._getAll(getArgs);\n // }\n\n getAllTagged<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n key: string | number | symbol,\n value: unknown\n ): T[] {\n const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n return this._getButThrowIfAsync<T>(getArgs) as T[];\n }\n\n // public getAllTaggedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]> {\n // const getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\n\n // return this._getAll(getArgs);\n // }\n\n getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[] {\n return this.getAllTagged<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n }\n\n // public getAllNamedAsync<T>(\n // serviceIdentifier: interfaces.ServiceIdentifier<T>,\n // named: string | number | symbol\n // ): Promise<T[]> {\n // return this.getAllTaggedAsync<T>(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\n // }\n\n resolve<T>(constructorFunction: interfaces.Newable<T>) {\n const isBound = this.isBound(constructorFunction);\n if (!isBound) {\n this.bind<T>(constructorFunction).toSelf();\n }\n const resolved = this.get<T>(constructorFunction);\n if (!isBound) {\n this.unbind(constructorFunction);\n }\n return resolved;\n }\n\n private _preDestroy<T>(constructor: NewableFunction, instance: T): Promise<void> | void {\n if ((Reflect as any).hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {\n const data: interfaces.Metadata = (Reflect as any).getMetadata(METADATA_KEY.PRE_DESTROY, constructor);\n return (instance as interfaces.Instance<T>)[data.value as string]?.();\n }\n }\n // private _removeModuleHandlers(moduleId: number): void {\n // const moduleActivationsHandlers = this._moduleActivationStore.remove(moduleId);\n\n // this._activations.removeIntersection(moduleActivationsHandlers.onActivations);\n // this._deactivations.removeIntersection(moduleActivationsHandlers.onDeactivations);\n // }\n\n private _removeModuleBindings(moduleId: number): interfaces.Binding<unknown>[] {\n return this._bindingDictionary.removeByCondition(binding => binding.moduleId === moduleId);\n }\n\n private _deactivate<T>(binding: Binding<T>, instance: T): void | Promise<void> {\n const constructor: NewableFunction = Object.getPrototypeOf(instance).constructor;\n try {\n // if (this._deactivations.hasKey(binding.serviceIdentifier)) {\n // const result = this._deactivateContainer(instance, this._deactivations.get(binding.serviceIdentifier).values());\n\n // if (isPromise(result)) {\n // return this._handleDeactivationError(\n // result.then(() =>\n // this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(binding, instance, constructor)\n // ),\n // constructor\n // );\n // }\n // }\n\n const propagateDeactivationResult = this._propagateContainerDeactivationThenBindingAndPreDestroy(\n binding,\n instance,\n constructor\n );\n\n if (isPromise(propagateDeactivationResult)) {\n return this._handleDeactivationError(propagateDeactivationResult, constructor);\n }\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n private async _handleDeactivationError(asyncResult: Promise<void>, constructor: NewableFunction): Promise<void> {\n try {\n await asyncResult;\n } catch (ex) {\n if (ex instanceof Error) {\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\n }\n }\n }\n\n // private _deactivateContainer<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): void | Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // const result = deactivation.value(instance);\n\n // if (isPromise(result)) {\n // return result.then(() => this._deactivateContainerAsync(instance, deactivationsIterator));\n // }\n\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n // private async _deactivateContainerAsync<T>(\n // instance: T,\n // deactivationsIterator: IterableIterator<interfaces.BindingDeactivation<unknown>>\n // ): Promise<void> {\n // let deactivation = deactivationsIterator.next();\n\n // while (deactivation.value) {\n // await deactivation.value(instance);\n // deactivation = deactivationsIterator.next();\n // }\n // }\n\n private _getContainerModuleHelpersFactory() {\n const setModuleId = (\n bindingToSyntax: interfaces.BindingToSyntax<unknown>,\n moduleId: interfaces.ContainerModuleBase['id']\n ) => {\n // TODO: Implement an internal type `_BindingToSyntax<T>` wherein this member\n // can be public. Let `BindingToSyntax<T>` be the presentational type that\n // depends on it, and does not expose this member as public.\n (\n bindingToSyntax as unknown as { _binding: { moduleId: interfaces.ContainerModuleBase['id'] } }\n )._binding.moduleId = moduleId;\n };\n\n const getBindFunction =\n <T>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.bind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n const getUnbindFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.unbind(serviceIdentifier);\n };\n\n const getUnbindAsyncFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return null as any;\n // return this.unbindAsync(serviceIdentifier);\n };\n\n const getIsboundFunction = () => (serviceIdentifier: interfaces.ServiceIdentifier) => {\n return this.isBound(serviceIdentifier);\n };\n\n const getRebindFunction =\n <T = unknown>(moduleId: interfaces.ContainerModuleBase['id']) =>\n (serviceIdentifier: interfaces.ServiceIdentifier) => {\n const bindingToSyntax = this.rebind(serviceIdentifier);\n setModuleId(bindingToSyntax, moduleId);\n return bindingToSyntax as BindingToSyntax<T>;\n };\n\n // const getOnActivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onActivation: interfaces.BindingActivation) => {\n // this._moduleActivationStore.addActivation(moduleId, serviceIdentifier, onActivation);\n // this.onActivation(serviceIdentifier, onActivation);\n // };\n\n // const getOnDeactivationFunction =\n // (moduleId: interfaces.ContainerModuleBase['id']) =>\n // (serviceIdentifier: interfaces.ServiceIdentifier, onDeactivation: interfaces.BindingDeactivation) => {\n // this._moduleActivationStore.addDeactivation(moduleId, serviceIdentifier, onDeactivation);\n // this.onDeactivation(serviceIdentifier, onDeactivation);\n // };\n\n return (mId: interfaces.ContainerModuleBase['id']) => ({\n bindFunction: getBindFunction(mId),\n isboundFunction: getIsboundFunction(),\n // onActivationFunction: getOnActivationFunction(mId),\n // onDeactivationFunction: getOnDeactivationFunction(mId),\n rebindFunction: getRebindFunction(mId),\n unbindFunction: getUnbindFunction(),\n unbindAsyncFunction: getUnbindAsyncFunction()\n });\n }\n // private _getAll<T>(getArgs: GetArgs<T>): Promise<T[]> {\n // return Promise.all(this._get<T>(getArgs) as (Promise<T> | T)[]);\n // }\n // Prepares arguments required for resolution and\n // delegates resolution to _middleware if available\n // otherwise it delegates resolution to _planAndResolve\n private _get<T>(getArgs: GetArgs<T>): interfaces.ContainerResolution<T> {\n const planAndResolveArgs: interfaces.NextArgs<T> = {\n ...getArgs,\n contextInterceptor: context => context,\n targetType: TargetTypeEnum.Variable\n };\n // if (this._middleware) {\n // const middlewareResult = this._middleware(planAndResolveArgs);\n // if (middlewareResult === undefined || middlewareResult === null) {\n // throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\n // }\n // return middlewareResult as interfaces.ContainerResolution<T>;\n // }\n\n return this._planAndResolve<T>()(planAndResolveArgs);\n }\n\n private _getButThrowIfAsync<T>(getArgs: GetArgs<T>): T | T[] {\n // console.count('_getButThrowIfAsync');\n const result = this._get<T>(getArgs);\n\n // if (isPromiseOrContainsPromise<T>(result)) {\n // throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));\n // }\n\n return result as T | T[];\n }\n\n private _getAllArgs<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): GetArgs<T> {\n const getAllArgs: GetArgs<T> = {\n avoidConstraints: true,\n isMultiInject: true,\n serviceIdentifier\n };\n\n return getAllArgs;\n }\n\n private _getNotAllArgs<T>(\n serviceIdentifier: interfaces.ServiceIdentifier<T>,\n isMultiInject: boolean,\n key?: string | number | symbol | undefined,\n value?: unknown\n ): GetArgs<T> {\n const getNotAllArgs: GetArgs<T> = {\n avoidConstraints: false,\n isMultiInject,\n serviceIdentifier,\n key,\n value\n };\n\n return getNotAllArgs;\n }\n\n // Planner creates a plan and Resolver resolves a plan\n // one of the jobs of the Container is to links the Planner\n // with the Resolver and that is what this function is about\n private _planAndResolve<T = unknown>(): (args: interfaces.NextArgs<T>) => interfaces.ContainerResolution<T> {\n return (args: interfaces.NextArgs<T>) => {\n // create a plan\n // if (!window.aaa) {\n // window.aaa = 0;\n // }\n // const t = performance.now();\n // debugger;\n let context = plan(\n this._metadataReader,\n this,\n args.isMultiInject,\n args.targetType,\n args.serviceIdentifier,\n args.key,\n args.value,\n args.avoidConstraints\n );\n\n // apply context interceptor\n context = args.contextInterceptor(context);\n // window.aaa += performance.now() - t;\n // resolve plan\n const result = resolve<T>(context);\n\n return result;\n };\n }\n\n private _deactivateIfSingleton(binding: Binding<unknown>): Promise<void> | void {\n if (!binding.activated) {\n return;\n }\n\n if (isPromise(binding.cache)) {\n return binding.cache.then(resolved => this._deactivate(binding, resolved));\n }\n\n return this._deactivate(binding, binding.cache);\n }\n\n private _deactivateSingletons(bindings: Binding<unknown>[]): void {\n for (const binding of bindings) {\n const result = this._deactivateIfSingleton(binding);\n\n if (isPromise(result)) {\n throw new Error(ERROR_MSGS.ASYNC_UNBIND_REQUIRED);\n }\n }\n }\n\n // private async _deactivateSingletonsAsync(bindings: Binding<unknown>[]): Promise<void> {\n // await Promise.all(bindings.map(b => this._deactivateIfSingleton(b)));\n // }\n\n private _propagateContainerDeactivationThenBindingAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (this.parent) {\n return this._deactivate.bind(this.parent)(binding, instance);\n }\n return this._bindingDeactivationAndPreDestroy(binding, instance, constructor);\n }\n\n // private async _propagateContainerDeactivationThenBindingAndPreDestroyAsync<T>(\n // binding: Binding<T>,\n // instance: T,\n // constructor: NewableFunction\n // ): Promise<void> {\n // if (this.parent) {\n // await this._deactivate.bind(this.parent)(binding, instance);\n // } else {\n // await this._bindingDeactivationAndPreDestroyAsync(binding, instance, constructor);\n // }\n // }\n\n private _removeServiceFromDictionary(serviceIdentifier: interfaces.ServiceIdentifier): void {\n try {\n this._bindingDictionary.remove(serviceIdentifier);\n } catch (e) {\n throw new Error(`${ERROR_MSGS.CANNOT_UNBIND} ${getServiceIdentifierAsString(serviceIdentifier)}`);\n }\n }\n\n private _bindingDeactivationAndPreDestroy<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): void | Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n const result = binding.onDeactivation(instance);\n\n if (isPromise(result)) {\n return result.then(() => this._preDestroy(constructor, instance));\n }\n }\n\n return this._preDestroy(constructor, instance);\n }\n\n private async _bindingDeactivationAndPreDestroyAsync<T>(\n binding: Binding<T>,\n instance: T,\n constructor: NewableFunction\n ): Promise<void> {\n if (typeof binding.onDeactivation === 'function') {\n await binding.onDeactivation(instance);\n }\n\n await this._preDestroy(constructor, instance);\n }\n}\n\nexport { Container };\n"]}
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export { inject } from './annotation/inject';
|
|
3
|
-
export { multiInject } from './annotation/multi_inject';
|
|
4
|
-
export { injectable } from './annotation/injectable';
|
|
5
|
-
export { named } from './annotation/named';
|
|
6
|
-
export { Container } from './container/container';
|
|
7
|
-
export { postConstruct } from './annotation/post_construct';
|
|
8
|
-
export * from './interfaces/interfaces';
|
|
1
|
+
export * from '../inversify';
|
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
export { inject } from "./annotation/inject";
|
|
4
|
-
|
|
5
|
-
export { multiInject } from "./annotation/multi_inject";
|
|
6
|
-
|
|
7
|
-
export { injectable } from "./annotation/injectable";
|
|
8
|
-
|
|
9
|
-
export { named } from "./annotation/named";
|
|
10
|
-
|
|
11
|
-
export { Container } from "./container/container";
|
|
12
|
-
|
|
13
|
-
export { postConstruct } from "./annotation/post_construct";
|
|
14
|
-
|
|
15
|
-
export * from "./interfaces/interfaces";
|
|
1
|
+
export * from "../inversify";
|
|
16
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/inversify-lite/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify-lite/index.ts"],"names":[],"mappings":"AAmCA,cAAc,cAAc,CAAC","file":"index.js","sourcesContent":["// /**\n// * 该文件夹下所有文件来源于inversify\n// * https://github.com/inversify/InversifyJS\n// * The MIT License (MIT)\n\n// Copyright (c) 2015-2017 Remo H. Jansen\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n// */\n\n// export { ContainerModule } from './container/container_module';\n// export { inject } from './annotation/inject';\n// export { multiInject } from './annotation/multi_inject';\n// export { injectable } from './annotation/injectable';\n// export { named } from './annotation/named';\n// export { Container } from './container/container';\n// // export { postConstruct } from './annotation/post_construct';\n// export * from './interfaces/interfaces';\n\nexport * from '../inversify';\n"]}
|
|
@@ -96,8 +96,6 @@ export declare namespace interfaces {
|
|
|
96
96
|
rootRequest: Request;
|
|
97
97
|
}
|
|
98
98
|
export interface QueryableString {
|
|
99
|
-
startsWith(searchString: string): boolean;
|
|
100
|
-
endsWith(searchString: string): boolean;
|
|
101
99
|
contains(searchString: string): boolean;
|
|
102
100
|
equals(compareString: string): boolean;
|
|
103
101
|
value(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/inversify-lite/interfaces/interfaces.ts"],"names":[],"mappings":"","file":"interfaces.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable */\nimport { FactoryType } from '../utils/factory_type';\n\nexport namespace interfaces {\n export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;\n export type ContainerResolution<T> = T | Promise<T> | (T | Promise<T>)[];\n\n type AsyncCallback<TCallback> = TCallback extends (...args: infer TArgs) => infer TResult\n ? (...args: TArgs) => Promise<TResult>\n : never;\n\n export type BindingScope = 'Singleton' | 'Transient' | 'Request';\n\n export type BindingType =\n | 'ConstantValue'\n | 'Constructor'\n | 'DynamicValue'\n | 'Factory'\n | 'Function'\n | 'Instance'\n | 'Invalid'\n | 'Provider';\n\n export type TargetType = 'ConstructorArgument' | 'ClassProperty' | 'Variable';\n\n export interface BindingScopeEnum {\n Request: interfaces.BindingScope;\n Singleton: interfaces.BindingScope;\n Transient: interfaces.BindingScope;\n }\n\n export interface BindingTypeEnum {\n ConstantValue: interfaces.BindingType;\n Constructor: interfaces.BindingType;\n DynamicValue: interfaces.BindingType;\n Factory: interfaces.BindingType;\n Function: interfaces.BindingType;\n Instance: interfaces.BindingType;\n Invalid: interfaces.BindingType;\n Provider: interfaces.BindingType;\n }\n\n export interface TargetTypeEnum {\n ConstructorArgument: interfaces.TargetType;\n ClassProperty: interfaces.TargetType;\n Variable: interfaces.TargetType;\n }\n\n export type Newable<T> = new (...args: any[]) => T;\n\n export type Instance<T> = T & Record<string, () => void>;\n\n export interface Abstract<T> {\n prototype: T;\n }\n\n export type ServiceIdentifier<T = unknown> = string | symbol | Newable<T> | Abstract<T>;\n\n export interface Clonable<T> {\n clone(): T;\n }\n\n export type BindingActivation<T = unknown> = (context: interfaces.Context, injectable: T) => T | Promise<T>;\n\n export type BindingDeactivation<T = unknown> = (injectable: T) => void | Promise<void>;\n\n export interface Binding<TActivated = unknown> extends Clonable<Binding<TActivated>> {\n id: number;\n moduleId: ContainerModuleBase['id'];\n activated: boolean;\n serviceIdentifier: ServiceIdentifier<TActivated>;\n constraint: ConstraintFunction;\n dynamicValue: DynamicValue<TActivated> | null;\n scope: BindingScope;\n type: BindingType;\n implementationType: Newable<TActivated> | TActivated | null;\n factory: FactoryCreator<unknown> | null;\n provider: ProviderCreator<unknown> | null;\n onActivation: BindingActivation<TActivated> | null;\n onDeactivation: BindingDeactivation<TActivated> | null;\n cache: null | TActivated | Promise<TActivated>;\n }\n\n export type SimpleFactory<T, U extends unknown[] = unknown[]> = (...args: U) => T;\n\n export type MultiFactory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (\n ...args: U\n ) => SimpleFactory<T, V>;\n\n export type Factory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> =\n | SimpleFactory<T, U>\n | MultiFactory<T, U, V>;\n\n export type FactoryCreator<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (\n context: Context\n ) => Factory<T, U, V>;\n\n export type AutoNamedFactory<T> = SimpleFactory<T, [string]>;\n\n export type AutoFactory<T> = SimpleFactory<T, []>;\n\n export type FactoryTypeFunction<T = unknown> = (context: interfaces.Context) => T | Promise<T>;\n\n export interface FactoryDetails {\n factoryType: FactoryType;\n factory: FactoryTypeFunction | null;\n }\n\n export type Provider<T> = (...args: any[]) => ((...args: any[]) => Promise<T>) | Promise<T>;\n\n export type ProviderCreator<T> = (context: Context) => Provider<T>;\n\n export interface NextArgs<T = unknown> {\n avoidConstraints: boolean;\n contextInterceptor: (contexts: Context) => Context;\n isMultiInject: boolean;\n targetType: TargetType;\n serviceIdentifier: interfaces.ServiceIdentifier<T>;\n key?: string | number | symbol | undefined;\n value?: unknown;\n }\n\n export type Next = (args: NextArgs) => unknown | unknown[];\n\n export type Middleware = (next: Next) => Next;\n\n export type ContextInterceptor = (context: interfaces.Context) => interfaces.Context;\n\n export interface Context {\n id: number;\n container: Container;\n plan: Plan;\n currentRequest: Request;\n addPlan(plan: Plan): void;\n setCurrentRequest(request: Request): void;\n }\n\n export type MetadataOrMetadataArray = Metadata | Metadata[];\n\n export interface Metadata<TValue = unknown> {\n key: string | number | symbol;\n value: TValue;\n }\n\n export interface Plan {\n parentContext: Context;\n rootRequest: Request;\n }\n\n export interface QueryableString {\n startsWith(searchString: string): boolean;\n endsWith(searchString: string): boolean;\n contains(searchString: string): boolean;\n equals(compareString: string): boolean;\n value(): string;\n }\n\n export type ResolveRequestHandler = (request: interfaces.Request) => unknown;\n\n export type RequestScope = Map<unknown, unknown>;\n\n export interface Request {\n id: number;\n serviceIdentifier: ServiceIdentifier;\n parentContext: Context;\n parentRequest: Request | null;\n childRequests: Request[];\n target: Target;\n bindings: Binding<unknown>[];\n requestScope: RequestScope | null;\n addChildRequest(\n serviceIdentifier: ServiceIdentifier,\n bindings: Binding<unknown> | Binding<unknown>[],\n target: Target\n ): Request;\n }\n\n export interface Target {\n id: number;\n serviceIdentifier: ServiceIdentifier;\n type: TargetType;\n name: QueryableString;\n identifier: string | symbol;\n metadata: Metadata[];\n getNamedTag(): interfaces.Metadata<string> | null;\n getCustomTags(): interfaces.Metadata[] | null;\n hasTag(key: string | number | symbol): boolean;\n isArray(): boolean;\n matchesArray(name: interfaces.ServiceIdentifier): boolean;\n isNamed(): boolean;\n isTagged(): boolean;\n isOptional(): boolean;\n matchesNamedTag(name: string): boolean;\n matchesTag(key: string | number | symbol): (value: unknown) => boolean;\n }\n\n export interface ContainerOptions {\n autoBindInjectable?: boolean;\n defaultScope?: BindingScope | undefined;\n skipBaseClassChecks?: boolean;\n }\n\n export interface Container {\n id: number;\n parent: Container | null;\n options: ContainerOptions;\n bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;\n // rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;\n unbind(serviceIdentifier: ServiceIdentifier): void;\n // unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;\n unbindAll(): void;\n // unbindAllAsync(): Promise<void>;\n isBound(serviceIdentifier: ServiceIdentifier): boolean;\n isCurrentBound<T>(serviceIdentifier: ServiceIdentifier<T>): boolean;\n isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean;\n isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;\n get<T>(serviceIdentifier: ServiceIdentifier<T>): T;\n getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;\n getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;\n getAll<T>(serviceIdentifier: ServiceIdentifier<T>): T[];\n getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];\n getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T[];\n getAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T>;\n // getNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;\n // getTaggedAsync<T>(\n // serviceIdentifier: ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T>;\n // getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T[]>;\n // getAllTaggedAsync<T>(\n // serviceIdentifier: ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]>;\n // getAllNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;\n // onActivation<T>(serviceIdentifier: ServiceIdentifier<T>, onActivation: BindingActivation<T>): void;\n // onDeactivation<T>(serviceIdentifier: ServiceIdentifier<T>, onDeactivation: BindingDeactivation<T>): void;\n resolve<T>(constructorFunction: interfaces.Newable<T>): T;\n load(...modules: ContainerModule[]): void;\n // loadAsync(...modules: AsyncContainerModule[]): Promise<void>;\n unload(...modules: ContainerModuleBase[]): void;\n // unloadAsync(...modules: ContainerModuleBase[]): Promise<void>;\n applyCustomMetadataReader(metadataReader: MetadataReader): void;\n // applyMiddleware(...middleware: Middleware[]): void;\n // snapshot(): void;\n // restore(): void;\n // createChild(): Container;\n }\n\n export type Bind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;\n\n export type Rebind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;\n\n export type Unbind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => void;\n\n export type UnbindAsync = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => Promise<void>;\n\n export type IsBound = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => boolean;\n\n export interface ContainerModuleBase {\n id: number;\n }\n\n export interface ContainerModule extends ContainerModuleBase {\n registry: ContainerModuleCallBack;\n }\n\n export interface AsyncContainerModule extends ContainerModuleBase {\n registry: AsyncContainerModuleCallBack;\n }\n\n export interface ModuleActivationHandlers {\n onActivations: Lookup<BindingActivation<unknown>>;\n onDeactivations: Lookup<BindingDeactivation<unknown>>;\n }\n\n // export interface ModuleActivationStore extends Clonable<ModuleActivationStore> {\n // addDeactivation(\n // moduleId: ContainerModuleBase['id'],\n // serviceIdentifier: ServiceIdentifier<unknown>,\n // onDeactivation: interfaces.BindingDeactivation<unknown>\n // ): void;\n // addActivation(\n // moduleId: ContainerModuleBase['id'],\n // serviceIdentifier: ServiceIdentifier<unknown>,\n // onActivation: interfaces.BindingActivation<unknown>\n // ): void;\n // remove(moduleId: ContainerModuleBase['id']): ModuleActivationHandlers;\n // }\n\n export type ContainerModuleCallBack = (\n bind: interfaces.Bind,\n unbind: interfaces.Unbind,\n isBound: interfaces.IsBound,\n rebind: interfaces.Rebind\n // unbindAsync: interfaces.UnbindAsync,\n // onActivation: interfaces.Container['onActivation'],\n // onDeactivation: interfaces.Container['onDeactivation']\n ) => void;\n\n export type AsyncContainerModuleCallBack = AsyncCallback<ContainerModuleCallBack>;\n\n // export interface ContainerSnapshot {\n // bindings: Lookup<Binding<unknown>>;\n // activations: Lookup<BindingActivation<unknown>>;\n // deactivations: Lookup<BindingDeactivation<unknown>>;\n // middleware: Next | null;\n // moduleActivationStore: interfaces.ModuleActivationStore;\n // }\n\n export interface Lookup<T> extends Clonable<Lookup<T>> {\n add(serviceIdentifier: ServiceIdentifier, value: T): void;\n getMap(): Map<interfaces.ServiceIdentifier, T[]>;\n get(serviceIdentifier: ServiceIdentifier): T[];\n remove(serviceIdentifier: interfaces.ServiceIdentifier): void;\n removeByCondition(condition: (item: T) => boolean): T[];\n removeIntersection(lookup: interfaces.Lookup<T>): void;\n hasKey(serviceIdentifier: ServiceIdentifier): boolean;\n clone(): Lookup<T>;\n traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void;\n }\n\n export interface BindingOnSyntax<T> {\n // onActivation(fn: (context: Context, injectable: T) => T | Promise<T>): BindingWhenSyntax<T>;\n // onDeactivation(fn: (injectable: T) => void | Promise<void>): BindingWhenSyntax<T>;\n }\n\n export interface BindingWhenSyntax<T> {\n // when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n whenTargetNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenTargetIsDefault(): BindingOnSyntax<T>;\n // whenTargetTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenInjectedInto(parent: NewableFunction | string): BindingOnSyntax<T>;\n // whenParentNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenParentTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenAnyAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;\n // whenNoAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;\n // whenAnyAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenNoAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenNoAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n // whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n }\n\n export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> {}\n\n export interface BindingInSyntax<T> {\n inSingletonScope(): BindingWhenOnSyntax<T>;\n inTransientScope(): BindingWhenOnSyntax<T>;\n inRequestScope(): BindingWhenOnSyntax<T>;\n }\n\n export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> {}\n\n export interface BindingToSyntax<T> {\n to(constructor: Newable<T>): BindingInWhenOnSyntax<T>;\n toSelf(): BindingInWhenOnSyntax<T>;\n toConstantValue(value: T): BindingWhenOnSyntax<T>;\n toDynamicValue(func: DynamicValue<T>): BindingInWhenOnSyntax<T>;\n toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;\n toFactory<T2, T3 extends unknown[] = unknown[], T4 extends unknown[] = unknown[]>(\n factory: FactoryCreator<T2, T3, T4>\n ): BindingWhenOnSyntax<T>;\n toFunction(func: T): BindingWhenOnSyntax<T>;\n toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;\n toAutoNamedFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;\n toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;\n toService(service: ServiceIdentifier<T>): void;\n }\n\n export interface ConstraintFunction {\n metaData?: Metadata;\n (request: Request | null): boolean;\n }\n\n export interface MetadataReader {\n getConstructorMetadata(constructorFunc: NewableFunction): ConstructorMetadata;\n getPropertiesMetadata(constructorFunc: NewableFunction): MetadataMap;\n }\n\n export interface MetadataMap {\n [propertyNameOrArgumentIndex: string | symbol]: Metadata[];\n }\n\n export interface ConstructorMetadata {\n compilerGeneratedMetadata: NewableFunction[] | undefined;\n userGeneratedMetadata: MetadataMap;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify-lite/interfaces/interfaces.ts"],"names":[],"mappings":"","file":"interfaces.js","sourcesContent":["// @ts-nocheck\n/* eslint-disable */\nimport { FactoryType } from '../utils/factory_type';\n\nexport namespace interfaces {\n export type DynamicValue<T> = (context: interfaces.Context) => T | Promise<T>;\n export type ContainerResolution<T> = T | Promise<T> | (T | Promise<T>)[];\n\n type AsyncCallback<TCallback> = TCallback extends (...args: infer TArgs) => infer TResult\n ? (...args: TArgs) => Promise<TResult>\n : never;\n\n export type BindingScope = 'Singleton' | 'Transient' | 'Request';\n\n export type BindingType =\n | 'ConstantValue'\n | 'Constructor'\n | 'DynamicValue'\n | 'Factory'\n | 'Function'\n | 'Instance'\n | 'Invalid'\n | 'Provider';\n\n export type TargetType = 'ConstructorArgument' | 'ClassProperty' | 'Variable';\n\n export interface BindingScopeEnum {\n Request: interfaces.BindingScope;\n Singleton: interfaces.BindingScope;\n Transient: interfaces.BindingScope;\n }\n\n export interface BindingTypeEnum {\n ConstantValue: interfaces.BindingType;\n Constructor: interfaces.BindingType;\n DynamicValue: interfaces.BindingType;\n Factory: interfaces.BindingType;\n Function: interfaces.BindingType;\n Instance: interfaces.BindingType;\n Invalid: interfaces.BindingType;\n Provider: interfaces.BindingType;\n }\n\n export interface TargetTypeEnum {\n ConstructorArgument: interfaces.TargetType;\n ClassProperty: interfaces.TargetType;\n Variable: interfaces.TargetType;\n }\n\n export type Newable<T> = new (...args: any[]) => T;\n\n export type Instance<T> = T & Record<string, () => void>;\n\n export interface Abstract<T> {\n prototype: T;\n }\n\n export type ServiceIdentifier<T = unknown> = string | symbol | Newable<T> | Abstract<T>;\n\n export interface Clonable<T> {\n clone(): T;\n }\n\n export type BindingActivation<T = unknown> = (context: interfaces.Context, injectable: T) => T | Promise<T>;\n\n export type BindingDeactivation<T = unknown> = (injectable: T) => void | Promise<void>;\n\n export interface Binding<TActivated = unknown> extends Clonable<Binding<TActivated>> {\n id: number;\n moduleId: ContainerModuleBase['id'];\n activated: boolean;\n serviceIdentifier: ServiceIdentifier<TActivated>;\n constraint: ConstraintFunction;\n dynamicValue: DynamicValue<TActivated> | null;\n scope: BindingScope;\n type: BindingType;\n implementationType: Newable<TActivated> | TActivated | null;\n factory: FactoryCreator<unknown> | null;\n provider: ProviderCreator<unknown> | null;\n onActivation: BindingActivation<TActivated> | null;\n onDeactivation: BindingDeactivation<TActivated> | null;\n cache: null | TActivated | Promise<TActivated>;\n }\n\n export type SimpleFactory<T, U extends unknown[] = unknown[]> = (...args: U) => T;\n\n export type MultiFactory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (\n ...args: U\n ) => SimpleFactory<T, V>;\n\n export type Factory<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> =\n | SimpleFactory<T, U>\n | MultiFactory<T, U, V>;\n\n export type FactoryCreator<T, U extends unknown[] = unknown[], V extends unknown[] = unknown[]> = (\n context: Context\n ) => Factory<T, U, V>;\n\n export type AutoNamedFactory<T> = SimpleFactory<T, [string]>;\n\n export type AutoFactory<T> = SimpleFactory<T, []>;\n\n export type FactoryTypeFunction<T = unknown> = (context: interfaces.Context) => T | Promise<T>;\n\n export interface FactoryDetails {\n factoryType: FactoryType;\n factory: FactoryTypeFunction | null;\n }\n\n export type Provider<T> = (...args: any[]) => ((...args: any[]) => Promise<T>) | Promise<T>;\n\n export type ProviderCreator<T> = (context: Context) => Provider<T>;\n\n export interface NextArgs<T = unknown> {\n avoidConstraints: boolean;\n contextInterceptor: (contexts: Context) => Context;\n isMultiInject: boolean;\n targetType: TargetType;\n serviceIdentifier: interfaces.ServiceIdentifier<T>;\n key?: string | number | symbol | undefined;\n value?: unknown;\n }\n\n export type Next = (args: NextArgs) => unknown | unknown[];\n\n export type Middleware = (next: Next) => Next;\n\n export type ContextInterceptor = (context: interfaces.Context) => interfaces.Context;\n\n export interface Context {\n id: number;\n container: Container;\n plan: Plan;\n currentRequest: Request;\n addPlan(plan: Plan): void;\n setCurrentRequest(request: Request): void;\n }\n\n export type MetadataOrMetadataArray = Metadata | Metadata[];\n\n export interface Metadata<TValue = unknown> {\n key: string | number | symbol;\n value: TValue;\n }\n\n export interface Plan {\n parentContext: Context;\n rootRequest: Request;\n }\n\n export interface QueryableString {\n // startsWith(searchString: string): boolean;\n // endsWith(searchString: string): boolean;\n contains(searchString: string): boolean;\n equals(compareString: string): boolean;\n value(): string;\n }\n\n export type ResolveRequestHandler = (request: interfaces.Request) => unknown;\n\n export type RequestScope = Map<unknown, unknown>;\n\n export interface Request {\n id: number;\n serviceIdentifier: ServiceIdentifier;\n parentContext: Context;\n parentRequest: Request | null;\n childRequests: Request[];\n target: Target;\n bindings: Binding<unknown>[];\n requestScope: RequestScope | null;\n addChildRequest(\n serviceIdentifier: ServiceIdentifier,\n bindings: Binding<unknown> | Binding<unknown>[],\n target: Target\n ): Request;\n }\n\n export interface Target {\n id: number;\n serviceIdentifier: ServiceIdentifier;\n type: TargetType;\n name: QueryableString;\n identifier: string | symbol;\n metadata: Metadata[];\n getNamedTag(): interfaces.Metadata<string> | null;\n getCustomTags(): interfaces.Metadata[] | null;\n hasTag(key: string | number | symbol): boolean;\n isArray(): boolean;\n matchesArray(name: interfaces.ServiceIdentifier): boolean;\n isNamed(): boolean;\n isTagged(): boolean;\n isOptional(): boolean;\n matchesNamedTag(name: string): boolean;\n matchesTag(key: string | number | symbol): (value: unknown) => boolean;\n }\n\n export interface ContainerOptions {\n autoBindInjectable?: boolean;\n defaultScope?: BindingScope | undefined;\n skipBaseClassChecks?: boolean;\n }\n\n export interface Container {\n id: number;\n parent: Container | null;\n options: ContainerOptions;\n bind<T>(serviceIdentifier: ServiceIdentifier<T>): BindingToSyntax<T>;\n rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;\n // rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;\n unbind(serviceIdentifier: ServiceIdentifier): void;\n // unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;\n unbindAll(): void;\n // unbindAllAsync(): Promise<void>;\n isBound(serviceIdentifier: ServiceIdentifier): boolean;\n isCurrentBound<T>(serviceIdentifier: ServiceIdentifier<T>): boolean;\n isBoundNamed(serviceIdentifier: ServiceIdentifier, named: string | number | symbol): boolean;\n isBoundTagged(serviceIdentifier: ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;\n get<T>(serviceIdentifier: ServiceIdentifier<T>): T;\n getNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T;\n getTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;\n getAll<T>(serviceIdentifier: ServiceIdentifier<T>): T[];\n getAllTagged<T>(serviceIdentifier: ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];\n getAllNamed<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): T[];\n getAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T>;\n // getNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;\n // getTaggedAsync<T>(\n // serviceIdentifier: ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T>;\n // getAllAsync<T>(serviceIdentifier: ServiceIdentifier<T>): Promise<T[]>;\n // getAllTaggedAsync<T>(\n // serviceIdentifier: ServiceIdentifier<T>,\n // key: string | number | symbol,\n // value: unknown\n // ): Promise<T[]>;\n // getAllNamedAsync<T>(serviceIdentifier: ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;\n // onActivation<T>(serviceIdentifier: ServiceIdentifier<T>, onActivation: BindingActivation<T>): void;\n // onDeactivation<T>(serviceIdentifier: ServiceIdentifier<T>, onDeactivation: BindingDeactivation<T>): void;\n resolve<T>(constructorFunction: interfaces.Newable<T>): T;\n load(...modules: ContainerModule[]): void;\n // loadAsync(...modules: AsyncContainerModule[]): Promise<void>;\n unload(...modules: ContainerModuleBase[]): void;\n // unloadAsync(...modules: ContainerModuleBase[]): Promise<void>;\n applyCustomMetadataReader(metadataReader: MetadataReader): void;\n // applyMiddleware(...middleware: Middleware[]): void;\n // snapshot(): void;\n // restore(): void;\n // createChild(): Container;\n }\n\n export type Bind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;\n\n export type Rebind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => BindingToSyntax<T>;\n\n export type Unbind = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => void;\n\n export type UnbindAsync = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => Promise<void>;\n\n export type IsBound = <T = unknown>(serviceIdentifier: ServiceIdentifier<T>) => boolean;\n\n export interface ContainerModuleBase {\n id: number;\n }\n\n export interface ContainerModule extends ContainerModuleBase {\n registry: ContainerModuleCallBack;\n }\n\n export interface AsyncContainerModule extends ContainerModuleBase {\n registry: AsyncContainerModuleCallBack;\n }\n\n export interface ModuleActivationHandlers {\n onActivations: Lookup<BindingActivation<unknown>>;\n onDeactivations: Lookup<BindingDeactivation<unknown>>;\n }\n\n // export interface ModuleActivationStore extends Clonable<ModuleActivationStore> {\n // addDeactivation(\n // moduleId: ContainerModuleBase['id'],\n // serviceIdentifier: ServiceIdentifier<unknown>,\n // onDeactivation: interfaces.BindingDeactivation<unknown>\n // ): void;\n // addActivation(\n // moduleId: ContainerModuleBase['id'],\n // serviceIdentifier: ServiceIdentifier<unknown>,\n // onActivation: interfaces.BindingActivation<unknown>\n // ): void;\n // remove(moduleId: ContainerModuleBase['id']): ModuleActivationHandlers;\n // }\n\n export type ContainerModuleCallBack = (\n bind: interfaces.Bind,\n unbind: interfaces.Unbind,\n isBound: interfaces.IsBound,\n rebind: interfaces.Rebind\n // unbindAsync: interfaces.UnbindAsync,\n // onActivation: interfaces.Container['onActivation'],\n // onDeactivation: interfaces.Container['onDeactivation']\n ) => void;\n\n export type AsyncContainerModuleCallBack = AsyncCallback<ContainerModuleCallBack>;\n\n // export interface ContainerSnapshot {\n // bindings: Lookup<Binding<unknown>>;\n // activations: Lookup<BindingActivation<unknown>>;\n // deactivations: Lookup<BindingDeactivation<unknown>>;\n // middleware: Next | null;\n // moduleActivationStore: interfaces.ModuleActivationStore;\n // }\n\n export interface Lookup<T> extends Clonable<Lookup<T>> {\n add(serviceIdentifier: ServiceIdentifier, value: T): void;\n getMap(): Map<interfaces.ServiceIdentifier, T[]>;\n get(serviceIdentifier: ServiceIdentifier): T[];\n remove(serviceIdentifier: interfaces.ServiceIdentifier): void;\n removeByCondition(condition: (item: T) => boolean): T[];\n removeIntersection(lookup: interfaces.Lookup<T>): void;\n hasKey(serviceIdentifier: ServiceIdentifier): boolean;\n clone(): Lookup<T>;\n traverse(func: (key: interfaces.ServiceIdentifier, value: T[]) => void): void;\n }\n\n export interface BindingOnSyntax<T> {\n // onActivation(fn: (context: Context, injectable: T) => T | Promise<T>): BindingWhenSyntax<T>;\n // onDeactivation(fn: (injectable: T) => void | Promise<void>): BindingWhenSyntax<T>;\n }\n\n export interface BindingWhenSyntax<T> {\n // when(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n whenTargetNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenTargetIsDefault(): BindingOnSyntax<T>;\n // whenTargetTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenInjectedInto(parent: NewableFunction | string): BindingOnSyntax<T>;\n // whenParentNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenParentTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenAnyAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;\n // whenNoAncestorIs(ancestor: NewableFunction | string): BindingOnSyntax<T>;\n // whenAnyAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenNoAncestorNamed(name: string | number | symbol): BindingOnSyntax<T>;\n // whenNoAncestorTagged(tag: string | number | symbol, value: unknown): BindingOnSyntax<T>;\n // whenAnyAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n // whenNoAncestorMatches(constraint: (request: Request) => boolean): BindingOnSyntax<T>;\n }\n\n export interface BindingWhenOnSyntax<T> extends BindingWhenSyntax<T>, BindingOnSyntax<T> {}\n\n export interface BindingInSyntax<T> {\n inSingletonScope(): BindingWhenOnSyntax<T>;\n inTransientScope(): BindingWhenOnSyntax<T>;\n inRequestScope(): BindingWhenOnSyntax<T>;\n }\n\n export interface BindingInWhenOnSyntax<T> extends BindingInSyntax<T>, BindingWhenOnSyntax<T> {}\n\n export interface BindingToSyntax<T> {\n to(constructor: Newable<T>): BindingInWhenOnSyntax<T>;\n toSelf(): BindingInWhenOnSyntax<T>;\n toConstantValue(value: T): BindingWhenOnSyntax<T>;\n toDynamicValue(func: DynamicValue<T>): BindingInWhenOnSyntax<T>;\n toConstructor<T2>(constructor: Newable<T2>): BindingWhenOnSyntax<T>;\n toFactory<T2, T3 extends unknown[] = unknown[], T4 extends unknown[] = unknown[]>(\n factory: FactoryCreator<T2, T3, T4>\n ): BindingWhenOnSyntax<T>;\n toFunction(func: T): BindingWhenOnSyntax<T>;\n toAutoFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;\n toAutoNamedFactory<T2>(serviceIdentifier: ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;\n toProvider<T2>(provider: ProviderCreator<T2>): BindingWhenOnSyntax<T>;\n toService(service: ServiceIdentifier<T>): void;\n }\n\n export interface ConstraintFunction {\n metaData?: Metadata;\n (request: Request | null): boolean;\n }\n\n export interface MetadataReader {\n getConstructorMetadata(constructorFunc: NewableFunction): ConstructorMetadata;\n getPropertiesMetadata(constructorFunc: NewableFunction): MetadataMap;\n }\n\n export interface MetadataMap {\n [propertyNameOrArgumentIndex: string | symbol]: Metadata[];\n }\n\n export interface ConstructorMetadata {\n compilerGeneratedMetadata: NewableFunction[] | undefined;\n userGeneratedMetadata: MetadataMap;\n }\n}\n"]}
|
|
@@ -2,8 +2,6 @@ import type { interfaces } from '../interfaces/interfaces';
|
|
|
2
2
|
declare class QueryableString implements interfaces.QueryableString {
|
|
3
3
|
private str;
|
|
4
4
|
constructor(str: string);
|
|
5
|
-
startsWith(searchString: string): boolean;
|
|
6
|
-
endsWith(searchString: string): boolean;
|
|
7
5
|
contains(searchString: string): boolean;
|
|
8
6
|
equals(compareString: string): boolean;
|
|
9
7
|
value(): string;
|
|
@@ -2,16 +2,6 @@ class QueryableString {
|
|
|
2
2
|
constructor(str) {
|
|
3
3
|
this.str = str;
|
|
4
4
|
}
|
|
5
|
-
startsWith(searchString) {
|
|
6
|
-
return 0 === this.str.indexOf(searchString);
|
|
7
|
-
}
|
|
8
|
-
endsWith(searchString) {
|
|
9
|
-
let reverseString = "";
|
|
10
|
-
const reverseSearchString = searchString.split("").reverse().join("");
|
|
11
|
-
return reverseString = this.str.split("").reverse().join(""), this.startsWith.call({
|
|
12
|
-
str: reverseString
|
|
13
|
-
}, reverseSearchString);
|
|
14
|
-
}
|
|
15
5
|
contains(searchString) {
|
|
16
6
|
return -1 !== this.str.indexOf(searchString);
|
|
17
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/inversify-lite/planning/queryable_string.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IAGnB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/common/inversify-lite/planning/queryable_string.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe;IAGnB,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAaD,QAAQ,CAAC,YAAoB;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,aAAqB;QAC1B,OAAO,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC;IACpC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAED,OAAO,EAAE,eAAe,EAAE,CAAC","file":"queryable_string.js","sourcesContent":["import type { interfaces } from '../interfaces/interfaces';\n\nclass QueryableString implements interfaces.QueryableString {\n private str: string;\n\n constructor(str: string) {\n this.str = str;\n }\n\n // startsWith(searchString: string): boolean {\n // return this.str.indexOf(searchString) === 0;\n // }\n\n // endsWith(searchString: string): boolean {\n // let reverseString = '';\n // const reverseSearchString = searchString.split('').reverse().join('');\n // reverseString = this.str.split('').reverse().join('');\n // return this.startsWith.call({ str: reverseString }, reverseSearchString);\n // }\n\n contains(searchString: string): boolean {\n return this.str.indexOf(searchString) !== -1;\n }\n\n equals(compareString: string): boolean {\n return this.str === compareString;\n }\n\n value(): string {\n return this.str;\n }\n}\n\nexport { QueryableString };\n"]}
|