@cratis/fundamentals 5.3.5 → 5.3.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/cjs/Constructor.d.ts.map +1 -0
- package/dist/cjs/DerivedType.d.ts.map +1 -0
- package/dist/cjs/DerivedType.js +13 -0
- package/dist/cjs/DerivedType.js.map +1 -0
- package/dist/cjs/Field.d.ts.map +1 -0
- package/dist/cjs/Field.js +13 -0
- package/dist/cjs/Field.js.map +1 -0
- package/dist/cjs/Fields.d.ts.map +1 -0
- package/dist/cjs/Fields.js +28 -0
- package/dist/cjs/Fields.js.map +1 -0
- package/dist/cjs/Guid.d.ts.map +1 -0
- package/dist/cjs/Guid.js +77 -0
- package/dist/cjs/Guid.js.map +1 -0
- package/dist/cjs/IEquatable.d.ts.map +1 -0
- package/dist/cjs/JsonSerializer.d.ts.map +1 -0
- package/dist/cjs/JsonSerializer.js +72 -0
- package/dist/cjs/JsonSerializer.js.map +1 -0
- package/dist/cjs/PropertyAccessor.d.ts.map +1 -0
- package/dist/cjs/PropertyAccessorDescriptor.d.ts.map +1 -0
- package/dist/cjs/PropertyAccessorDescriptor.js +20 -0
- package/dist/cjs/PropertyAccessorDescriptor.js.map +1 -0
- package/dist/cjs/PropertyPathResolverProxyHandler.d.ts.map +1 -0
- package/dist/cjs/PropertyPathResolverProxyHandler.js +31 -0
- package/dist/cjs/PropertyPathResolverProxyHandler.js.map +1 -0
- package/dist/cjs/derivedTypeDecorator.d.ts.map +1 -0
- package/dist/cjs/derivedTypeDecorator.js +13 -0
- package/dist/cjs/derivedTypeDecorator.js.map +1 -0
- package/dist/cjs/fieldDecorator.d.ts.map +1 -0
- package/dist/cjs/fieldDecorator.js +12 -0
- package/dist/cjs/fieldDecorator.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/Fields.js.map +1 -1
- package/dist/esm/Guid.js.map +1 -1
- package/dist/esm/JsonSerializer.js.map +1 -1
- package/dist/esm/PropertyPathResolverProxyHandler.d.ts.map +1 -1
- package/package.json +3 -3
- /package/{d.yarnist → dist}/cjs/Constructor.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/DerivedType.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/Field.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/Fields.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/Guid.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/IEquatable.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/JsonSerializer.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/PropertyAccessor.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/PropertyAccessorDescriptor.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/PropertyPathResolverProxyHandler.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/derivedTypeDecorator.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/fieldDecorator.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/index.d.ts +0 -0
- /package/{d.yarnist → dist}/cjs/index.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Constructor.d.ts","sourceRoot":"","sources":["../../Constructor.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DerivedType.d.ts","sourceRoot":"","sources":["../../DerivedType.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,WAAW;IACpB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;IAIlD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM;CAG1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class DerivedType {
|
|
4
|
+
static set(target, identifier) {
|
|
5
|
+
Reflect.defineMetadata('derivedType', identifier, target);
|
|
6
|
+
}
|
|
7
|
+
static get(target) {
|
|
8
|
+
return Reflect.getOwnMetadata('derivedType', target);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.DerivedType = DerivedType;
|
|
13
|
+
//# sourceMappingURL=DerivedType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DerivedType.js","sources":["../../DerivedType.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\n\nexport class DerivedType {\n static set(target: Constructor, identifier: string) {\n Reflect.defineMetadata('derivedType', identifier, target);\n }\n\n static get(target: Constructor): string {\n return Reflect.getOwnMetadata('derivedType', target);\n }\n}\n"],"names":[],"mappings":";;MAKa,WAAW,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAmB,EAAE,UAAkB,EAAA;QAC9C,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;KAC7D;IAED,OAAO,GAAG,CAAC,MAAmB,EAAA;QAC1B,OAAO,OAAO,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;KACxD;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../Field.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK3C,qBAAa,KAAK;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW;IAAE,QAAQ,CAAC,UAAU,EAAE,OAAO;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE;gBAA3G,IAAI,EAAE,MAAM,EAAW,IAAI,EAAE,WAAW,EAAW,UAAU,EAAE,OAAO,EAAW,WAAW,EAAE,WAAW,EAAE;CAEnI"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class Field {
|
|
4
|
+
constructor(name, type, enumerable, derivatives) {
|
|
5
|
+
this.name = name;
|
|
6
|
+
this.type = type;
|
|
7
|
+
this.enumerable = enumerable;
|
|
8
|
+
this.derivatives = derivatives;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.Field = Field;
|
|
13
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","sources":["../../Field.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\n\n/**\n * Represents a field on a type.\n */\n export class Field {\n constructor(readonly name: string, readonly type: Constructor, readonly enumerable: boolean, readonly derivatives: Constructor[]) {\n }\n}\n"],"names":[],"mappings":";;MAQc,KAAK,CAAA;AACf,IAAA,WAAA,CAAqB,IAAY,EAAW,IAAiB,EAAW,UAAmB,EAAW,WAA0B,EAAA;QAA3G,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAW,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAAW,IAAU,CAAA,UAAA,GAAV,UAAU,CAAS;QAAW,IAAW,CAAA,WAAA,GAAX,WAAW,CAAe;KAC/H;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../../Fields.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKhC,qBAAa,MAAM;IACf,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;IASjI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE;CAWxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('reflect-metadata');
|
|
4
|
+
var Field = require('./Field.js');
|
|
5
|
+
|
|
6
|
+
class Fields {
|
|
7
|
+
static addFieldToType(target, field, fieldType, enumerable, derivatives) {
|
|
8
|
+
let fields = new Map();
|
|
9
|
+
if (Reflect.hasOwnMetadata('fields', target)) {
|
|
10
|
+
fields = Reflect.getOwnMetadata('fields', target);
|
|
11
|
+
}
|
|
12
|
+
fields.set(field, new Field.Field(field, fieldType, enumerable, derivatives));
|
|
13
|
+
Reflect.defineMetadata('fields', fields, target);
|
|
14
|
+
}
|
|
15
|
+
static getFieldsForType(target) {
|
|
16
|
+
const fields = [];
|
|
17
|
+
if (Reflect.hasOwnMetadata('fields', target)) {
|
|
18
|
+
const fieldsMap = Reflect.getOwnMetadata('fields', target);
|
|
19
|
+
for (const field of fieldsMap.entries()) {
|
|
20
|
+
fields.push(field[1]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return fields;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.Fields = Fields;
|
|
28
|
+
//# sourceMappingURL=Fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":["Field"],"mappings":";;;;;MAUa,MAAM,CAAA;IACf,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAA;AAC7H,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACrD;AACD,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAIA,WAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KACpD;IAED,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB,CAAC;YACjF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;SACJ;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Guid.d.ts","sourceRoot":"","sources":["../../Guid.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmB1C,qBAAa,IAAK,YAAW,UAAU;IAcvB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU;IATjD,MAAM,CAAC,QAAQ,CAAC,KAAK,OAA8D;IAEnF,OAAO,CAAC,cAAc,CAAM;gBAOP,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU;IAiBjD,MAAM,CAAC,MAAM,IAAI,IAAI;IAgCrB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBhC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC;IAUtD,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQ3B,QAAQ,IAAI,MAAM;CAGrB"}
|
package/dist/cjs/Guid.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const lookUpTable = [];
|
|
4
|
+
(() => {
|
|
5
|
+
for (let i = 0; i < 256; i += 1) {
|
|
6
|
+
lookUpTable[i] = (i < 16 ? '0' : '') + (i).toString(16);
|
|
7
|
+
}
|
|
8
|
+
})();
|
|
9
|
+
const getString = (num) => {
|
|
10
|
+
return num.toString(16).padStart(2, '0');
|
|
11
|
+
};
|
|
12
|
+
class Guid {
|
|
13
|
+
constructor(bytes) {
|
|
14
|
+
this.bytes = bytes;
|
|
15
|
+
this._stringVersion = '';
|
|
16
|
+
this._stringVersion = '' +
|
|
17
|
+
getString(bytes[3]) + getString(bytes[2]) + getString(bytes[1]) + getString(bytes[0]) +
|
|
18
|
+
'-' +
|
|
19
|
+
getString(bytes[5]) + getString(bytes[4]) +
|
|
20
|
+
'-' +
|
|
21
|
+
getString(bytes[7]) + getString(bytes[6]) +
|
|
22
|
+
'-' +
|
|
23
|
+
getString(bytes[8]) + getString(bytes[9]) +
|
|
24
|
+
'-' +
|
|
25
|
+
getString(bytes[10]) + getString(bytes[11]) + getString(bytes[12]) + getString(bytes[13]) + getString(bytes[14]) + getString(bytes[15]);
|
|
26
|
+
}
|
|
27
|
+
static create() {
|
|
28
|
+
const d0 = Math.random() * 0xFFFFFFFF | 0;
|
|
29
|
+
const d1 = Math.random() * 0xFFFFFFFF | 0;
|
|
30
|
+
const d2 = Math.random() * 0xFFFFFFFF | 0;
|
|
31
|
+
const d3 = Math.random() * 0xFFFFFFFF | 0;
|
|
32
|
+
const bytes = [
|
|
33
|
+
lookUpTable[d0 & 0xFF],
|
|
34
|
+
lookUpTable[d0 >> 8 & 0xFF],
|
|
35
|
+
lookUpTable[d0 >> 16 & 0xFF],
|
|
36
|
+
lookUpTable[d0 >> 24 & 0xFF],
|
|
37
|
+
lookUpTable[d1 & 0xFF],
|
|
38
|
+
lookUpTable[d1 >> 8 & 0xFF],
|
|
39
|
+
lookUpTable[d1 >> 16 & 0x0F | 0x40],
|
|
40
|
+
lookUpTable[d1 >> 24 & 0xFF],
|
|
41
|
+
lookUpTable[d2 & 0x3F | 0x80],
|
|
42
|
+
lookUpTable[d2 >> 8 & 0xFF],
|
|
43
|
+
lookUpTable[d2 >> 16 & 0xFF],
|
|
44
|
+
lookUpTable[d2 >> 24 & 0xFF],
|
|
45
|
+
lookUpTable[d3 & 0xFF],
|
|
46
|
+
lookUpTable[d3 >> 8 & 0xFF],
|
|
47
|
+
lookUpTable[d3 >> 16 & 0xFF],
|
|
48
|
+
lookUpTable[d3 >> 24 & 0xFF]
|
|
49
|
+
];
|
|
50
|
+
return new Guid(bytes.map(_ => parseInt(`0x${_}`, 16)));
|
|
51
|
+
}
|
|
52
|
+
static parse(guid) {
|
|
53
|
+
const bytes = [];
|
|
54
|
+
guid.split('-').map((number, index) => {
|
|
55
|
+
var _a;
|
|
56
|
+
const bytesInChar = index < 3 ? (_a = number.match(/.{1,2}/g)) === null || _a === void 0 ? void 0 : _a.reverse() : number.match(/.{1,2}/g);
|
|
57
|
+
bytesInChar === null || bytesInChar === void 0 ? void 0 : bytesInChar.map((byte) => { bytes.push(parseInt(byte, 16)); });
|
|
58
|
+
});
|
|
59
|
+
return new Guid(bytes);
|
|
60
|
+
}
|
|
61
|
+
static as(input) {
|
|
62
|
+
if (typeof input === 'string') {
|
|
63
|
+
return Guid.parse(input);
|
|
64
|
+
}
|
|
65
|
+
return input;
|
|
66
|
+
}
|
|
67
|
+
equals(other) {
|
|
68
|
+
return Guid.as(other).toString() === this.toString();
|
|
69
|
+
}
|
|
70
|
+
toString() {
|
|
71
|
+
return this._stringVersion;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
Guid.empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
|
75
|
+
|
|
76
|
+
exports.Guid = Guid;
|
|
77
|
+
//# sourceMappingURL=Guid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Guid.js","sources":["../../Guid.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IEquatable } from './IEquatable';\n\nconst lookUpTable: string[] = [];\n(() => {\n for (let i = 0; i < 256; i += 1) {\n lookUpTable[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n})();\n\nconst getString = (num: number) => {\n return num.toString(16).padStart(2, '0');\n};\n\n/**\n * Represents a Guid according to the http://www.ietf.org/rfc/rfc4122.txt\n *\n * @export\n * @class Guid\n */\nexport class Guid implements IEquatable {\n\n /**\n * Gets an empty {Guid}\n */\n static readonly empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n\n private _stringVersion = '';\n\n\n /**\n * Initializes a new instance of the {Guid} class.\n * @param {number[]|Uint8Array} bytes - The 16 bytes that represents a {Guid}.\n */\n constructor(readonly bytes: number[] | Uint8Array) {\n this._stringVersion = '' +\n getString(bytes[3]) + getString(bytes[2]) + getString(bytes[1]) + getString(bytes[0]) +\n '-' +\n getString(bytes[5]) + getString(bytes[4]) +\n '-' +\n getString(bytes[7]) + getString(bytes[6]) +\n '-' +\n getString(bytes[8]) + getString(bytes[9]) +\n '-' +\n getString(bytes[10]) + getString(bytes[11]) + getString(bytes[12]) + getString(bytes[13]) + getString(bytes[14]) + getString(bytes[15]);\n }\n\n /**\n * Create a new {Guid}\n * @returns {Guid}\n */\n static create(): Guid {\n const d0 = Math.random() * 0xFFFFFFFF | 0;\n const d1 = Math.random() * 0xFFFFFFFF | 0;\n const d2 = Math.random() * 0xFFFFFFFF | 0;\n const d3 = Math.random() * 0xFFFFFFFF | 0;\n\n const bytes = [\n lookUpTable[d0 & 0xFF],\n lookUpTable[d0 >> 8 & 0xFF],\n lookUpTable[d0 >> 16 & 0xFF],\n lookUpTable[d0 >> 24 & 0xFF],\n lookUpTable[d1 & 0xFF],\n lookUpTable[d1 >> 8 & 0xFF],\n lookUpTable[d1 >> 16 & 0x0F | 0x40],\n lookUpTable[d1 >> 24 & 0xFF],\n lookUpTable[d2 & 0x3F | 0x80],\n lookUpTable[d2 >> 8 & 0xFF],\n lookUpTable[d2 >> 16 & 0xFF],\n lookUpTable[d2 >> 24 & 0xFF],\n lookUpTable[d3 & 0xFF],\n lookUpTable[d3 >> 8 & 0xFF],\n lookUpTable[d3 >> 16 & 0xFF],\n lookUpTable[d3 >> 24 & 0xFF]\n ];\n\n return new Guid(bytes.map(_ => parseInt(`0x${_}`, 16)));\n }\n\n /**\n * Parses a string and turns it into a {Guid}.\n * @param {string} guid String representation of guid.\n */\n static parse(guid: string): Guid {\n const bytes: number[] = [];\n guid.split('-').map((number, index) => {\n const bytesInChar = index < 3 ? number.match(/.{1,2}/g)?.reverse() : number.match(/.{1,2}/g);\n bytesInChar?.map((byte) => { bytes.push(parseInt(byte, 16)); });\n });\n\n return new Guid(bytes);\n }\n\n /**\n * Parses if the type is a string parse, otherwise pass through the input as desired output type.\n * @template T Type to handle for\n * @param {string|T} input String or the generic type.\n * @returns identifier Parsed or passed through\n */\n static as<T extends Guid = Guid>(input: string | T): T {\n if (typeof input === 'string') {\n return Guid.parse(input) as T;\n }\n return input as T;\n }\n\n /**\n * @inheritdoc\n */\n equals(other: any): boolean {\n return Guid.as(other).toString() === this.toString();\n }\n\n /**\n * Return a string representation of the {Guid} in the format: 00000000-0000-0000-0000-000000000000\n * @returns {string}\n */\n toString(): string {\n return this._stringVersion;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IEquatable.d.ts","sourceRoot":"","sources":["../../IEquatable.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IAOvB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAA;CAC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializer.d.ts","sourceRoot":"","sources":["../../JsonSerializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAiC5C,qBAAa,cAAc;IACvB,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAoB;IAQjE,MAAM,CAAC,WAAW,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAW/F,MAAM,CAAC,gBAAgB,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE;IAWtG,MAAM,CAAC,uBAAuB,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO;IAmC5G,MAAM,CAAC,4BAA4B,CAAC,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE;CASvH"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Fields = require('./Fields.js');
|
|
4
|
+
var DerivedType = require('./DerivedType.js');
|
|
5
|
+
var Guid = require('./Guid.js');
|
|
6
|
+
|
|
7
|
+
const typeSerializers = new Map([
|
|
8
|
+
[Number, (value) => value],
|
|
9
|
+
[String, (value) => value],
|
|
10
|
+
[Boolean, (value) => value],
|
|
11
|
+
[Date, (value) => new Date(value)],
|
|
12
|
+
[Guid.Guid, (value) => Guid.Guid.parse(value.toString())],
|
|
13
|
+
]);
|
|
14
|
+
const deserializeValue = (field, value) => {
|
|
15
|
+
if (typeSerializers.has(field.type)) {
|
|
16
|
+
return typeSerializers.get(field.type)(value);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
let type = field.type;
|
|
20
|
+
if (field.derivatives.length > 0 && value[JsonSerializer.DerivedTypeIdProperty]) {
|
|
21
|
+
const derivedTypeId = value[JsonSerializer.DerivedTypeIdProperty];
|
|
22
|
+
type = field.derivatives.find(_ => DerivedType.DerivedType.get(_) == derivedTypeId) || type;
|
|
23
|
+
}
|
|
24
|
+
return JsonSerializer.deserialize(type, JSON.stringify(value));
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
class JsonSerializer {
|
|
28
|
+
static deserialize(targetType, json) {
|
|
29
|
+
const parsed = JSON.parse(json);
|
|
30
|
+
return this.deserializeFromInstance(targetType, parsed);
|
|
31
|
+
}
|
|
32
|
+
static deserializeArray(targetType, json) {
|
|
33
|
+
const parsed = JSON.parse(json);
|
|
34
|
+
return this.deserializeArrayFromInstance(targetType, parsed);
|
|
35
|
+
}
|
|
36
|
+
static deserializeFromInstance(targetType, instance) {
|
|
37
|
+
const fields = Fields.Fields.getFieldsForType(targetType);
|
|
38
|
+
const deserialized = new targetType();
|
|
39
|
+
for (const field of fields) {
|
|
40
|
+
let value = instance[field.name];
|
|
41
|
+
if (value) {
|
|
42
|
+
if (field.enumerable) {
|
|
43
|
+
value = value.map(_ => deserializeValue(field, _));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
value = deserializeValue(field, value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
deserialized[field.name] = value;
|
|
50
|
+
}
|
|
51
|
+
if (targetType == Object) {
|
|
52
|
+
const objectFields = Object.keys(instance).filter((value, index, arr) => {
|
|
53
|
+
return !fields.some(_ => _.name == value);
|
|
54
|
+
});
|
|
55
|
+
for (const field of objectFields) {
|
|
56
|
+
deserialized[field] = instance[field];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return deserialized;
|
|
60
|
+
}
|
|
61
|
+
static deserializeArrayFromInstance(targetType, instances) {
|
|
62
|
+
const deserialized = [];
|
|
63
|
+
for (const instance of instances) {
|
|
64
|
+
deserialized.push(this.deserializeFromInstance(targetType, instance));
|
|
65
|
+
}
|
|
66
|
+
return deserialized;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
JsonSerializer.DerivedTypeIdProperty = "_derivedTypeId";
|
|
70
|
+
|
|
71
|
+
exports.JsonSerializer = JsonSerializer;
|
|
72
|
+
//# sourceMappingURL=JsonSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonSerializer.js","sources":["../../JsonSerializer.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\nimport { Fields } from './Fields';\nimport { DerivedType } from './DerivedType';\nimport { Guid } from './Guid';\n\ntype typeSerializer = (value: any) => any;\n\nconst typeSerializers: Map<Constructor, typeSerializer> = new Map<Constructor, typeSerializer>([\n [Number, (value: any) => value],\n [String, (value: any) => value],\n [Boolean, (value: any) => value],\n [Date, (value: any) => new Date(value)],\n [Guid, (value: any) => Guid.parse(value.toString())],\n]);\n\nconst deserializeValue = (field: Field, value: any) => {\n if (typeSerializers.has(field.type)) {\n return typeSerializers.get(field.type)!(value);\n } else {\n let type = field.type;\n if (field.derivatives.length > 0 && value[JsonSerializer.DerivedTypeIdProperty]) {\n const derivedTypeId = value[JsonSerializer.DerivedTypeIdProperty];\n type = field.derivatives.find(_ => DerivedType.get(_) == derivedTypeId) || type;\n }\n\n return JsonSerializer.deserialize(type, JSON.stringify(value));\n }\n};\n\n/**\n * Represents a serializer for JSON.\n */\nexport class JsonSerializer {\n static readonly DerivedTypeIdProperty: string = \"_derivedTypeId\";\n\n /**\n * Deserialize a JSON string to the specific type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An instance of the target type.\n */\n static deserialize<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult {\n const parsed = JSON.parse(json);\n return this.deserializeFromInstance<TResult>(targetType, parsed);\n }\n\n /**\n * Deserialize a array JSON string to an array of the specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArray<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult[] {\n const parsed = JSON.parse(json);\n return this.deserializeArrayFromInstance(targetType, parsed);\n }\n\n /**\n * Deserialize an any instance to a specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {*} instance Actual instance to deserialize.\n * @returns An instance of the target type.\n */\n static deserializeFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instance: any): TResult {\n const fields = Fields.getFieldsForType(targetType as Constructor);\n const deserialized = new targetType();\n for (const field of fields) {\n let value = instance[field.name];\n if (value) {\n if (field.enumerable) {\n value = value.map(_ => deserializeValue(field, _));\n } else {\n value = deserializeValue(field, value);\n }\n }\n\n deserialized[field.name] = value;\n }\n\n if ((targetType as Constructor) == Object) {\n const objectFields = Object.keys(instance).filter((value, index, arr) => {\n return !fields.some(_ => _.name == value);\n });\n\n for (const field of objectFields) {\n deserialized[field] = instance[field];\n }\n }\n\n return deserialized;\n }\n\n /**\n * Deserialize an array of any instances to an array of specific instance types.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {instances} instances Actual instances to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArrayFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instances: any): TResult[] {\n const deserialized: TResult[] = [];\n\n for (const instance of instances) {\n deserialized.push(this.deserializeFromInstance<TResult>(targetType, instance));\n }\n\n return deserialized;\n }\n}\n"],"names":["Guid","DerivedType","Fields"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyAccessor.d.ts","sourceRoot":"","sources":["../../PropertyAccessor.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyAccessorDescriptor.d.ts","sourceRoot":"","sources":["../../PropertyAccessorDescriptor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKtD,qBAAa,0BAA0B;IAOvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAoB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAvD,SAAS,EAAE,gBAAgB,EAAmB,SAAS,EAAE,MAAM,EAAE;IAO9F,IAAI,QAAQ,IAAI,gBAAgB,CAE/B;IAMD,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAMD,IAAI,IAAI,IAAI,MAAM,CAEjB;CACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class PropertyAccessorDescriptor {
|
|
4
|
+
constructor(_accessor, _segments) {
|
|
5
|
+
this._accessor = _accessor;
|
|
6
|
+
this._segments = _segments;
|
|
7
|
+
}
|
|
8
|
+
get accessor() {
|
|
9
|
+
return this._accessor;
|
|
10
|
+
}
|
|
11
|
+
get segments() {
|
|
12
|
+
return this._segments;
|
|
13
|
+
}
|
|
14
|
+
get path() {
|
|
15
|
+
return this._segments.join('.');
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.PropertyAccessorDescriptor = PropertyAccessorDescriptor;
|
|
20
|
+
//# sourceMappingURL=PropertyAccessorDescriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyAccessorDescriptor.js","sources":["../../PropertyAccessorDescriptor.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PropertyAccessor } from './PropertyAccessor';\n\n/**\n * Represents the descriptor of a specific property accessor\n */\nexport class PropertyAccessorDescriptor {\n\n /**\n * Creates an instance of {PropertyAccessorDescriptor}.\n * @param {PropertyAccessor} _accessor - The actual accessor for accessing the property.\n * @param {Array<string>} _segments - The segments representing the path of the property accessor within an instance.\n */\n constructor(private readonly _accessor: PropertyAccessor, private readonly _segments: string[]) {\n }\n\n /**\n * Gets the actual accessor.\n * @returns {PropertyAccessor}\n */\n get accessor(): PropertyAccessor {\n return this._accessor;\n }\n\n /**\n * Gets the segments that constitute the deep path within the object instance for accessing the underlying property.\n * @returns {ReadonlyArray<string>}\n */\n get segments(): readonly string[] {\n return this._segments;\n }\n\n /**\n * Gets the full path to the property\n * @returns {string}\n */\n get path(): string {\n return this._segments.join('.');\n }\n}\n"],"names":[],"mappings":";;MAQa,0BAA0B,CAAA;IAOnC,WAA6B,CAAA,SAA2B,EAAmB,SAAmB,EAAA;QAAjE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAAmB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;KAC7F;AAMD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAMD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAMD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnC;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyPathResolverProxyHandler.d.ts","sourceRoot":"","sources":["../../PropertyPathResolverProxyHandler.ts"],"names":[],"mappings":"AAOA,qBAAa,gCAAiC,YAAW,YAAY,CAAC,GAAG,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAHnC,SAAS,SAAM;IACf,SAAS,EAAE,MAAM,EAAE,CAAM;gBAEI,KAAK,CAAC,EAAE,gCAAgC,YAAA;IAGrE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,UAAU;IAKlB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;CASvD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
class PropertyPathResolverProxyHandler {
|
|
4
|
+
constructor(_root) {
|
|
5
|
+
this._root = _root;
|
|
6
|
+
this._property = '';
|
|
7
|
+
this._segments = [];
|
|
8
|
+
}
|
|
9
|
+
get property() {
|
|
10
|
+
return this._property;
|
|
11
|
+
}
|
|
12
|
+
get segments() {
|
|
13
|
+
return this._segments;
|
|
14
|
+
}
|
|
15
|
+
get path() {
|
|
16
|
+
return this._segments.join('.');
|
|
17
|
+
}
|
|
18
|
+
addSegment(segment) {
|
|
19
|
+
this._segments.push(segment);
|
|
20
|
+
}
|
|
21
|
+
get(target, p, receiver) {
|
|
22
|
+
const root = this._root || this;
|
|
23
|
+
const childProperty = new Proxy({}, new PropertyPathResolverProxyHandler(root));
|
|
24
|
+
this._property = p.toString();
|
|
25
|
+
root.addSegment(this._property);
|
|
26
|
+
return childProperty;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.PropertyPathResolverProxyHandler = PropertyPathResolverProxyHandler;
|
|
31
|
+
//# sourceMappingURL=PropertyPathResolverProxyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PropertyPathResolverProxyHandler.js","sources":["../../PropertyPathResolverProxyHandler.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Object proxy handler\n * @template TObject\n */\nexport class PropertyPathResolverProxyHandler implements ProxyHandler<any> {\n _property = '';\n _segments: string[] = [];\n\n constructor(private readonly _root?: PropertyPathResolverProxyHandler) {\n }\n\n get property(): string {\n return this._property;\n }\n\n get segments(): readonly string[] {\n return this._segments;\n }\n\n get path(): string {\n return this._segments.join('.');\n }\n\n private addSegment(segment: string) {\n this._segments.push(segment);\n }\n\n /** @inheritdoc */\n get(target: any, p: PropertyKey, receiver: any): any {\n const root = this._root || this;\n\n const childProperty = new Proxy({}, new PropertyPathResolverProxyHandler(root));\n this._property = p.toString();\n root.addSegment(this._property);\n\n return childProperty;\n }\n}\n"],"names":[],"mappings":";;MAOa,gCAAgC,CAAA;AAIzC,IAAA,WAAA,CAA6B,KAAwC,EAAA;QAAxC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmC;QAHrE,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;KAGxB;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAED,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnC;AAEO,IAAA,UAAU,CAAC,OAAe,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;AAGD,IAAA,GAAG,CAAC,MAAW,EAAE,CAAc,EAAE,QAAa,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;AAEhC,QAAA,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEhC,QAAA,OAAO,aAAa,CAAC;KACxB;AACJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivedTypeDecorator.d.ts","sourceRoot":"","sources":["../../derivedTypeDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAG1B,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,YACjB,GAAG,UAG/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('reflect-metadata');
|
|
4
|
+
var DerivedType = require('./DerivedType.js');
|
|
5
|
+
|
|
6
|
+
function derivedType(identifier) {
|
|
7
|
+
return function (target) {
|
|
8
|
+
DerivedType.DerivedType.set(target, identifier);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.derivedType = derivedType;
|
|
13
|
+
//# sourceMappingURL=derivedTypeDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derivedTypeDecorator.js","sources":["../../derivedTypeDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { DerivedType } from './DerivedType';\n\nexport function derivedType(identifier: string) {\n return function (target: any) {\n DerivedType.set(target, identifier);\n };\n}\n"],"names":["DerivedType"],"mappings":";;;;;AAMM,SAAU,WAAW,CAAC,UAAkB,EAAA;AAC1C,IAAA,OAAO,UAAU,MAAW,EAAA;AACxB,QAAAA,uBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACxC,KAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldDecorator.d.ts","sourceRoot":"","sources":["../../fieldDecorator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,wBAAgB,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,YACnE,GAAG,eAAe,MAAM,UAGpD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var Fields = require('./Fields.js');
|
|
4
|
+
|
|
5
|
+
function field(targetType, enumerable, derivatives) {
|
|
6
|
+
return function (target, propertyKey) {
|
|
7
|
+
Fields.Fields.addFieldToType(target.constructor, propertyKey, targetType, enumerable || false, derivatives || []);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
exports.field = field;
|
|
12
|
+
//# sourceMappingURL=fieldDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fieldDecorator.js","sources":["../../fieldDecorator.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\nimport { Fields } from './Fields';\n\nexport function field(targetType: Constructor, enumerable?: boolean, derivatives?: Constructor[]) {\n return function (target: any, propertyKey: string) {\n Fields.addFieldToType(target.constructor, propertyKey, targetType, enumerable || false, derivatives || []);\n };\n}\n"],"names":["Fields"],"mappings":";;;;SAMgB,KAAK,CAAC,UAAuB,EAAE,UAAoB,EAAE,WAA2B,EAAA;IAC5F,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAA;AAC7C,QAAAA,aAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,IAAI,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;AAC/G,KAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/esm/Fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":[],"mappings":";;;MAUa,MAAM,CAAA;IACf,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAA;AAC7H,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Fields.js","sources":["../../Fields.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport 'reflect-metadata';\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\n\n/**\n * Represents a system working with fields on types.\n */\nexport class Fields {\n static addFieldToType(target: Constructor, field: string, fieldType: Constructor, enumerable: boolean, derivatives: Constructor[]) {\n let fields: Map<string, Field> = new Map<string, Field>();\n if (Reflect.hasOwnMetadata('fields', target)) {\n fields = Reflect.getOwnMetadata('fields', target);\n }\n fields.set(field, new Field(field, fieldType, enumerable, derivatives));\n Reflect.defineMetadata('fields', fields, target);\n }\n\n static getFieldsForType(target: Constructor): Field[] {\n const fields: Field[] = [];\n if (Reflect.hasOwnMetadata('fields', target)) {\n const fieldsMap = Reflect.getOwnMetadata('fields', target) as Map<string, Field>;\n for (const field of fieldsMap.entries()) {\n fields.push(field[1]);\n }\n }\n\n return fields;\n }\n}\n"],"names":[],"mappings":";;;MAUa,MAAM,CAAA;IACf,OAAO,cAAc,CAAC,MAAmB,EAAE,KAAa,EAAE,SAAsB,EAAE,UAAmB,EAAE,WAA0B,EAAA;AAC7H,QAAA,IAAI,MAAM,GAAuB,IAAI,GAAG,EAAiB,CAAC;QAC1D,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACrD;AACD,QAAA,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KACpD;IAED,OAAO,gBAAgB,CAAC,MAAmB,EAAA;QACvC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAuB,CAAC;YACjF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE;gBACrC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;SACJ;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AACJ;;;;"}
|
package/dist/esm/Guid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Guid.js","sources":["../../Guid.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IEquatable } from './IEquatable';\n\nconst lookUpTable: string[] = [];\n(() => {\n for (let i = 0; i < 256; i += 1) {\n lookUpTable[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n})();\n\nconst getString = (num: number) => {\n return num.toString(16).padStart(2, '0');\n};\n\n/**\n * Represents a Guid according to the http://www.ietf.org/rfc/rfc4122.txt\n *\n * @export\n * @class Guid\n */\nexport class Guid implements IEquatable {\n\n /**\n * Gets an empty {Guid}\n */\n static readonly empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n\n private _stringVersion = '';\n\n\n /**\n * Initializes a new instance of the {Guid} class.\n * @param {number[]|Uint8Array} bytes - The 16 bytes that represents a {Guid}.\n */\n constructor(readonly bytes: number[] | Uint8Array) {\n this._stringVersion = '' +\n getString(bytes[3]) + getString(bytes[2]) + getString(bytes[1]) + getString(bytes[0]) +\n '-' +\n getString(bytes[5]) + getString(bytes[4]) +\n '-' +\n getString(bytes[7]) + getString(bytes[6]) +\n '-' +\n getString(bytes[8]) + getString(bytes[9]) +\n '-' +\n getString(bytes[10]) + getString(bytes[11]) + getString(bytes[12]) + getString(bytes[13]) + getString(bytes[14]) + getString(bytes[15]);\n }\n\n /**\n * Create a new {Guid}\n * @returns {Guid}\n */\n static create(): Guid {\n const d0 = Math.random() * 0xFFFFFFFF | 0;\n const d1 = Math.random() * 0xFFFFFFFF | 0;\n const d2 = Math.random() * 0xFFFFFFFF | 0;\n const d3 = Math.random() * 0xFFFFFFFF | 0;\n\n const bytes = [\n lookUpTable[d0 & 0xFF],\n lookUpTable[d0 >> 8 & 0xFF],\n lookUpTable[d0 >> 16 & 0xFF],\n lookUpTable[d0 >> 24 & 0xFF],\n lookUpTable[d1 & 0xFF],\n lookUpTable[d1 >> 8 & 0xFF],\n lookUpTable[d1 >> 16 & 0x0F | 0x40],\n lookUpTable[d1 >> 24 & 0xFF],\n lookUpTable[d2 & 0x3F | 0x80],\n lookUpTable[d2 >> 8 & 0xFF],\n lookUpTable[d2 >> 16 & 0xFF],\n lookUpTable[d2 >> 24 & 0xFF],\n lookUpTable[d3 & 0xFF],\n lookUpTable[d3 >> 8 & 0xFF],\n lookUpTable[d3 >> 16 & 0xFF],\n lookUpTable[d3 >> 24 & 0xFF]\n ];\n\n return new Guid(bytes.map(_ => parseInt(`0x${_}`, 16)));\n }\n\n /**\n * Parses a string and turns it into a {Guid}.\n * @param {string} guid String representation of guid.\n */\n static parse(guid: string): Guid {\n const bytes: number[] = [];\n guid.split('-').map((number, index) => {\n const bytesInChar = index < 3 ? number.match(/.{1,2}/g)?.reverse() : number.match(/.{1,2}/g);\n bytesInChar?.map((byte) => { bytes.push(parseInt(byte, 16)); });\n });\n\n return new Guid(bytes);\n }\n\n /**\n * Parses if the type is a string parse, otherwise pass through the input as desired output type.\n * @template T Type to handle for\n * @param {string|T} input String or the generic type.\n * @returns identifier Parsed or passed through\n */\n static as<T extends Guid = Guid>(input: string | T): T {\n if (typeof input === 'string') {\n return Guid.parse(input) as T;\n }\n return input as T;\n }\n\n /**\n * @inheritdoc\n */\n equals(other: any): boolean {\n return Guid.as(other).toString() === this.toString();\n }\n\n /**\n * Return a string representation of the {Guid} in the format: 00000000-0000-0000-0000-000000000000\n * @returns {string}\n */\n toString(): string {\n return this._stringVersion;\n }\n}\n"],"names":[],"mappings":"AAKA,MAAM,WAAW,GAAa,EAAE,CAAC;AACjC,CAAC,MAAK;AACF,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Guid.js","sources":["../../Guid.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IEquatable } from './IEquatable';\n\nconst lookUpTable: string[] = [];\n(() => {\n for (let i = 0; i < 256; i += 1) {\n lookUpTable[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n})();\n\nconst getString = (num: number) => {\n return num.toString(16).padStart(2, '0');\n};\n\n/**\n * Represents a Guid according to the http://www.ietf.org/rfc/rfc4122.txt\n *\n * @export\n * @class Guid\n */\nexport class Guid implements IEquatable {\n\n /**\n * Gets an empty {Guid}\n */\n static readonly empty = new Guid([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);\n\n private _stringVersion = '';\n\n\n /**\n * Initializes a new instance of the {Guid} class.\n * @param {number[]|Uint8Array} bytes - The 16 bytes that represents a {Guid}.\n */\n constructor(readonly bytes: number[] | Uint8Array) {\n this._stringVersion = '' +\n getString(bytes[3]) + getString(bytes[2]) + getString(bytes[1]) + getString(bytes[0]) +\n '-' +\n getString(bytes[5]) + getString(bytes[4]) +\n '-' +\n getString(bytes[7]) + getString(bytes[6]) +\n '-' +\n getString(bytes[8]) + getString(bytes[9]) +\n '-' +\n getString(bytes[10]) + getString(bytes[11]) + getString(bytes[12]) + getString(bytes[13]) + getString(bytes[14]) + getString(bytes[15]);\n }\n\n /**\n * Create a new {Guid}\n * @returns {Guid}\n */\n static create(): Guid {\n const d0 = Math.random() * 0xFFFFFFFF | 0;\n const d1 = Math.random() * 0xFFFFFFFF | 0;\n const d2 = Math.random() * 0xFFFFFFFF | 0;\n const d3 = Math.random() * 0xFFFFFFFF | 0;\n\n const bytes = [\n lookUpTable[d0 & 0xFF],\n lookUpTable[d0 >> 8 & 0xFF],\n lookUpTable[d0 >> 16 & 0xFF],\n lookUpTable[d0 >> 24 & 0xFF],\n lookUpTable[d1 & 0xFF],\n lookUpTable[d1 >> 8 & 0xFF],\n lookUpTable[d1 >> 16 & 0x0F | 0x40],\n lookUpTable[d1 >> 24 & 0xFF],\n lookUpTable[d2 & 0x3F | 0x80],\n lookUpTable[d2 >> 8 & 0xFF],\n lookUpTable[d2 >> 16 & 0xFF],\n lookUpTable[d2 >> 24 & 0xFF],\n lookUpTable[d3 & 0xFF],\n lookUpTable[d3 >> 8 & 0xFF],\n lookUpTable[d3 >> 16 & 0xFF],\n lookUpTable[d3 >> 24 & 0xFF]\n ];\n\n return new Guid(bytes.map(_ => parseInt(`0x${_}`, 16)));\n }\n\n /**\n * Parses a string and turns it into a {Guid}.\n * @param {string} guid String representation of guid.\n */\n static parse(guid: string): Guid {\n const bytes: number[] = [];\n guid.split('-').map((number, index) => {\n const bytesInChar = index < 3 ? number.match(/.{1,2}/g)?.reverse() : number.match(/.{1,2}/g);\n bytesInChar?.map((byte) => { bytes.push(parseInt(byte, 16)); });\n });\n\n return new Guid(bytes);\n }\n\n /**\n * Parses if the type is a string parse, otherwise pass through the input as desired output type.\n * @template T Type to handle for\n * @param {string|T} input String or the generic type.\n * @returns identifier Parsed or passed through\n */\n static as<T extends Guid = Guid>(input: string | T): T {\n if (typeof input === 'string') {\n return Guid.parse(input) as T;\n }\n return input as T;\n }\n\n /**\n * @inheritdoc\n */\n equals(other: any): boolean {\n return Guid.as(other).toString() === this.toString();\n }\n\n /**\n * Return a string representation of the {Guid} in the format: 00000000-0000-0000-0000-000000000000\n * @returns {string}\n */\n toString(): string {\n return this._stringVersion;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonSerializer.js","sources":["../../JsonSerializer.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\nimport { Fields } from './Fields';\nimport { DerivedType } from './DerivedType';\nimport { Guid } from './Guid';\n\ntype typeSerializer = (value: any) => any;\n\nconst typeSerializers: Map<Constructor, typeSerializer> = new Map<Constructor, typeSerializer>([\n [Number, (value: any) => value],\n [String, (value: any) => value],\n [Boolean, (value: any) => value],\n [Date, (value: any) => new Date(value)],\n [Guid, (value: any) => Guid.parse(value.toString())],\n]);\n\nconst deserializeValue = (field: Field, value: any) => {\n if (typeSerializers.has(field.type)) {\n return typeSerializers.get(field.type)!(value);\n } else {\n let type = field.type;\n if (field.derivatives.length > 0 && value[JsonSerializer.DerivedTypeIdProperty]) {\n const derivedTypeId = value[JsonSerializer.DerivedTypeIdProperty];\n type = field.derivatives.find(_ => DerivedType.get(_) == derivedTypeId) || type;\n }\n\n return JsonSerializer.deserialize(type, JSON.stringify(value));\n }\n};\n\n/**\n * Represents a serializer for JSON.\n */\nexport class JsonSerializer {\n static readonly DerivedTypeIdProperty: string = \"_derivedTypeId\";\n\n /**\n * Deserialize a JSON string to the specific type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An instance of the target type.\n */\n static deserialize<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult {\n const parsed = JSON.parse(json);\n return this.deserializeFromInstance<TResult>(targetType, parsed);\n }\n\n /**\n * Deserialize a array JSON string to an array of the specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArray<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult[] {\n const parsed = JSON.parse(json);\n return this.deserializeArrayFromInstance(targetType, parsed);\n }\n\n /**\n * Deserialize an any instance to a specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {*} instance Actual instance to deserialize.\n * @returns An instance of the target type.\n */\n static deserializeFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instance: any): TResult {\n const fields = Fields.getFieldsForType(targetType as Constructor);\n const deserialized = new targetType();\n for (const field of fields) {\n let value = instance[field.name];\n if (value) {\n if (field.enumerable) {\n value = value.map(_ => deserializeValue(field, _));\n } else {\n value = deserializeValue(field, value);\n }\n }\n\n deserialized[field.name] = value;\n }\n\n if ((targetType as Constructor) == Object) {\n const objectFields = Object.keys(instance).filter((value, index, arr) => {\n return !fields.some(_ => _.name == value);\n });\n\n for (const field of objectFields) {\n deserialized[field] = instance[field];\n }\n }\n\n return deserialized;\n }\n\n /**\n * Deserialize an array of any instances to an array of specific instance types.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {instances} instances Actual instances to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArrayFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instances: any): TResult[] {\n const deserialized: TResult[] = [];\n\n for (const instance of instances) {\n deserialized.push(this.deserializeFromInstance<TResult>(targetType, instance));\n }\n\n return deserialized;\n }\n}\n"],"names":[],"mappings":";;;;AAWA,MAAM,eAAe,GAAqC,IAAI,GAAG,CAA8B;IAC3F,CAAC,MAAM,EAAE,CAAC,KAAU,KAAK,KAAK,CAAC;IAC/B,CAAC,MAAM,EAAE,CAAC,KAAU,KAAK,KAAK,CAAC;IAC/B,CAAC,OAAO,EAAE,CAAC,KAAU,KAAK,KAAK,CAAC;AAChC,IAAA,CAAC,IAAI,EAAE,CAAC,KAAU,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,IAAA,CAAC,IAAI,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAA,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAE,KAAU,KAAI;IAClD,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"JsonSerializer.js","sources":["../../JsonSerializer.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Constructor } from './Constructor';\nimport { Field } from './Field';\nimport { Fields } from './Fields';\nimport { DerivedType } from './DerivedType';\nimport { Guid } from './Guid';\n\ntype typeSerializer = (value: any) => any;\n\nconst typeSerializers: Map<Constructor, typeSerializer> = new Map<Constructor, typeSerializer>([\n [Number, (value: any) => value],\n [String, (value: any) => value],\n [Boolean, (value: any) => value],\n [Date, (value: any) => new Date(value)],\n [Guid, (value: any) => Guid.parse(value.toString())],\n]);\n\nconst deserializeValue = (field: Field, value: any) => {\n if (typeSerializers.has(field.type)) {\n return typeSerializers.get(field.type)!(value);\n } else {\n let type = field.type;\n if (field.derivatives.length > 0 && value[JsonSerializer.DerivedTypeIdProperty]) {\n const derivedTypeId = value[JsonSerializer.DerivedTypeIdProperty];\n type = field.derivatives.find(_ => DerivedType.get(_) == derivedTypeId) || type;\n }\n\n return JsonSerializer.deserialize(type, JSON.stringify(value));\n }\n};\n\n/**\n * Represents a serializer for JSON.\n */\nexport class JsonSerializer {\n static readonly DerivedTypeIdProperty: string = \"_derivedTypeId\";\n\n /**\n * Deserialize a JSON string to the specific type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An instance of the target type.\n */\n static deserialize<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult {\n const parsed = JSON.parse(json);\n return this.deserializeFromInstance<TResult>(targetType, parsed);\n }\n\n /**\n * Deserialize a array JSON string to an array of the specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {string} json Actual JSON to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArray<TResult extends {}>(targetType: Constructor<TResult>, json: string): TResult[] {\n const parsed = JSON.parse(json);\n return this.deserializeArrayFromInstance(targetType, parsed);\n }\n\n /**\n * Deserialize an any instance to a specific instance type.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {*} instance Actual instance to deserialize.\n * @returns An instance of the target type.\n */\n static deserializeFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instance: any): TResult {\n const fields = Fields.getFieldsForType(targetType as Constructor);\n const deserialized = new targetType();\n for (const field of fields) {\n let value = instance[field.name];\n if (value) {\n if (field.enumerable) {\n value = value.map(_ => deserializeValue(field, _));\n } else {\n value = deserializeValue(field, value);\n }\n }\n\n deserialized[field.name] = value;\n }\n\n if ((targetType as Constructor) == Object) {\n const objectFields = Object.keys(instance).filter((value, index, arr) => {\n return !fields.some(_ => _.name == value);\n });\n\n for (const field of objectFields) {\n deserialized[field] = instance[field];\n }\n }\n\n return deserialized;\n }\n\n /**\n * Deserialize an array of any instances to an array of specific instance types.\n * @param {Constructor} targetType Type to deserialize to.\n * @param {instances} instances Actual instances to deserialize.\n * @returns An array of instances of the target type.\n */\n static deserializeArrayFromInstance<TResult extends {}>(targetType: Constructor<TResult>, instances: any): TResult[] {\n const deserialized: TResult[] = [];\n\n for (const instance of instances) {\n deserialized.push(this.deserializeFromInstance<TResult>(targetType, instance));\n }\n\n return deserialized;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyPathResolverProxyHandler.d.ts","sourceRoot":"","sources":["../../PropertyPathResolverProxyHandler.ts"],"names":[],"mappings":"AAOA,qBAAa,gCAAiC,YAAW,YAAY,CAAC,GAAG,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAHnC,SAAS,SAAM;IACf,SAAS,EAAE,MAAM,EAAE,CAAM;gBAEI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"PropertyPathResolverProxyHandler.d.ts","sourceRoot":"","sources":["../../PropertyPathResolverProxyHandler.ts"],"names":[],"mappings":"AAOA,qBAAa,gCAAiC,YAAW,YAAY,CAAC,GAAG,CAAC;IAI1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAHnC,SAAS,SAAM;IACf,SAAS,EAAE,MAAM,EAAE,CAAM;gBAEI,KAAK,CAAC,EAAE,gCAAgC,YAAA;IAGrE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,OAAO,CAAC,UAAU;IAKlB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG;CASvD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratis/fundamentals",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Cratis",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"**/*.ts"
|
|
14
14
|
],
|
|
15
15
|
"type": "module",
|
|
16
|
-
"main": "
|
|
16
|
+
"main": "dist/cjs/index.js",
|
|
17
17
|
"module": "dist/esm/index.js",
|
|
18
18
|
"types": "dist/esm/index.d.ts",
|
|
19
19
|
"exports": {
|
|
@@ -35,6 +35,6 @@
|
|
|
35
35
|
"up": "yarn g:up"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"reflect-metadata": "0.
|
|
38
|
+
"reflect-metadata": "0.2.2"
|
|
39
39
|
}
|
|
40
40
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|