@adaas/a-concept 0.0.53 → 0.0.55

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.
@@ -55,6 +55,14 @@ export declare class A_Concept<_Imports extends A_Container[] = any> {
55
55
  constructor(props: A_TYPES__IConceptConstructor<_Imports>);
56
56
  get namespace(): string;
57
57
  get Scope(): A_Scope;
58
+ /**
59
+ * Register a class or value in the concept scope.
60
+ */
61
+ get register(): A_Scope['register'];
62
+ /**
63
+ * Resolve a class or value from the concept scope.
64
+ */
65
+ get resolve(): A_Scope['resolve'];
58
66
  /**
59
67
  * Load the concept.
60
68
  */
@@ -100,6 +100,18 @@ class A_Concept {
100
100
  get Scope() {
101
101
  return this.sharedBase.Scope;
102
102
  }
103
+ /**
104
+ * Register a class or value in the concept scope.
105
+ */
106
+ get register() {
107
+ return this.sharedBase.Scope.register.bind(this.sharedBase.Scope);
108
+ }
109
+ /**
110
+ * Resolve a class or value from the concept scope.
111
+ */
112
+ get resolve() {
113
+ return this.sharedBase.Scope.resolve.bind(this.sharedBase.Scope);
114
+ }
103
115
  // =======================================================================
104
116
  // ========================== LIFECYCLE ================================
105
117
  // =======================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"A_Concept.class.js","sourceRoot":"","sources":["../../../../src/global/A-Concept/A_Concept.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A_Concept.class.js","sourceRoot":"","sources":["../../../../src/global/A-Concept/A_Concept.class.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,67 @@ export declare class A_Entity<_ConstructorType = any, _SerializedType extends A_
14
14
  * Entity Identifier that corresponds to the class name
15
15
  */
16
16
  static get entity(): string;
17
- constructor(aseid: string);
18
- constructor(aseid: ASEID);
19
- constructor(serialized: _SerializedType);
20
- constructor(newEntity: _ConstructorType);
17
+ /**
18
+ * Create a new A_entity instance from Aseid String
19
+ * e.g. project@scope:entity:0000000001
20
+ *
21
+ * @param aseid
22
+ */
23
+ constructor(
24
+ /**
25
+ * ASEID string that represents the entity
26
+ */
27
+ aseid: string);
28
+ /**
29
+ * Create a new A_entity instance from Aseid instance
30
+ * e.g. new ASEID({namespace: 'project', scope: 'default', entity: 'entity', id: '0000000001'})
31
+ *
32
+ * @param aseid
33
+ */
34
+ constructor(
35
+ /**
36
+ * ASEID instance that represents the entity
37
+ */
38
+ aseid: ASEID);
39
+ /**
40
+ * Create a new A_entity instance from serialized object
41
+ *
42
+ * @param serialized
43
+ */
44
+ constructor(
45
+ /**
46
+ * Serialized object that represents the entity
47
+ */
48
+ serialized: _SerializedType);
49
+ /**
50
+ * Create a new A_entity instance from constructor object
51
+ *
52
+ * @param newEntity
53
+ */
54
+ constructor(
55
+ /**
56
+ * Constructor object that represents the entity
57
+ */
58
+ newEntity: _ConstructorType);
59
+ protected isStringASEID(x: unknown): x is string;
60
+ protected isASEIDInstance(x: unknown): x is ASEID;
61
+ /**
62
+ * A "serialized" object is considered such if it is a non-null object
63
+ * and contains an "aseid" property (this mirrors your original check).
64
+ *
65
+ * @param x
66
+ * @returns
67
+ */
68
+ protected isSerializedObject(x: unknown): x is _SerializedType;
69
+ /**
70
+ * Constructor-style props = a plain object which does NOT contain "aseid".
71
+ * This is the "create from provided fields" case.
72
+ *
73
+ * @param x
74
+ * @returns
75
+ */
76
+ protected isConstructorProps(x: unknown): x is _ConstructorType;
77
+ protected getInitializer(props: string | ASEID | _SerializedType | _ConstructorType): (props: any) => void;
21
78
  /**
22
79
  * Extracts the ID from the ASEID
23
80
  * ID is the unique identifier of the entity
@@ -68,6 +125,7 @@ export declare class A_Entity<_ConstructorType = any, _SerializedType extends A_
68
125
  * The default method that can be called and extended to save entity data.
69
126
  */
70
127
  save(scope?: A_Scope): Promise<any>;
128
+ fromASEID(aseid: string | ASEID): void;
71
129
  fromNew(newEntity: _ConstructorType): void;
72
130
  fromJSON(serialized: _SerializedType): void;
73
131
  /**
@@ -31,22 +31,58 @@ class A_Entity {
31
31
  .replace(/_/g, '-');
32
32
  }
33
33
  constructor(props) {
34
- switch (true) {
35
- case (typeof props === 'string' && a_utils_1.ASEID.isASEID(props)):
36
- this.aseid = new a_utils_1.ASEID(props);
37
- break;
38
- case (props instanceof a_utils_1.ASEID):
39
- this.aseid = props;
40
- break;
41
- case (!!props && typeof props === 'object' && 'aseid' in props):
42
- this.fromJSON(props);
43
- break;
44
- case (typeof props === 'object'):
45
- this.fromNew(props);
46
- break;
47
- default:
48
- throw new a_utils_1.A_Error(errors_constants_1.A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
34
+ const initializer = this.getInitializer(props);
35
+ // the returned initializer is already bound to `this` (we used .bind(this)),
36
+ // so calling it will run the appropriate logic on this instance:
37
+ initializer.call(this, props);
38
+ }
39
+ // --- Type guards used to classify `props` properly ---
40
+ isStringASEID(x) {
41
+ return typeof x === "string" && a_utils_1.ASEID.isASEID(x);
42
+ }
43
+ isASEIDInstance(x) {
44
+ return x instanceof a_utils_1.ASEID;
45
+ }
46
+ /**
47
+ * A "serialized" object is considered such if it is a non-null object
48
+ * and contains an "aseid" property (this mirrors your original check).
49
+ *
50
+ * @param x
51
+ * @returns
52
+ */
53
+ isSerializedObject(x) {
54
+ return !!x && typeof x === "object" && "aseid" in x;
55
+ }
56
+ /**
57
+ * Constructor-style props = a plain object which does NOT contain "aseid".
58
+ * This is the "create from provided fields" case.
59
+ *
60
+ * @param x
61
+ * @returns
62
+ */
63
+ isConstructorProps(x) {
64
+ return !!x && typeof x === "object" && !("aseid" in x);
65
+ }
66
+ // --- Overloads: provide precise return-type depending on input ---
67
+ getInitializer(props) {
68
+ // 1) string that matches ASEID format -> fromASEID
69
+ if (this.isStringASEID(props)) {
70
+ return this.fromASEID;
71
+ }
72
+ // 2) ASEID instance -> fromASEID
73
+ if (this.isASEIDInstance(props)) {
74
+ return this.fromASEID;
75
+ }
76
+ // 3) serialized object (has 'aseid') -> fromJSON
77
+ if (this.isSerializedObject(props)) {
78
+ return this.fromJSON;
79
+ }
80
+ // 4) plain object with no 'aseid' -> treat as constructor props -> fromNew
81
+ if (this.isConstructorProps(props)) {
82
+ return this.fromNew;
49
83
  }
84
+ // none of the above -> throw consistent error
85
+ throw new a_utils_1.A_Error(errors_constants_1.A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
50
86
  }
51
87
  // ====================================================================
52
88
  // ================== DUPLICATED ASEID Getters ========================
@@ -102,6 +138,10 @@ class A_Entity {
102
138
  */
103
139
  call(feature_1) {
104
140
  return __awaiter(this, arguments, void 0, function* (feature, scope = A_Context_class_1.A_Context.scope(this)) {
141
+ // scope can be completely custom without relation to the entity scope
142
+ // or it can be inherited from the entity scope
143
+ // [!Not Now!] however, each feature should create own scope regardless of the passed scope
144
+ // to avoid any possible side effects
105
145
  if (scope && !scope.isInheritedFrom(A_Context_class_1.A_Context.scope(this))) {
106
146
  scope = scope.inherit(A_Context_class_1.A_Context.scope(this));
107
147
  }
@@ -139,7 +179,19 @@ class A_Entity {
139
179
  // ====================================================================
140
180
  // ================== Entity Serialization ============================
141
181
  // ====================================================================
182
+ fromASEID(aseid) {
183
+ if (typeof aseid === 'string' && a_utils_1.ASEID.isASEID(aseid)) {
184
+ this.aseid = new a_utils_1.ASEID(aseid);
185
+ }
186
+ else if (aseid instanceof a_utils_1.ASEID) {
187
+ this.aseid = aseid;
188
+ }
189
+ else {
190
+ throw new a_utils_1.A_Error(errors_constants_1.A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
191
+ }
192
+ }
142
193
  fromNew(newEntity) {
194
+ // this.aseid = new ASEID
143
195
  return;
144
196
  }
145
197
  fromJSON(serialized) {
@@ -1 +1 @@
1
- {"version":3,"file":"A-Entity.class.js","sourceRoot":"","sources":["../../../../src/global/A-Entity/A-Entity.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Entity.class.js","sourceRoot":"","sources":["../../../../src/global/A-Entity/A-Entity.class.ts"],"names":[],"mappings":"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"}
@@ -186,10 +186,10 @@ class A_Scope {
186
186
  resolve(param1, param2) {
187
187
  switch (true) {
188
188
  case Array.isArray(param1): {
189
- return param1.map(c => this.resolveOnce(c));
189
+ return param1.map(c => this.resolveOnce(param1, param2));
190
190
  }
191
191
  case typeof param1 === 'function': {
192
- return this.resolveOnce(param1);
192
+ return this.resolveOnce(param1, param2);
193
193
  }
194
194
  case typeof param1 === 'string': {
195
195
  return this.resolveByName(param1);
@@ -265,14 +265,14 @@ class A_Scope {
265
265
  {
266
266
  return this._entities.get(query.aseid.toString());
267
267
  }
268
- case !!query.id
269
- && this._entities.has(query.id):
270
- {
271
- // in this case we have to find the entity by the id
272
- const entities = Array.from(this._entities.values());
273
- const found = entities.find(e => e.id === query.id);
274
- return found;
275
- }
268
+ case !!query.id: {
269
+ // in this case we have to find the entity by the id
270
+ const entities = Array.from(this._entities.values());
271
+ const found = entities.filter(e => e instanceof entity).find(e => {
272
+ return String(e.id) === String(query.id);
273
+ });
274
+ return found;
275
+ }
276
276
  default:
277
277
  throw new Error(`Entity ${entity.constructor.name} not found in the scope ${this.name}`);
278
278
  }
@@ -332,6 +332,7 @@ class A_Scope {
332
332
  }
333
333
  }
334
334
  register(param1) {
335
+ console.log(`Registering in scope ${this.name}:`, param1);
335
336
  switch (true) {
336
337
  case param1 instanceof A_Entity_class_1.A_Entity && !this._entities.has(param1.aseid.toString()): {
337
338
  this._entities.set(param1.aseid.toString(), param1);
@@ -1 +1 @@
1
- {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { A_Config } from "@adaas/a-concept/base/A-Config/A-Config.context";
2
+ import { A_Concept } from "@adaas/a-concept/global/A-Concept/A_Concept.class";
3
+ import { User } from "./entities/User.entity";
4
+ import { ASEID } from "@adaas/a-utils";
5
+ import { Task } from "./entities/Task.entity";
6
+
7
+ (async () => {
8
+ const concept = new A_Concept({
9
+ name: 'test-entity',
10
+ fragments: [
11
+ new A_Config({
12
+ variables: ['CONFIG_VERBOSE'],
13
+ defaults: {
14
+ 'CONFIG_VERBOSE': true
15
+ }
16
+ })
17
+ ],
18
+ entities: [
19
+ new User(new ASEID({ namespace: 'test-entity', scope: 'default', entity: 'user', id: 1 })),
20
+ new User({
21
+ name: 'User 2',
22
+ email: 'user2@test.com'
23
+ }),
24
+ new Task(new ASEID({ namespace: 'test-entity', scope: 'default', entity: 'task', id: 1 })),
25
+ new Task(new ASEID({ namespace: 'test-entity', scope: 'default', entity: 'task', id: 2 })),
26
+ new Task ('https://example.com/task/3')
27
+ ]
28
+ });
29
+
30
+ const user1 = concept.resolve(User, {
31
+ query: {
32
+ id: '1'
33
+ }
34
+ });
35
+
36
+ console.log('Resolved user 1:', user1);
37
+
38
+ const user2 = concept.resolve(User, {
39
+ query: {
40
+ id: '2'
41
+ }
42
+ });
43
+
44
+ console.log('Resolved user 2:', user2);
45
+
46
+
47
+ const task1 = concept.resolve(Task, {
48
+ query: {
49
+ id: '1'
50
+ }
51
+ });
52
+
53
+
54
+ const task3 = concept.resolve(Task, {
55
+ query: {
56
+ id: '3'
57
+ }
58
+ });
59
+
60
+ console.log('Resolved task 1:', task1);
61
+ console.log('Resolved task 3:', task3);
62
+
63
+
64
+
65
+
66
+
67
+
68
+ })();
@@ -0,0 +1,110 @@
1
+ import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class";
2
+ import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
3
+ import { A_Error, A_TYPES__AEntity_JSON, ASEID } from "@adaas/a-utils";
4
+ import { User } from "./User.entity";
5
+
6
+
7
+ export type NewTask = {
8
+ title: string;
9
+ description: string;
10
+ completed?: boolean;
11
+ assignedTo?: A_Entity;
12
+ }
13
+
14
+ export type SerializedTask = {
15
+ title: string;
16
+ description: string;
17
+ completed: boolean;
18
+ assignedToASEID?: string;
19
+ } & A_TYPES__AEntity_JSON
20
+
21
+
22
+
23
+ export class Task extends A_Entity<NewTask, SerializedTask> {
24
+ title: string = '';
25
+ description: string = '';
26
+ completed: boolean = false;
27
+ link?: string;
28
+
29
+ assignedTo?: User;
30
+
31
+ get id(): string | number {
32
+ return Number(this.aseid.id);
33
+ }
34
+
35
+
36
+ protected getInitializer(props: string | NewTask | SerializedTask | ASEID): (props: any) => void {
37
+
38
+
39
+
40
+ let initialized: ((props: any) => void) | undefined = undefined
41
+ try {
42
+ initialized = super.getInitializer(props);
43
+
44
+ } catch (error) {
45
+ }
46
+
47
+ if (typeof props === 'string' && /^https?:\/\//.test(props)) {
48
+ initialized = this.fromLink.bind(this);
49
+ }
50
+
51
+ if (!initialized) {
52
+ throw new A_Error('Cannot initialize Task entity with the provided argument. Supported arguments are: ASEID, SerializedTask, NewTask, or a link (string starting with http:// or https://)');
53
+ }
54
+
55
+
56
+ console.log('Initializer for Task:', props, '\n', initialized?.name);
57
+
58
+ return initialized;
59
+ }
60
+
61
+
62
+ fromNew(newEntity: NewTask): void {
63
+ this.aseid = new ASEID({
64
+ namespace: 'example',
65
+ scope: 'default',
66
+ entity: 'task',
67
+ id: Math.floor(Math.random() * 1000000000).toString(),
68
+ });
69
+
70
+ this.title = newEntity.title;
71
+ this.description = newEntity.description;
72
+ this.completed = newEntity.completed ?? false;
73
+ if (newEntity.assignedTo)
74
+ this.assignedTo = newEntity.assignedTo as User;
75
+ }
76
+
77
+
78
+ fromLink(link: string): void {
79
+ this.aseid = new ASEID({
80
+ namespace: 'example',
81
+ scope: 'default',
82
+ entity: 'task',
83
+ id: new Date().getTime(),
84
+ });
85
+
86
+ this.link = link;
87
+ this.title = `Task from link: ${link}`;
88
+ this.description = `This task was created from the link: ${link}`;
89
+ this.completed = false;
90
+ }
91
+
92
+
93
+ @A_Feature.Define({ invoke: true })
94
+ assignTo(user: User) {
95
+ this.assignedTo = user;
96
+ }
97
+
98
+
99
+
100
+ toJSON(): SerializedTask {
101
+ return {
102
+ ...super.toJSON(),
103
+ title: this.title,
104
+ description: this.description,
105
+ completed: this.completed,
106
+ assignedToASEID: this.assignedTo?.aseid.toString(),
107
+ }
108
+ }
109
+
110
+ }
@@ -0,0 +1,62 @@
1
+ import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class";
2
+ import { A_TYPES__Entity_JSON } from "@adaas/a-concept/global/A-Entity/A-Entity.types";
3
+ import { ASEID } from "@adaas/a-utils";
4
+
5
+
6
+ export type NewUser = {
7
+ name: string;
8
+ email: string;
9
+ }
10
+
11
+ export type SerializedUser = {
12
+ name: string;
13
+ email: string;
14
+ } & A_TYPES__Entity_JSON
15
+
16
+
17
+
18
+
19
+
20
+ export class User extends A_Entity<NewUser, SerializedUser> {
21
+
22
+ name: string = '';
23
+ email: string = '';
24
+
25
+
26
+ get id(): string | number {
27
+ return Number(this.aseid.id);
28
+ }
29
+
30
+
31
+ fromNew(newEntity: NewUser): void {
32
+ this.aseid = new ASEID({
33
+ namespace: 'example',
34
+ scope: 'default',
35
+ entity: 'user',
36
+ id: Math.floor(Math.random() * 1000000000).toString(),
37
+ });
38
+
39
+ this.name = newEntity.name;
40
+ this.email = newEntity.email;
41
+ }
42
+
43
+
44
+ fromJSON(serialized: SerializedUser): void {
45
+ this.aseid = new ASEID(serialized.aseid);
46
+ this.name = serialized.name;
47
+ this.email = serialized.email;
48
+ }
49
+
50
+
51
+
52
+
53
+ toJSON(): SerializedUser {
54
+ return {
55
+ ...super.toJSON(),
56
+ name: this.name,
57
+ email: this.email,
58
+ }
59
+ }
60
+
61
+
62
+ }
@@ -8,12 +8,8 @@ import { A_Config } from "@adaas/a-concept/base/A-Config/A-Config.context";
8
8
  import { A_ConfigLoader } from "@adaas/a-concept/base/A-Config/A-Config.container";
9
9
  import { ENVConfigReader } from "@adaas/a-concept/base/A-Config/components/ENVConfigReader.component";
10
10
  import { A_Concept } from "@adaas/a-concept/global/A-Concept/A_Concept.class";
11
- import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class";
12
- import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
13
11
  import { SecondaryContainer } from "./containers/Secondary.container";
14
12
 
15
- console.log('Simple concept loaded', A_Concept);
16
-
17
13
  (async () => {
18
14
 
19
15
  const main = new MainContainer({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-concept",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
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",
@@ -25,6 +25,7 @@
25
25
  "example:simple": "nodemon ./examples/simple/concept.ts",
26
26
  "example:simple:trace": "node -r tsconfig-paths/register -r ts-node/register -r ./trace-require.js ./examples/simple/concept.ts",
27
27
  "example:http": "nodemon ./examples/simple-http-server/concept.ts",
28
+ "example:entity": "nodemon ./examples/entity/concept.ts",
28
29
  "example:http:trace": "node -r tsconfig-paths/register -r ts-node/register -r ./trace-require.js ./examples/simple-http-server/concept.ts",
29
30
  "publish": "npm run build && git add . && git commit -m \"new version created :: $(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g')\" && npm version patch && npm publish --access public",
30
31
  "preversion": "echo test",
@@ -50,7 +51,7 @@
50
51
  },
51
52
  "homepage": "https://github.com/ADAAS-org/adaas-adf-auth#readme",
52
53
  "dependencies": {
53
- "@adaas/a-utils": "^0.0.4",
54
+ "@adaas/a-utils": "^0.0.5",
54
55
  "@types/node": "^20.10.0"
55
56
  },
56
57
  "devDependencies": {
@@ -4,6 +4,7 @@ import { A_Abstraction } from "../A-Abstraction/A-Abstraction.class";
4
4
  import { A_ConceptMeta } from "./A_Concept.meta";
5
5
  import { A_Abstraction_Extend } from "@adaas/a-concept/decorators/A-Abstraction/A-Abstraction-Extend.decorator";
6
6
  import { A_Scope } from "../A-Scope/A-Scope.class";
7
+ import { A_TYPES__A_InjectDecorator_EntityInjectionInstructions, A_TYPES__A_InjectDecorator_Injectable } from "@adaas/a-concept/decorators/A-Inject/A-Inject.decorator.types";
7
8
 
8
9
 
9
10
  // export type RunParams<T> = T extends A_Container<any, infer Params> ? Params : never;
@@ -124,6 +125,19 @@ export class A_Concept<
124
125
  return this.sharedBase.Scope;
125
126
  }
126
127
 
128
+ /**
129
+ * Register a class or value in the concept scope.
130
+ */
131
+ get register(): A_Scope['register'] {
132
+ return this.sharedBase.Scope.register.bind(this.sharedBase.Scope);
133
+ }
134
+
135
+ /**
136
+ * Resolve a class or value from the concept scope.
137
+ */
138
+ get resolve(): A_Scope['resolve'] {
139
+ return this.sharedBase.Scope.resolve.bind(this.sharedBase.Scope);
140
+ }
127
141
 
128
142
 
129
143
  // =======================================================================
@@ -40,41 +40,123 @@ export class A_Entity<
40
40
  .replace(/_/g, '-');
41
41
  }
42
42
 
43
+ /**
44
+ * Create a new A_entity instance from Aseid String
45
+ * e.g. project@scope:entity:0000000001
46
+ *
47
+ * @param aseid
48
+ */
43
49
  constructor(
50
+ /**
51
+ * ASEID string that represents the entity
52
+ */
44
53
  aseid: string
45
54
  )
55
+ /**
56
+ * Create a new A_entity instance from Aseid instance
57
+ * e.g. new ASEID({namespace: 'project', scope: 'default', entity: 'entity', id: '0000000001'})
58
+ *
59
+ * @param aseid
60
+ */
46
61
  constructor(
62
+ /**
63
+ * ASEID instance that represents the entity
64
+ */
47
65
  aseid: ASEID
48
66
  )
67
+ /**
68
+ * Create a new A_entity instance from serialized object
69
+ *
70
+ * @param serialized
71
+ */
49
72
  constructor(
73
+ /**
74
+ * Serialized object that represents the entity
75
+ */
50
76
  serialized: _SerializedType
51
77
  )
78
+ /**
79
+ * Create a new A_entity instance from constructor object
80
+ *
81
+ * @param newEntity
82
+ */
52
83
  constructor(
84
+ /**
85
+ * Constructor object that represents the entity
86
+ */
53
87
  newEntity: _ConstructorType
54
88
  )
55
89
  constructor(props: string | ASEID | _SerializedType | _ConstructorType) {
56
90
 
91
+ const initializer = this.getInitializer(props);
92
+ // the returned initializer is already bound to `this` (we used .bind(this)),
93
+ // so calling it will run the appropriate logic on this instance:
94
+ initializer.call(this, props);
95
+ }
96
+
97
+
98
+ // --- Type guards used to classify `props` properly ---
99
+ protected isStringASEID(x: unknown): x is string {
100
+ return typeof x === "string" && ASEID.isASEID(x);
101
+ }
102
+
103
+ protected isASEIDInstance(x: unknown): x is ASEID {
104
+ return x instanceof ASEID;
105
+ }
106
+
107
+ /**
108
+ * A "serialized" object is considered such if it is a non-null object
109
+ * and contains an "aseid" property (this mirrors your original check).
110
+ *
111
+ * @param x
112
+ * @returns
113
+ */
114
+ protected isSerializedObject(x: unknown): x is _SerializedType {
115
+ return !!x && typeof x === "object" && "aseid" in (x as object);
116
+ }
117
+
118
+ /**
119
+ * Constructor-style props = a plain object which does NOT contain "aseid".
120
+ * This is the "create from provided fields" case.
121
+ *
122
+ * @param x
123
+ * @returns
124
+ */
125
+ protected isConstructorProps(x: unknown): x is _ConstructorType {
126
+ return !!x && typeof x === "object" && !("aseid" in (x as object));
127
+ }
57
128
 
58
- switch (true) {
59
- case (typeof props === 'string' && ASEID.isASEID(props)):
60
- this.aseid = new ASEID(props);
61
- break;
62
- case (props instanceof ASEID):
63
- this.aseid = props;
64
- break;
65
- case (!!props && typeof props === 'object' && 'aseid' in props):
66
- this.fromJSON(props);
67
- break;
129
+ // --- Overloads: provide precise return-type depending on input ---
130
+ protected getInitializer(
131
+ props: string | ASEID | _SerializedType | _ConstructorType
132
+ ): (props: any) => void {
133
+ // 1) string that matches ASEID format -> fromASEID
134
+ if (this.isStringASEID(props)) {
135
+ return this.fromASEID as (p: string) => void;
136
+ }
137
+
138
+ // 2) ASEID instance -> fromASEID
139
+ if (this.isASEIDInstance(props)) {
140
+ return this.fromASEID as (p: ASEID) => void;
141
+ }
68
142
 
69
- case (typeof props === 'object'):
70
- this.fromNew(props as _ConstructorType);
71
- break
143
+ // 3) serialized object (has 'aseid') -> fromJSON
144
+ if (this.isSerializedObject(props)) {
145
+ return this.fromJSON as (p: _SerializedType) => void;
146
+ }
72
147
 
73
- default:
74
- throw new A_Error(A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
148
+ // 4) plain object with no 'aseid' -> treat as constructor props -> fromNew
149
+ if (this.isConstructorProps(props)) {
150
+ return this.fromNew as (p: _ConstructorType) => void;
75
151
  }
152
+
153
+ // none of the above -> throw consistent error
154
+ throw new A_Error(A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
76
155
  }
77
156
 
157
+
158
+
159
+
78
160
  // ====================================================================
79
161
  // ================== DUPLICATED ASEID Getters ========================
80
162
  // ====================================================================
@@ -129,7 +211,7 @@ export class A_Entity<
129
211
  return this.aseid.shard;
130
212
  }
131
213
 
132
-
214
+
133
215
 
134
216
 
135
217
  /**
@@ -142,6 +224,11 @@ export class A_Entity<
142
224
  feature: string,
143
225
  scope: A_Scope = A_Context.scope(this)
144
226
  ) {
227
+ // scope can be completely custom without relation to the entity scope
228
+ // or it can be inherited from the entity scope
229
+ // [!Not Now!] however, each feature should create own scope regardless of the passed scope
230
+ // to avoid any possible side effects
231
+
145
232
 
146
233
  if (scope && !scope.isInheritedFrom(A_Context.scope(this))) {
147
234
  scope = scope.inherit(A_Context.scope(this));
@@ -188,7 +275,19 @@ export class A_Entity<
188
275
  // ================== Entity Serialization ============================
189
276
  // ====================================================================
190
277
 
278
+ fromASEID(aseid: string | ASEID): void {
279
+ if (typeof aseid === 'string' && ASEID.isASEID(aseid)) {
280
+ this.aseid = new ASEID(aseid);
281
+ } else if (aseid instanceof ASEID) {
282
+ this.aseid = aseid;
283
+ } else {
284
+ throw new A_Error(A_CONSTANTS__DEFAULT_ERRORS.INCORRECT_A_ENTITY_CONSTRUCTOR);
285
+ }
286
+ }
287
+
191
288
  fromNew(newEntity: _ConstructorType): void {
289
+ // this.aseid = new ASEID
290
+
192
291
  return;
193
292
  }
194
293
 
@@ -315,15 +315,15 @@ export class A_Scope {
315
315
 
316
316
  switch (true) {
317
317
  case Array.isArray(param1): {
318
- return param1.map(c => this.resolveOnce(c));
318
+ return param1.map(c => this.resolveOnce(param1 as any, param2 as any));
319
319
  }
320
320
 
321
321
  case typeof param1 === 'function': {
322
- return this.resolveOnce(param1);
322
+ return this.resolveOnce(param1 as any, param2 as any);
323
323
  }
324
324
 
325
325
  case typeof param1 === 'string': {
326
- return this.resolveByName(param1) as InstanceType<T>;
326
+ return this.resolveByName(param1 as any) as InstanceType<T>;
327
327
  }
328
328
 
329
329
  default: {
@@ -333,7 +333,7 @@ export class A_Scope {
333
333
  }
334
334
 
335
335
 
336
- private resolveByName(name: string): A_Entity | A_Fragment | A_Component {
336
+ private resolveByName(name: string): A_Entity | A_Fragment | A_Component {
337
337
  // Check components
338
338
  const component = this.params.components.find(c => c.name === name);
339
339
  if (component) return this.resolveComponent(component);
@@ -433,15 +433,21 @@ export class A_Scope {
433
433
  return this._entities.get(query.aseid.toString()) as InstanceType<T>;
434
434
  }
435
435
 
436
- case !!query.id
437
- && this._entities.has(query.id): {
438
- // in this case we have to find the entity by the id
439
- const entities = Array.from(this._entities.values());
436
+ case !!query.id: {
440
437
 
441
- const found = entities.find(e => e.id === query.id);
438
+ // in this case we have to find the entity by the id
439
+ const entities = Array.from(this._entities.values());
442
440
 
443
- return found as InstanceType<T>;
444
- }
441
+ const found = entities.filter(
442
+ e => e instanceof entity
443
+ ).find(e => {
444
+
445
+
446
+ return String(e.id) === String(query.id)
447
+ });
448
+
449
+ return found as InstanceType<T>;
450
+ }
445
451
 
446
452
  default:
447
453
  throw new Error(`Entity ${entity.constructor.name} not found in the scope ${this.name}`);
@@ -547,6 +553,8 @@ export class A_Scope {
547
553
  ): void {
548
554
 
549
555
 
556
+ console.log(`Registering in scope ${this.name}:`, param1);
557
+
550
558
  switch (true) {
551
559
  case param1 instanceof A_Entity && !this._entities.has(param1.aseid.toString()): {
552
560
  this._entities.set(param1.aseid.toString(), param1);