@adaas/a-concept 0.0.64 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +18 -18
- package/dist/src/global/A-Entity/A-Entity.class.js +36 -43
- 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 +39 -52
- 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
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { A_Container } from "../A-Container/A-Container.class";
|
|
2
|
+
import { A_Abstraction } from "../A-Abstraction/A-Abstraction.class";
|
|
3
|
+
import { A_Abstraction_Extend } from "@adaas/a-concept/global/A-Abstraction/A-Abstraction-Extend.decorator";
|
|
4
|
+
import { A_Scope } from "../A-Scope/A-Scope.class";
|
|
5
|
+
import { A_Context } from "../A-Context/A-Context.class";
|
|
6
|
+
import { A_TYPES__ConceptAbstractions } from "./A-Concept.constants";
|
|
7
|
+
import { A_TYPES__Concept_Init } from "./A-Concept.types";
|
|
8
|
+
import { A_TYPES__AbstractionDecoratorConfig } from "../A-Abstraction/A-Abstraction.types";
|
|
9
|
+
import { A_Feature } from "../A-Feature/A-Feature.class";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
export class A_Concept<
|
|
14
|
+
_Imports extends A_Container[] = A_Container[]
|
|
15
|
+
> {
|
|
16
|
+
|
|
17
|
+
// ==============================================================================
|
|
18
|
+
// ==================== STATIC LIFECYCLE DECORATORS ===========================
|
|
19
|
+
// ==============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Load the concept. This step runs before any other steps to ensure that all components are loaded.
|
|
22
|
+
*/
|
|
23
|
+
static Load(
|
|
24
|
+
/**
|
|
25
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
26
|
+
*/
|
|
27
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
28
|
+
): ReturnType<typeof A_Abstraction_Extend> {
|
|
29
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Load, config);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Publish the concept to ADAAS platform. (Or any other place defined in the concept)
|
|
34
|
+
*
|
|
35
|
+
* [!] To extend the logic just create a custom containers and override the default behavior.
|
|
36
|
+
*/
|
|
37
|
+
static Publish(
|
|
38
|
+
/**
|
|
39
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
40
|
+
*/
|
|
41
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
42
|
+
): ReturnType<typeof A_Abstraction_Extend> {
|
|
43
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Publish);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Deploy the concept to the environment.
|
|
48
|
+
*/
|
|
49
|
+
static Deploy(
|
|
50
|
+
/**
|
|
51
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
52
|
+
*/
|
|
53
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
54
|
+
) {
|
|
55
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Deploy, config);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Compiles the Concept in case there are some containers that require that.
|
|
60
|
+
*
|
|
61
|
+
* Can be used for static websites or any other concept that requires a build step.
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
static Build(
|
|
65
|
+
/**
|
|
66
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
67
|
+
*/
|
|
68
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
69
|
+
) {
|
|
70
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Build, config);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Main execution of the concept.
|
|
75
|
+
*/
|
|
76
|
+
static Run(
|
|
77
|
+
/**
|
|
78
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
79
|
+
*/
|
|
80
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
81
|
+
) {
|
|
82
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Run, config);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Start the concept. Uses for servers or any other background services.
|
|
87
|
+
*/
|
|
88
|
+
static Start(
|
|
89
|
+
/**
|
|
90
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
91
|
+
*/
|
|
92
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
93
|
+
) {
|
|
94
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Start, config);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Stop the concept. Uses for servers or any other background services.
|
|
99
|
+
*/
|
|
100
|
+
static Stop(
|
|
101
|
+
/**
|
|
102
|
+
* provide additional configuration for the abstraction extension to make it dependent on other factors
|
|
103
|
+
*/
|
|
104
|
+
config?: Partial<A_TYPES__AbstractionDecoratorConfig>
|
|
105
|
+
) {
|
|
106
|
+
return A_Abstraction.Extend(A_TYPES__ConceptAbstractions.Stop, config);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Name of the concept
|
|
112
|
+
*
|
|
113
|
+
* By default, the name of the Concept is 'a-concept'
|
|
114
|
+
*/
|
|
115
|
+
private _name!: string;
|
|
116
|
+
/**
|
|
117
|
+
* A list of internally defined containers that the concept uses.
|
|
118
|
+
*/
|
|
119
|
+
protected _containers!: A_Container[];
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
// ==============================================================================
|
|
124
|
+
// ========================== MAIN Methods ======================================
|
|
125
|
+
// ==============================================================================
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* A-Concept is a placeholder for the concept of the any program.
|
|
130
|
+
*
|
|
131
|
+
* Concept - could be any Program regardless environment and it's goal.
|
|
132
|
+
* It could be mobile, web or simple html page.
|
|
133
|
+
* All depends on Containers and Components installed and provided in the Concept.
|
|
134
|
+
*
|
|
135
|
+
*
|
|
136
|
+
* [!] Concept operates ONLY with all Components and Containers provided to achieve the goal.
|
|
137
|
+
*
|
|
138
|
+
*
|
|
139
|
+
* @param props - Initialization properties for the Concept
|
|
140
|
+
*/
|
|
141
|
+
constructor(
|
|
142
|
+
protected props: A_TYPES__Concept_Init<_Imports>
|
|
143
|
+
) {
|
|
144
|
+
this._name = props.name || A_Context.root.name;
|
|
145
|
+
|
|
146
|
+
if (props.components && props.components.length)
|
|
147
|
+
props.components.forEach(component => this.scope.register(component))
|
|
148
|
+
|
|
149
|
+
if (props.fragments && props.fragments.length)
|
|
150
|
+
props.fragments.forEach(fragment => this.scope.register(fragment))
|
|
151
|
+
|
|
152
|
+
if (props.entities && props.entities.length)
|
|
153
|
+
props.entities.forEach(entity => this.scope.register(entity as any))
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
this._containers = props.containers || [];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Name of the concept
|
|
161
|
+
*/
|
|
162
|
+
get name() {
|
|
163
|
+
return A_Context.root.name;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The primary Root scope of the concept.
|
|
167
|
+
*/
|
|
168
|
+
get scope() {
|
|
169
|
+
return A_Context.root;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Register a class or value in the concept scope.
|
|
174
|
+
*/
|
|
175
|
+
get register(): A_Scope['register'] {
|
|
176
|
+
return this.scope.register.bind(this.scope);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Resolve a class or value from the concept scope.
|
|
181
|
+
*/
|
|
182
|
+
get resolve(): A_Scope['resolve'] {
|
|
183
|
+
return this.scope.resolve.bind(this.scope);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
// =======================================================================
|
|
188
|
+
// ========================== LIFECYCLE ================================
|
|
189
|
+
// =======================================================================
|
|
190
|
+
/**
|
|
191
|
+
* Load the concept.
|
|
192
|
+
*/
|
|
193
|
+
async load(
|
|
194
|
+
scope?: A_Scope,
|
|
195
|
+
) {
|
|
196
|
+
const abstraction = new A_Abstraction({
|
|
197
|
+
name: A_TYPES__ConceptAbstractions.Load,
|
|
198
|
+
containers: this._containers,
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
await abstraction.process(scope);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Run the concept.
|
|
205
|
+
*/
|
|
206
|
+
async run(
|
|
207
|
+
scope?: A_Scope,
|
|
208
|
+
) {
|
|
209
|
+
const abstraction = new A_Abstraction({
|
|
210
|
+
name: A_TYPES__ConceptAbstractions.Run,
|
|
211
|
+
containers: this._containers,
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
await abstraction.process(scope);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Start the concept.
|
|
218
|
+
*
|
|
219
|
+
* @param params
|
|
220
|
+
*/
|
|
221
|
+
async start(
|
|
222
|
+
scope?: A_Scope,
|
|
223
|
+
) {
|
|
224
|
+
const abstraction = new A_Abstraction({
|
|
225
|
+
name: A_TYPES__ConceptAbstractions.Start,
|
|
226
|
+
containers: this._containers,
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
await abstraction.process(scope);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Stop the concept.
|
|
233
|
+
*
|
|
234
|
+
* @param params
|
|
235
|
+
*/
|
|
236
|
+
async stop(
|
|
237
|
+
scope?: A_Scope,
|
|
238
|
+
) {
|
|
239
|
+
const abstraction = new A_Abstraction({
|
|
240
|
+
name: A_TYPES__ConceptAbstractions.Stop,
|
|
241
|
+
containers: this._containers,
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
await abstraction.process(scope);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Build the concept.
|
|
248
|
+
*/
|
|
249
|
+
async build(
|
|
250
|
+
scope?: A_Scope,
|
|
251
|
+
) {
|
|
252
|
+
const abstraction = new A_Abstraction({
|
|
253
|
+
name: A_TYPES__ConceptAbstractions.Build,
|
|
254
|
+
containers: this._containers,
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
await abstraction.process(scope);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Deploy the concept.
|
|
261
|
+
*/
|
|
262
|
+
async deploy(
|
|
263
|
+
scope?: A_Scope,
|
|
264
|
+
) {
|
|
265
|
+
const abstraction = new A_Abstraction({
|
|
266
|
+
name: A_TYPES__ConceptAbstractions.Deploy,
|
|
267
|
+
containers: this._containers,
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
await abstraction.process(scope);
|
|
271
|
+
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Publish the concept.
|
|
275
|
+
*/
|
|
276
|
+
async publish(
|
|
277
|
+
scope?: A_Scope,
|
|
278
|
+
) {
|
|
279
|
+
const abstraction = new A_Abstraction({
|
|
280
|
+
name: A_TYPES__ConceptAbstractions.Publish,
|
|
281
|
+
containers: this._containers,
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
await abstraction.process(scope);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
// =======================================================================
|
|
289
|
+
// ========================== CALL =====================================
|
|
290
|
+
// =======================================================================
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Call the specific method of the concept or included modules.
|
|
295
|
+
*/
|
|
296
|
+
async call<
|
|
297
|
+
K extends Record<_Imports[number]['name'], string>
|
|
298
|
+
>(
|
|
299
|
+
/**
|
|
300
|
+
* Name of the method to call
|
|
301
|
+
*/
|
|
302
|
+
method: K[keyof K],
|
|
303
|
+
/**
|
|
304
|
+
* Container in which the method is located
|
|
305
|
+
*/
|
|
306
|
+
container: _Imports[number],
|
|
307
|
+
) {
|
|
308
|
+
const feature = new A_Feature({ name: method, component: container });
|
|
309
|
+
|
|
310
|
+
return await feature.process();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export enum A_TYPES__ConceptAbstractions {
|
|
2
|
+
/**
|
|
3
|
+
* Run the concept.
|
|
4
|
+
*/
|
|
5
|
+
Run = 'run',
|
|
6
|
+
/**
|
|
7
|
+
* Build the concept.
|
|
8
|
+
*/
|
|
9
|
+
Build = 'build',
|
|
10
|
+
/**
|
|
11
|
+
* Publish the concept.
|
|
12
|
+
*/
|
|
13
|
+
Publish = 'publish',
|
|
14
|
+
/**
|
|
15
|
+
* Deploy the concept.
|
|
16
|
+
*/
|
|
17
|
+
Deploy = 'deploy',
|
|
18
|
+
/**
|
|
19
|
+
* Load the concept.
|
|
20
|
+
*/
|
|
21
|
+
Load = 'load',
|
|
22
|
+
/**
|
|
23
|
+
* Start the concept.
|
|
24
|
+
*/
|
|
25
|
+
Start = 'start',
|
|
26
|
+
/**
|
|
27
|
+
* Stop the concept.
|
|
28
|
+
*/
|
|
29
|
+
Stop = 'stop',
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
export enum A_TYPES__ConceptMetaKey {
|
|
35
|
+
LIFECYCLE = 'a-component-extensions',
|
|
36
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
|
|
3
|
+
import { A_Meta } from "../A-Meta/A-Meta.class";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export class A_ConceptMeta extends A_Meta<any> {
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
constructor(
|
|
11
|
+
private containers: Array<A_Container>,
|
|
12
|
+
) {
|
|
13
|
+
super();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { A_TYPES__A_InjectDecorator_Meta } from "@adaas/a-concept/global/A-Inject/A-Inject.types";
|
|
2
|
+
import { A_Container } from "../A-Container/A-Container.class";
|
|
3
|
+
import { A_Concept } from "./A-Concept.class";
|
|
4
|
+
import { A_TYPES__FeatureExtendDecoratorBehaviorConfig } from "../A-Feature/A-Feature.types";
|
|
5
|
+
import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types";
|
|
6
|
+
import { A_TYPES__Fragment_Constructor } from "../A-Fragment/A-Fragment.types";
|
|
7
|
+
import { A_TYPES__Entity_Constructor } from "../A-Entity/A-Entity.types";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// --------------------------- Primary Types ----------------------------------
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Concept constructor type
|
|
15
|
+
* Uses the generic type T to specify the type of the concept
|
|
16
|
+
*/
|
|
17
|
+
export type A_TYPES__Concept_Constructor<T = A_Concept> = new (...args: any[]) => T;
|
|
18
|
+
/**
|
|
19
|
+
* Concept initialization type
|
|
20
|
+
* Uses the generic type T to specify the type of containers that the concept will use
|
|
21
|
+
*/
|
|
22
|
+
export type A_TYPES__Concept_Init<
|
|
23
|
+
T extends Array<A_Container>
|
|
24
|
+
> = {
|
|
25
|
+
/**
|
|
26
|
+
* The name of the Concept
|
|
27
|
+
* If name is not provided, will be used from environment variable A_CONCEPT_NAME
|
|
28
|
+
*
|
|
29
|
+
* By default, the name of the Concept is 'a-concept'
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
name?: string,
|
|
33
|
+
/**
|
|
34
|
+
* A set of Context Fragments to register globally for the concept.
|
|
35
|
+
* These fragments will be available in the global context.
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
fragments?: Array<InstanceType<A_TYPES__Fragment_Constructor>>,
|
|
39
|
+
/**
|
|
40
|
+
* A set of Containers that the concept depends on.
|
|
41
|
+
* These containers will create a new Container for the concept.
|
|
42
|
+
*/
|
|
43
|
+
containers?: T,
|
|
44
|
+
/**
|
|
45
|
+
* A set of Entities that the concept can use.
|
|
46
|
+
* These components will be used in the concept.
|
|
47
|
+
*/
|
|
48
|
+
entities?: Array<InstanceType<A_TYPES__Entity_Constructor> | A_TYPES__Entity_Constructor>
|
|
49
|
+
/**
|
|
50
|
+
* A set of Components available for all containers and fragments in the concept.
|
|
51
|
+
* These components will be registered in the root scope of the concept.
|
|
52
|
+
*
|
|
53
|
+
* [!] Note that these components will be available in all containers and fragments in the concept.
|
|
54
|
+
*/
|
|
55
|
+
components?: Array<A_TYPES__Component_Constructor>
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Concept serialized type
|
|
59
|
+
*/
|
|
60
|
+
export type A_TYPES__Concept_Serialized = {
|
|
61
|
+
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// --------------------------- Meta Types -------------------------------------
|
|
67
|
+
// ============================================================================
|
|
68
|
+
/**
|
|
69
|
+
* Uses as a transfer object to pass configurations to Feature constructor
|
|
70
|
+
*/
|
|
71
|
+
export type A_TYPES__ConceptAbstractionMeta = {
|
|
72
|
+
/**
|
|
73
|
+
* The name of original Extension Definition
|
|
74
|
+
*/
|
|
75
|
+
name: string,
|
|
76
|
+
/**
|
|
77
|
+
* The name of the handler that will be used to apply the extension
|
|
78
|
+
*/
|
|
79
|
+
handler: string,
|
|
80
|
+
/**
|
|
81
|
+
* The arguments that will be passed to the handler
|
|
82
|
+
*/
|
|
83
|
+
args: A_TYPES__A_InjectDecorator_Meta
|
|
84
|
+
} & A_TYPES__FeatureExtendDecoratorBehaviorConfig
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Uses to define the extension that will be applied to the Concept
|
|
90
|
+
*/
|
|
91
|
+
export type A_TYPES__ConceptAbstraction = {
|
|
92
|
+
/**
|
|
93
|
+
* The name of original Extension Definition
|
|
94
|
+
*/
|
|
95
|
+
name: string,
|
|
96
|
+
/**
|
|
97
|
+
* The name of the handler that will be used to apply the extension
|
|
98
|
+
*/
|
|
99
|
+
handler: string,
|
|
100
|
+
} & A_TYPES__FeatureExtendDecoratorBehaviorConfig
|
|
@@ -1,120 +1,79 @@
|
|
|
1
|
-
import { A_TYPES__ContainerConstructor } from "./A-Container.types";
|
|
2
|
-
import { A_TYPES__Required } from "@adaas/a-utils";
|
|
3
1
|
import { A_Context } from "../A-Context/A-Context.class";
|
|
2
|
+
import { A_Feature } from "../A-Feature/A-Feature.class";
|
|
4
3
|
import { A_Scope } from "../A-Scope/A-Scope.class";
|
|
5
|
-
import {
|
|
4
|
+
import { A_TYPES__Container_Init } from "./A-Container.types";
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
|
|
9
|
-
/**
|
|
10
|
-
* This class should combine Components to achieve the goal withing Concept
|
|
11
|
-
*
|
|
12
|
-
* Container is a direct container that should be "run" to make Concept work.
|
|
13
|
-
* So because of that Container can be:
|
|
14
|
-
* - HTTP Server
|
|
15
|
-
* - BASH Script
|
|
16
|
-
* - Database Connection
|
|
17
|
-
* - Microservice
|
|
18
|
-
* - etc.
|
|
19
|
-
*/
|
|
20
8
|
export class A_Container {
|
|
21
|
-
protected readonly config!: Partial<A_TYPES__ContainerConstructor<any>>;
|
|
22
9
|
|
|
23
10
|
/**
|
|
24
|
-
*
|
|
11
|
+
* Configuration of the container that will be used to run it.
|
|
12
|
+
*/
|
|
13
|
+
protected readonly config!: Partial<A_TYPES__Container_Init>;
|
|
14
|
+
/**
|
|
15
|
+
* Name of the container
|
|
25
16
|
*/
|
|
26
|
-
ready!: Promise<void>;
|
|
27
|
-
|
|
28
17
|
get name() {
|
|
29
18
|
return this.config.name || this.constructor.name;
|
|
30
19
|
}
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Returns the scope where the container is registered
|
|
22
|
+
*/
|
|
23
|
+
get scope(): A_Scope {
|
|
33
24
|
return A_Context.scope(this);
|
|
34
25
|
}
|
|
35
26
|
|
|
36
27
|
|
|
37
28
|
/**
|
|
38
|
-
*
|
|
29
|
+
* This class should combine Components to achieve the goal withing Concept
|
|
39
30
|
*
|
|
40
|
-
*
|
|
31
|
+
* Container is a direct container that should be "run" to make Concept work.
|
|
32
|
+
* So because of that Container can be:
|
|
33
|
+
* - HTTP Server
|
|
34
|
+
* - BASH Script
|
|
35
|
+
* - Database Connection
|
|
36
|
+
* - Microservice
|
|
37
|
+
* - etc.
|
|
38
|
+
*
|
|
39
|
+
* @param config - Configuration of the container that will be used to run it.
|
|
41
40
|
*/
|
|
42
41
|
constructor(
|
|
43
42
|
/**
|
|
44
43
|
* Configuration of the container that will be used to run it.
|
|
45
44
|
*/
|
|
46
|
-
config: Partial<
|
|
45
|
+
config: Partial<A_TYPES__Container_Init>
|
|
47
46
|
) {
|
|
48
47
|
this.config = config;
|
|
49
48
|
|
|
50
|
-
A_Context.allocate(this,
|
|
51
|
-
name: this.name,
|
|
52
|
-
...config
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
async call(
|
|
58
|
-
feature: string,
|
|
59
|
-
scope: A_Scope = this.Scope
|
|
60
|
-
) {
|
|
61
|
-
|
|
62
|
-
if (scope && !scope.isInheritedFrom(this.Scope)) {
|
|
63
|
-
scope = scope.inherit(this.Scope);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const newFeature = A_Context.feature(this, feature, scope);
|
|
68
|
-
|
|
69
|
-
return await newFeature.process();
|
|
49
|
+
A_Context.allocate(this, this.config);
|
|
70
50
|
}
|
|
71
51
|
|
|
72
52
|
|
|
73
53
|
/**
|
|
74
|
-
*
|
|
54
|
+
* Calls the feature with the given name in the given scope
|
|
55
|
+
*
|
|
56
|
+
* [!] Note: This method creates a new instance of the feature every time it is called
|
|
75
57
|
*
|
|
76
|
-
* @param feature
|
|
58
|
+
* @param feature - the name of the feature to call
|
|
59
|
+
* @param scope - the scope in which to call the feature
|
|
60
|
+
* @returns - void
|
|
77
61
|
*/
|
|
78
|
-
|
|
62
|
+
async call(
|
|
63
|
+
/**
|
|
64
|
+
* Name of the feature to call
|
|
65
|
+
*/
|
|
79
66
|
feature: string,
|
|
80
|
-
|
|
67
|
+
/**
|
|
68
|
+
* scope in which the feature will be executed
|
|
69
|
+
*/
|
|
70
|
+
scope?: A_Scope
|
|
81
71
|
) {
|
|
72
|
+
const newFeature = new A_Feature({
|
|
73
|
+
name: feature,
|
|
74
|
+
component: this
|
|
75
|
+
});
|
|
82
76
|
|
|
83
|
-
|
|
84
|
-
scope = scope.inherit(this.Scope);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return A_Context.featureDefinition(this, feature, scope);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
// ==============================================================
|
|
92
|
-
// ======================= HOOKS ================================
|
|
93
|
-
// ==============================================================
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Before init hook to be used in inherited classes
|
|
97
|
-
*
|
|
98
|
-
* @returns
|
|
99
|
-
*/
|
|
100
|
-
protected async onBeforeInit() {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Main initialization method for the Container
|
|
106
|
-
*/
|
|
107
|
-
protected async onInit() {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* After init hook to be used in inherited classes
|
|
113
|
-
*
|
|
114
|
-
* @returns
|
|
115
|
-
*/
|
|
116
|
-
protected async onAfterInit() {
|
|
117
|
-
return;
|
|
77
|
+
return await newFeature.process(scope);
|
|
118
78
|
}
|
|
119
|
-
|
|
120
79
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { A_TYPES__ContainerMeta, } from "./A-Container.types";
|
|
2
|
+
import { A_TYPES__A_InjectDecorator_Meta } from "@adaas/a-concept/global/A-Inject/A-Inject.types";
|
|
3
|
+
import { A_TYPES__ConceptAbstraction, A_TYPES__ConceptAbstractionMeta } from "../A-Concept/A-Concept.types";
|
|
3
4
|
import { A_Meta } from "../A-Meta/A-Meta.class";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
A_TYPES__ContainerMetaKey
|
|
7
|
-
} from "./A-Container.types";
|
|
8
|
-
import { A_TYPES__A_DefineDecorator_Meta } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types";
|
|
5
|
+
import { A_TYPES__ContainerMetaKey } from "./A-Container.constants";
|
|
6
|
+
import { A_TYPES__FeatureDefineDecoratorMeta } from "../A-Feature/A-Feature.types";
|
|
9
7
|
|
|
10
8
|
|
|
11
9
|
|
|
@@ -34,7 +32,7 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
|
|
|
34
32
|
*
|
|
35
33
|
* @returns
|
|
36
34
|
*/
|
|
37
|
-
features(): Array<
|
|
35
|
+
features(): Array<A_TYPES__FeatureDefineDecoratorMeta> {
|
|
38
36
|
|
|
39
37
|
const features = this.get(A_TYPES__ContainerMetaKey.FEATURES);
|
|
40
38
|
|
|
@@ -50,15 +48,13 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
|
|
|
50
48
|
* @returns
|
|
51
49
|
*/
|
|
52
50
|
abstractions(
|
|
53
|
-
abstraction:
|
|
51
|
+
abstraction: A_TYPES__ConceptAbstraction
|
|
54
52
|
): A_TYPES__ConceptAbstractionMeta[] {
|
|
55
53
|
const steps: A_TYPES__ConceptAbstractionMeta[] = [];
|
|
56
54
|
|
|
57
55
|
const abstractions = this.get(A_TYPES__ContainerMetaKey.ABSTRACTIONS);
|
|
58
56
|
const injections = this.get(A_TYPES__ContainerMetaKey.INJECTIONS);
|
|
59
57
|
|
|
60
|
-
// const constructor = A_Context.component(this);
|
|
61
|
-
|
|
62
58
|
|
|
63
59
|
abstractions
|
|
64
60
|
// returns all extensions that match the feature
|