ozone-typescript-client 6.4.4 → 6.4.7
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.
|
@@ -2,10 +2,12 @@ import { TypeDescriptor, FieldDescriptor, Item } from 'ozone-type';
|
|
|
2
2
|
export declare type TypeDescriptorCollection = Map<string, Promise<TypeDescriptor>>;
|
|
3
3
|
export interface TypeCache {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param identifier
|
|
5
|
+
* Get all fields for a type, including inherited fields from parents and traits.
|
|
6
|
+
* @param identifier - Type identifier
|
|
7
|
+
* @param withEmbeddedFields - If true, also includes fields from embedded types.
|
|
8
|
+
* Embedded field identifiers use the format "parentField/embeddedField" (e.g. "address/street").
|
|
7
9
|
*/
|
|
8
|
-
getAllFields(identifier: string): FieldDescriptor[];
|
|
10
|
+
getAllFields(identifier: string, withEmbeddedFields?: boolean): FieldDescriptor[];
|
|
9
11
|
/**
|
|
10
12
|
* verify if the is an instance of an other type
|
|
11
13
|
* @param identifier
|
|
@@ -6,7 +6,8 @@ export declare class TypeCacheImpl implements TypeCache {
|
|
|
6
6
|
private _typeClient;
|
|
7
7
|
private _cache;
|
|
8
8
|
constructor(_typeClient: TypeClient, typeDescriptors: TypeDescriptor[]);
|
|
9
|
-
getAllFields(identifier: string): FieldDescriptor[];
|
|
9
|
+
getAllFields(identifier: string, withEmbeddedFields?: boolean): FieldDescriptor[];
|
|
10
|
+
static getEmbeddedType(fieldType: string): string | undefined;
|
|
10
11
|
isTypeInstanceOf(identifier: string, instance: string): boolean;
|
|
11
12
|
isType<T>(data: Item, instance: string): data is T;
|
|
12
13
|
asInstanceOf<T>(data: Item, instance: string): T | null;
|
|
@@ -15,26 +15,41 @@ export class TypeCacheImpl {
|
|
|
15
15
|
this._cache = new Cache();
|
|
16
16
|
this.updateCache(typeDescriptors);
|
|
17
17
|
}
|
|
18
|
-
getAllFields(identifier) {
|
|
18
|
+
getAllFields(identifier, withEmbeddedFields = false) {
|
|
19
19
|
const type = this.get(identifier);
|
|
20
20
|
if (!type) {
|
|
21
21
|
throw new Error('Type not found in cache : ' + identifier);
|
|
22
22
|
}
|
|
23
23
|
let parentFields = [];
|
|
24
24
|
let traitFields = [];
|
|
25
|
+
let embedFields = [];
|
|
25
26
|
if (type.superType) {
|
|
26
|
-
parentFields = this.getAllFields(type.superType);
|
|
27
|
+
parentFields = this.getAllFields(type.superType, withEmbeddedFields);
|
|
27
28
|
}
|
|
28
29
|
if (type.traits && type.traits.length > 0) {
|
|
29
|
-
type.traits.forEach(trait => traitFields.push(...this.getAllFields(trait)));
|
|
30
|
+
type.traits.forEach(trait => traitFields.push(...this.getAllFields(trait, withEmbeddedFields)));
|
|
30
31
|
}
|
|
31
32
|
const fields = type.fields || [];
|
|
33
|
+
if (withEmbeddedFields) {
|
|
34
|
+
fields.forEach(field => {
|
|
35
|
+
const embedType = TypeCacheImpl.getEmbeddedType(field.fieldType);
|
|
36
|
+
if (embedType && this.has(embedType)) {
|
|
37
|
+
const embeddedFields = this.getAllFields(embedType, withEmbeddedFields).map(f => (Object.assign(Object.assign({}, f), { identifier: `${field.identifier}/${f.identifier}` })));
|
|
38
|
+
embedFields.push(...embeddedFields);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
32
42
|
return uniqBy([
|
|
33
43
|
...fields,
|
|
34
44
|
...parentFields,
|
|
35
|
-
...traitFields
|
|
45
|
+
...traitFields,
|
|
46
|
+
...embedFields
|
|
36
47
|
], 'identifier');
|
|
37
48
|
}
|
|
49
|
+
static getEmbeddedType(fieldType) {
|
|
50
|
+
const match = fieldType.match(/^embed<(.+)>$/);
|
|
51
|
+
return match ? match[1] : undefined;
|
|
52
|
+
}
|
|
38
53
|
isTypeInstanceOf(identifier, instance) {
|
|
39
54
|
if (identifier === instance) {
|
|
40
55
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeCacheImpl.js","sourceRoot":"","sources":["../../../src/typeClient/typeCacheImpl.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAItC,MAAM,OAAO,aAAa;IAIzB,YAAoB,WAAuB,EAAE,eAAiC;QAA1D,gBAAW,GAAX,WAAW,CAAY;QAFnC,WAAM,GAAG,IAAI,KAAK,EAA0B,CAAA;QAGnD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC;IAED,YAAY,CAAC,UAAkB;
|
|
1
|
+
{"version":3,"file":"typeCacheImpl.js","sourceRoot":"","sources":["../../../src/typeClient/typeCacheImpl.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ozone-typescript-client",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/sockjs-client": "^1.1.1"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "fcafcde7d3ea0b35bcd8678d48d56b30f1b48eaf"
|
|
41
41
|
}
|