@adaas/a-concept 0.0.64 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +24 -32
- package/dist/index.js +35 -52
- package/dist/index.js.map +1 -1
- package/dist/src/constants/env.constants.d.ts +15 -8
- package/dist/src/constants/env.constants.js +17 -10
- package/dist/src/constants/env.constants.js.map +1 -1
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +23 -0
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +69 -0
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.class.d.ts +47 -20
- package/dist/src/global/A-Abstraction/A-Abstraction.class.js +55 -48
- package/dist/src/global/A-Abstraction/A-Abstraction.class.js.map +1 -1
- package/dist/src/global/A-Abstraction/A-Abstraction.error.d.ts +7 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.error.js +12 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.error.js.map +1 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.types.d.ts +27 -12
- package/dist/src/global/A-Abstraction/A-Abstraction.types.js +0 -8
- package/dist/src/global/A-Abstraction/A-Abstraction.types.js.map +1 -1
- package/dist/src/global/A-Caller/A_Caller.class.d.ts +33 -0
- package/dist/src/global/A-Caller/A_Caller.class.js +44 -0
- package/dist/src/global/A-Caller/A_Caller.class.js.map +1 -0
- package/dist/src/global/A-Caller/A_Caller.error.d.ts +7 -0
- package/dist/src/global/A-Caller/A_Caller.error.js +12 -0
- package/dist/src/global/A-Caller/A_Caller.error.js.map +1 -0
- package/dist/src/global/A-Caller/A_Caller.types.d.ts +18 -0
- package/dist/src/{base/A-Errors/A-Errors.types.js → global/A-Caller/A_Caller.types.js} +1 -1
- package/dist/src/global/A-Caller/A_Caller.types.js.map +1 -0
- package/dist/src/global/A-Component/A-Component.class.d.ts +20 -3
- package/dist/src/global/A-Component/A-Component.class.js +35 -19
- package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
- package/dist/src/global/A-Component/A-Component.constants.d.ts +6 -0
- package/dist/src/global/A-Component/A-Component.constants.js +11 -0
- package/dist/src/global/A-Component/A-Component.constants.js.map +1 -0
- package/dist/src/global/A-Component/A-Component.meta.d.ts +4 -4
- package/dist/src/global/A-Component/A-Component.meta.js +6 -8
- package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
- package/dist/src/global/A-Component/A-Component.types.d.ts +40 -22
- package/dist/src/global/A-Component/A-Component.types.js +1 -8
- package/dist/src/global/A-Component/A-Component.types.js.map +1 -1
- package/dist/src/global/A-Concept/A-Concept.class.d.ts +153 -0
- package/dist/src/global/A-Concept/A-Concept.class.js +260 -0
- package/dist/src/global/A-Concept/A-Concept.class.js.map +1 -0
- package/dist/src/global/A-Concept/A-Concept.constants.d.ts +33 -0
- package/dist/src/global/A-Concept/A-Concept.constants.js +39 -0
- package/dist/src/global/A-Concept/A-Concept.constants.js.map +1 -0
- package/dist/src/global/A-Concept/{A_Concept.meta.js → A-Concept.meta.js} +1 -2
- package/dist/src/global/A-Concept/A-Concept.meta.js.map +1 -0
- package/dist/src/global/A-Concept/A-Concept.types.d.ts +83 -0
- package/dist/src/global/{A-Channel/A-Channel.types.js → A-Concept/A-Concept.types.js} +1 -1
- package/dist/src/global/A-Concept/A-Concept.types.js.map +1 -0
- package/dist/src/global/A-Container/A-Container.class.d.ts +31 -35
- package/dist/src/global/A-Container/A-Container.class.js +34 -55
- package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
- package/dist/src/global/A-Container/A-Container.constants.d.ts +5 -0
- package/dist/src/global/A-Container/A-Container.constants.js +10 -0
- package/dist/src/global/A-Container/A-Container.constants.js.map +1 -0
- package/dist/src/global/A-Container/A-Container.meta.d.ts +6 -6
- package/dist/src/global/A-Container/A-Container.meta.js +5 -6
- package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
- package/dist/src/global/A-Container/A-Container.types.d.ts +31 -25
- package/dist/src/global/A-Container/A-Container.types.js +1 -7
- package/dist/src/global/A-Container/A-Container.types.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.class.d.ts +302 -76
- package/dist/src/global/A-Context/A-Context.class.js +436 -244
- package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.error.d.ts +20 -0
- package/dist/src/global/A-Context/A-Context.error.js +25 -0
- package/dist/src/global/A-Context/A-Context.error.js.map +1 -0
- package/dist/src/global/A-Context/A-Context.types.d.ts +5 -0
- package/dist/src/global/A-Context/A-Context.types.js +1 -0
- package/dist/src/global/A-Entity/A-Entity.class.d.ts +13 -39
- package/dist/src/global/A-Entity/A-Entity.class.js +30 -73
- package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
- package/dist/src/global/A-Entity/A-Entity.constants.d.ts +11 -0
- package/dist/src/global/A-Entity/A-Entity.constants.js +17 -0
- package/dist/src/global/A-Entity/A-Entity.constants.js.map +1 -0
- package/dist/src/global/A-Entity/A-Entity.error.d.ts +7 -0
- package/dist/src/global/A-Entity/A-Entity.error.js +12 -0
- package/dist/src/global/A-Entity/A-Entity.error.js.map +1 -0
- package/dist/src/global/A-Entity/A-Entity.meta.d.ts +2 -2
- package/dist/src/global/A-Entity/A-Entity.meta.js +2 -2
- package/dist/src/global/A-Entity/A-Entity.meta.js.map +1 -1
- package/dist/src/global/A-Entity/A-Entity.types.d.ts +24 -29
- package/dist/src/global/A-Entity/A-Entity.types.js +1 -13
- package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -1
- package/dist/src/global/A-Error/A_Error.class.d.ts +219 -0
- package/dist/src/global/A-Error/A_Error.class.js +267 -0
- package/dist/src/global/A-Error/A_Error.class.js.map +1 -0
- package/dist/src/global/A-Error/A_Error.constants.d.ts +5 -0
- package/dist/src/global/A-Error/A_Error.constants.js +9 -0
- package/dist/src/global/A-Error/A_Error.constants.js.map +1 -0
- package/dist/src/global/A-Error/A_Error.types.d.ts +89 -0
- package/dist/src/{decorators/A-Inject/A-Inject.decorator.types.js → global/A-Error/A_Error.types.js} +1 -1
- package/dist/src/global/A-Error/A_Error.types.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.d.ts +15 -0
- package/dist/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.js +21 -27
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -0
- package/dist/src/{decorators → global}/A-Feature/A-Feature-Extend.decorator.d.ts +26 -3
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +97 -0
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature.class.d.ts +120 -30
- package/dist/src/global/A-Feature/A-Feature.class.js +205 -73
- package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature.error.d.ts +25 -0
- package/dist/src/global/A-Feature/A-Feature.error.js +33 -0
- package/dist/src/global/A-Feature/A-Feature.error.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature.types.d.ts +241 -18
- package/dist/src/global/A-Feature/A-Feature.types.js +16 -22
- package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
- package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +19 -27
- package/dist/src/global/A-Fragment/A-Fragment.class.js +21 -91
- package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -1
- package/dist/src/global/A-Fragment/A-Fragment.types.d.ts +19 -1
- package/dist/src/global/A-Fragment/A-Fragment.types.js +3 -0
- package/dist/src/global/A-Fragment/A-Fragment.types.js.map +1 -1
- package/dist/src/global/A-Inject/A-Inject.decorator.d.ts +80 -0
- package/dist/src/global/A-Inject/A-Inject.decorator.js +49 -0
- package/dist/src/global/A-Inject/A-Inject.decorator.js.map +1 -0
- package/dist/src/global/A-Inject/A-Inject.error.d.ts +5 -0
- package/dist/src/global/A-Inject/A-Inject.error.js +10 -0
- package/dist/src/global/A-Inject/A-Inject.error.js.map +1 -0
- package/dist/src/global/A-Inject/A-Inject.types.d.ts +42 -0
- package/dist/src/{decorators/A-Entity/A-Entity.decorator.types.js → global/A-Inject/A-Inject.types.js} +1 -1
- package/dist/src/global/A-Inject/A-Inject.types.js.map +1 -0
- package/dist/src/global/A-Meta/A-Meta.class.d.ts +1 -1
- package/dist/src/global/A-Meta/A-Meta.types.d.ts +14 -0
- package/dist/src/global/A-Meta/A-Meta.types.js +1 -0
- package/dist/src/global/A-Scope/A-Scope.class.d.ts +124 -142
- package/dist/src/global/A-Scope/A-Scope.class.js +163 -209
- package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
- package/dist/src/global/A-Scope/A-Scope.error.d.ts +6 -0
- package/dist/src/global/A-Scope/A-Scope.error.js +11 -0
- package/dist/src/global/A-Scope/A-Scope.error.js.map +1 -0
- package/dist/src/global/A-Scope/A-Scope.types.d.ts +48 -13
- package/dist/src/global/A-Stage/A-Stage.class.d.ts +31 -23
- package/dist/src/global/A-Stage/A-Stage.class.js +100 -68
- package/dist/src/global/A-Stage/A-Stage.class.js.map +1 -1
- package/dist/src/global/A-Stage/A-Stage.error.d.ts +2 -1
- package/dist/src/global/A-Stage/A-Stage.error.js +5 -2
- package/dist/src/global/A-Stage/A-Stage.error.js.map +1 -1
- package/dist/src/global/A-Stage/A-Stage.types.d.ts +4 -16
- package/dist/src/global/A-Stage/A-Stage.types.js +0 -16
- package/dist/src/global/A-Stage/A-Stage.types.js.map +1 -1
- package/dist/src/global/ASEID/ASEID.class.d.ts +130 -0
- package/dist/src/global/ASEID/ASEID.class.js +167 -0
- package/dist/src/global/ASEID/ASEID.class.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.constants.js +2 -0
- package/dist/src/global/ASEID/ASEID.constants.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.error.d.ts +5 -0
- package/dist/src/global/ASEID/ASEID.error.js +10 -0
- package/dist/src/global/ASEID/ASEID.error.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.types.d.ts +65 -0
- package/dist/src/global/ASEID/ASEID.types.js +5 -0
- package/dist/src/global/ASEID/ASEID.types.js.map +1 -0
- package/dist/src/helpers/A_Common.helper.d.ts +28 -0
- package/dist/src/helpers/A_Common.helper.js +170 -0
- package/dist/src/helpers/A_Common.helper.js.map +1 -0
- package/dist/src/helpers/A_Formatter.helper.d.ts +35 -0
- package/dist/src/helpers/A_Formatter.helper.js +62 -0
- package/dist/src/helpers/A_Formatter.helper.js.map +1 -0
- package/dist/src/helpers/A_Identity.helper.d.ts +29 -0
- package/dist/src/helpers/A_Identity.helper.js +43 -0
- package/dist/src/helpers/A_Identity.helper.js.map +1 -0
- package/dist/src/helpers/{StepsManager.class.d.ts → A_StepsManager.class.d.ts} +4 -2
- package/dist/src/helpers/{StepsManager.class.js → A_StepsManager.class.js} +10 -5
- package/dist/src/helpers/A_StepsManager.class.js.map +1 -0
- package/dist/src/helpers/A_TypeGuards.helper.d.ts +205 -0
- package/dist/src/helpers/A_TypeGuards.helper.js +288 -0
- package/dist/src/helpers/A_TypeGuards.helper.js.map +1 -0
- package/dist/src/types/A_Common.types.d.ts +36 -0
- package/dist/src/types/A_Common.types.js +3 -0
- package/dist/src/types/A_Common.types.js.map +1 -0
- package/index.ts +27 -51
- package/jest.config.ts +1 -0
- package/package.json +1 -2
- package/src/constants/env.constants.ts +18 -11
- package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +103 -0
- package/src/global/A-Abstraction/A-Abstraction.class.ts +71 -65
- package/src/global/A-Abstraction/A-Abstraction.error.ts +9 -0
- package/src/global/A-Abstraction/A-Abstraction.types.ts +52 -13
- package/src/global/A-Caller/A_Caller.class.ts +61 -0
- package/src/global/A-Caller/A_Caller.error.ts +10 -0
- package/src/global/A-Caller/A_Caller.types.ts +25 -0
- package/src/global/A-Component/A-Component.class.ts +26 -15
- package/src/global/A-Component/A-Component.constants.ts +9 -0
- package/src/global/A-Component/A-Component.meta.ts +6 -16
- package/src/global/A-Component/A-Component.types.ts +53 -28
- package/src/global/A-Concept/A-Concept.class.ts +316 -0
- package/src/global/A-Concept/A-Concept.constants.ts +36 -0
- package/src/global/A-Concept/A-Concept.meta.ts +17 -0
- package/src/global/A-Concept/A-Concept.types.ts +100 -0
- package/src/global/A-Container/A-Container.class.ts +42 -83
- package/src/global/A-Container/A-Container.constants.ts +5 -0
- package/src/global/A-Container/A-Container.meta.ts +7 -11
- package/src/global/A-Container/A-Container.types.ts +38 -34
- package/src/global/A-Context/A-Context.class.ts +648 -412
- package/src/global/A-Context/A-Context.error.ts +44 -0
- package/src/global/A-Context/A-Context.types.ts +14 -0
- package/src/global/A-Entity/A-Entity.class.ts +33 -88
- package/src/global/A-Entity/A-Entity.constants.ts +12 -0
- package/src/global/A-Entity/A-Entity.error.ts +12 -0
- package/src/global/A-Entity/A-Entity.meta.ts +4 -4
- package/src/global/A-Entity/A-Entity.types.ts +31 -36
- package/src/global/A-Error/A_Error.class.ts +408 -0
- package/src/global/A-Error/A_Error.constants.ts +11 -0
- package/src/global/A-Error/A_Error.types.ts +96 -0
- package/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.ts +31 -37
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +187 -0
- package/src/global/A-Feature/A-Feature.class.ts +279 -122
- package/src/global/A-Feature/A-Feature.error.ts +33 -0
- package/src/global/A-Feature/A-Feature.types.ts +278 -40
- package/src/global/A-Fragment/A-Fragment.class.ts +29 -100
- package/src/global/A-Fragment/A-Fragment.types.ts +25 -3
- package/src/global/A-Inject/A-Inject.decorator.ts +167 -0
- package/src/global/A-Inject/A-Inject.error.ts +8 -0
- package/src/global/A-Inject/A-Inject.types.ts +75 -0
- package/src/global/A-Meta/A-Meta.class.ts +1 -1
- package/src/global/A-Meta/A-Meta.types.ts +21 -0
- package/src/global/A-Scope/A-Scope.class.ts +288 -299
- package/src/global/A-Scope/A-Scope.error.ts +13 -0
- package/src/global/A-Scope/A-Scope.types.ts +61 -27
- package/src/global/A-Stage/A-Stage.class.ts +142 -80
- package/src/global/A-Stage/A-Stage.error.ts +4 -2
- package/src/global/A-Stage/A-Stage.types.ts +4 -25
- package/src/global/ASEID/ASEID.class.ts +275 -0
- package/src/global/ASEID/ASEID.error.ts +12 -0
- package/src/global/ASEID/ASEID.types.ts +79 -0
- package/src/helpers/A_Common.helper.ts +204 -0
- package/src/helpers/A_Formatter.helper.ts +58 -0
- package/src/helpers/A_Identity.helper.ts +53 -0
- package/src/helpers/{StepsManager.class.ts → A_StepsManager.class.ts} +19 -3
- package/src/helpers/A_TypeGuards.helper.ts +318 -0
- package/src/types/A_Common.types.ts +79 -0
- package/tests/A-Common.test.ts +117 -0
- package/tests/A-Component.test.ts +11 -6
- package/tests/A-Concept.test.ts +19 -22
- package/tests/A-Entity.test.ts +24 -24
- package/tests/A-Error.test.ts +129 -0
- package/tests/A-Feature.test.ts +34 -25
- package/tests/A-Scope.test.ts +50 -22
- package/tests/ASEID.test.ts +74 -0
- package/tsconfig.build.json +2 -1
- package/tsconfig.json +3 -2
- package/dist/src/base/A-Config/A-Config.container.d.ts +0 -9
- package/dist/src/base/A-Config/A-Config.container.js +0 -69
- package/dist/src/base/A-Config/A-Config.container.js.map +0 -1
- package/dist/src/base/A-Config/A-Config.context.d.ts +0 -30
- package/dist/src/base/A-Config/A-Config.context.js +0 -60
- package/dist/src/base/A-Config/A-Config.context.js.map +0 -1
- package/dist/src/base/A-Config/A-Config.types.d.ts +0 -20
- package/dist/src/base/A-Config/A-Config.types.js +0 -7
- package/dist/src/base/A-Config/A-Config.types.js.map +0 -1
- package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +0 -29
- package/dist/src/base/A-Config/components/ConfigReader.component.js +0 -84
- package/dist/src/base/A-Config/components/ConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Config/components/ENVConfigReader.component.d.ts +0 -10
- package/dist/src/base/A-Config/components/ENVConfigReader.component.js +0 -37
- package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Config/components/FileConfigReader.component.d.ts +0 -11
- package/dist/src/base/A-Config/components/FileConfigReader.component.js +0 -48
- package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Errors/A-Error.entity.d.ts +0 -3
- package/dist/src/base/A-Errors/A-Error.entity.js +0 -8
- package/dist/src/base/A-Errors/A-Error.entity.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.component.d.ts +0 -19
- package/dist/src/base/A-Errors/A-Errors.component.js +0 -87
- package/dist/src/base/A-Errors/A-Errors.component.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.context.d.ts +0 -27
- package/dist/src/base/A-Errors/A-Errors.context.js +0 -50
- package/dist/src/base/A-Errors/A-Errors.context.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.types.d.ts +0 -5
- package/dist/src/base/A-Errors/A-Errors.types.js.map +0 -1
- package/dist/src/base/A-Logger/A-Logger.component.d.ts +0 -31
- package/dist/src/base/A-Logger/A-Logger.component.js +0 -155
- package/dist/src/base/A-Logger/A-Logger.component.js.map +0 -1
- package/dist/src/base/A-Logger/A-Logger.types.js +0 -2
- package/dist/src/base/A-Logger/A-Logger.types.js.map +0 -1
- package/dist/src/base/A-Polyfill/A-Polyfill.component.d.ts +0 -5
- package/dist/src/base/A-Polyfill/A-Polyfill.component.js +0 -34
- package/dist/src/base/A-Polyfill/A-Polyfill.component.js.map +0 -1
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +0 -14
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js +0 -53
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js.map +0 -1
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.d.ts +0 -2
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js +0 -3
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.d.ts +0 -19
- package/dist/src/decorators/A-Connect/A-Connect.decorator.js +0 -31
- package/dist/src/decorators/A-Connect/A-Connect.decorator.js.map +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.d.ts +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js +0 -3
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.d.ts +0 -1
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js +0 -8
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js.map +0 -1
- package/dist/src/decorators/A-Entity/A-Entity.decorator.types.d.ts +0 -14
- package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +0 -19
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +0 -81
- package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +0 -96
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js +0 -3
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +0 -30
- package/dist/src/decorators/A-Inject/A-Inject.decorator.js +0 -47
- package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +0 -1
- package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +0 -48
- package/dist/src/decorators/A-Inject/A-Inject.decorator.types.js.map +0 -1
- package/dist/src/global/A-Channel/A-Channel.class.d.ts +0 -16
- package/dist/src/global/A-Channel/A-Channel.class.js +0 -59
- package/dist/src/global/A-Channel/A-Channel.class.js.map +0 -1
- package/dist/src/global/A-Channel/A-Channel.types.d.ts +0 -68
- package/dist/src/global/A-Channel/A-Channel.types.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.class.d.ts +0 -187
- package/dist/src/global/A-Command/A-Command.class.js +0 -349
- package/dist/src/global/A-Command/A-Command.class.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.constants.d.ts +0 -17
- package/dist/src/global/A-Command/A-Command.constants.js +0 -22
- package/dist/src/global/A-Command/A-Command.constants.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.meta.d.ts +0 -11
- package/dist/src/global/A-Command/A-Command.meta.js +0 -18
- package/dist/src/global/A-Command/A-Command.meta.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.types.d.ts +0 -43
- package/dist/src/global/A-Command/A-Command.types.js +0 -10
- package/dist/src/global/A-Command/A-Command.types.js.map +0 -1
- package/dist/src/global/A-Command/context/A_Command.context.d.ts +0 -64
- package/dist/src/global/A-Command/context/A_Command.context.js +0 -85
- package/dist/src/global/A-Command/context/A_Command.context.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.class.d.ts +0 -104
- package/dist/src/global/A-Concept/A_Concept.class.js +0 -217
- package/dist/src/global/A-Concept/A_Concept.class.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.meta.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.types.d.ts +0 -103
- package/dist/src/global/A-Concept/A_Concept.types.js +0 -28
- package/dist/src/global/A-Concept/A_Concept.types.js.map +0 -1
- package/dist/src/global/A-Feature/A-FeatureCaller.class.d.ts +0 -22
- package/dist/src/global/A-Feature/A-FeatureCaller.class.js +0 -26
- package/dist/src/global/A-Feature/A-FeatureCaller.class.js.map +0 -1
- package/dist/src/global/A-Scope/A-Scope.constants.d.ts +0 -2
- package/dist/src/global/A-Scope/A-Scope.constants.js +0 -11
- package/dist/src/global/A-Scope/A-Scope.constants.js.map +0 -1
- package/dist/src/helpers/StepsManager.class.js.map +0 -1
- package/dist/src/types/A_Module.types.d.ts +0 -17
- package/dist/src/types/A_Module.types.js +0 -22
- package/dist/src/types/A_Module.types.js.map +0 -1
- package/examples/entity/concept.ts +0 -68
- package/examples/entity/entities/Task.entity.ts +0 -110
- package/examples/entity/entities/User.entity.ts +0 -62
- package/examples/fe-be/channels/Test.channel.ts +0 -27
- package/examples/fe-be/components/BE-Controller.component.ts +0 -20
- package/examples/fe-be/components/FE.component.ts +0 -13
- package/examples/fe-be/containers/ServerApp.container.ts +0 -8
- package/examples/fe-be/containers/WebApp.container.ts +0 -13
- package/examples/multi-container/channels/Direct.channel.ts +0 -39
- package/examples/multi-container/concept.ts +0 -0
- package/examples/multi-container/containers/Command.container.ts +0 -41
- package/examples/multi-container/containers/Schedule.container.ts +0 -52
- package/examples/simple/components/A.component.ts +0 -71
- package/examples/simple/components/B.component.ts +0 -68
- package/examples/simple/concept.ts +0 -87
- package/examples/simple/containers/Main.container.ts +0 -88
- package/examples/simple/containers/Secondary.container.ts +0 -26
- package/examples/simple/context/Fragment_A.context.ts +0 -25
- package/examples/simple/context/Fragment_B.context.ts +0 -19
- package/examples/simple/entities/EntityA.entity.ts +0 -32
- package/examples/simple-http-server/components/http-error-handler.component.ts +0 -47
- package/examples/simple-http-server/components/http-request-handler.component.ts +0 -13
- package/examples/simple-http-server/concept.ts +0 -35
- package/examples/simple-http-server/containers/http-server.container.ts +0 -57
- package/examples/simple-http-server/contexts/http-request.context.ts +0 -59
- package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -0
- package/examples/simple-http-server/controllers/orders.controller.ts +0 -20
- package/examples/simple-http-server/controllers/users.controller.ts +0 -104
- package/examples/simple-http-server/test.ts +0 -290
- package/src/base/A-Config/A-Config.container.ts +0 -68
- package/src/base/A-Config/A-Config.context.ts +0 -114
- package/src/base/A-Config/A-Config.types.ts +0 -28
- package/src/base/A-Config/components/ConfigReader.component.ts +0 -68
- package/src/base/A-Config/components/ENVConfigReader.component.ts +0 -31
- package/src/base/A-Config/components/FileConfigReader.component.ts +0 -41
- package/src/base/A-Errors/A-Error.entity.ts +0 -10
- package/src/base/A-Errors/A-Errors.component.ts +0 -103
- package/src/base/A-Errors/A-Errors.context.ts +0 -90
- package/src/base/A-Errors/A-Errors.types.ts +0 -6
- package/src/base/A-Logger/A-Logger.component.ts +0 -192
- package/src/base/A-Logger/A-Logger.types.ts +0 -0
- package/src/base/A-Polyfill/A-Polyfill.component.ts +0 -18
- package/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.ts +0 -81
- package/src/decorators/A-Abstraction/A-Abstraction.decorator.types.ts +0 -21
- package/src/decorators/A-Connect/A-Connect.decorator.ts +0 -71
- package/src/decorators/A-Connect/A-Connect.decorator.types.ts +0 -6
- package/src/decorators/A-Entity/A-Entity-List.decorator.ts +0 -12
- package/src/decorators/A-Entity/A-Entity.decorator.types.ts +0 -18
- package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +0 -151
- package/src/decorators/A-Feature/A-Feature.decorator.types.ts +0 -142
- package/src/decorators/A-Inject/A-Inject.decorator.ts +0 -119
- package/src/decorators/A-Inject/A-Inject.decorator.types.ts +0 -85
- package/src/global/A-Channel/A-Channel.class.ts +0 -111
- package/src/global/A-Channel/A-Channel.types.ts +0 -114
- package/src/global/A-Command/A-Command.class.ts +0 -419
- package/src/global/A-Command/A-Command.constants.ts +0 -27
- package/src/global/A-Command/A-Command.meta.ts +0 -22
- package/src/global/A-Command/A-Command.types.ts +0 -73
- package/src/global/A-Command/context/A_Command.context.ts +0 -114
- package/src/global/A-Concept/A_Concept.class.ts +0 -298
- package/src/global/A-Concept/A_Concept.meta.ts +0 -32
- package/src/global/A-Concept/A_Concept.types.ts +0 -143
- package/src/global/A-Feature/A-FeatureCaller.class.ts +0 -38
- package/src/global/A-Scope/A-Scope.constants.ts +0 -9
- package/src/types/A_Module.types.ts +0 -23
- package/tests/A-Command.test.ts +0 -133
- package/tests/A-Config.test.ts +0 -172
- /package/dist/src/global/A-Concept/{A_Concept.meta.d.ts → A-Concept.meta.d.ts} +0 -0
- /package/dist/src/{base/A-Logger/A-Logger.types.d.ts → global/ASEID/ASEID.constants.d.ts} +0 -0
- /package/{examples/fe-be/concept.ts → src/global/ASEID/ASEID.constants.ts} +0 -0
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
|
|
2
|
-
import { A_Component } from "../A-Component/A-Component.class"
|
|
3
|
-
import { A_TYPES__ContainerCallParams } from "../A-Container/A-Container.types"
|
|
4
|
-
import { A_Fragment } from "../A-Fragment/A-Fragment.class"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type A_TYPES__A_DependencyReferenceConstructor = {
|
|
8
|
-
/**
|
|
9
|
-
* The name of the dependency
|
|
10
|
-
*/
|
|
11
|
-
name: string
|
|
12
|
-
/**
|
|
13
|
-
* The version of the module
|
|
14
|
-
* By default it is 1.0.0
|
|
15
|
-
*/
|
|
16
|
-
version: string
|
|
17
|
-
/**
|
|
18
|
-
* The dependencies of the module
|
|
19
|
-
* Could be:
|
|
20
|
-
* - other Modules
|
|
21
|
-
* - other Contexts
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
// dependencies: Array<typeof A_Namespace>
|
|
25
|
-
/**
|
|
26
|
-
* The source of the dependency
|
|
27
|
-
* Could be:
|
|
28
|
-
* - a string representing the path to the module
|
|
29
|
-
* - a module class (in case when config should be provided via the module constructor)
|
|
30
|
-
* - a module class constructor
|
|
31
|
-
* - a context class (in case when config should be provided via the context constructor)
|
|
32
|
-
* - a context class constructor
|
|
33
|
-
*
|
|
34
|
-
*/
|
|
35
|
-
// source: A_Module | A_Context | typeof A_Module | typeof A_Context | string
|
|
36
|
-
// source: A_Namespace
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export type A_TYPES__A_DependencyReferenceConstructorConfig = {
|
|
41
|
-
/**
|
|
42
|
-
* Sync - blocks A-Express Application initialization until module is ready
|
|
43
|
-
* Async - allows to initialize module after A-Express Application initialization
|
|
44
|
-
*/
|
|
45
|
-
behavior: 'async' | 'sync',
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Allows to define a scheme of retries
|
|
49
|
-
*/
|
|
50
|
-
retries: {
|
|
51
|
-
/**
|
|
52
|
-
* The number of retries
|
|
53
|
-
* Default is 3
|
|
54
|
-
*/
|
|
55
|
-
n: number,
|
|
56
|
-
/**
|
|
57
|
-
* The timeout between retries
|
|
58
|
-
* Multiplied by the number of retries
|
|
59
|
-
* So after each retry the timeout is increased e.g. 1000ms * 1, 1000ms * 2, 1000ms * 3
|
|
60
|
-
* Default is 1000
|
|
61
|
-
*/
|
|
62
|
-
timeout: number
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
export type A_TYPES__A_ChannelCallParams = {
|
|
68
|
-
fragments: Array<A_Fragment>,
|
|
69
|
-
components: Array<typeof A_Component>
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Returns a string set of possible methods that could be called on a provided A-Component
|
|
75
|
-
*/
|
|
76
|
-
export type A_TYPES__A_ExecutableMethods<T> = {
|
|
77
|
-
[K in keyof T]: T[K] extends (...arg: Partial<A_TYPES__A_ChannelCallParams>[]) => Promise<any> ? K : never
|
|
78
|
-
}[keyof T];
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Returns a string set of possible methods that could be called on a set of provided set of A-Components
|
|
83
|
-
*/
|
|
84
|
-
export type A_TYPES__A_ChannelAggregateMethods<TClasses extends (A_Component | A_Container)[]> = {
|
|
85
|
-
[K in keyof TClasses]: TClasses[K] extends infer Instance
|
|
86
|
-
? A_TYPES__A_ExecutableMethods<Instance>
|
|
87
|
-
: never;
|
|
88
|
-
}[number];
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Describes a type of proxy object and consists of all callable methods from a set opf provided components
|
|
93
|
-
*/
|
|
94
|
-
export type A_TYPES__A_ChannelAggregated<TClasses extends any[]> = {
|
|
95
|
-
[Method in A_TYPES__A_ChannelAggregateMethods<TClasses>]: {
|
|
96
|
-
[Class in keyof TClasses]: TClasses[Class] extends infer Instance
|
|
97
|
-
? Method extends keyof Instance
|
|
98
|
-
// Just put it here for possible cases with detailed params
|
|
99
|
-
// ? Instance[Method]
|
|
100
|
-
? (params: Partial<A_TYPES__A_ChannelCallParams>) => Promise<any>
|
|
101
|
-
: never
|
|
102
|
-
: never;
|
|
103
|
-
}[number]; // Select the method signature from any matching class
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* A set of parameters are required to construct a new A-Channel
|
|
111
|
-
*/
|
|
112
|
-
export type A_TYPES__A_ChannelConstructor = {
|
|
113
|
-
id: string,
|
|
114
|
-
}
|
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
import { A_TYPES__Command_Constructor, A_TYPES__Command_Listener, A_TYPES__Command_Serialized } from "./A-Command.types";
|
|
2
|
-
import { A_CommonHelper, A_Error, A_IdentityHelper, ASEID } from "@adaas/a-utils";
|
|
3
|
-
import { A_Scope } from "@adaas/a-concept/global/A-Scope/A-Scope.class";
|
|
4
|
-
import { A_CommandContext } from "./context/A_Command.context";
|
|
5
|
-
import { A_CONSTANTS__A_Command_Event, A_CONSTANTS__A_Command_Status } from "./A-Command.constants";
|
|
6
|
-
import { A_Context } from "../A-Context/A-Context.class";
|
|
7
|
-
import { A_CONSTANTS__DEFAULT_ENV_VARIABLES } from "@adaas/a-concept/constants/env.constants";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export class A_Command<
|
|
11
|
-
InvokeType extends A_TYPES__Command_Constructor = A_TYPES__Command_Constructor,
|
|
12
|
-
ResultType extends Record<string, any> = Record<string, any>,
|
|
13
|
-
LifecycleEvents extends string = A_CONSTANTS__A_Command_Event
|
|
14
|
-
> {
|
|
15
|
-
|
|
16
|
-
// ====================================================================
|
|
17
|
-
// ================== Static A-Command Information ====================
|
|
18
|
-
// ====================================================================
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Command Identifier that corresponds to the class name
|
|
22
|
-
*/
|
|
23
|
-
static get code(): string {
|
|
24
|
-
return A_CommonHelper.toKebabCase(this.name);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* DEFAULT Namespace of the command from environment variable A_CONCEPT_NAMESPACE
|
|
29
|
-
* [!] If environment variable is not set, it will default to 'a-concept'
|
|
30
|
-
*/
|
|
31
|
-
static get namespace(): string {
|
|
32
|
-
return A_Context.root.name;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* DEFAULT Scope of the command from environment variable A_CONCEPT_DEFAULT_SCOPE
|
|
37
|
-
* [!] If environment variable is not set, it will default to 'core'
|
|
38
|
-
* [!] Scope is an application specific identifier that can be used to group commands together
|
|
39
|
-
* [!] e.g. 'default', 'core', 'public', 'internal', etc
|
|
40
|
-
*/
|
|
41
|
-
static get scope(): string {
|
|
42
|
-
return process && process.env ? process.env[A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_DEFAULT_SCOPE] || 'core' : 'core';
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// ====================================================================
|
|
46
|
-
// ================ Instance A-Command Information ====================
|
|
47
|
-
// ====================================================================
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* ASEID is a command identifier that is unique across the system
|
|
51
|
-
* A - A_Concept or Application
|
|
52
|
-
* S - System or Scope
|
|
53
|
-
* E - Entity
|
|
54
|
-
* ID - Identifier
|
|
55
|
-
*
|
|
56
|
-
* [!] ASEID is immutable and should not be changed after the entity is created
|
|
57
|
-
*
|
|
58
|
-
* [!] ASEID is composed of the following parts:
|
|
59
|
-
* - namespace: an application specific identifier from where the command is coming from
|
|
60
|
-
* - scope: the scope of the command from Application Namespace
|
|
61
|
-
* - entity: the name of the command from Application Namespace
|
|
62
|
-
* - id: the unique identifier of the command
|
|
63
|
-
*
|
|
64
|
-
* [!] For more information about ASEID, please refer to the ASEID class documentation
|
|
65
|
-
*/
|
|
66
|
-
aseid!: ASEID;
|
|
67
|
-
|
|
68
|
-
protected _result?: ResultType;
|
|
69
|
-
protected _errors?: Set<A_Error>;
|
|
70
|
-
|
|
71
|
-
protected _params!: InvokeType;
|
|
72
|
-
protected _status!: A_CONSTANTS__A_Command_Status
|
|
73
|
-
|
|
74
|
-
protected _listeners: Map<LifecycleEvents | A_CONSTANTS__A_Command_Event, Set<A_TYPES__Command_Listener<
|
|
75
|
-
InvokeType, ResultType,
|
|
76
|
-
LifecycleEvents
|
|
77
|
-
>>> = new Map();
|
|
78
|
-
|
|
79
|
-
protected _startTime?: Date;
|
|
80
|
-
protected _endTime?: Date
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Execution Duration in milliseconds
|
|
84
|
-
*/
|
|
85
|
-
get Duration() {
|
|
86
|
-
return this._endTime && this._startTime
|
|
87
|
-
? this._endTime.getTime() - this._startTime.getTime()
|
|
88
|
-
: this._startTime
|
|
89
|
-
? new Date().getTime() - this._startTime.getTime()
|
|
90
|
-
: undefined;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Command Execution A-Scope that inherits from scope where command was created
|
|
96
|
-
*
|
|
97
|
-
* Command execution context is stored in A_CommandContext fragment within this scope
|
|
98
|
-
*/
|
|
99
|
-
get Scope(): A_Scope {
|
|
100
|
-
return A_Context.scope(this);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Unique code identifying the command type
|
|
105
|
-
* Example: 'user.create', 'task.complete', etc.
|
|
106
|
-
*
|
|
107
|
-
*/
|
|
108
|
-
get Code(): string {
|
|
109
|
-
return (this.constructor as typeof A_Command).code;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Current status of the command
|
|
113
|
-
*/
|
|
114
|
-
get Status(): A_CONSTANTS__A_Command_Status {
|
|
115
|
-
return this._status;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Start time of the command execution
|
|
119
|
-
*/
|
|
120
|
-
get StartedAt(): Date | undefined {
|
|
121
|
-
return this._startTime;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* End time of the command execution
|
|
125
|
-
*/
|
|
126
|
-
get EndedAt(): Date | undefined {
|
|
127
|
-
return this._endTime;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Result of the command execution stored in the context
|
|
131
|
-
*/
|
|
132
|
-
get Result(): ResultType | undefined {
|
|
133
|
-
return this._result;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Errors encountered during the command execution stored in the context
|
|
137
|
-
*/
|
|
138
|
-
get Errors(): Set<A_Error> | undefined {
|
|
139
|
-
return this._errors;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Parameters used to invoke the command
|
|
143
|
-
*/
|
|
144
|
-
get Params(): InvokeType {
|
|
145
|
-
return this._params;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
*
|
|
151
|
-
* A-Command represents an executable command with a specific code and parameters.
|
|
152
|
-
* It can be executed within a given scope and stores execution results and errors.
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* A-Command should be context independent and execution logic should be based on attached components
|
|
156
|
-
*
|
|
157
|
-
* @param code
|
|
158
|
-
* @param params
|
|
159
|
-
*/
|
|
160
|
-
constructor(
|
|
161
|
-
/**
|
|
162
|
-
* Command invocation parameters
|
|
163
|
-
*/
|
|
164
|
-
params: InvokeType | A_TYPES__Command_Serialized<ResultType>
|
|
165
|
-
) {
|
|
166
|
-
if (params && typeof params === 'object' && 'aseid' in params) {
|
|
167
|
-
this.fromJSON(params);
|
|
168
|
-
} else {
|
|
169
|
-
this.fromNew(params);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Extracts the ID from the ASEID
|
|
175
|
-
* ID is the unique identifier of the entity
|
|
176
|
-
*/
|
|
177
|
-
get id(): string | number {
|
|
178
|
-
return this.aseid.id;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Extracts the namespace from the ASEID
|
|
183
|
-
* namespace is an application specific identifier from where the entity is coming from
|
|
184
|
-
*/
|
|
185
|
-
get namespace(): string {
|
|
186
|
-
return this.aseid.namespace
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Extracts the scope from the ASEID
|
|
191
|
-
* scope is the scope of the entity from Application Namespace
|
|
192
|
-
*/
|
|
193
|
-
get scope(): string {
|
|
194
|
-
return this.aseid.scope;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Extracts the entity from the ASEID
|
|
199
|
-
* entity is the name of the entity from Application Namespace
|
|
200
|
-
*
|
|
201
|
-
*/
|
|
202
|
-
get entity(): string {
|
|
203
|
-
return this.aseid.entity;
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
// --------------------------------------------------------------------------
|
|
208
|
-
// A-Command Lifecycle Methods
|
|
209
|
-
// --------------------------------------------------------------------------
|
|
210
|
-
|
|
211
|
-
// should create a new Task in DB with basic records
|
|
212
|
-
async init(): Promise<void> {
|
|
213
|
-
this.emit('init');
|
|
214
|
-
return await this.call('init');
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// Should compile everything before execution
|
|
218
|
-
async compile() {
|
|
219
|
-
this.emit('compile');
|
|
220
|
-
return await this.call('compile');
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
/**
|
|
224
|
-
* Executes the command logic.
|
|
225
|
-
*/
|
|
226
|
-
async execute(): Promise<any> {
|
|
227
|
-
this._status = A_CONSTANTS__A_Command_Status.IN_PROGRESS;
|
|
228
|
-
this._startTime = new Date();
|
|
229
|
-
|
|
230
|
-
try {
|
|
231
|
-
this.emit('execute');
|
|
232
|
-
await this.call('execute');
|
|
233
|
-
await this.complete();
|
|
234
|
-
|
|
235
|
-
} catch (error) {
|
|
236
|
-
await this.fail();
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Marks the command as completed
|
|
242
|
-
*/
|
|
243
|
-
async complete() {
|
|
244
|
-
this._status = A_CONSTANTS__A_Command_Status.COMPLETED;
|
|
245
|
-
this._endTime = new Date();
|
|
246
|
-
this._result = this.Scope.resolve(A_CommandContext).toJSON() as ResultType;
|
|
247
|
-
|
|
248
|
-
this.emit('complete');
|
|
249
|
-
return await this.call('complete');
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* Marks the command as failed
|
|
255
|
-
*/
|
|
256
|
-
async fail() {
|
|
257
|
-
this._status = A_CONSTANTS__A_Command_Status.FAILED;
|
|
258
|
-
this._endTime = new Date();
|
|
259
|
-
this._errors = this.Scope.resolve(A_CommandContext).Errors;
|
|
260
|
-
|
|
261
|
-
this.emit('fail');
|
|
262
|
-
return await this.call('fail');
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
// --------------------------------------------------------------------------
|
|
267
|
-
// A-Command Event-Emitter methods
|
|
268
|
-
// --------------------------------------------------------------------------
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* Registers an event listener for a specific event
|
|
272
|
-
*
|
|
273
|
-
* @param event
|
|
274
|
-
* @param listener
|
|
275
|
-
*/
|
|
276
|
-
on(event: LifecycleEvents | A_CONSTANTS__A_Command_Event, listener: A_TYPES__Command_Listener<InvokeType, ResultType, LifecycleEvents>) {
|
|
277
|
-
if (!this._listeners.has(event)) {
|
|
278
|
-
this._listeners.set(event, new Set());
|
|
279
|
-
}
|
|
280
|
-
this._listeners.get(event)!.add(listener);
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Removes an event listener for a specific event
|
|
284
|
-
*
|
|
285
|
-
* @param event
|
|
286
|
-
* @param listener
|
|
287
|
-
*/
|
|
288
|
-
off(event: LifecycleEvents | A_CONSTANTS__A_Command_Event, listener: A_TYPES__Command_Listener<InvokeType, ResultType, LifecycleEvents>) {
|
|
289
|
-
this._listeners.get(event)?.delete(listener);
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Emits an event to all registered listeners
|
|
293
|
-
*
|
|
294
|
-
* @param event
|
|
295
|
-
*/
|
|
296
|
-
emit(event: LifecycleEvents | A_CONSTANTS__A_Command_Event) {
|
|
297
|
-
this._listeners.get(event)?.forEach(listener => {
|
|
298
|
-
listener(this);
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
// --------------------------------------------------------------------------
|
|
304
|
-
// A-Entity Base Class Overrides
|
|
305
|
-
// --------------------------------------------------------------------------
|
|
306
|
-
// Serialization / Deserialization
|
|
307
|
-
// -------------------------------------------------------------------------
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Allows to create a Command instance from new data
|
|
312
|
-
*
|
|
313
|
-
* @param newEntity
|
|
314
|
-
*/
|
|
315
|
-
fromNew(newEntity: InvokeType): void {
|
|
316
|
-
|
|
317
|
-
this.aseid = new ASEID({
|
|
318
|
-
namespace: (this.constructor as typeof A_Command).namespace,
|
|
319
|
-
scope: (this.constructor as typeof A_Command).scope,
|
|
320
|
-
entity: (this.constructor as typeof A_Command).code,
|
|
321
|
-
id: A_IdentityHelper.generateTimeId(),
|
|
322
|
-
});
|
|
323
|
-
|
|
324
|
-
A_Context.allocate(this, {
|
|
325
|
-
name: `a-command-scope::${this.id}`,
|
|
326
|
-
fragments: [
|
|
327
|
-
new A_CommandContext<ResultType>()
|
|
328
|
-
]
|
|
329
|
-
});
|
|
330
|
-
|
|
331
|
-
this._params = newEntity;
|
|
332
|
-
|
|
333
|
-
this._status = A_CONSTANTS__A_Command_Status.INITIALIZED;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Allows to convert serialized data to Command instance
|
|
340
|
-
*
|
|
341
|
-
* [!] By default it omits params as they are not stored in the serialized data
|
|
342
|
-
*
|
|
343
|
-
* @param serialized
|
|
344
|
-
*/
|
|
345
|
-
fromJSON(serialized: A_TYPES__Command_Serialized<ResultType>): void {
|
|
346
|
-
this.aseid = new ASEID(serialized.aseid);
|
|
347
|
-
const context = new A_CommandContext<ResultType>();
|
|
348
|
-
|
|
349
|
-
A_Context.allocate(this, {
|
|
350
|
-
name: `a-command-scope::${this.id}`,
|
|
351
|
-
fragments: [
|
|
352
|
-
context
|
|
353
|
-
]
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
if (serialized.startedAt) this._startTime = new Date(serialized.startedAt);
|
|
357
|
-
if (serialized.endedAt) this._endTime = new Date(serialized.endedAt);
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
// Restore result and errors in the context
|
|
362
|
-
if (serialized.result) {
|
|
363
|
-
Object.entries(serialized.result).forEach(([key, value]) => {
|
|
364
|
-
context.save(key, value);
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
if (serialized.errors) {
|
|
369
|
-
serialized.errors.forEach(err => {
|
|
370
|
-
context.error(new A_Error(err));
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
this._status = serialized.status || A_CONSTANTS__A_Command_Status.INITIALIZED;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Converts the Command instance to a plain object
|
|
380
|
-
*
|
|
381
|
-
* @returns
|
|
382
|
-
*/
|
|
383
|
-
toJSON(): A_TYPES__Command_Serialized<ResultType> {
|
|
384
|
-
return {
|
|
385
|
-
aseid: this.aseid.toString(),
|
|
386
|
-
code: this.Code,
|
|
387
|
-
status: this._status,
|
|
388
|
-
startedAt: this._startTime ? this._startTime.toISOString() : undefined,
|
|
389
|
-
endedAt: this._endTime ? this._endTime.toISOString() : undefined,
|
|
390
|
-
duration: this.Duration,
|
|
391
|
-
result: this.Result,
|
|
392
|
-
errors: this.Errors ? Array.from(this.Errors).map(err => err.toJSON()) : undefined
|
|
393
|
-
}
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* Call a feature of the component with the provided scope
|
|
400
|
-
*
|
|
401
|
-
* [!] If the provided scope is not inherited from the entity scope, it will be inherited
|
|
402
|
-
*
|
|
403
|
-
* @param lifecycleMethod
|
|
404
|
-
* @param args
|
|
405
|
-
*/
|
|
406
|
-
async call(
|
|
407
|
-
feature: string,
|
|
408
|
-
scope: A_Scope = this.Scope
|
|
409
|
-
) {
|
|
410
|
-
if (scope && !scope.isInheritedFrom(this.Scope)) {
|
|
411
|
-
scope = scope.inherit(this.Scope);
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
const newFeature = A_Context.feature(this, feature, scope);
|
|
415
|
-
|
|
416
|
-
return await newFeature.process();
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export enum A_CONSTANTS__A_Command_Status {
|
|
4
|
-
INITIALIZED = 'INITIALIZED',
|
|
5
|
-
IN_PROGRESS = 'IN_PROGRESS',
|
|
6
|
-
COMPLETED = 'COMPLETED',
|
|
7
|
-
FAILED = 'FAILED',
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* A-Command Lifecycle Features
|
|
12
|
-
*/
|
|
13
|
-
export enum A_CONSTANTS_A_Command_Features {
|
|
14
|
-
INIT = 'init',
|
|
15
|
-
COMPLIED = 'complied',
|
|
16
|
-
EXECUTE = 'execute',
|
|
17
|
-
COMPLETE = 'complete',
|
|
18
|
-
FAIL = 'fail',
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export type A_CONSTANTS__A_Command_Event = 'init' | 'compile' | 'execute' | 'complete' | 'fail';
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { A_Meta } from "../A-Meta/A-Meta.class";
|
|
2
|
-
import { A_TYPES__CommandMeta, A_TYPES__CommandMetaKey } from "./A-Command.types";
|
|
3
|
-
import { A_TYPES__A_DefineDecorator_Meta } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export class A_CommandMeta extends A_Meta<A_TYPES__CommandMeta> {
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Returns all features defined in the Container
|
|
10
|
-
*
|
|
11
|
-
* @returns
|
|
12
|
-
*/
|
|
13
|
-
features(): Array<A_TYPES__A_DefineDecorator_Meta> {
|
|
14
|
-
|
|
15
|
-
const features = this.get(A_TYPES__CommandMetaKey.FEATURES);
|
|
16
|
-
|
|
17
|
-
return features?.toArray()
|
|
18
|
-
// returns all extensions that match the feature
|
|
19
|
-
.map(([, feature]) => feature) || [];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { A_Command } from "./A-Command.class";
|
|
2
|
-
import { A_CONSTANTS__A_Command_Event, A_CONSTANTS__A_Command_Status } from "./A-Command.constants";
|
|
3
|
-
import { A_TYPES__Error } from "@adaas/a-utils";
|
|
4
|
-
import { A_Meta } from "../A-Meta/A-Meta.class";
|
|
5
|
-
import { A_TYPES__A_DefineDecorator_Meta, A_TYPES__A_ExtendDecorator_Meta } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export type A_TYPES__Command_Constructor = {
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export type A_TYPES__Command_Serialized<
|
|
15
|
-
ResultType extends Record<string, any> = Record<string, any>
|
|
16
|
-
> = {
|
|
17
|
-
aseid: string,
|
|
18
|
-
code: string;
|
|
19
|
-
status: A_CONSTANTS__A_Command_Status;
|
|
20
|
-
|
|
21
|
-
startedAt?: string;
|
|
22
|
-
endedAt?: string;
|
|
23
|
-
duration?: number;
|
|
24
|
-
|
|
25
|
-
result?: ResultType;
|
|
26
|
-
errors?: Array<A_TYPES__Error>;
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export type A_TYPES__Command_Listener<
|
|
34
|
-
InvokeType extends A_TYPES__Command_Constructor = A_TYPES__Command_Constructor,
|
|
35
|
-
ResultType extends Record<string, any> = Record<string, any>,
|
|
36
|
-
LifecycleEvents extends string = A_CONSTANTS__A_Command_Event
|
|
37
|
-
> = (command?: A_Command<InvokeType, ResultType, LifecycleEvents>) => void;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
export type A_TYPES__CommandMeta = {
|
|
45
|
-
[A_TYPES__CommandMetaKey.EXTENSIONS]: A_Meta<{
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Where Key the regexp for what to apply the extension
|
|
49
|
-
* A set of container names or a wildcard, or a regexp
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* Where value is the extension instructions
|
|
53
|
-
*/
|
|
54
|
-
[Key: string]: A_TYPES__A_ExtendDecorator_Meta[]
|
|
55
|
-
|
|
56
|
-
}>, case
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
[A_TYPES__CommandMetaKey.FEATURES]: A_Meta<{
|
|
60
|
-
/**
|
|
61
|
-
* Where Key is the name of the feature
|
|
62
|
-
*
|
|
63
|
-
* Where value is the list of features
|
|
64
|
-
*/
|
|
65
|
-
[Key: string]: A_TYPES__A_DefineDecorator_Meta
|
|
66
|
-
}>
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export enum A_TYPES__CommandMetaKey {
|
|
70
|
-
EXTENSIONS = 'a-command-extensions',
|
|
71
|
-
FEATURES = 'a-command-features',
|
|
72
|
-
ABSTRACTIONS = 'a-command-abstractions',
|
|
73
|
-
}
|