@adaas/a-concept 0.0.7 → 0.0.8
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/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +3 -1
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js +22 -4
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.class.d.ts +1 -0
- package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
- package/dist/src/global/A-Scope/A-Scope.class.d.ts +2 -2
- package/package.json +1 -1
- package/src/decorators/A-Feature/A-Feature-Define.decorator.ts +31 -6
- package/src/global/A-Context/A-Context.class.ts +10 -1
- package/src/global/A-Scope/A-Scope.class.ts +2 -2
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { A_Component } from "../../global/A-Component/A-Component.class";
|
|
1
2
|
import { A_TYPES__A_FeatureDecoratorConfig, A_TYPES__A_FeatureDecoratorDescriptor } from "./A-Feature.decorator.types";
|
|
2
3
|
import { A_Container } from "../../global/A-Container/A-Container.class";
|
|
4
|
+
import { A_Entity } from "@adaas/a-utils";
|
|
3
5
|
/**
|
|
4
6
|
* A-Feature decorator
|
|
5
7
|
*
|
|
@@ -13,4 +15,4 @@ import { A_Container } from "../../global/A-Container/A-Container.class";
|
|
|
13
15
|
* @param params
|
|
14
16
|
* @returns
|
|
15
17
|
*/
|
|
16
|
-
export declare function A_Feature_Define(config?: Partial<A_TYPES__A_FeatureDecoratorConfig>): (target: A_Container<any
|
|
18
|
+
export declare function A_Feature_Define(config?: Partial<A_TYPES__A_FeatureDecoratorConfig>): (target: A_Container<any> | A_Entity | A_Component, propertyKey: string, descriptor: A_TYPES__A_FeatureDecoratorDescriptor) => void;
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.A_Feature_Define = A_Feature_Define;
|
|
4
|
+
const A_Component_class_1 = require("../../global/A-Component/A-Component.class");
|
|
5
|
+
const A_Container_class_1 = require("../../global/A-Container/A-Container.class");
|
|
4
6
|
const A_Container_types_1 = require("../../global/A-Container/A-Container.types");
|
|
5
7
|
const A_Context_class_1 = require("../../global/A-Context/A-Context.class");
|
|
8
|
+
const a_utils_1 = require("@adaas/a-utils");
|
|
9
|
+
const A_Entity_types_1 = require("../../global/A-Entity/A-Entity.types");
|
|
10
|
+
const A_Component_types_1 = require("../../global/A-Component/A-Component.types");
|
|
6
11
|
/**
|
|
7
12
|
* A-Feature decorator
|
|
8
13
|
*
|
|
@@ -18,10 +23,23 @@ const A_Context_class_1 = require("../../global/A-Context/A-Context.class");
|
|
|
18
23
|
*/
|
|
19
24
|
function A_Feature_Define(config = {}) {
|
|
20
25
|
return function (target, propertyKey, descriptor) {
|
|
26
|
+
const meta = A_Context_class_1.A_Context.meta(target);
|
|
27
|
+
let metaKey;
|
|
28
|
+
switch (true) {
|
|
29
|
+
case target instanceof a_utils_1.A_Entity:
|
|
30
|
+
metaKey = A_Entity_types_1.A_TYPES__EntityMetaKey.FEATURES;
|
|
31
|
+
break;
|
|
32
|
+
case target instanceof A_Container_class_1.A_Container:
|
|
33
|
+
metaKey = A_Container_types_1.A_TYPES__ContainerMetaKey.FEATURES;
|
|
34
|
+
break;
|
|
35
|
+
case target instanceof A_Component_class_1.A_Component:
|
|
36
|
+
metaKey = A_Component_types_1.A_TYPES__ComponentMetaKey.FEATURES;
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
throw new Error(`A-Feature cannot be defined on the ${target} level`);
|
|
40
|
+
}
|
|
21
41
|
// Get the existed metadata or create a new one
|
|
22
|
-
const existedMeta =
|
|
23
|
-
.meta(target)
|
|
24
|
-
.get(A_Container_types_1.A_TYPES__ContainerMetaKey.FEATURES)
|
|
42
|
+
const existedMeta = meta.get(metaKey)
|
|
25
43
|
|| new Map();
|
|
26
44
|
// Set the metadata of the method to define a custom Feature with name
|
|
27
45
|
existedMeta.set(propertyKey, {
|
|
@@ -31,7 +49,7 @@ function A_Feature_Define(config = {}) {
|
|
|
31
49
|
// Update the metadata of the container with the new Feature definition
|
|
32
50
|
A_Context_class_1.A_Context
|
|
33
51
|
.meta(target)
|
|
34
|
-
.set(
|
|
52
|
+
.set(metaKey, existedMeta);
|
|
35
53
|
};
|
|
36
54
|
}
|
|
37
55
|
//# sourceMappingURL=A-Feature-Define.decorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Feature-Define.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/A-Feature/A-Feature-Define.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"A-Feature-Define.decorator.js","sourceRoot":"","sources":["../../../../src/decorators/A-Feature/A-Feature-Define.decorator.ts"],"names":[],"mappings":";;AA6BA,4CAmDC;AAhFD,6FAAoF;AAKpF,6FAAoF;AACpF,6FAAkG;AAClG,uFAA8E;AAC9E,4CAA0C;AAI1C,oFAAyF;AACzF,6FAAkG;AAGlG;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAC5B,SAAqD,EAAE;IAEvD,OAAO,UACH,MAAiD,EACjD,WAAmB,EACnB,UAAiD;QAGjD,MAAM,IAAI,GAAqD,2BAAS,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;QAE7F,IAAI,OAAO,CAAC;QAGZ,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM,YAAY,kBAAQ;gBAC3B,OAAO,GAAG,uCAAsB,CAAC,QAAQ,CAAC;gBAC1C,MAAM;YACV,KAAK,MAAM,YAAY,+BAAW;gBAC9B,OAAO,GAAG,6CAAyB,CAAC,QAAQ,CAAA;gBAC5C,MAAM;YACV,KAAK,MAAM,YAAY,+BAAW;gBAC9B,OAAO,GAAG,6CAAyB,CAAC,QAAQ,CAAA;gBAC5C,MAAM;YACV;gBACI,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,QAAQ,CAAC,CAAC;QAC9E,CAAC;QAGD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;eAC9B,IAAI,GAAG,EAAE,CAAC;QAGjB,uEAAuE;QACvE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,OAAO,EAAE,WAAW;YACpB,MAAM,kCACC,MAAM,KACT,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,GACnE;SACJ,CAAC,CAAC;QAEH,wEAAwE;QACxE,2BAAS;aACJ,IAAI,CAAC,MAAa,CAAC;aACnB,GAAG,CACA,OAAO,EACP,WAAW,CACd,CAAC;IACV,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -63,6 +63,7 @@ export declare class A_Context {
|
|
|
63
63
|
static meta(container: typeof A_Container): A_ContainerMeta;
|
|
64
64
|
static meta(container: A_Container<any>): A_ContainerMeta;
|
|
65
65
|
static meta(entity: A_Entity): A_ContainerMeta;
|
|
66
|
+
static meta(entity: typeof A_Entity): A_ContainerMeta;
|
|
66
67
|
static meta(component: typeof A_Component): A_ComponentMeta;
|
|
67
68
|
static meta(component: A_Component): A_ComponentMeta;
|
|
68
69
|
static meta<T extends Record<string, any>>(component: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A-Context.class.js","sourceRoot":"","sources":["../../../../src/global/A-Context/A-Context.class.ts"],"names":[],"mappings":";;;AAAA,4CAA6D;AAC7D,wEAA+D;AAC/D,qEAA4D;AAC5D,kEAAyD;AACzD,wEAA+D;AAC/D,4DAAmD;AAEnD,yDAAgD;AAChD,sEAAkE;AAClE,sEAAkE;AAClE,kEAAyD;AAEzD,+DAAsD;AACtD,6DAAyD;AAIzD;;;;;;GAMG;AACH,MAAa,SAAS;IAwDlB;QApDA;;WAEG;QACO,eAAU,GAAuC,IAAI,OAAO,EAAE,CAAC;QAEzE;;WAEG;QACO,aAAQ,GAAgC,IAAI,OAAO,EAAE,CAAC;QAEhE;;WAEG;QACO,aAAQ,GAAqC,IAAI,OAAO,EAAE,CAAC;QAGrE;;WAEG;QACO,aAAQ,GAQd,IAAI,OAAO,EAAE,CAAC;QAKlB;;WAEG;QACH,wGAAwG;QAE9F,iBAAY,GAAmD,IAAI,GAAG,EAAE,CAAC;QACzE,mBAAc,GAAyD,IAAI,GAAG,EAAE,CAAC;QACjF,mBAAc,GAA6C,IAAI,GAAG,EAAE,CAAC;QACrE,iBAAY,GAAmD,IAAI,GAAG,EAAE,CAAC;QAEnF,0CAA0C;QAChC,eAAU,GAAqD,IAAI,GAAG,EAAE,CAAC;IAS3D,CAAC;IAIzB,sGAAsG;IACtG,sGAAsG;IACtG,sGAAsG;IAItG;;;;OAIG;IACH,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACtB,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;QACzC,CAAC;QAED,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,IAAI;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,WAAW;QAClB,OAAO,qBAAW,CAAC,GAAG,CAAC;IAC3B,CAAC;IAiBD,MAAM,CAAC,QAAQ,CACX,MAAwD,EACxD,MAAiE;QAGjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,uBAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE7C,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM,YAAY,+BAAW;gBAC9B,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM;YAEV,KAAK,MAAM,YAAY,2BAAS;gBAC5B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxC,MAAM;YAEV,KAAK,MAAM,YAAY,2BAAS;gBAC5B,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACxC,MAAM;YAGV;gBACI,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACjF,CAAC;QAGD,OAAO,QAAQ,CAAC;IACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"A-Context.class.js","sourceRoot":"","sources":["../../../../src/global/A-Context/A-Context.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ export declare class A_Scope {
|
|
|
54
54
|
*
|
|
55
55
|
* @param fragment
|
|
56
56
|
*/
|
|
57
|
-
register(
|
|
58
|
-
register(
|
|
57
|
+
register(entity: A_Entity): void;
|
|
58
|
+
register(component: A_Component): void;
|
|
59
59
|
register(fragment: A_Fragment): void;
|
|
60
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-concept",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "A-Concept is a framework to build new Applications within or outside the ADAAS ecosystem. This framework is designed to be modular structure regardless environment and program goal.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
|
|
1
2
|
import {
|
|
2
3
|
A_TYPES__A_FeatureDecoratorConfig,
|
|
3
4
|
A_TYPES__A_FeatureDecoratorDescriptor,
|
|
@@ -5,6 +6,12 @@ import {
|
|
|
5
6
|
import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
|
|
6
7
|
import { A_TYPES__ContainerMetaKey } from "@adaas/a-concept/global/A-Container/A-Container.types";
|
|
7
8
|
import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
|
|
9
|
+
import { A_Entity } from "@adaas/a-utils";
|
|
10
|
+
import { A_EntityMeta } from "@adaas/a-concept/global/A-Entity/A-Entity.meta";
|
|
11
|
+
import { A_ContainerMeta } from "@adaas/a-concept/global/A-Container/A-Container.meta";
|
|
12
|
+
import { A_ComponentMeta } from "@adaas/a-concept/global/A-Component/A-Component.meta";
|
|
13
|
+
import { A_TYPES__EntityMetaKey } from "@adaas/a-concept/global/A-Entity/A-Entity.types";
|
|
14
|
+
import { A_TYPES__ComponentMetaKey } from "@adaas/a-concept/global/A-Component/A-Component.types";
|
|
8
15
|
|
|
9
16
|
|
|
10
17
|
/**
|
|
@@ -24,15 +31,33 @@ export function A_Feature_Define(
|
|
|
24
31
|
config: Partial<A_TYPES__A_FeatureDecoratorConfig> = {}
|
|
25
32
|
) {
|
|
26
33
|
return function (
|
|
27
|
-
target: A_Container<any
|
|
34
|
+
target: A_Container<any> | A_Entity | A_Component,
|
|
28
35
|
propertyKey: string,
|
|
29
36
|
descriptor: A_TYPES__A_FeatureDecoratorDescriptor
|
|
30
37
|
) {
|
|
31
38
|
|
|
39
|
+
const meta: A_EntityMeta | A_ContainerMeta | A_ComponentMeta = A_Context.meta(target as any);
|
|
40
|
+
|
|
41
|
+
let metaKey;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
switch (true) {
|
|
45
|
+
case target instanceof A_Entity:
|
|
46
|
+
metaKey = A_TYPES__EntityMetaKey.FEATURES;
|
|
47
|
+
break;
|
|
48
|
+
case target instanceof A_Container:
|
|
49
|
+
metaKey = A_TYPES__ContainerMetaKey.FEATURES
|
|
50
|
+
break;
|
|
51
|
+
case target instanceof A_Component:
|
|
52
|
+
metaKey = A_TYPES__ComponentMetaKey.FEATURES
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`A-Feature cannot be defined on the ${target} level`);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
32
59
|
// Get the existed metadata or create a new one
|
|
33
|
-
const existedMeta =
|
|
34
|
-
.meta(target)
|
|
35
|
-
.get(A_TYPES__ContainerMetaKey.FEATURES)
|
|
60
|
+
const existedMeta = meta.get(metaKey)
|
|
36
61
|
|| new Map();
|
|
37
62
|
|
|
38
63
|
|
|
@@ -47,9 +72,9 @@ export function A_Feature_Define(
|
|
|
47
72
|
|
|
48
73
|
// Update the metadata of the container with the new Feature definition
|
|
49
74
|
A_Context
|
|
50
|
-
.meta(target)
|
|
75
|
+
.meta(target as any)
|
|
51
76
|
.set(
|
|
52
|
-
|
|
77
|
+
metaKey,
|
|
53
78
|
existedMeta
|
|
54
79
|
);
|
|
55
80
|
};
|
|
@@ -167,6 +167,9 @@ export class A_Context {
|
|
|
167
167
|
static meta(
|
|
168
168
|
entity: A_Entity,
|
|
169
169
|
): A_ContainerMeta
|
|
170
|
+
static meta(
|
|
171
|
+
entity: typeof A_Entity,
|
|
172
|
+
): A_ContainerMeta
|
|
170
173
|
static meta(
|
|
171
174
|
component: typeof A_Component,
|
|
172
175
|
): A_ComponentMeta
|
|
@@ -177,7 +180,13 @@ export class A_Context {
|
|
|
177
180
|
component: { new(...args: any[]): any },
|
|
178
181
|
): A_Meta<T>
|
|
179
182
|
static meta<T extends Record<string, any>>(
|
|
180
|
-
param1:
|
|
183
|
+
param1: A_Container<any>
|
|
184
|
+
| typeof A_Container
|
|
185
|
+
| A_Component
|
|
186
|
+
| typeof A_Component
|
|
187
|
+
| A_Entity
|
|
188
|
+
| typeof A_Entity
|
|
189
|
+
| { new(...args: any[]): any }
|
|
181
190
|
): A_ContainerMeta | A_ComponentMeta | A_Meta<T> {
|
|
182
191
|
const instance = this.getInstance();
|
|
183
192
|
|
|
@@ -231,8 +231,8 @@ export class A_Scope {
|
|
|
231
231
|
*
|
|
232
232
|
* @param fragment
|
|
233
233
|
*/
|
|
234
|
-
register(
|
|
235
|
-
register(
|
|
234
|
+
register(entity: A_Entity): void
|
|
235
|
+
register(component: A_Component): void
|
|
236
236
|
register(fragment: A_Fragment): void
|
|
237
237
|
register(
|
|
238
238
|
param1: A_Fragment | A_Component | A_Entity
|