@quadnix/octo 0.0.30 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +117 -8
- package/dist/app.type.d.ts +277 -19
- package/dist/app.type.js +80 -9
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +10 -6
- package/dist/decorators/action.decorator.js +19 -6
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +12 -5
- package/dist/decorators/anchor.decorator.js +12 -5
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.d.ts +1 -1
- package/dist/decorators/enable-hook.decorator.js +1 -1
- package/dist/decorators/factory.decorator.d.ts +18 -34
- package/dist/decorators/factory.decorator.js +18 -34
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +4 -6
- package/dist/decorators/model.decorator.js +2 -7
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +16 -10
- package/dist/decorators/module.decorator.js +16 -10
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +7 -2
- package/dist/decorators/on-event.decorator.js +5 -0
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +50 -1
- package/dist/decorators/resource.decorator.js +38 -1
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/decorators/validate.decorator.d.ts +15 -1
- package/dist/decorators/validate.decorator.js +15 -1
- package/dist/decorators/validate.decorator.js.map +1 -1
- package/dist/errors/container.error.d.ts +18 -0
- package/dist/errors/container.error.js +18 -0
- package/dist/errors/container.error.js.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/module.error.d.ts +6 -0
- package/dist/errors/module.error.js +6 -0
- package/dist/errors/module.error.js.map +1 -1
- package/dist/errors/node.error.d.ts +56 -0
- package/dist/errors/node.error.js +56 -0
- package/dist/errors/node.error.js.map +1 -1
- package/dist/errors/schema.error.d.ts +14 -1
- package/dist/errors/schema.error.js +11 -1
- package/dist/errors/schema.error.js.map +1 -1
- package/dist/errors/terraform.error.d.ts +20 -0
- package/dist/errors/terraform.error.js +24 -0
- package/dist/errors/terraform.error.js.map +1 -0
- package/dist/errors/transaction.error.d.ts +93 -2
- package/dist/errors/transaction.error.js +83 -0
- package/dist/errors/transaction.error.js.map +1 -1
- package/dist/events/action.event.d.ts +8 -4
- package/dist/events/action.event.js +2 -4
- package/dist/events/action.event.js.map +1 -1
- package/dist/events/command.event.d.ts +43 -0
- package/dist/events/command.event.js +33 -0
- package/dist/events/command.event.js.map +1 -0
- package/dist/events/event.model.d.ts +26 -8
- package/dist/events/event.model.js +15 -7
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +1 -7
- package/dist/events/hook/commit.hook.event.js +0 -6
- package/dist/events/hook/commit.hook.event.js.map +1 -1
- package/dist/events/hook/hook.event.d.ts +1 -3
- package/dist/events/hook/hook.event.js +0 -2
- package/dist/events/hook/hook.event.js.map +1 -1
- package/dist/events/hook/model.hook.event.d.ts +1 -7
- package/dist/events/hook/model.hook.event.js +0 -6
- package/dist/events/hook/model.hook.event.js.map +1 -1
- package/dist/events/hook/resource.hook.event.d.ts +1 -7
- package/dist/events/hook/resource.hook.event.js +0 -6
- package/dist/events/hook/resource.hook.event.js.map +1 -1
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/mode-result.event.d.ts +57 -0
- package/dist/events/mode-result.event.js +24 -0
- package/dist/events/mode-result.event.js.map +1 -0
- package/dist/events/mode.event.d.ts +61 -0
- package/dist/events/mode.event.js +32 -0
- package/dist/events/mode.event.js.map +1 -0
- package/dist/events/module.event.d.ts +7 -5
- package/dist/events/module.event.js +3 -4
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +19 -15
- package/dist/events/registration.event.js +18 -14
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +16 -13
- package/dist/events/serialization.event.js +15 -12
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/state.event.d.ts +102 -0
- package/dist/events/state.event.js +69 -0
- package/dist/events/state.event.js.map +1 -0
- package/dist/events/terraform.event.d.ts +78 -0
- package/dist/events/terraform.event.js +55 -0
- package/dist/events/terraform.event.js.map +1 -0
- package/dist/events/transaction.event.d.ts +3 -40
- package/dist/events/transaction.event.js +1 -29
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.d.ts +54 -13
- package/dist/functions/container/container.js +64 -19
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.d.ts +43 -29
- package/dist/functions/container/test-container.js +71 -43
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.d.ts +84 -23
- package/dist/functions/dependency/dependency.js +84 -14
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/aggregate-resource-actions.d.ts +19 -0
- package/dist/functions/diff/aggregate-resource-actions.js +41 -0
- package/dist/functions/diff/aggregate-resource-actions.js.map +1 -0
- package/dist/functions/diff/diff-metadata.d.ts +21 -3
- package/dist/functions/diff/diff-metadata.js +18 -0
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +68 -7
- package/dist/functions/diff/diff.js +44 -3
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/hook/commit.hook.d.ts +16 -1
- package/dist/functions/hook/commit.hook.js +21 -6
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/model-action.hook.d.ts +16 -1
- package/dist/functions/hook/model-action.hook.js +21 -6
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.d.ts +16 -1
- package/dist/functions/hook/resource-action.hook.js +21 -6
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +23 -2
- package/dist/functions/node/node-action.abstract.js +22 -8
- package/dist/functions/node/node-action.abstract.js.map +1 -1
- package/dist/functions/node/node.abstract.d.ts +56 -5
- package/dist/functions/node/node.abstract.js +106 -22
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +3 -1
- package/dist/functions/schema/schema.d.ts +7 -0
- package/dist/functions/schema/schema.js +10 -1
- package/dist/functions/schema/schema.js.map +1 -1
- package/dist/index.d.ts +12 -6
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/index.type.d.ts +5 -0
- package/dist/index.type.js +2 -0
- package/dist/index.type.js.map +1 -0
- package/dist/main.d.ts +245 -14
- package/dist/main.js +377 -72
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +43 -7
- package/dist/models/account/account.model.js +56 -8
- package/dist/models/account/account.model.js.map +1 -1
- package/dist/models/account/account.schema.d.ts +13 -1
- package/dist/models/account/account.schema.js +12 -0
- package/dist/models/account/account.schema.js.map +1 -1
- package/dist/models/app/app.model.d.ts +13 -8
- package/dist/models/app/app.model.js +17 -32
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/app/app.schema.d.ts +6 -0
- package/dist/models/app/app.schema.js +6 -0
- package/dist/models/app/app.schema.js.map +1 -1
- package/dist/models/deployment/deployment.model.d.ts +13 -1
- package/dist/models/deployment/deployment.model.js +16 -4
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +6 -0
- package/dist/models/deployment/deployment.schema.js +6 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -1
- package/dist/models/environment/environment.model.d.ts +15 -3
- package/dist/models/environment/environment.model.js +22 -10
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/environment/environment.schema.d.ts +2 -0
- package/dist/models/environment/environment.schema.js +2 -0
- package/dist/models/environment/environment.schema.js.map +1 -1
- package/dist/models/execution/execution.model.d.ts +21 -3
- package/dist/models/execution/execution.model.js +47 -29
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/execution/execution.schema.d.ts +11 -0
- package/dist/models/execution/execution.schema.js +11 -0
- package/dist/models/execution/execution.schema.js.map +1 -1
- package/dist/models/filesystem/filesystem.model.d.ts +27 -1
- package/dist/models/filesystem/filesystem.model.js +30 -4
- package/dist/models/filesystem/filesystem.model.js.map +1 -1
- package/dist/models/filesystem/filesystem.schema.d.ts +5 -0
- package/dist/models/filesystem/filesystem.schema.js +5 -0
- package/dist/models/filesystem/filesystem.schema.js.map +1 -1
- package/dist/models/image/image.model.d.ts +19 -5
- package/dist/models/image/image.model.js +25 -11
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/image/image.schema.d.ts +8 -0
- package/dist/models/image/image.schema.js +8 -0
- package/dist/models/image/image.schema.js.map +1 -1
- package/dist/models/model-action.interface.d.ts +17 -4
- package/dist/models/model.abstract.d.ts +96 -1
- package/dist/models/model.abstract.js +107 -8
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +3 -0
- package/dist/models/pipeline/pipeline.model.d.ts +14 -2
- package/dist/models/pipeline/pipeline.model.js +19 -7
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/pipeline/pipeline.schema.d.ts +8 -0
- package/dist/models/pipeline/pipeline.schema.js +8 -0
- package/dist/models/pipeline/pipeline.schema.js.map +1 -1
- package/dist/models/region/region.model.d.ts +16 -1
- package/dist/models/region/region.model.js +19 -4
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/region/region.schema.d.ts +6 -0
- package/dist/models/region/region.schema.js +6 -0
- package/dist/models/region/region.schema.js.map +1 -1
- package/dist/models/server/server.model.d.ts +15 -3
- package/dist/models/server/server.model.js +18 -6
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/server/server.schema.d.ts +3 -1
- package/dist/models/server/server.schema.js +3 -1
- package/dist/models/server/server.schema.js.map +1 -1
- package/dist/models/service/service.model.d.ts +37 -6
- package/dist/models/service/service.model.js +65 -11
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +48 -1
- package/dist/models/service/service.schema.js +56 -1
- package/dist/models/service/service.schema.js.map +1 -1
- package/dist/models/subnet/subnet.model.d.ts +27 -3
- package/dist/models/subnet/subnet.model.js +40 -16
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/models/subnet/subnet.schema.d.ts +9 -0
- package/dist/models/subnet/subnet.schema.js +9 -0
- package/dist/models/subnet/subnet.schema.js.map +1 -1
- package/dist/modes/apply-transaction.d.ts +23 -0
- package/dist/modes/apply-transaction.js +25 -0
- package/dist/modes/apply-transaction.js.map +1 -0
- package/dist/modes/commit.mode.d.ts +54 -0
- package/dist/modes/commit.mode.js +235 -0
- package/dist/modes/commit.mode.js.map +1 -0
- package/dist/modes/generate.mode.d.ts +30 -0
- package/dist/modes/generate.mode.js +50 -0
- package/dist/modes/generate.mode.js.map +1 -0
- package/dist/modes/run-action.mode.d.ts +30 -0
- package/dist/modes/run-action.mode.js +140 -0
- package/dist/modes/run-action.mode.js.map +1 -0
- package/dist/modes/validate.mode.d.ts +186 -0
- package/dist/modes/validate.mode.js +558 -0
- package/dist/modes/validate.mode.js.map +1 -0
- package/dist/modules/module.abstract.d.ts +51 -0
- package/dist/modules/module.abstract.js +36 -0
- package/dist/modules/module.abstract.js.map +1 -1
- package/dist/modules/module.container.d.ts +43 -1
- package/dist/modules/module.container.js +77 -5
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/test-module.container.d.ts +139 -25
- package/dist/modules/test-module.container.js +383 -199
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.d.ts +32 -1
- package/dist/overlays/anchor.abstract.js +42 -11
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/anchor.schema.d.ts +21 -0
- package/dist/overlays/anchor.schema.js +21 -0
- package/dist/overlays/anchor.schema.js.map +1 -1
- package/dist/overlays/overlay-data.repository.d.ts +18 -0
- package/dist/overlays/overlay-data.repository.js +18 -0
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +56 -1
- package/dist/overlays/overlay.abstract.js +79 -20
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.schema.d.ts +20 -0
- package/dist/overlays/overlay.schema.js +20 -0
- package/dist/overlays/overlay.schema.js.map +1 -1
- package/dist/resources/resource-action.interface.d.ts +29 -3
- package/dist/resources/resource-data.repository.d.ts +63 -1
- package/dist/resources/resource-data.repository.js +94 -4
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +163 -6
- package/dist/resources/resource.abstract.js +223 -59
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +0 -2
- package/dist/resources/resource.schema.d.ts +39 -1
- package/dist/resources/resource.schema.js +38 -0
- package/dist/resources/resource.schema.js.map +1 -1
- package/dist/resources/terraform-resource.abstract.d.ts +44 -0
- package/dist/resources/terraform-resource.abstract.js +45 -0
- package/dist/resources/terraform-resource.abstract.js.map +1 -0
- package/dist/services/event/event.service.d.ts +32 -5
- package/dist/services/event/event.service.js +58 -16
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +82 -5
- package/dist/services/input/input.service.js +143 -12
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/schema-translation/schema-translation.service.d.ts +9 -0
- package/dist/services/schema-translation/schema-translation.service.js +9 -0
- package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
- package/dist/services/serialization/model/model-serialization.service.d.ts +25 -3
- package/dist/services/serialization/model/model-serialization.service.js +113 -62
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +36 -6
- package/dist/services/serialization/resource/resource-serialization.service.js +77 -28
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +67 -4
- package/dist/services/state-management/local.state-provider.js +168 -41
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/remote.state-provider.d.ts +216 -0
- package/dist/services/state-management/remote.state-provider.js +645 -0
- package/dist/services/state-management/remote.state-provider.js.map +1 -0
- package/dist/services/state-management/state-management.service.d.ts +195 -17
- package/dist/services/state-management/state-management.service.js +259 -10
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +98 -3
- package/dist/services/state-management/state-provider.interface.js +14 -1
- package/dist/services/state-management/state-provider.interface.js.map +1 -1
- package/dist/services/state-management/terraform-state.service.d.ts +99 -0
- package/dist/services/state-management/terraform-state.service.js +197 -0
- package/dist/services/state-management/terraform-state.service.js.map +1 -0
- package/dist/services/state-management/test.state-provider.d.ts +42 -4
- package/dist/services/state-management/test.state-provider.js +77 -25
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/terraform/terraform.service.d.ts +480 -0
- package/dist/services/terraform/terraform.service.js +1082 -0
- package/dist/services/terraform/terraform.service.js.map +1 -0
- package/dist/services/terraform/terraform.type.d.ts +387 -0
- package/dist/services/terraform/terraform.type.js +579 -0
- package/dist/services/terraform/terraform.type.js.map +1 -0
- package/dist/services/transaction/transaction.service.d.ts +110 -10
- package/dist/services/transaction/transaction.service.js +570 -251
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +15 -3
- package/dist/services/validation/validation.service.js +12 -0
- package/dist/services/validation/validation.service.js.map +1 -1
- package/dist/utilities/array/array.utility.d.ts +3 -0
- package/dist/utilities/array/array.utility.js +3 -0
- package/dist/utilities/array/array.utility.js.map +1 -1
- package/dist/{functions → utilities}/diff/diff.utility.d.ts +19 -3
- package/dist/{functions → utilities}/diff/diff.utility.js +57 -41
- package/dist/utilities/diff/diff.utility.js.map +1 -0
- package/dist/utilities/file/file.utility.d.ts +16 -2
- package/dist/utilities/file/file.utility.js +23 -61
- package/dist/utilities/file/file.utility.js.map +1 -1
- package/dist/utilities/hcl/hcl.utility.d.ts +128 -0
- package/dist/utilities/hcl/hcl.utility.js +402 -0
- package/dist/utilities/hcl/hcl.utility.js.map +1 -0
- package/dist/utilities/http/http.utility.d.ts +57 -0
- package/dist/utilities/http/http.utility.js +98 -0
- package/dist/utilities/http/http.utility.js.map +1 -0
- package/dist/utilities/node/node.utility.d.ts +3 -0
- package/dist/utilities/node/node.utility.js +3 -0
- package/dist/utilities/node/node.utility.js.map +1 -1
- package/dist/utilities/object/object.utility.d.ts +12 -0
- package/dist/utilities/object/object.utility.js +12 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/project/project.utility.d.ts +28 -0
- package/dist/utilities/project/project.utility.js +35 -0
- package/dist/utilities/project/project.utility.js.map +1 -0
- package/dist/utilities/string/string.utility.d.ts +41 -0
- package/dist/utilities/string/string.utility.js +65 -0
- package/dist/utilities/string/string.utility.js.map +1 -0
- package/dist/utilities/terraform/terraform.utility.d.ts +276 -0
- package/dist/utilities/terraform/terraform.utility.js +623 -0
- package/dist/utilities/terraform/terraform.utility.js.map +1 -0
- package/dist/utilities/test-helpers/test-classes.d.ts +36 -30
- package/dist/utilities/test-helpers/test-classes.js +38 -39
- package/dist/utilities/test-helpers/test-classes.js.map +1 -1
- package/dist/utilities/test-helpers/test-models.d.ts +8 -1
- package/dist/utilities/test-helpers/test-models.js +37 -12
- package/dist/utilities/test-helpers/test-models.js.map +1 -1
- package/dist/utilities/test-helpers/test-modes.d.ts +315 -0
- package/dist/utilities/test-helpers/test-modes.js +486 -0
- package/dist/utilities/test-helpers/test-modes.js.map +1 -0
- package/dist/utilities/test-helpers/test-modules.d.ts +47 -0
- package/dist/utilities/test-helpers/test-modules.js +85 -0
- package/dist/utilities/test-helpers/test-modules.js.map +1 -0
- package/dist/utilities/test-helpers/test-overlays.d.ts +20 -2
- package/dist/utilities/test-helpers/test-overlays.js +56 -6
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
- package/dist/utilities/test-helpers/test-resources.d.ts +23 -3
- package/dist/utilities/test-helpers/test-resources.js +83 -23
- package/dist/utilities/test-helpers/test-resources.js.map +1 -1
- package/dist/utilities/validation/validation.utility.d.ts +24 -0
- package/dist/utilities/validation/validation.utility.js +24 -0
- package/dist/utilities/validation/validation.utility.js.map +1 -1
- package/package.json +12 -6
- package/dist/functions/diff/diff.utility.js.map +0 -1
- package/dist/services/capture/capture.service.d.ts +0 -19
- package/dist/services/capture/capture.service.js +0 -43
- package/dist/services/capture/capture.service.js.map +0 -1
- package/dist/services/state-management/local-encryption.state-provider.d.ts +0 -20
- package/dist/services/state-management/local-encryption.state-provider.js +0 -90
- package/dist/services/state-management/local-encryption.state-provider.js.map +0 -1
- package/dist/utilities/cidr/cidr.utility.d.ts +0 -10
- package/dist/utilities/cidr/cidr.utility.js +0 -51
- package/dist/utilities/cidr/cidr.utility.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Event } from './event.model.js';
|
|
2
|
+
/**
|
|
3
|
+
* The TerraformEvent class is the superclass for all events in relation to terraform and terragrunt.
|
|
4
|
+
*
|
|
5
|
+
* @group Events/Terraform
|
|
6
|
+
*/
|
|
7
|
+
export class TerraformEvent extends Event {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* This event is emitted when generate finishes writing terragrunt module folders.
|
|
11
|
+
* `emptied` lists folders written without resources, because their module left intent.
|
|
12
|
+
*
|
|
13
|
+
* @group Events/Terraform
|
|
14
|
+
*/
|
|
15
|
+
export class TerraformFoldersWrittenEvent extends TerraformEvent {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* This event is emitted before a terraform/terragrunt command is invoked.
|
|
19
|
+
*
|
|
20
|
+
* @group Events/Terraform
|
|
21
|
+
*/
|
|
22
|
+
export class TerraformCommandStartedEvent extends TerraformEvent {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* This event is emitted after a terraform/terragrunt command returns, whatever its exit code.
|
|
26
|
+
*
|
|
27
|
+
* @group Events/Terraform
|
|
28
|
+
*/
|
|
29
|
+
export class TerraformCommandFinishedEvent extends TerraformEvent {
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* This event is emitted when octo starts a terraform or terragrunt process, before it writes anything.
|
|
33
|
+
* `processId` tells apart the processes of one octo process: a JSON plan runs a plan and a show in
|
|
34
|
+
* every folder.
|
|
35
|
+
*
|
|
36
|
+
* @group Events/Terraform
|
|
37
|
+
*/
|
|
38
|
+
export class TerraformProcessStartedEvent extends TerraformEvent {
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* This event is emitted for every chunk a terraform or terragrunt process writes, as it writes it.
|
|
42
|
+
*
|
|
43
|
+
* @group Events/Terraform
|
|
44
|
+
*/
|
|
45
|
+
export class TerraformProcessOutputEvent extends TerraformEvent {
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* This event is emitted after every terraform or terragrunt process exits, whatever its exit code.
|
|
49
|
+
* `exitCode` is -1 for a process that could not start or was killed.
|
|
50
|
+
*
|
|
51
|
+
* @group Events/Terraform
|
|
52
|
+
*/
|
|
53
|
+
export class TerraformProcessExitedEvent extends TerraformEvent {
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=terraform.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terraform.event.js","sourceRoot":"","sources":["../../src/events/terraform.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAgB,cAA8B,SAAQ,KAAQ;CAAG;AAEvE;;;;;GAKG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAIhD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAAgD;CAAG;AAErG;;;;GAIG;AACH,MAAM,OAAO,6BAA8B,SAAQ,cAKjD;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,cAKhD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAI/C;CAAG;AAEL;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,cAG/C;CAAG"}
|
|
@@ -1,31 +1,24 @@
|
|
|
1
1
|
import type { DiffMetadata } from '../functions/diff/diff-metadata.js';
|
|
2
|
-
import type { BaseResourceSchema } from '../resources/resource.schema.js';
|
|
3
2
|
import { Event } from './event.model.js';
|
|
4
3
|
/**
|
|
5
4
|
* The TransactionEvent class is the superclass for all events in relation to transactions.
|
|
6
5
|
* A transaction processes actions generated from model and resource diffs.
|
|
7
6
|
*
|
|
8
7
|
* @group Events/Transaction
|
|
9
|
-
*
|
|
10
|
-
* @returns The Event instance.
|
|
11
8
|
*/
|
|
12
|
-
export declare class TransactionEvent<T> extends Event<T> {
|
|
9
|
+
export declare abstract class TransactionEvent<T> extends Event<T> {
|
|
13
10
|
}
|
|
14
11
|
/**
|
|
15
|
-
* This event is emitted when a model action in a transaction is done executing.
|
|
12
|
+
* This event is emitted when a model action in a transaction is done executing, with the diff it handled.
|
|
16
13
|
*
|
|
17
14
|
* @group Events/Transaction
|
|
18
|
-
*
|
|
19
|
-
* @returns The Event instance.
|
|
20
15
|
*/
|
|
21
|
-
export declare class ModelActionTransactionEvent extends TransactionEvent<
|
|
16
|
+
export declare class ModelActionTransactionEvent extends TransactionEvent<DiffMetadata> {
|
|
22
17
|
}
|
|
23
18
|
/**
|
|
24
19
|
* This event is emitted when transaction prepares a model diff.
|
|
25
20
|
|
|
26
21
|
* @group Events/Transaction
|
|
27
|
-
*
|
|
28
|
-
* @returns The Event instance.
|
|
29
22
|
*/
|
|
30
23
|
export declare class ModelDiffsTransactionEvent extends TransactionEvent<DiffMetadata[][]> {
|
|
31
24
|
}
|
|
@@ -33,8 +26,6 @@ export declare class ModelDiffsTransactionEvent extends TransactionEvent<DiffMet
|
|
|
33
26
|
* This event is emitted when transaction prepares a model transaction.
|
|
34
27
|
|
|
35
28
|
* @group Events/Transaction
|
|
36
|
-
*
|
|
37
|
-
* @returns The Event instance.
|
|
38
29
|
*/
|
|
39
30
|
export declare class ModelTransactionTransactionEvent extends TransactionEvent<DiffMetadata[][]> {
|
|
40
31
|
}
|
|
@@ -42,35 +33,13 @@ export declare class ModelTransactionTransactionEvent extends TransactionEvent<D
|
|
|
42
33
|
* This event is emitted when a resource action in a transaction is done executing.
|
|
43
34
|
*
|
|
44
35
|
* @group Events/Transaction
|
|
45
|
-
*
|
|
46
|
-
* @returns The Event instance.
|
|
47
36
|
*/
|
|
48
37
|
export declare class ResourceActionCompletedTransactionEvent extends TransactionEvent<DiffMetadata> {
|
|
49
38
|
}
|
|
50
|
-
/**
|
|
51
|
-
* This event is emitted pre-transaction to provide information for resource actions about to be executed
|
|
52
|
-
* in the transaction.
|
|
53
|
-
*
|
|
54
|
-
* @group Events/Transaction
|
|
55
|
-
*
|
|
56
|
-
* @returns The Event instance.
|
|
57
|
-
*/
|
|
58
|
-
export declare class ResourceActionInformationTransactionEvent extends TransactionEvent<{
|
|
59
|
-
action: {
|
|
60
|
-
name: string;
|
|
61
|
-
};
|
|
62
|
-
capture?: {
|
|
63
|
-
response: Partial<BaseResourceSchema['response']>;
|
|
64
|
-
};
|
|
65
|
-
diff: DiffMetadata;
|
|
66
|
-
}> {
|
|
67
|
-
}
|
|
68
39
|
/**
|
|
69
40
|
* This event is emitted when a resource action in a transaction begins executing.
|
|
70
41
|
*
|
|
71
42
|
* @group Events/Transaction
|
|
72
|
-
*
|
|
73
|
-
* @returns The Event instance.
|
|
74
43
|
*/
|
|
75
44
|
export declare class ResourceActionInitiatedTransactionEvent extends TransactionEvent<DiffMetadata> {
|
|
76
45
|
}
|
|
@@ -79,8 +48,6 @@ export declare class ResourceActionInitiatedTransactionEvent extends Transaction
|
|
|
79
48
|
* It emits a summary of the action.
|
|
80
49
|
*
|
|
81
50
|
* @group Events/Transaction
|
|
82
|
-
*
|
|
83
|
-
* @returns The Event instance.
|
|
84
51
|
*/
|
|
85
52
|
export declare class ResourceActionSummaryTransactionEvent extends TransactionEvent<{
|
|
86
53
|
diff: DiffMetadata;
|
|
@@ -94,8 +61,6 @@ export declare class ResourceActionSummaryTransactionEvent extends TransactionEv
|
|
|
94
61
|
* This event is emitted when transaction prepares a resource diff.
|
|
95
62
|
|
|
96
63
|
* @group Events/Transaction
|
|
97
|
-
*
|
|
98
|
-
* @returns The Event instance.
|
|
99
64
|
*/
|
|
100
65
|
export declare class ResourceDiffsTransactionEvent extends TransactionEvent<[DiffMetadata[][], DiffMetadata[][]]> {
|
|
101
66
|
}
|
|
@@ -103,8 +68,6 @@ export declare class ResourceDiffsTransactionEvent extends TransactionEvent<[Dif
|
|
|
103
68
|
* This event is emitted when transaction prepares a resource transaction.
|
|
104
69
|
|
|
105
70
|
* @group Events/Transaction
|
|
106
|
-
*
|
|
107
|
-
* @returns The Event instance.
|
|
108
71
|
*/
|
|
109
72
|
export declare class ResourceTransactionTransactionEvent extends TransactionEvent<[DiffMetadata[][], DiffMetadata[][]]> {
|
|
110
73
|
}
|
|
@@ -4,17 +4,13 @@ import { Event } from './event.model.js';
|
|
|
4
4
|
* A transaction processes actions generated from model and resource diffs.
|
|
5
5
|
*
|
|
6
6
|
* @group Events/Transaction
|
|
7
|
-
*
|
|
8
|
-
* @returns The Event instance.
|
|
9
7
|
*/
|
|
10
8
|
export class TransactionEvent extends Event {
|
|
11
9
|
}
|
|
12
10
|
/**
|
|
13
|
-
* This event is emitted when a model action in a transaction is done executing.
|
|
11
|
+
* This event is emitted when a model action in a transaction is done executing, with the diff it handled.
|
|
14
12
|
*
|
|
15
13
|
* @group Events/Transaction
|
|
16
|
-
*
|
|
17
|
-
* @returns The Event instance.
|
|
18
14
|
*/
|
|
19
15
|
export class ModelActionTransactionEvent extends TransactionEvent {
|
|
20
16
|
}
|
|
@@ -22,8 +18,6 @@ export class ModelActionTransactionEvent extends TransactionEvent {
|
|
|
22
18
|
* This event is emitted when transaction prepares a model diff.
|
|
23
19
|
|
|
24
20
|
* @group Events/Transaction
|
|
25
|
-
*
|
|
26
|
-
* @returns The Event instance.
|
|
27
21
|
*/
|
|
28
22
|
export class ModelDiffsTransactionEvent extends TransactionEvent {
|
|
29
23
|
}
|
|
@@ -31,8 +25,6 @@ export class ModelDiffsTransactionEvent extends TransactionEvent {
|
|
|
31
25
|
* This event is emitted when transaction prepares a model transaction.
|
|
32
26
|
|
|
33
27
|
* @group Events/Transaction
|
|
34
|
-
*
|
|
35
|
-
* @returns The Event instance.
|
|
36
28
|
*/
|
|
37
29
|
export class ModelTransactionTransactionEvent extends TransactionEvent {
|
|
38
30
|
}
|
|
@@ -40,27 +32,13 @@ export class ModelTransactionTransactionEvent extends TransactionEvent {
|
|
|
40
32
|
* This event is emitted when a resource action in a transaction is done executing.
|
|
41
33
|
*
|
|
42
34
|
* @group Events/Transaction
|
|
43
|
-
*
|
|
44
|
-
* @returns The Event instance.
|
|
45
35
|
*/
|
|
46
36
|
export class ResourceActionCompletedTransactionEvent extends TransactionEvent {
|
|
47
37
|
}
|
|
48
|
-
/**
|
|
49
|
-
* This event is emitted pre-transaction to provide information for resource actions about to be executed
|
|
50
|
-
* in the transaction.
|
|
51
|
-
*
|
|
52
|
-
* @group Events/Transaction
|
|
53
|
-
*
|
|
54
|
-
* @returns The Event instance.
|
|
55
|
-
*/
|
|
56
|
-
export class ResourceActionInformationTransactionEvent extends TransactionEvent {
|
|
57
|
-
}
|
|
58
38
|
/**
|
|
59
39
|
* This event is emitted when a resource action in a transaction begins executing.
|
|
60
40
|
*
|
|
61
41
|
* @group Events/Transaction
|
|
62
|
-
*
|
|
63
|
-
* @returns The Event instance.
|
|
64
42
|
*/
|
|
65
43
|
export class ResourceActionInitiatedTransactionEvent extends TransactionEvent {
|
|
66
44
|
}
|
|
@@ -69,8 +47,6 @@ export class ResourceActionInitiatedTransactionEvent extends TransactionEvent {
|
|
|
69
47
|
* It emits a summary of the action.
|
|
70
48
|
*
|
|
71
49
|
* @group Events/Transaction
|
|
72
|
-
*
|
|
73
|
-
* @returns The Event instance.
|
|
74
50
|
*/
|
|
75
51
|
export class ResourceActionSummaryTransactionEvent extends TransactionEvent {
|
|
76
52
|
}
|
|
@@ -78,8 +54,6 @@ export class ResourceActionSummaryTransactionEvent extends TransactionEvent {
|
|
|
78
54
|
* This event is emitted when transaction prepares a resource diff.
|
|
79
55
|
|
|
80
56
|
* @group Events/Transaction
|
|
81
|
-
*
|
|
82
|
-
* @returns The Event instance.
|
|
83
57
|
*/
|
|
84
58
|
export class ResourceDiffsTransactionEvent extends TransactionEvent {
|
|
85
59
|
}
|
|
@@ -87,8 +61,6 @@ export class ResourceDiffsTransactionEvent extends TransactionEvent {
|
|
|
87
61
|
* This event is emitted when transaction prepares a resource transaction.
|
|
88
62
|
|
|
89
63
|
* @group Events/Transaction
|
|
90
|
-
*
|
|
91
|
-
* @returns The Event instance.
|
|
92
64
|
*/
|
|
93
65
|
export class ResourceTransactionTransactionEvent extends TransactionEvent {
|
|
94
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.event.js","sourceRoot":"","sources":["../../src/events/transaction.event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.event.js","sourceRoot":"","sources":["../../src/events/transaction.event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAgB,gBAAoB,SAAQ,KAAQ;CAAG;AAE7D;;;;GAIG;AACH,MAAM,OAAO,2BAA4B,SAAQ,gBAA8B;CAAG;AAElF;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAkC;CAAG;AAErF;;;;GAIG;AACH,MAAM,OAAO,gCAAiC,SAAQ,gBAAkC;CAAG;AAE3F;;;;GAIG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;GAIG;AACH,MAAM,OAAO,uCAAwC,SAAQ,gBAA8B;CAAG;AAE9F;;;;;GAKG;AACH,MAAM,OAAO,qCAAsC,SAAQ,gBAGzD;CAAG;AAEL;;;;GAIG;AACH,MAAM,OAAO,6BAA8B,SAAQ,gBAAsD;CAAG;AAE5G;;;;GAIG;AACH,MAAM,OAAO,mCAAoC,SAAQ,gBAAsD;CAAG"}
|
|
@@ -21,17 +21,28 @@ type FactoryContainer<T> = {
|
|
|
21
21
|
* @group Functions/Container
|
|
22
22
|
*/
|
|
23
23
|
export declare class Container {
|
|
24
|
-
private FACTORY_TIMEOUT_IN_MS;
|
|
25
|
-
private readonly factories;
|
|
26
24
|
private static instance;
|
|
25
|
+
private readonly factories;
|
|
26
|
+
private FACTORY_TIMEOUT_IN_MS;
|
|
27
27
|
private readonly startupUnhandledPromises;
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
28
31
|
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* The Container is a singleton - this is how you reach it.
|
|
34
|
+
*/
|
|
35
|
+
static getInstance(): Container;
|
|
36
|
+
/**
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
29
39
|
copyFactories(): {
|
|
30
40
|
[key: string]: FactoryContainer<unknown>[];
|
|
31
41
|
};
|
|
32
42
|
/**
|
|
33
|
-
*
|
|
34
|
-
* If the factory is not yet
|
|
43
|
+
* To get an instance of a class from its factory.
|
|
44
|
+
* If the factory is not registered yet, this waits for it, and times out - see
|
|
45
|
+
* {@link Container.setFactoryTimeout}.
|
|
35
46
|
*
|
|
36
47
|
* @param type The type or name of the class to get.
|
|
37
48
|
* @param options Allows selection of a specific factory to use to get the instance.
|
|
@@ -45,14 +56,17 @@ export declare class Container {
|
|
|
45
56
|
[key: string]: string;
|
|
46
57
|
};
|
|
47
58
|
}): Promise<T>;
|
|
48
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Whether a factory is registered for the class.
|
|
61
|
+
*/
|
|
49
62
|
has<T>(type: Constructable<T> | string, options?: {
|
|
50
63
|
metadata?: {
|
|
51
64
|
[key: string]: string;
|
|
52
65
|
};
|
|
53
66
|
}): boolean;
|
|
54
67
|
/**
|
|
55
|
-
*
|
|
68
|
+
* To register a factory for a class. Prefer the {@link Factory} decorator; call this directly only
|
|
69
|
+
* when the factory is built at runtime.
|
|
56
70
|
*
|
|
57
71
|
* @param type The type or name of the class for which the factory is registered.
|
|
58
72
|
* @param factory The factory class being registered.
|
|
@@ -64,37 +78,64 @@ export declare class Container {
|
|
|
64
78
|
[key: string]: string;
|
|
65
79
|
};
|
|
66
80
|
}): void;
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
registerStartupUnhandledPromise<T>(promise: Promise<T>): void;
|
|
85
|
+
/**
|
|
86
|
+
* To register a ready-made instance, instead of a factory that builds one.
|
|
87
|
+
*/
|
|
67
88
|
registerValue<T>(type: Constructable<T> | string, value: T, options?: {
|
|
68
89
|
metadata?: {
|
|
69
90
|
[key: string]: string;
|
|
70
91
|
};
|
|
71
92
|
}): void;
|
|
72
|
-
registerStartupUnhandledPromise<T>(promise: Promise<T>): void;
|
|
73
93
|
/**
|
|
74
|
-
*
|
|
94
|
+
* To register a ready-made instance over whatever is already registered under the same type and
|
|
95
|
+
* metadata, rather than refusing as {@link Container.registerValue} does.
|
|
96
|
+
*
|
|
97
|
+
* Registering once is the right default - two factories for one type is usually a mistake. This is
|
|
98
|
+
* for the callers that legitimately register the same thing more than once: a module whose
|
|
99
|
+
* `onInit` runs on every `compose()`, and a test replacing a factory with a mock.
|
|
100
|
+
*/
|
|
101
|
+
replaceValue<T>(type: Constructable<T> | string, value: T, options?: {
|
|
102
|
+
metadata?: {
|
|
103
|
+
[key: string]: string;
|
|
104
|
+
};
|
|
105
|
+
}): void;
|
|
106
|
+
/**
|
|
107
|
+
* To clear every registered factory and empty the container. Mostly used in testing.
|
|
75
108
|
*/
|
|
76
109
|
reset(): void;
|
|
110
|
+
/**
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
77
113
|
setFactories(factories: {
|
|
78
114
|
[key: string]: FactoryContainer<unknown>[];
|
|
79
115
|
}): void;
|
|
80
116
|
/**
|
|
81
|
-
*
|
|
82
|
-
* This method allows to change that timeout.
|
|
117
|
+
* To change how long `get()` waits for a factory to be registered.
|
|
83
118
|
*
|
|
119
|
+
* @defaultValue `3000`
|
|
84
120
|
* @param timeoutInMs The timeout in milliseconds.
|
|
121
|
+
*
|
|
85
122
|
*/
|
|
86
123
|
setFactoryTimeout(timeoutInMs: number): void;
|
|
87
124
|
/**
|
|
88
|
-
*
|
|
125
|
+
* To unregister a class's factories, so that your own can take their place.
|
|
89
126
|
*
|
|
90
|
-
* @param type The type or name of the class
|
|
91
|
-
* @param options
|
|
127
|
+
* @param type The type or name of the class whose factories are unregistered.
|
|
128
|
+
* @param options Pass `metadata` to unregister one specific factory. Without it, all of the
|
|
129
|
+
* class's factories are unregistered.
|
|
92
130
|
*/
|
|
93
131
|
unRegisterFactory<T>(type: Constructable<T> | string, options?: {
|
|
94
132
|
metadata?: {
|
|
95
133
|
[key: string]: string;
|
|
96
134
|
};
|
|
97
135
|
}): void;
|
|
136
|
+
/**
|
|
137
|
+
* @internal
|
|
138
|
+
*/
|
|
98
139
|
waitToResolveAllFactories(): Promise<void>;
|
|
99
140
|
}
|
|
100
141
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ContainerRegistrationError, ContainerResolutionError } from '../../errors/index.js';
|
|
2
|
-
import { DiffUtility } from '
|
|
2
|
+
import { DiffUtility } from '../../utilities/diff/diff.utility.js';
|
|
3
3
|
/**
|
|
4
4
|
* The Container class is a box to hold all registered factories.
|
|
5
5
|
*
|
|
@@ -12,11 +12,26 @@ import { DiffUtility } from '../diff/diff.utility.js';
|
|
|
12
12
|
* @group Functions/Container
|
|
13
13
|
*/
|
|
14
14
|
export class Container {
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
15
18
|
constructor() {
|
|
16
|
-
this.FACTORY_TIMEOUT_IN_MS = 3000;
|
|
17
19
|
this.factories = {};
|
|
20
|
+
this.FACTORY_TIMEOUT_IN_MS = 3000;
|
|
18
21
|
this.startupUnhandledPromises = [];
|
|
19
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The Container is a singleton - this is how you reach it.
|
|
25
|
+
*/
|
|
26
|
+
static getInstance() {
|
|
27
|
+
if (!this.instance) {
|
|
28
|
+
this.instance = new Container();
|
|
29
|
+
}
|
|
30
|
+
return this.instance;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
20
35
|
copyFactories() {
|
|
21
36
|
const newFactoriesCopy = {};
|
|
22
37
|
for (const [type, factoryContainers] of Object.entries(this.factories)) {
|
|
@@ -31,8 +46,9 @@ export class Container {
|
|
|
31
46
|
return newFactoriesCopy;
|
|
32
47
|
}
|
|
33
48
|
/**
|
|
34
|
-
*
|
|
35
|
-
* If the factory is not yet
|
|
49
|
+
* To get an instance of a class from its factory.
|
|
50
|
+
* If the factory is not registered yet, this waits for it, and times out - see
|
|
51
|
+
* {@link Container.setFactoryTimeout}.
|
|
36
52
|
*
|
|
37
53
|
* @param type The type or name of the class to get.
|
|
38
54
|
* @param options Allows selection of a specific factory to use to get the instance.
|
|
@@ -76,12 +92,9 @@ export class Container {
|
|
|
76
92
|
}
|
|
77
93
|
return factory.create(...args);
|
|
78
94
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
return this.instance;
|
|
84
|
-
}
|
|
95
|
+
/**
|
|
96
|
+
* Whether a factory is registered for the class.
|
|
97
|
+
*/
|
|
85
98
|
has(type, options) {
|
|
86
99
|
const metadata = options?.metadata || {};
|
|
87
100
|
const name = typeof type === 'string' ? type : type.name;
|
|
@@ -91,7 +104,8 @@ export class Container {
|
|
|
91
104
|
return this.factories[name].some((f) => DiffUtility.isObjectDeepEquals(f.metadata, metadata));
|
|
92
105
|
}
|
|
93
106
|
/**
|
|
94
|
-
*
|
|
107
|
+
* To register a factory for a class. Prefer the {@link Factory} decorator; call this directly only
|
|
108
|
+
* when the factory is built at runtime.
|
|
95
109
|
*
|
|
96
110
|
* @param type The type or name of the class for which the factory is registered.
|
|
97
111
|
* @param factory The factory class being registered.
|
|
@@ -118,18 +132,41 @@ export class Container {
|
|
|
118
132
|
}
|
|
119
133
|
this.factories[name].push({ factory, metadata });
|
|
120
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
registerStartupUnhandledPromise(promise) {
|
|
139
|
+
this.startupUnhandledPromises.push(promise);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* To register a ready-made instance, instead of a factory that builds one.
|
|
143
|
+
*/
|
|
121
144
|
registerValue(type, value, options) {
|
|
122
145
|
this.registerFactory(type, class {
|
|
146
|
+
/**
|
|
147
|
+
* @internal
|
|
148
|
+
*/
|
|
123
149
|
static async create() {
|
|
124
150
|
return value;
|
|
125
151
|
}
|
|
126
152
|
}, options);
|
|
127
153
|
}
|
|
128
|
-
|
|
129
|
-
|
|
154
|
+
/**
|
|
155
|
+
* To register a ready-made instance over whatever is already registered under the same type and
|
|
156
|
+
* metadata, rather than refusing as {@link Container.registerValue} does.
|
|
157
|
+
*
|
|
158
|
+
* Registering once is the right default - two factories for one type is usually a mistake. This is
|
|
159
|
+
* for the callers that legitimately register the same thing more than once: a module whose
|
|
160
|
+
* `onInit` runs on every `compose()`, and a test replacing a factory with a mock.
|
|
161
|
+
*/
|
|
162
|
+
replaceValue(type, value, options) {
|
|
163
|
+
if (this.has(type, options)) {
|
|
164
|
+
this.unRegisterFactory(type, options);
|
|
165
|
+
}
|
|
166
|
+
this.registerValue(type, value, options);
|
|
130
167
|
}
|
|
131
168
|
/**
|
|
132
|
-
*
|
|
169
|
+
* To clear every registered factory and empty the container. Mostly used in testing.
|
|
133
170
|
*/
|
|
134
171
|
reset() {
|
|
135
172
|
this.FACTORY_TIMEOUT_IN_MS = 3000;
|
|
@@ -138,6 +175,9 @@ export class Container {
|
|
|
138
175
|
}
|
|
139
176
|
this.startupUnhandledPromises.splice(0, this.startupUnhandledPromises.length);
|
|
140
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* @internal
|
|
180
|
+
*/
|
|
141
181
|
setFactories(factories) {
|
|
142
182
|
for (const [type, factoryContainers] of Object.entries(factories)) {
|
|
143
183
|
this.factories[type] = [];
|
|
@@ -150,19 +190,21 @@ export class Container {
|
|
|
150
190
|
}
|
|
151
191
|
}
|
|
152
192
|
/**
|
|
153
|
-
*
|
|
154
|
-
* This method allows to change that timeout.
|
|
193
|
+
* To change how long `get()` waits for a factory to be registered.
|
|
155
194
|
*
|
|
195
|
+
* @defaultValue `3000`
|
|
156
196
|
* @param timeoutInMs The timeout in milliseconds.
|
|
197
|
+
*
|
|
157
198
|
*/
|
|
158
199
|
setFactoryTimeout(timeoutInMs) {
|
|
159
200
|
this.FACTORY_TIMEOUT_IN_MS = timeoutInMs;
|
|
160
201
|
}
|
|
161
202
|
/**
|
|
162
|
-
*
|
|
203
|
+
* To unregister a class's factories, so that your own can take their place.
|
|
163
204
|
*
|
|
164
|
-
* @param type The type or name of the class
|
|
165
|
-
* @param options
|
|
205
|
+
* @param type The type or name of the class whose factories are unregistered.
|
|
206
|
+
* @param options Pass `metadata` to unregister one specific factory. Without it, all of the
|
|
207
|
+
* class's factories are unregistered.
|
|
166
208
|
*/
|
|
167
209
|
unRegisterFactory(type, options) {
|
|
168
210
|
const name = typeof type === 'string' ? type : type.name;
|
|
@@ -176,6 +218,9 @@ export class Container {
|
|
|
176
218
|
this.factories[name].splice(index, 1);
|
|
177
219
|
}
|
|
178
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* @internal
|
|
223
|
+
*/
|
|
179
224
|
async waitToResolveAllFactories() {
|
|
180
225
|
const promiseToResolveAllFactories = [];
|
|
181
226
|
for (const name of Object.keys(this.factories)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/functions/container/container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/functions/container/container.ts"],"names":[],"mappings":"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"}
|