@dipscope/type-manager 6.0.0 → 7.0.0-beta.0
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/CHANGELOG.md +15 -0
- package/README.md +35 -21
- package/dist/es2015/custom-context.js +58 -0
- package/dist/es2015/custom-context.js.map +1 -0
- package/dist/es2015/custom-key.js +8 -0
- package/dist/es2015/custom-key.js.map +1 -0
- package/dist/es2015/custom-option.js +2 -0
- package/dist/es2015/custom-option.js.map +1 -0
- package/dist/es2015/custom-value-resolver.js +2 -0
- package/dist/es2015/custom-value-resolver.js.map +1 -0
- package/dist/es2015/custom-value.js +2 -0
- package/dist/es2015/custom-value.js.map +1 -0
- package/dist/es2015/index.js +6 -2
- package/dist/es2015/index.js.map +1 -1
- package/dist/es2015/inject-metadata.js +1 -1
- package/dist/es2015/inject-metadata.js.map +1 -1
- package/dist/es2015/metadata.js +7 -7
- package/dist/es2015/metadata.js.map +1 -1
- package/dist/es2015/property-metadata.js +30 -20
- package/dist/es2015/property-metadata.js.map +1 -1
- package/dist/es2015/serializer-context.js +4 -17
- package/dist/es2015/serializer-context.js.map +1 -1
- package/dist/es2015/type-context.js +6 -0
- package/dist/es2015/type-context.js.map +1 -1
- package/dist/es2015/type-internals.js +2 -0
- package/dist/es2015/type-internals.js.map +1 -0
- package/dist/es2015/type-manager.js +34 -28
- package/dist/es2015/type-manager.js.map +1 -1
- package/dist/es2015/type-metadata.js +36 -21
- package/dist/es2015/type-metadata.js.map +1 -1
- package/dist/es5/custom-context.js +94 -0
- package/dist/es5/custom-context.js.map +1 -0
- package/dist/es5/custom-key.js +10 -0
- package/dist/es5/custom-key.js.map +1 -0
- package/dist/es5/custom-option.js +2 -0
- package/dist/es5/custom-option.js.map +1 -0
- package/dist/es5/custom-value-resolver.js +2 -0
- package/dist/es5/custom-value-resolver.js.map +1 -0
- package/dist/es5/custom-value.js +2 -0
- package/dist/es5/custom-value.js.map +1 -0
- package/dist/es5/index.js +6 -2
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/inject-metadata.js +1 -1
- package/dist/es5/inject-metadata.js.map +1 -1
- package/dist/es5/metadata.js +7 -7
- package/dist/es5/metadata.js.map +1 -1
- package/dist/es5/property-metadata.js +34 -20
- package/dist/es5/property-metadata.js.map +1 -1
- package/dist/es5/serializer-context.js +4 -21
- package/dist/es5/serializer-context.js.map +1 -1
- package/dist/es5/type-context.js +6 -0
- package/dist/es5/type-context.js.map +1 -1
- package/dist/es5/type-internals.js +2 -0
- package/dist/es5/type-internals.js.map +1 -0
- package/dist/es5/type-manager.js +34 -28
- package/dist/es5/type-manager.js.map +1 -1
- package/dist/es5/type-metadata.js +40 -21
- package/dist/es5/type-metadata.js.map +1 -1
- package/dist/types/custom-context.d.ts +89 -0
- package/dist/types/custom-context.d.ts.map +1 -0
- package/dist/types/custom-key.d.ts +29 -0
- package/dist/types/custom-key.d.ts.map +1 -0
- package/dist/types/custom-option.d.ts +11 -0
- package/dist/types/custom-option.d.ts.map +1 -0
- package/dist/types/custom-value-resolver.d.ts +7 -0
- package/dist/types/custom-value-resolver.d.ts.map +1 -0
- package/dist/types/custom-value.d.ts +7 -0
- package/dist/types/custom-value.d.ts.map +1 -0
- package/dist/types/index.d.ts +6 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/inject-internals.d.ts +4 -4
- package/dist/types/inject-internals.d.ts.map +1 -1
- package/dist/types/inject-metadata.d.ts +3 -3
- package/dist/types/inject-metadata.d.ts.map +1 -1
- package/dist/types/metadata.d.ts +6 -7
- package/dist/types/metadata.d.ts.map +1 -1
- package/dist/types/property-internals.d.ts +11 -4
- package/dist/types/property-internals.d.ts.map +1 -1
- package/dist/types/property-metadata.d.ts +17 -10
- package/dist/types/property-metadata.d.ts.map +1 -1
- package/dist/types/property-options.d.ts +4 -4
- package/dist/types/property-options.d.ts.map +1 -1
- package/dist/types/serializer-context.d.ts +0 -7
- package/dist/types/serializer-context.d.ts.map +1 -1
- package/dist/types/type-context.d.ts +12 -0
- package/dist/types/type-context.d.ts.map +1 -1
- package/dist/types/type-internals.d.ts +15 -0
- package/dist/types/type-internals.d.ts.map +1 -0
- package/dist/types/type-manager.d.ts +17 -1
- package/dist/types/type-manager.d.ts.map +1 -1
- package/dist/types/type-metadata.d.ts +30 -12
- package/dist/types/type-metadata.d.ts.map +1 -1
- package/dist/types/type-options-base.d.ts +4 -4
- package/dist/types/type-options-base.d.ts.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/es2015/custom-data.js +0 -2
- package/dist/es2015/custom-data.js.map +0 -1
- package/dist/es2015/type-metadata-extractor.js +0 -2
- package/dist/es2015/type-metadata-extractor.js.map +0 -1
- package/dist/es5/custom-data.js +0 -2
- package/dist/es5/custom-data.js.map +0 -1
- package/dist/es5/type-metadata-extractor.js +0 -2
- package/dist/es5/type-metadata-extractor.js.map +0 -1
- package/dist/types/custom-data.d.ts +0 -7
- package/dist/types/custom-data.d.ts.map +0 -1
- package/dist/types/type-metadata-extractor.d.ts +0 -9
- package/dist/types/type-metadata-extractor.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [7.0.0] - 2023-??-??
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Strongly typed custom options.
|
|
13
|
+
- Performance improvements when using custom options.
|
|
14
|
+
|
|
15
|
+
### Removed
|
|
16
|
+
|
|
17
|
+
- Old custom data option.
|
|
18
|
+
|
|
19
|
+
### Migrating from previous version
|
|
20
|
+
|
|
21
|
+
- Replace old custom data configurations with newly introduced strongly typed custom options.
|
|
22
|
+
|
|
8
23
|
## [6.0.0] - 2023-03-22
|
|
9
24
|
|
|
10
25
|
### Added
|
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
  
|
|
4
4
|
|
|
5
|
-
Type manager is a parsing package for `TypeScript` which will help you to transform JSON strings or plain objects into
|
|
5
|
+
Type manager is a superb parsing package for `TypeScript` which will help you to transform JSON strings or plain objects directly into class instances. No more need for unsafe `JSON.parse` and `JSON.stringify` functions. Forget about manual mapping and limitations. We support data transformations, circular references, naming conventions, generic and polymorphic types. Parsing never was so fun and easy.
|
|
6
|
+
|
|
7
|
+
Configuration can be done using [decorators](https://www.typescriptlang.org/docs/handbook/decorators.html) or declarative configuration for your or 3rd party classes.
|
|
6
8
|
|
|
7
9
|
We recommend to use our [official website](https://dipscope.com/type-manager/what-issues-it-solves) to navigate through available features. You can also use the latest documentation described below.
|
|
8
10
|
|
|
@@ -680,14 +682,20 @@ Alias defined for a property declares that property name differs from one specif
|
|
|
680
682
|
This option can be used to provide any custom data for type or property.
|
|
681
683
|
|
|
682
684
|
```typescript
|
|
683
|
-
import { Type, Property } from '@dipscope/type-manager';
|
|
685
|
+
import { Type, Property, CustomKey } from '@dipscope/type-manager';
|
|
686
|
+
|
|
687
|
+
const rankKey = new CustomKey<number>('rank');
|
|
688
|
+
const orderKey = new CustomKey<number>('order');
|
|
684
689
|
|
|
685
690
|
@Type({
|
|
686
|
-
|
|
691
|
+
customOptions: [
|
|
692
|
+
[rankKey, 1],
|
|
693
|
+
[orderKey, 2]
|
|
694
|
+
]
|
|
687
695
|
})
|
|
688
696
|
export class User
|
|
689
697
|
{
|
|
690
|
-
@Property(String, {
|
|
698
|
+
@Property(String, { customOptions: [[orderKey, 3]]}) public name: string;
|
|
691
699
|
}
|
|
692
700
|
```
|
|
693
701
|
|
|
@@ -910,14 +918,14 @@ By default null values are preserved. You can set it to `false` per type, proper
|
|
|
910
918
|
This option can be used both on type and property to specify how references to the same objects should be handled during serialization and deserialization.
|
|
911
919
|
|
|
912
920
|
```typescript
|
|
913
|
-
import { Type, Property,
|
|
921
|
+
import { Type, Property, CircularReferenceHandler, PlainReferenceHandler } from '@dipscope/type-manager';
|
|
914
922
|
|
|
915
923
|
@Type({
|
|
916
|
-
referenceHandler: new
|
|
924
|
+
referenceHandler: new CircularReferenceHandler()
|
|
917
925
|
})
|
|
918
926
|
export class User
|
|
919
927
|
{
|
|
920
|
-
@Property(String, { referenceHandler: new
|
|
928
|
+
@Property(String, { referenceHandler: new PlainReferenceHandler() }) public name: string;
|
|
921
929
|
}
|
|
922
930
|
```
|
|
923
931
|
|
|
@@ -1517,17 +1525,22 @@ Our goal is to cover as much use cases as possible without making you to write a
|
|
|
1517
1525
|
|
|
1518
1526
|
### Defining custom data
|
|
1519
1527
|
|
|
1520
|
-
You can attach you custom metadata to our decorators using `
|
|
1528
|
+
You can attach you custom metadata to our decorators using `customOptions` option available on `Type` and `Property`.
|
|
1521
1529
|
|
|
1522
1530
|
```typescript
|
|
1523
|
-
import { Type, Property } from '@dipscope/type-manager';
|
|
1531
|
+
import { Type, Property, CustomKey } from '@dipscope/type-manager';
|
|
1532
|
+
|
|
1533
|
+
const rankKey = new CustomKey<number>('rank');
|
|
1534
|
+
const priorityKey = new CustomKey<number>('priority');
|
|
1524
1535
|
|
|
1525
1536
|
@Type({
|
|
1526
|
-
|
|
1537
|
+
customOptions: [
|
|
1538
|
+
[rankKey, 1]
|
|
1539
|
+
]
|
|
1527
1540
|
})
|
|
1528
1541
|
class User
|
|
1529
1542
|
{
|
|
1530
|
-
@Property(String, {
|
|
1543
|
+
@Property(String, { customOptions: [[priorityKey, 10]] }) public name: string;
|
|
1531
1544
|
}
|
|
1532
1545
|
```
|
|
1533
1546
|
|
|
@@ -1537,13 +1550,15 @@ This allows you to get it later in serializers, factories, injectors or your cod
|
|
|
1537
1550
|
import { TypeManager } from '@dipscope/type-manager';
|
|
1538
1551
|
|
|
1539
1552
|
const userMetadata = TypeManager.extractTypeMetadata(User);
|
|
1540
|
-
const
|
|
1553
|
+
const typeCustomContext = userMetadata.customContext;
|
|
1554
|
+
const rank = customContext.get(rankKey);
|
|
1541
1555
|
|
|
1542
1556
|
// Do something with type custom data...
|
|
1543
1557
|
|
|
1544
1558
|
for (const propertyMetadata of userMetadata.propertyMetadataMap.values())
|
|
1545
1559
|
{
|
|
1546
|
-
const
|
|
1560
|
+
const propertyCustomContext = propertyMetadata.customContext;
|
|
1561
|
+
const priority = propertyCustomContext.get(priorityKey);
|
|
1547
1562
|
|
|
1548
1563
|
// Do something with property custom data...
|
|
1549
1564
|
}
|
|
@@ -1707,13 +1722,12 @@ export class CustomTypeFactory extends TypeFactory
|
|
|
1707
1722
|
|
|
1708
1723
|
// Resolve custom data.
|
|
1709
1724
|
const typeMetadata = typeContext.typeMetadata;
|
|
1710
|
-
const
|
|
1725
|
+
const customContext = typeMetadata.customContext;
|
|
1711
1726
|
|
|
1712
|
-
//
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
}
|
|
1727
|
+
// Get rank based on key.
|
|
1728
|
+
const rank = customContext.get(rankKey);
|
|
1729
|
+
|
|
1730
|
+
// Process custom data...
|
|
1717
1731
|
|
|
1718
1732
|
return type;
|
|
1719
1733
|
}
|
|
@@ -1726,7 +1740,7 @@ When you are finished with definitions there are two possible ways to register a
|
|
|
1726
1740
|
import { Type, Factory } from '@dipscope/type-manager';
|
|
1727
1741
|
|
|
1728
1742
|
@Type({
|
|
1729
|
-
|
|
1743
|
+
customOptions: [[rankKey, 1]]
|
|
1730
1744
|
factory: new CustomTypeFactory()
|
|
1731
1745
|
})
|
|
1732
1746
|
export class User
|
|
@@ -1742,7 +1756,7 @@ import { TypeManager } from '@dipscope/type-manager';
|
|
|
1742
1756
|
|
|
1743
1757
|
// Overriding only for user type.
|
|
1744
1758
|
TypeManager.applyTypeOptions(User, {
|
|
1745
|
-
|
|
1759
|
+
customOptions: [[rankKey, 1]],
|
|
1746
1760
|
factory: new CustomTypeFactory()
|
|
1747
1761
|
});
|
|
1748
1762
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isNil, isUndefined } from 'lodash';
|
|
2
|
+
export class CustomContext {
|
|
3
|
+
constructor(customOptions = new Array()) {
|
|
4
|
+
this.customValueMap = new Map();
|
|
5
|
+
this.customOptions = this.constructCustomOptions(customOptions);
|
|
6
|
+
this.configure(customOptions);
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
constructCustomOptions(customOptions) {
|
|
10
|
+
const customValueMap = new Map();
|
|
11
|
+
for (const [customKey, customValue] of customOptions) {
|
|
12
|
+
customValueMap.set(customKey, customValue);
|
|
13
|
+
}
|
|
14
|
+
customOptions.splice(0, customOptions.length);
|
|
15
|
+
for (const [customKey, customValue] of customValueMap.entries()) {
|
|
16
|
+
customOptions.push([customKey, customValue]);
|
|
17
|
+
}
|
|
18
|
+
return customOptions;
|
|
19
|
+
}
|
|
20
|
+
set(customKey, customValue) {
|
|
21
|
+
const customOptions = this.customOptions;
|
|
22
|
+
this.customValueMap.set(customKey, customValue);
|
|
23
|
+
for (let i = 0; i < customOptions.length; i++) {
|
|
24
|
+
if (customOptions[i][0] === customKey) {
|
|
25
|
+
customOptions[i][1] = customValue;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
customOptions.push([customKey, customValue]);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
get(customKey) {
|
|
33
|
+
let customValue = this.customValueMap.get(customKey);
|
|
34
|
+
if (isUndefined(customValue) && !isNil(customKey.customValueResolver)) {
|
|
35
|
+
customValue = customKey.customValueResolver();
|
|
36
|
+
}
|
|
37
|
+
return customValue;
|
|
38
|
+
}
|
|
39
|
+
has(customKey) {
|
|
40
|
+
return this.customValueMap.has(customKey);
|
|
41
|
+
}
|
|
42
|
+
keys() {
|
|
43
|
+
return this.customValueMap.keys();
|
|
44
|
+
}
|
|
45
|
+
values() {
|
|
46
|
+
return this.customValueMap.values();
|
|
47
|
+
}
|
|
48
|
+
entries() {
|
|
49
|
+
return this.customValueMap.entries();
|
|
50
|
+
}
|
|
51
|
+
configure(customOptions) {
|
|
52
|
+
for (const [customKey, customValue] of customOptions) {
|
|
53
|
+
this.set(customKey, customValue);
|
|
54
|
+
}
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=custom-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-context.js","sourceRoot":"","sources":["../../src/custom-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAU5C,MAAM,OAAO,aAAa;IAqBtB,YAAmB,gBAAqC,IAAI,KAAK,EAAgB;QAPjE,mBAAc,GAAqC,IAAI,GAAG,EAA+B,CAAC;QAStG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAEhE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE9B,OAAO;IACX,CAAC;IAUO,sBAAsB,CAAC,aAAkC;QAE7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;QAE9D,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,aAAa,EACpD;YACI,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SAC9C;QAED,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAE9C,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAC/D;YACI,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;SAChD;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAUM,GAAG,CAAe,SAAkC,EAAE,WAAyB;QAElF,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAC7C;YACI,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EACrC;gBACI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;gBAElC,OAAO,IAAI,CAAC;aACf;SACJ;QAED,aAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IAChB,CAAC;IASM,GAAG,CAAe,SAAkC;QAEvD,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,EACrE;YACI,WAAW,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC;SACjD;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IASM,GAAG,CAAe,SAAkC;QAEvD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAOM,IAAI;QAEP,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;IAOM,MAAM;QAET,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAOM,OAAO;QAEV,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IASM,SAAS,CAAC,aAAkC;QAE/C,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,aAAa,EACpD;YACI,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACpC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-key.js","sourceRoot":"","sources":["../../src/custom-key.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,SAAS;IAsBlB,YAAmB,WAAmB,EAAE,mBAAuD;QAE3F,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAE/C,OAAO;IACX,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-option.js","sourceRoot":"","sources":["../../src/custom-option.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-value-resolver.js","sourceRoot":"","sources":["../../src/custom-value-resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-value.js","sourceRoot":"","sources":["../../src/custom-value.ts"],"names":[],"mappings":""}
|
package/dist/es2015/index.js
CHANGED
|
@@ -8,7 +8,11 @@ export * from './reference-handlers';
|
|
|
8
8
|
export * from './serializers';
|
|
9
9
|
export * from './alias';
|
|
10
10
|
export * from './any';
|
|
11
|
-
export * from './custom-
|
|
11
|
+
export * from './custom-context';
|
|
12
|
+
export * from './custom-key';
|
|
13
|
+
export * from './custom-option';
|
|
14
|
+
export * from './custom-value-resolver';
|
|
15
|
+
export * from './custom-value';
|
|
12
16
|
export * from './default-value-resolver';
|
|
13
17
|
export * from './default-value';
|
|
14
18
|
export * from './discriminant';
|
|
@@ -52,9 +56,9 @@ export * from './type-context';
|
|
|
52
56
|
export * from './type-ctor';
|
|
53
57
|
export * from './type-fn';
|
|
54
58
|
export * from './type-like';
|
|
59
|
+
export * from './type-internals';
|
|
55
60
|
export * from './type-manager-options';
|
|
56
61
|
export * from './type-manager';
|
|
57
|
-
export * from './type-metadata-extractor';
|
|
58
62
|
export * from './type-metadata-resolver';
|
|
59
63
|
export * from './type-metadata-symbol';
|
|
60
64
|
export * from './type-metadata';
|
package/dist/es2015/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { Unknown } from './unknown';
|
|
|
5
5
|
export class InjectMetadata extends Metadata {
|
|
6
6
|
constructor(declaringTypeMetadata, injectIndex, injectOptions) {
|
|
7
7
|
var _a;
|
|
8
|
-
super(declaringTypeMetadata.
|
|
8
|
+
super(declaringTypeMetadata.typeManager);
|
|
9
9
|
this.declaringTypeMetadata = declaringTypeMetadata;
|
|
10
10
|
this.reflectTypeFn = ((_a = getOwnReflectMetadata('design:paramtypes', declaringTypeMetadata.typeFn)) !== null && _a !== void 0 ? _a : new Array())[injectIndex];
|
|
11
11
|
this.injectIndex = injectIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-metadata.js","sourceRoot":"","sources":["../../src/inject-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAI7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,MAAM,OAAO,cAAsC,SAAQ,QAAQ;IA8C/D,YACI,qBAAmD,EACnD,WAAwB,EACxB,aAAmC;;QAGnC,KAAK,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"inject-metadata.js","sourceRoot":"","sources":["../../src/inject-metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/es2015/metadata.js
CHANGED
|
@@ -2,9 +2,9 @@ import { isArray, isNil, isString } from 'lodash';
|
|
|
2
2
|
import { isArrowFunction } from './functions/is-arrow-function';
|
|
3
3
|
import { Unknown } from './unknown';
|
|
4
4
|
export class Metadata {
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
7
|
-
this.typeFnMap = typeFnMap;
|
|
5
|
+
constructor(typeManager) {
|
|
6
|
+
this.typeManager = typeManager;
|
|
7
|
+
this.typeFnMap = typeManager.typeFnMap;
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
defineTypeMetadataResolver(typeArgument) {
|
|
@@ -21,7 +21,7 @@ export class Metadata {
|
|
|
21
21
|
}
|
|
22
22
|
resolveTypeMetadataUsingUnknownTypeFn() {
|
|
23
23
|
const typeFn = Unknown;
|
|
24
|
-
return this.
|
|
24
|
+
return this.typeManager.extractTypeMetadata(typeFn);
|
|
25
25
|
}
|
|
26
26
|
resolveTypeMetadataUsingAlias(typeArgument) {
|
|
27
27
|
const alias = typeArgument;
|
|
@@ -29,15 +29,15 @@ export class Metadata {
|
|
|
29
29
|
if (isNil(typeFn)) {
|
|
30
30
|
throw new Error(`Cannot resolve type metadata for provided type alias: ${alias}. This is usually caused by invalid configuration.`);
|
|
31
31
|
}
|
|
32
|
-
return this.
|
|
32
|
+
return this.typeManager.extractTypeMetadata(typeFn);
|
|
33
33
|
}
|
|
34
34
|
resolveTypeMetadataUsingTypeFn(typeArgument) {
|
|
35
35
|
const typeFn = typeArgument;
|
|
36
|
-
return this.
|
|
36
|
+
return this.typeManager.extractTypeMetadata(typeFn);
|
|
37
37
|
}
|
|
38
38
|
resolveTypeMetadataUsingTypeResolver(typeArgument) {
|
|
39
39
|
const typeResolver = typeArgument;
|
|
40
|
-
return this.
|
|
40
|
+
return this.typeManager.extractTypeMetadata(typeResolver());
|
|
41
41
|
}
|
|
42
42
|
defineGenericStructures(genericArguments) {
|
|
43
43
|
const genericStructures = new Array();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAWhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,OAAO,QAAQ;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { isFunction, isNil, isUndefined
|
|
1
|
+
import { isFunction, isNil, isUndefined } from 'lodash';
|
|
2
|
+
import { CustomContext } from './custom-context';
|
|
2
3
|
import { getReflectMetadata } from './functions/get-reflect-metadata';
|
|
3
4
|
import { Metadata } from './metadata';
|
|
4
5
|
export class PropertyMetadata extends Metadata {
|
|
5
6
|
constructor(declaringTypeMetadata, propertyName, propertyOptions) {
|
|
6
|
-
super(declaringTypeMetadata.
|
|
7
|
+
super(declaringTypeMetadata.typeManager);
|
|
7
8
|
this.declaringTypeMetadata = declaringTypeMetadata;
|
|
8
9
|
this.propertyName = propertyName;
|
|
9
10
|
this.reflectTypeFn = getReflectMetadata('design:type', declaringTypeMetadata.typeFn.prototype, propertyName);
|
|
@@ -15,17 +16,17 @@ export class PropertyMetadata extends Metadata {
|
|
|
15
16
|
get alias() {
|
|
16
17
|
return this.propertyOptions.alias;
|
|
17
18
|
}
|
|
18
|
-
get
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
get customOptions() {
|
|
20
|
+
return this.propertyOptions.customOptions;
|
|
21
|
+
}
|
|
22
|
+
get customContext() {
|
|
23
|
+
let customContext = this.propertyInternals.customContext;
|
|
24
|
+
if (isNil(customContext)) {
|
|
25
|
+
this.propertyOptions.customOptions = new Array();
|
|
26
|
+
this.propertyInternals.customContext = new CustomContext(this.propertyOptions.customOptions);
|
|
27
|
+
customContext = this.propertyInternals.customContext;
|
|
27
28
|
}
|
|
28
|
-
return
|
|
29
|
+
return customContext;
|
|
29
30
|
}
|
|
30
31
|
get serializedNullValue() {
|
|
31
32
|
if (this.preserveNull) {
|
|
@@ -37,7 +38,10 @@ export class PropertyMetadata extends Metadata {
|
|
|
37
38
|
var _a, _b;
|
|
38
39
|
if (this.useDefaultValue) {
|
|
39
40
|
const serializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.serializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.serializedDefaultValue;
|
|
40
|
-
|
|
41
|
+
const defaultValue = isFunction(serializedDefaultValue)
|
|
42
|
+
? serializedDefaultValue()
|
|
43
|
+
: serializedDefaultValue;
|
|
44
|
+
return defaultValue;
|
|
41
45
|
}
|
|
42
46
|
return undefined;
|
|
43
47
|
}
|
|
@@ -51,7 +55,10 @@ export class PropertyMetadata extends Metadata {
|
|
|
51
55
|
var _a, _b;
|
|
52
56
|
if (this.useDefaultValue) {
|
|
53
57
|
const deserializedDefaultValue = (_b = (_a = this.propertyOptions.defaultValue) !== null && _a !== void 0 ? _a : this.propertyOptions.deserializedDefaultValue) !== null && _b !== void 0 ? _b : this.typeMetadata.deserializedDefaultValue;
|
|
54
|
-
|
|
58
|
+
const defaultValue = isFunction(deserializedDefaultValue)
|
|
59
|
+
? deserializedDefaultValue()
|
|
60
|
+
: deserializedDefaultValue;
|
|
61
|
+
return defaultValue;
|
|
55
62
|
}
|
|
56
63
|
return undefined;
|
|
57
64
|
}
|
|
@@ -134,16 +141,19 @@ export class PropertyMetadata extends Metadata {
|
|
|
134
141
|
}
|
|
135
142
|
constructPropertyInternals() {
|
|
136
143
|
const typeMetadataResolver = this.defineTypeMetadataResolver(this.propertyOptions.typeArgument);
|
|
137
|
-
const
|
|
144
|
+
const customOptions = this.propertyOptions.customOptions;
|
|
145
|
+
const customContext = isNil(customOptions) ? undefined : new CustomContext(customOptions);
|
|
146
|
+
const propertyInternals = { typeMetadataResolver: typeMetadataResolver, customContext: customContext };
|
|
138
147
|
return propertyInternals;
|
|
139
148
|
}
|
|
140
149
|
hasAlias(alias) {
|
|
141
150
|
this.propertyOptions.alias = alias;
|
|
142
151
|
return this;
|
|
143
152
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
153
|
+
hasCustomOptions(customOptions) {
|
|
154
|
+
if (!isNil(customOptions)) {
|
|
155
|
+
this.customContext.configure(customOptions);
|
|
156
|
+
}
|
|
147
157
|
return this;
|
|
148
158
|
}
|
|
149
159
|
hasDefaultValue(defaultValue) {
|
|
@@ -211,8 +221,8 @@ export class PropertyMetadata extends Metadata {
|
|
|
211
221
|
if (!isUndefined(propertyOptions.alias)) {
|
|
212
222
|
this.hasAlias(propertyOptions.alias);
|
|
213
223
|
}
|
|
214
|
-
if (!isUndefined(propertyOptions.
|
|
215
|
-
this.
|
|
224
|
+
if (!isUndefined(propertyOptions.customOptions)) {
|
|
225
|
+
this.hasCustomOptions(propertyOptions.customOptions);
|
|
216
226
|
}
|
|
217
227
|
if (!isUndefined(propertyOptions.defaultValue)) {
|
|
218
228
|
this.hasDefaultValue(propertyOptions.defaultValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-metadata.js","sourceRoot":"","sources":["../../src/property-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"property-metadata.js","sourceRoot":"","sources":["../../src/property-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { isNil, isNumber, isUndefined
|
|
1
|
+
import { isNil, isNumber, isUndefined } from 'lodash';
|
|
2
2
|
import { isCtorFunction } from './functions/is-ctor-function';
|
|
3
3
|
import { Metadata } from './metadata';
|
|
4
4
|
export class SerializerContext extends Metadata {
|
|
5
5
|
constructor($, referenceMap, referenceCallbackMap, serializerContextOptions, parentSerializerContext) {
|
|
6
|
-
super(serializerContextOptions.typeMetadata.
|
|
6
|
+
super(serializerContextOptions.typeMetadata.typeManager);
|
|
7
7
|
this.$ = $;
|
|
8
8
|
this.referenceMap = referenceMap,
|
|
9
9
|
this.referenceCallbackMap = referenceCallbackMap;
|
|
@@ -17,19 +17,6 @@ export class SerializerContext extends Metadata {
|
|
|
17
17
|
get referenceValueSetter() {
|
|
18
18
|
return this.serializerContextOptions.referenceValueSetter;
|
|
19
19
|
}
|
|
20
|
-
get customData() {
|
|
21
|
-
var _a;
|
|
22
|
-
const customData = {};
|
|
23
|
-
const typeCustomData = this.typeMetadata.customData;
|
|
24
|
-
const propertyCustomData = (_a = this.propertyMetadata) === null || _a === void 0 ? void 0 : _a.customData;
|
|
25
|
-
if (!isNil(typeCustomData)) {
|
|
26
|
-
merge(customData, typeCustomData);
|
|
27
|
-
}
|
|
28
|
-
if (!isNil(propertyCustomData)) {
|
|
29
|
-
merge(customData, propertyCustomData);
|
|
30
|
-
}
|
|
31
|
-
return customData;
|
|
32
|
-
}
|
|
33
20
|
get serializedNullValue() {
|
|
34
21
|
if (this.preserveNull) {
|
|
35
22
|
return null;
|
|
@@ -230,14 +217,14 @@ export class SerializerContext extends Metadata {
|
|
|
230
217
|
if (isNil(discriminant)) {
|
|
231
218
|
throw new Error(`${this.jsonPath}: cannot define discriminant of polymorphic type. This is usually caused by invalid configuration.`);
|
|
232
219
|
}
|
|
233
|
-
const typeMetadata = this.
|
|
220
|
+
const typeMetadata = this.typeManager.extractTypeMetadata(typeFn);
|
|
234
221
|
const serializerContextOptions = this.defineSerializerContextOptions(this.serializerContextOptions);
|
|
235
222
|
serializerContextOptions.typeMetadata = typeMetadata;
|
|
236
223
|
return new SerializerContext(this.$, this.referenceMap, this.referenceCallbackMap, serializerContextOptions, this.parentSerializerContext);
|
|
237
224
|
}
|
|
238
225
|
definePolymorphicSerializerContextByDiscriminant(record) {
|
|
239
226
|
for (const [typeCtor, discriminant] of this.discriminantMap) {
|
|
240
|
-
const typeMetadata = this.
|
|
227
|
+
const typeMetadata = this.typeManager.extractTypeMetadata(typeCtor);
|
|
241
228
|
if (record[typeMetadata.discriminator] === discriminant) {
|
|
242
229
|
const serializerContextOptions = this.defineSerializerContextOptions(this.serializerContextOptions);
|
|
243
230
|
serializerContextOptions.typeMetadata = typeMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializer-context.js","sourceRoot":"","sources":["../../src/serializer-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"serializer-context.js","sourceRoot":"","sources":["../../src/serializer-context.ts"],"names":[],"mappings":"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"}
|