@pristine-ts/data-mapping-common 0.0.283
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/LICENSE +201 -0
- package/dist/lib/cjs/builders/auto-data-mapping.builder.js +137 -0
- package/dist/lib/cjs/builders/auto-data-mapping.builder.js.map +1 -0
- package/dist/lib/cjs/builders/builders.js +19 -0
- package/dist/lib/cjs/builders/builders.js.map +1 -0
- package/dist/lib/cjs/builders/data-mapping.builder.js +178 -0
- package/dist/lib/cjs/builders/data-mapping.builder.js.map +1 -0
- package/dist/lib/cjs/data-mapping-common.js +26 -0
- package/dist/lib/cjs/data-mapping-common.js.map +1 -0
- package/dist/lib/cjs/decorators/decorators.js +18 -0
- package/dist/lib/cjs/decorators/decorators.js.map +1 -0
- package/dist/lib/cjs/decorators/type.decorator.js +20 -0
- package/dist/lib/cjs/decorators/type.decorator.js.map +1 -0
- package/dist/lib/cjs/enums/data-mapping-node-type.enum.js +11 -0
- package/dist/lib/cjs/enums/data-mapping-node-type.enum.js.map +1 -0
- package/dist/lib/cjs/enums/enums.js +19 -0
- package/dist/lib/cjs/enums/enums.js.map +1 -0
- package/dist/lib/cjs/enums/metadata.enum.js +8 -0
- package/dist/lib/cjs/enums/metadata.enum.js.map +1 -0
- package/dist/lib/cjs/errors/array-data-mapping-node-invalid-source-property-type.error.js +17 -0
- package/dist/lib/cjs/errors/array-data-mapping-node-invalid-source-property-type.error.js.map +1 -0
- package/dist/lib/cjs/errors/data-after-mapping-interceptor-already-added.error.js +17 -0
- package/dist/lib/cjs/errors/data-after-mapping-interceptor-already-added.error.js.map +1 -0
- package/dist/lib/cjs/errors/data-before-mapping-interceptor-already-added.error.js +17 -0
- package/dist/lib/cjs/errors/data-before-mapping-interceptor-already-added.error.js.map +1 -0
- package/dist/lib/cjs/errors/data-mapping-interceptor-not-found.error.js +17 -0
- package/dist/lib/cjs/errors/data-mapping-interceptor-not-found.error.js.map +1 -0
- package/dist/lib/cjs/errors/data-mapping-source-property-not-found.error.js +17 -0
- package/dist/lib/cjs/errors/data-mapping-source-property-not-found.error.js.map +1 -0
- package/dist/lib/cjs/errors/data-normalizer-already-added.error.js +17 -0
- package/dist/lib/cjs/errors/data-normalizer-already-added.error.js.map +1 -0
- package/dist/lib/cjs/errors/errors.js +25 -0
- package/dist/lib/cjs/errors/errors.js.map +1 -0
- package/dist/lib/cjs/errors/normalizer-invalid-source-type.error.js +17 -0
- package/dist/lib/cjs/errors/normalizer-invalid-source-type.error.js.map +1 -0
- package/dist/lib/cjs/errors/undefined-source-property.error.js +17 -0
- package/dist/lib/cjs/errors/undefined-source-property.error.js.map +1 -0
- package/dist/lib/cjs/interfaces/data-mapping-interceptor.interface.js +3 -0
- package/dist/lib/cjs/interfaces/data-mapping-interceptor.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/data-normalizer.interface.js +3 -0
- package/dist/lib/cjs/interfaces/data-normalizer.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/interfaces.js +19 -0
- package/dist/lib/cjs/interfaces/interfaces.js.map +1 -0
- package/dist/lib/cjs/mappers/data.mapper.js +103 -0
- package/dist/lib/cjs/mappers/data.mapper.js.map +1 -0
- package/dist/lib/cjs/mappers/mappers.js +18 -0
- package/dist/lib/cjs/mappers/mappers.js.map +1 -0
- package/dist/lib/cjs/nodes/base-data-mapping.node.js +24 -0
- package/dist/lib/cjs/nodes/base-data-mapping.node.js.map +1 -0
- package/dist/lib/cjs/nodes/data-mapping.leaf.js +184 -0
- package/dist/lib/cjs/nodes/data-mapping.leaf.js.map +1 -0
- package/dist/lib/cjs/nodes/data-mapping.node.js +217 -0
- package/dist/lib/cjs/nodes/data-mapping.node.js.map +1 -0
- package/dist/lib/cjs/nodes/nodes.js +20 -0
- package/dist/lib/cjs/nodes/nodes.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/base-normalizer.options.js +12 -0
- package/dist/lib/cjs/normalizer-options/base-normalizer.options.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/date-normalizer.options.js +21 -0
- package/dist/lib/cjs/normalizer-options/date-normalizer.options.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/lowercase-normalizer.options.js +11 -0
- package/dist/lib/cjs/normalizer-options/lowercase-normalizer.options.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/normalizer-options.js +22 -0
- package/dist/lib/cjs/normalizer-options/normalizer-options.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/number-normalizer.options.js +16 -0
- package/dist/lib/cjs/normalizer-options/number-normalizer.options.js.map +1 -0
- package/dist/lib/cjs/normalizer-options/string-normalizer.options.js +17 -0
- package/dist/lib/cjs/normalizer-options/string-normalizer.options.js.map +1 -0
- package/dist/lib/cjs/normalizers/date.normalizer.js +62 -0
- package/dist/lib/cjs/normalizers/date.normalizer.js.map +1 -0
- package/dist/lib/cjs/normalizers/lowercase.normalizer.js +20 -0
- package/dist/lib/cjs/normalizers/lowercase.normalizer.js.map +1 -0
- package/dist/lib/cjs/normalizers/normalizers.js +21 -0
- package/dist/lib/cjs/normalizers/normalizers.js.map +1 -0
- package/dist/lib/cjs/normalizers/number.normalizer.js +30 -0
- package/dist/lib/cjs/normalizers/number.normalizer.js.map +1 -0
- package/dist/lib/cjs/normalizers/string.normalizer.js +52 -0
- package/dist/lib/cjs/normalizers/string.normalizer.js.map +1 -0
- package/dist/lib/cjs/options/auto-data-mapping-builder.options.js +11 -0
- package/dist/lib/cjs/options/auto-data-mapping-builder.options.js.map +1 -0
- package/dist/lib/cjs/types/data-mapping-interceptor-unique-key.type.js +3 -0
- package/dist/lib/cjs/types/data-mapping-interceptor-unique-key.type.js.map +1 -0
- package/dist/lib/cjs/types/data-normalizer-unique-key.type.js +3 -0
- package/dist/lib/cjs/types/data-normalizer-unique-key.type.js.map +1 -0
- package/dist/lib/cjs/types/types.js +19 -0
- package/dist/lib/cjs/types/types.js.map +1 -0
- package/dist/lib/esm/builders/auto-data-mapping.builder.js +133 -0
- package/dist/lib/esm/builders/auto-data-mapping.builder.js.map +1 -0
- package/dist/lib/esm/builders/builders.js +3 -0
- package/dist/lib/esm/builders/builders.js.map +1 -0
- package/dist/lib/esm/builders/data-mapping.builder.js +174 -0
- package/dist/lib/esm/builders/data-mapping.builder.js.map +1 -0
- package/dist/lib/esm/data-mapping-common.js +10 -0
- package/dist/lib/esm/data-mapping-common.js.map +1 -0
- package/dist/lib/esm/decorators/decorators.js +2 -0
- package/dist/lib/esm/decorators/decorators.js.map +1 -0
- package/dist/lib/esm/decorators/type.decorator.js +16 -0
- package/dist/lib/esm/decorators/type.decorator.js.map +1 -0
- package/dist/lib/esm/enums/data-mapping-node-type.enum.js +8 -0
- package/dist/lib/esm/enums/data-mapping-node-type.enum.js.map +1 -0
- package/dist/lib/esm/enums/enums.js +3 -0
- package/dist/lib/esm/enums/enums.js.map +1 -0
- package/dist/lib/esm/enums/metadata.enum.js +5 -0
- package/dist/lib/esm/enums/metadata.enum.js.map +1 -0
- package/dist/lib/esm/errors/array-data-mapping-node-invalid-source-property-type.error.js +13 -0
- package/dist/lib/esm/errors/array-data-mapping-node-invalid-source-property-type.error.js.map +1 -0
- package/dist/lib/esm/errors/data-after-mapping-interceptor-already-added.error.js +13 -0
- package/dist/lib/esm/errors/data-after-mapping-interceptor-already-added.error.js.map +1 -0
- package/dist/lib/esm/errors/data-before-mapping-interceptor-already-added.error.js +13 -0
- package/dist/lib/esm/errors/data-before-mapping-interceptor-already-added.error.js.map +1 -0
- package/dist/lib/esm/errors/data-mapping-interceptor-not-found.error.js +13 -0
- package/dist/lib/esm/errors/data-mapping-interceptor-not-found.error.js.map +1 -0
- package/dist/lib/esm/errors/data-mapping-source-property-not-found.error.js +13 -0
- package/dist/lib/esm/errors/data-mapping-source-property-not-found.error.js.map +1 -0
- package/dist/lib/esm/errors/data-normalizer-already-added.error.js +13 -0
- package/dist/lib/esm/errors/data-normalizer-already-added.error.js.map +1 -0
- package/dist/lib/esm/errors/errors.js +9 -0
- package/dist/lib/esm/errors/errors.js.map +1 -0
- package/dist/lib/esm/errors/normalizer-invalid-source-type.error.js +13 -0
- package/dist/lib/esm/errors/normalizer-invalid-source-type.error.js.map +1 -0
- package/dist/lib/esm/errors/undefined-source-property.error.js +13 -0
- package/dist/lib/esm/errors/undefined-source-property.error.js.map +1 -0
- package/dist/lib/esm/interfaces/data-mapping-interceptor.interface.js +2 -0
- package/dist/lib/esm/interfaces/data-mapping-interceptor.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/data-normalizer.interface.js +2 -0
- package/dist/lib/esm/interfaces/data-normalizer.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/interfaces.js +3 -0
- package/dist/lib/esm/interfaces/interfaces.js.map +1 -0
- package/dist/lib/esm/mappers/data.mapper.js +99 -0
- package/dist/lib/esm/mappers/data.mapper.js.map +1 -0
- package/dist/lib/esm/mappers/mappers.js +2 -0
- package/dist/lib/esm/mappers/mappers.js.map +1 -0
- package/dist/lib/esm/nodes/base-data-mapping.node.js +20 -0
- package/dist/lib/esm/nodes/base-data-mapping.node.js.map +1 -0
- package/dist/lib/esm/nodes/data-mapping.leaf.js +180 -0
- package/dist/lib/esm/nodes/data-mapping.leaf.js.map +1 -0
- package/dist/lib/esm/nodes/data-mapping.node.js +213 -0
- package/dist/lib/esm/nodes/data-mapping.node.js.map +1 -0
- package/dist/lib/esm/nodes/nodes.js +4 -0
- package/dist/lib/esm/nodes/nodes.js.map +1 -0
- package/dist/lib/esm/normalizer-options/base-normalizer.options.js +8 -0
- package/dist/lib/esm/normalizer-options/base-normalizer.options.js.map +1 -0
- package/dist/lib/esm/normalizer-options/date-normalizer.options.js +17 -0
- package/dist/lib/esm/normalizer-options/date-normalizer.options.js.map +1 -0
- package/dist/lib/esm/normalizer-options/lowercase-normalizer.options.js +7 -0
- package/dist/lib/esm/normalizer-options/lowercase-normalizer.options.js.map +1 -0
- package/dist/lib/esm/normalizer-options/normalizer-options.js +6 -0
- package/dist/lib/esm/normalizer-options/normalizer-options.js.map +1 -0
- package/dist/lib/esm/normalizer-options/number-normalizer.options.js +12 -0
- package/dist/lib/esm/normalizer-options/number-normalizer.options.js.map +1 -0
- package/dist/lib/esm/normalizer-options/string-normalizer.options.js +13 -0
- package/dist/lib/esm/normalizer-options/string-normalizer.options.js.map +1 -0
- package/dist/lib/esm/normalizers/date.normalizer.js +58 -0
- package/dist/lib/esm/normalizers/date.normalizer.js.map +1 -0
- package/dist/lib/esm/normalizers/lowercase.normalizer.js +16 -0
- package/dist/lib/esm/normalizers/lowercase.normalizer.js.map +1 -0
- package/dist/lib/esm/normalizers/normalizers.js +5 -0
- package/dist/lib/esm/normalizers/normalizers.js.map +1 -0
- package/dist/lib/esm/normalizers/number.normalizer.js +26 -0
- package/dist/lib/esm/normalizers/number.normalizer.js.map +1 -0
- package/dist/lib/esm/normalizers/string.normalizer.js +48 -0
- package/dist/lib/esm/normalizers/string.normalizer.js.map +1 -0
- package/dist/lib/esm/options/auto-data-mapping-builder.options.js +7 -0
- package/dist/lib/esm/options/auto-data-mapping-builder.options.js.map +1 -0
- package/dist/lib/esm/types/data-mapping-interceptor-unique-key.type.js +2 -0
- package/dist/lib/esm/types/data-mapping-interceptor-unique-key.type.js.map +1 -0
- package/dist/lib/esm/types/data-normalizer-unique-key.type.js +2 -0
- package/dist/lib/esm/types/data-normalizer-unique-key.type.js.map +1 -0
- package/dist/lib/esm/types/types.js +3 -0
- package/dist/lib/esm/types/types.js.map +1 -0
- package/dist/types/builders/auto-data-mapping.builder.d.ts +25 -0
- package/dist/types/builders/builders.d.ts +2 -0
- package/dist/types/builders/data-mapping.builder.d.ts +110 -0
- package/dist/types/data-mapping-common.d.ts +9 -0
- package/dist/types/decorators/decorators.d.ts +1 -0
- package/dist/types/decorators/type.decorator.d.ts +2 -0
- package/dist/types/enums/data-mapping-node-type.enum.d.ts +6 -0
- package/dist/types/enums/enums.d.ts +2 -0
- package/dist/types/enums/metadata.enum.d.ts +3 -0
- package/dist/types/errors/array-data-mapping-node-invalid-source-property-type.error.d.ts +6 -0
- package/dist/types/errors/data-after-mapping-interceptor-already-added.error.d.ts +7 -0
- package/dist/types/errors/data-before-mapping-interceptor-already-added.error.d.ts +7 -0
- package/dist/types/errors/data-mapping-interceptor-not-found.error.d.ts +7 -0
- package/dist/types/errors/data-mapping-source-property-not-found.error.d.ts +6 -0
- package/dist/types/errors/data-normalizer-already-added.error.d.ts +6 -0
- package/dist/types/errors/errors.d.ts +8 -0
- package/dist/types/errors/normalizer-invalid-source-type.error.d.ts +6 -0
- package/dist/types/errors/undefined-source-property.error.d.ts +8 -0
- package/dist/types/interfaces/data-mapping-interceptor.interface.d.ts +19 -0
- package/dist/types/interfaces/data-normalizer.interface.d.ts +15 -0
- package/dist/types/interfaces/interfaces.d.ts +2 -0
- package/dist/types/mappers/data.mapper.d.ts +38 -0
- package/dist/types/mappers/mappers.d.ts +1 -0
- package/dist/types/nodes/base-data-mapping.node.d.ts +15 -0
- package/dist/types/nodes/data-mapping.leaf.d.ts +92 -0
- package/dist/types/nodes/data-mapping.node.d.ts +104 -0
- package/dist/types/nodes/nodes.d.ts +3 -0
- package/dist/types/normalizer-options/base-normalizer.options.d.ts +4 -0
- package/dist/types/normalizer-options/date-normalizer.options.d.ts +12 -0
- package/dist/types/normalizer-options/lowercase-normalizer.options.d.ts +4 -0
- package/dist/types/normalizer-options/normalizer-options.d.ts +5 -0
- package/dist/types/normalizer-options/number-normalizer.options.d.ts +8 -0
- package/dist/types/normalizer-options/string-normalizer.options.d.ts +12 -0
- package/dist/types/normalizers/date.normalizer.d.ts +6 -0
- package/dist/types/normalizers/lowercase.normalizer.d.ts +7 -0
- package/dist/types/normalizers/normalizers.d.ts +4 -0
- package/dist/types/normalizers/number.normalizer.d.ts +6 -0
- package/dist/types/normalizers/string.normalizer.d.ts +6 -0
- package/dist/types/options/auto-data-mapping-builder.options.d.ts +11 -0
- package/dist/types/types/data-mapping-interceptor-unique-key.type.d.ts +1 -0
- package/dist/types/types/data-normalizer-unique-key.type.d.ts +1 -0
- package/dist/types/types/types.d.ts +2 -0
- package/package.json +67 -0
- package/readme.md +1 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { DataMappingNodeTypeEnum } from "../enums/data-mapping-node-type.enum";
|
|
2
|
+
import { DataNormalizerUniqueKey } from "../types/data-normalizer-unique-key.type";
|
|
3
|
+
import { DataMappingBuilder } from "../builders/data-mapping.builder";
|
|
4
|
+
import { DataMappingNode } from "./data-mapping.node";
|
|
5
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
6
|
+
export declare class DataMappingLeaf {
|
|
7
|
+
private readonly root;
|
|
8
|
+
readonly parent: DataMappingNode | DataMappingBuilder;
|
|
9
|
+
readonly type: DataMappingNodeTypeEnum;
|
|
10
|
+
/**
|
|
11
|
+
* This property represents the property referenced in the `source` object.
|
|
12
|
+
*/
|
|
13
|
+
sourceProperty: string;
|
|
14
|
+
/**
|
|
15
|
+
* This property represents the property referenced in the `destination` object.
|
|
16
|
+
*/
|
|
17
|
+
destinationProperty: string;
|
|
18
|
+
/**
|
|
19
|
+
* This property contains an array of Normalizers to apply sequentially when mapping this property.
|
|
20
|
+
*/
|
|
21
|
+
normalizers: {
|
|
22
|
+
key: DataNormalizerUniqueKey;
|
|
23
|
+
options: any;
|
|
24
|
+
}[];
|
|
25
|
+
/**
|
|
26
|
+
* This property contains an array of Normalizers that must be excluded from normalizers defined by parents.
|
|
27
|
+
*/
|
|
28
|
+
excludedNormalizers: Set<DataNormalizerUniqueKey>;
|
|
29
|
+
/**
|
|
30
|
+
* This method specified whether it's possible that this element not be present in the `source` object.
|
|
31
|
+
*/
|
|
32
|
+
isOptional: boolean;
|
|
33
|
+
constructor(root: DataMappingBuilder, parent: DataMappingNode | DataMappingBuilder, type?: DataMappingNodeTypeEnum);
|
|
34
|
+
/**
|
|
35
|
+
* This is a setter for `sourceProperty`.
|
|
36
|
+
* @param sourceProperty
|
|
37
|
+
*/
|
|
38
|
+
setSourceProperty(sourceProperty: string): DataMappingLeaf;
|
|
39
|
+
/**
|
|
40
|
+
* This is a setter for `destinationProperty`.
|
|
41
|
+
* @param destinationProperty
|
|
42
|
+
*/
|
|
43
|
+
setDestinationProperty(destinationProperty: string): DataMappingLeaf;
|
|
44
|
+
/**
|
|
45
|
+
* This is a setter for `isOptional`.
|
|
46
|
+
* @param isOptional
|
|
47
|
+
*/
|
|
48
|
+
setIsOptional(isOptional: boolean): DataMappingLeaf;
|
|
49
|
+
/**
|
|
50
|
+
* This methods adds a normalizer but checks that this normalizer hasn't been added already (either at the root) or
|
|
51
|
+
* directly on this leaf.
|
|
52
|
+
*
|
|
53
|
+
* @param normalizerUniqueKey
|
|
54
|
+
* @param options
|
|
55
|
+
*/
|
|
56
|
+
addNormalizer(normalizerUniqueKey: DataNormalizerUniqueKey, options?: any): DataMappingLeaf;
|
|
57
|
+
/**
|
|
58
|
+
* This method simply returns whether the normalizer was already added to this node.
|
|
59
|
+
* @param normalizerUniqueKey
|
|
60
|
+
*/
|
|
61
|
+
hasNormalizer(normalizerUniqueKey: DataNormalizerUniqueKey): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* This method adds a normalizer that must be excluded from the normalizers applied at a higher level.à
|
|
64
|
+
* @param normalizerUniqueKey
|
|
65
|
+
*/
|
|
66
|
+
excludeNormalizer(normalizerUniqueKey: DataNormalizerUniqueKey): DataMappingLeaf;
|
|
67
|
+
/**
|
|
68
|
+
* This method adds this node to its parent and returns the parent.
|
|
69
|
+
*/
|
|
70
|
+
end(): DataMappingNode | DataMappingBuilder;
|
|
71
|
+
/**
|
|
72
|
+
* This method maps the `sourceProperty` from the `source` object and maps it to the `destinationProperty` of the
|
|
73
|
+
* `destination` object while applying the normalizers.
|
|
74
|
+
*
|
|
75
|
+
* @param source
|
|
76
|
+
* @param destination
|
|
77
|
+
* @param normalizersMap
|
|
78
|
+
*/
|
|
79
|
+
map(source: any, destination: any, normalizersMap: {
|
|
80
|
+
[key in DataNormalizerUniqueKey]: DataNormalizerInterface<any, any>;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* This method imports a schema.
|
|
84
|
+
*
|
|
85
|
+
* @param schema
|
|
86
|
+
*/
|
|
87
|
+
import(schema: any): void;
|
|
88
|
+
/**
|
|
89
|
+
* This method exports this node.
|
|
90
|
+
*/
|
|
91
|
+
export(): any;
|
|
92
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { DataMappingNodeTypeEnum } from "../enums/data-mapping-node-type.enum";
|
|
2
|
+
import { DataMappingLeaf } from "./data-mapping.leaf";
|
|
3
|
+
import { DataMappingBuilder } from "../builders/data-mapping.builder";
|
|
4
|
+
import { BaseDataMappingNode } from "./base-data-mapping.node";
|
|
5
|
+
import { DataNormalizerUniqueKey } from "../types/data-normalizer-unique-key.type";
|
|
6
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
7
|
+
import { ClassConstructor } from "class-transformer";
|
|
8
|
+
export declare class DataMappingNode extends BaseDataMappingNode {
|
|
9
|
+
readonly root: DataMappingBuilder;
|
|
10
|
+
readonly parent: DataMappingNode | DataMappingBuilder;
|
|
11
|
+
readonly type: DataMappingNodeTypeEnum;
|
|
12
|
+
/**
|
|
13
|
+
* This property represents the property referenced in the `source` object.
|
|
14
|
+
*/
|
|
15
|
+
sourceProperty: string;
|
|
16
|
+
/**
|
|
17
|
+
* This property represents the property referenced in the `destination` object.
|
|
18
|
+
*/
|
|
19
|
+
destinationProperty: string;
|
|
20
|
+
/**
|
|
21
|
+
* This method specified whether it's possible that this element not be present in the `source` object.
|
|
22
|
+
*/
|
|
23
|
+
isOptional: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* IMPORTANT: This property is not serializable. It will be lost during the export.
|
|
26
|
+
*/
|
|
27
|
+
destinationType?: ClassConstructor<any>;
|
|
28
|
+
constructor(root: DataMappingBuilder, parent: DataMappingNode | DataMappingBuilder, type?: DataMappingNodeTypeEnum);
|
|
29
|
+
/**
|
|
30
|
+
* This is a setter for `sourceProperty`.
|
|
31
|
+
* @param sourceProperty
|
|
32
|
+
*/
|
|
33
|
+
setSourceProperty(sourceProperty: string): DataMappingNode;
|
|
34
|
+
/**
|
|
35
|
+
* This is a setter for `destinationProperty`.
|
|
36
|
+
* @param destinationProperty
|
|
37
|
+
*/
|
|
38
|
+
setDestinationProperty(destinationProperty: string): DataMappingNode;
|
|
39
|
+
/**
|
|
40
|
+
* This is a setter for `destinationType`.
|
|
41
|
+
* @param destinationType
|
|
42
|
+
*/
|
|
43
|
+
setDestinationType(destinationType: ClassConstructor<any>): DataMappingNode;
|
|
44
|
+
/**
|
|
45
|
+
* This is a setter for `isOptional`.
|
|
46
|
+
* @param isOptional
|
|
47
|
+
*/
|
|
48
|
+
setIsOptional(isOptional: boolean): DataMappingNode;
|
|
49
|
+
/**
|
|
50
|
+
* This property creates a new DataMappingLeaf and returns it. It doesn't add it yet. To do so, the `end()` method
|
|
51
|
+
* must be called.
|
|
52
|
+
*/
|
|
53
|
+
add(): DataMappingLeaf;
|
|
54
|
+
/**
|
|
55
|
+
* This method adds a nesting level. This should be used when the property contains an object and you want to map
|
|
56
|
+
* this object into another object.
|
|
57
|
+
*/
|
|
58
|
+
addNestingLevel(): DataMappingNode;
|
|
59
|
+
/**
|
|
60
|
+
* This method adds an array of Scalar allowing you to apply the normalizer on each scalar in the array. The
|
|
61
|
+
* `sourceProperty` and `destinationProperty` correspond to the name of the property that is an array. But, the
|
|
62
|
+
* values in the array will be normalized using the normalizer.
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
addArrayOfScalar(): DataMappingLeaf;
|
|
66
|
+
/**
|
|
67
|
+
* This method adds an array of objects allowing to define a node for each property in the object. Each object in
|
|
68
|
+
* the array will be treated as being the same.
|
|
69
|
+
*/
|
|
70
|
+
addArrayOfObjects(): DataMappingNode;
|
|
71
|
+
/**
|
|
72
|
+
* This method adds this node to its parent and returns the parent.
|
|
73
|
+
*/
|
|
74
|
+
end(): DataMappingNode | DataMappingBuilder;
|
|
75
|
+
/**
|
|
76
|
+
* This method maps the `sourceProperty` from the `source` object and maps it to the `destinationProperty` of the
|
|
77
|
+
* `destination` object while applying the normalizers.
|
|
78
|
+
*
|
|
79
|
+
* @param source
|
|
80
|
+
* @param destination
|
|
81
|
+
* @param normalizersMap
|
|
82
|
+
*/
|
|
83
|
+
map(source: any, destination: any, normalizersMap: {
|
|
84
|
+
[key in DataNormalizerUniqueKey]: DataNormalizerInterface<any, any>;
|
|
85
|
+
}): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* This method imports a schema.
|
|
88
|
+
*
|
|
89
|
+
* @param schema
|
|
90
|
+
*/
|
|
91
|
+
import(schema: any): void;
|
|
92
|
+
/**
|
|
93
|
+
* This method exports this node.
|
|
94
|
+
*/
|
|
95
|
+
export(): {
|
|
96
|
+
_type: DataMappingNodeTypeEnum;
|
|
97
|
+
sourceProperty: string;
|
|
98
|
+
destinationProperty: string;
|
|
99
|
+
isOptional: boolean;
|
|
100
|
+
nodes: {
|
|
101
|
+
[x: string]: DataMappingLeaf | DataMappingNode;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class DateNormalizerOptions {
|
|
2
|
+
/**
|
|
3
|
+
* This property specifies whether an invalid date should return undefined or a date object.
|
|
4
|
+
*/
|
|
5
|
+
returnUndefinedOnInvalidDate: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* This property specifies if a number should be treated as being in seconds or not. Since JS Date expects a
|
|
8
|
+
* timestamp in milliseconds, if the number is in seconds, it will be multiplied by 1000.
|
|
9
|
+
*/
|
|
10
|
+
treatNumbers: "milliseconds" | "seconds";
|
|
11
|
+
constructor(options?: Partial<DateNormalizerOptions>);
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class NumberNormalizerOptions {
|
|
2
|
+
/**
|
|
3
|
+
* This property specifies whether an undefined value should be ignored and simply returned or treated as a potential string
|
|
4
|
+
* and return an empty string `""`.
|
|
5
|
+
*/
|
|
6
|
+
ignoreUndefined: boolean;
|
|
7
|
+
constructor(options?: Partial<NumberNormalizerOptions>);
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class StringNormalizerOptions {
|
|
2
|
+
/**
|
|
3
|
+
* This property specifies whether an undefined value should be ignored and simply returned or treated as a potential string
|
|
4
|
+
* and return an empty string `""`.
|
|
5
|
+
*/
|
|
6
|
+
ignoreUndefined: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* This represents the format of the date that the normalizer should use when outputting a date object to a string.
|
|
9
|
+
*/
|
|
10
|
+
dateFormat?: string;
|
|
11
|
+
constructor(options?: Partial<StringNormalizerOptions>);
|
|
12
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
2
|
+
import { DateNormalizerOptions } from "../normalizer-options/date-normalizer.options";
|
|
3
|
+
export declare class DateNormalizer implements DataNormalizerInterface<Date | undefined, DateNormalizerOptions> {
|
|
4
|
+
getUniqueKey(): string;
|
|
5
|
+
normalize(source: any, options?: DateNormalizerOptions): Date | undefined;
|
|
6
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
2
|
+
import { DataNormalizerUniqueKey } from "../types/data-normalizer-unique-key.type";
|
|
3
|
+
import { LowercaseNormalizerOptions } from "../normalizer-options/lowercase-normalizer.options";
|
|
4
|
+
export declare class LowercaseNormalizer implements DataNormalizerInterface<string, LowercaseNormalizerOptions> {
|
|
5
|
+
getUniqueKey(): DataNormalizerUniqueKey;
|
|
6
|
+
normalize(source: any, options?: LowercaseNormalizerOptions): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
2
|
+
import { NumberNormalizerOptions } from "../normalizer-options/number-normalizer.options";
|
|
3
|
+
export declare class NumberNormalizer implements DataNormalizerInterface<number | undefined, NumberNormalizerOptions> {
|
|
4
|
+
getUniqueKey(): string;
|
|
5
|
+
normalize(source: any, options?: NumberNormalizerOptions): number | undefined;
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DataNormalizerInterface } from "../interfaces/data-normalizer.interface";
|
|
2
|
+
import { StringNormalizerOptions } from "../normalizer-options/string-normalizer.options";
|
|
3
|
+
export declare class StringNormalizer implements DataNormalizerInterface<string | undefined, StringNormalizerOptions> {
|
|
4
|
+
getUniqueKey(): string;
|
|
5
|
+
normalize(source: any, options?: StringNormalizerOptions): string | undefined;
|
|
6
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class AutoDataMappingBuilderOptions {
|
|
2
|
+
/**
|
|
3
|
+
* This property is used to specify the default value for the `ìsOptional` property in the builder.
|
|
4
|
+
*
|
|
5
|
+
* It will not override the `isNullable` metadata for the property.
|
|
6
|
+
*
|
|
7
|
+
* Default value is `false`.
|
|
8
|
+
*/
|
|
9
|
+
isOptionalDefaultValue: boolean;
|
|
10
|
+
constructor(options?: Partial<AutoDataMappingBuilderOptions>);
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type DataMappingInterceptorUniqueKeyType = string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type DataNormalizerUniqueKey = string;
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pristine-ts/data-mapping-common",
|
|
3
|
+
"version": "0.0.283",
|
|
4
|
+
"description": "",
|
|
5
|
+
"module": "dist/lib/esm/data-mapping-common.js",
|
|
6
|
+
"main": "dist/lib/cjs/data-mapping-common.js",
|
|
7
|
+
"types": "dist/types/data-mapping-common.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json",
|
|
10
|
+
"prepublish": "npm run build",
|
|
11
|
+
"test": "jest",
|
|
12
|
+
"test:cov": "jest --coverage"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist"
|
|
16
|
+
],
|
|
17
|
+
"author": "",
|
|
18
|
+
"license": "ISC",
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@pristine-ts/class-validator": "^1.0.25",
|
|
24
|
+
"@pristine-ts/metadata": "~1.0.8",
|
|
25
|
+
"class-transformer": "^0.5.1",
|
|
26
|
+
"date-fns": "^3.3.1",
|
|
27
|
+
"tsyringe": "^4.8.0"
|
|
28
|
+
},
|
|
29
|
+
"jest": {
|
|
30
|
+
"transform": {
|
|
31
|
+
".(ts|tsx)": "ts-jest"
|
|
32
|
+
},
|
|
33
|
+
"globals": {
|
|
34
|
+
"ts-jest": {
|
|
35
|
+
"tsconfig": {
|
|
36
|
+
"strictNullChecks": false
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"testEnvironment": "node",
|
|
41
|
+
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
|
|
42
|
+
"moduleFileExtensions": [
|
|
43
|
+
"ts",
|
|
44
|
+
"tsx",
|
|
45
|
+
"js"
|
|
46
|
+
],
|
|
47
|
+
"coveragePathIgnorePatterns": [
|
|
48
|
+
"/node_modules/",
|
|
49
|
+
"/test/"
|
|
50
|
+
],
|
|
51
|
+
"coverageThreshold": {
|
|
52
|
+
"global": {
|
|
53
|
+
"branches": 90,
|
|
54
|
+
"functions": 95,
|
|
55
|
+
"lines": 95,
|
|
56
|
+
"statements": 95
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"collectCoverageFrom": [
|
|
60
|
+
"src/*.{js,ts}"
|
|
61
|
+
],
|
|
62
|
+
"setupFilesAfterEnv": [
|
|
63
|
+
"jest-extended/all"
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"gitHead": "254a9e6fced4061de95b183ac16ba8281557bf23"
|
|
67
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Data Mapping module.
|