@dipscope/type-manager 8.1.3 → 8.2.1

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +50 -0
  3. package/dist/es2015/functions/json-stringify.js +31 -37
  4. package/dist/es2015/functions/json-stringify.js.map +1 -1
  5. package/dist/es2015/index.js +3 -0
  6. package/dist/es2015/index.js.map +1 -1
  7. package/dist/es2015/method-name.js +2 -0
  8. package/dist/es2015/method-name.js.map +1 -0
  9. package/dist/es2015/serializer-callback.js +2 -0
  10. package/dist/es2015/serializer-callback.js.map +1 -0
  11. package/dist/es2015/serializer-handler.js +2 -0
  12. package/dist/es2015/serializer-handler.js.map +1 -0
  13. package/dist/es2015/serializers/type-serializer.js +15 -1
  14. package/dist/es2015/serializers/type-serializer.js.map +1 -1
  15. package/dist/es2015/type-metadata.js +25 -1
  16. package/dist/es2015/type-metadata.js.map +1 -1
  17. package/dist/es2015/type-states/resolved-type-state.js +3 -1
  18. package/dist/es2015/type-states/resolved-type-state.js.map +1 -1
  19. package/dist/es2015/type-states/unresolved-type-state.js +16 -0
  20. package/dist/es2015/type-states/unresolved-type-state.js.map +1 -1
  21. package/dist/es5/functions/json-stringify.js +31 -37
  22. package/dist/es5/functions/json-stringify.js.map +1 -1
  23. package/dist/es5/index.js +3 -0
  24. package/dist/es5/index.js.map +1 -1
  25. package/dist/es5/method-name.js +2 -0
  26. package/dist/es5/method-name.js.map +1 -0
  27. package/dist/es5/serializer-callback.js +2 -0
  28. package/dist/es5/serializer-callback.js.map +1 -0
  29. package/dist/es5/serializer-handler.js +2 -0
  30. package/dist/es5/serializer-handler.js.map +1 -0
  31. package/dist/es5/serializers/type-serializer.js +15 -1
  32. package/dist/es5/serializers/type-serializer.js.map +1 -1
  33. package/dist/es5/type-metadata.js +33 -1
  34. package/dist/es5/type-metadata.js.map +1 -1
  35. package/dist/es5/type-states/resolved-type-state.js +3 -1
  36. package/dist/es5/type-states/resolved-type-state.js.map +1 -1
  37. package/dist/es5/type-states/unresolved-type-state.js +24 -0
  38. package/dist/es5/type-states/unresolved-type-state.js.map +1 -1
  39. package/dist/types/functions/json-stringify.d.ts.map +1 -1
  40. package/dist/types/index.d.ts +3 -0
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/dist/types/method-name.d.ts +7 -0
  43. package/dist/types/method-name.d.ts.map +1 -0
  44. package/dist/types/serializer-callback.d.ts +10 -0
  45. package/dist/types/serializer-callback.d.ts.map +1 -0
  46. package/dist/types/serializer-handler.d.ts +7 -0
  47. package/dist/types/serializer-handler.d.ts.map +1 -0
  48. package/dist/types/serializers/type-serializer.d.ts.map +1 -1
  49. package/dist/types/type-metadata.d.ts +29 -0
  50. package/dist/types/type-metadata.d.ts.map +1 -1
  51. package/dist/types/type-options.d.ts +15 -0
  52. package/dist/types/type-options.d.ts.map +1 -1
  53. package/dist/types/type-state.d.ts +15 -0
  54. package/dist/types/type-state.d.ts.map +1 -1
  55. package/dist/types/type-states/resolved-type-state.d.ts +18 -1
  56. package/dist/types/type-states/resolved-type-state.d.ts.map +1 -1
  57. package/dist/types/type-states/unresolved-type-state.d.ts +13 -0
  58. package/dist/types/type-states/unresolved-type-state.d.ts.map +1 -1
  59. package/dist/umd/index.js +1 -1
  60. package/dist/umd/index.js.map +1 -1
  61. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ 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
+ ## [8.2.1] - 2025-06-08
9
+
10
+ ### Changed
11
+
12
+ - Optimize json stringify function.
13
+
14
+ ## [8.2.0] - 2025-06-03
15
+
16
+ ### Added
17
+
18
+ - Type option to specify the callback to invoke before serialization starts.
19
+ - Type option to specify the callback to invoke when the deserialization is completed.
20
+
8
21
  ## [8.1.3] - 2025-06-02
9
22
 
10
23
  ### Changed
package/README.md CHANGED
@@ -142,6 +142,8 @@ If you like or are using this project, please give it a star. Thanks!
142
142
  * [Custom data option](#custom-data-option)
143
143
  * [Default value option](#default-value-option)
144
144
  * [Deserializable option](#deserializable-option)
145
+ * [Before serialize callback option](#before-serialize-callback-option)
146
+ * [After deserialize callback option](#after-deserialize-callback-option)
145
147
  * [Discriminant option](#discriminant-option)
146
148
  * [Discriminator option](#discriminator-option)
147
149
  * [Factory option](#factory-option)
@@ -747,6 +749,54 @@ export class User
747
749
 
748
750
  By default all properties are deserializable.
749
751
 
752
+ ### Before serialize callback option
753
+
754
+ This option can be used to specify the callback to invoke before serialization starts.
755
+
756
+ ```typescript
757
+ import { Type, Property } from '@dipscope/type-manager';
758
+
759
+ @Type({
760
+ beforeSerializeCallback: 'prepareForSerialization'
761
+ })
762
+ export class User
763
+ {
764
+ @Property(String) public name: string;
765
+
766
+ public prepareForSerialization(): void
767
+ {
768
+ // This method will be called before serialization begins.
769
+ console.log(`Preparing User object with name ${this.name} before serialization...`);
770
+ }
771
+ }
772
+ ```
773
+
774
+ The `prepareForSerialization` method will be automatically invoked by the type manager just before serialization of the `User` instance. Use this hook to perform any last-minute adjustments such as setting default values, trimming strings, or calculating derived properties before the data is emitted.
775
+
776
+ ### After deserialize callback option
777
+
778
+ This option can be used to specify the callback to invoke when deserialization is completed.
779
+
780
+ ```typescript
781
+ import { Type, Property } from '@dipscope/type-manager';
782
+
783
+ @Type({
784
+ afterDeserializeCallback: 'initializeAfterDeserialization'
785
+ })
786
+ export class User
787
+ {
788
+ @Property(String) public name: string;
789
+
790
+ public initializeAfterDeserialization(): void
791
+ {
792
+ // This method will be called after deserialization is complete.
793
+ console.log(`User object with name ${this.name} has been successfully deserialized...`);
794
+ }
795
+ }
796
+ ```
797
+
798
+ After the `User` instance is reconstructed, the `initializeAfterDeserialization` method will run automatically. This hook is ideal for re-establishing transient state (for example, reconnecting object references, initializing runtime-only fields, or validating integrity of the newly created object).
799
+
750
800
  ### Discriminant option
751
801
 
752
802
  This option is used to define a custom discriminant for a type which is later used during serialization and deserialization of polymorphic types.
@@ -2,6 +2,13 @@ export function jsonStringify(x, replacer, space) {
2
2
  const spacing = typeof space === 'number' ? new Array(isFinite(space) ? space + 1 : 0).join(' ') : (space !== null && space !== void 0 ? space : '');
3
3
  const separator = spacing ? ': ' : ':';
4
4
  const seen = new Set();
5
+ const indents = [''];
6
+ const indentify = (level) => {
7
+ while (indents.length <= level) {
8
+ indents.push(indents[indents.length - 1] + spacing);
9
+ }
10
+ return indents[level];
11
+ };
5
12
  const stringify = (parent, key, node, level) => {
6
13
  if (node && node.toJSON && typeof node.toJSON === 'function') {
7
14
  node = node.toJSON();
@@ -10,58 +17,45 @@ export function jsonStringify(x, replacer, space) {
10
17
  node = replacer.call(parent, key, node);
11
18
  }
12
19
  if (node === undefined) {
13
- return;
20
+ return '';
21
+ }
22
+ if (node === null) {
23
+ return 'null';
14
24
  }
15
25
  if (typeof node === 'number') {
16
- return isFinite(node) ? '' + node : 'null';
26
+ return isFinite(node) ? String(node) : 'null';
17
27
  }
18
28
  if (typeof node !== 'object') {
19
29
  return JSON.stringify(node);
20
30
  }
21
- let i = 0;
22
- let indent = '';
23
- let out = '';
24
- if (spacing) {
25
- indent += '\n';
26
- for (i = 0; i < level + 1; i++) {
27
- indent += spacing;
28
- }
31
+ if (seen.has(node)) {
32
+ return 'null';
29
33
  }
34
+ seen.add(node);
35
+ const indent = spacing ? '\n' + indentify(level + 1) : '';
36
+ const closingIndent = spacing ? '\n' + indentify(level) : '';
37
+ const parts = new Array();
30
38
  if (Array.isArray(node)) {
31
- out += '[';
32
- for (i = 0; i < node.length; i++) {
33
- if (i) {
34
- out += ',';
35
- }
36
- const value = stringify(node, i, node[i], level + 1) || 'null';
37
- out += indent + spacing + value;
39
+ for (let i = 0; i < node.length; i++) {
40
+ const value = stringify(node, String(i), node[i], level + 1) || 'null';
41
+ parts.push(`${indent}${value}`);
38
42
  }
39
- out += indent;
40
- out += ']';
41
- return out;
42
- }
43
- if (node === null) {
44
- return 'null';
45
- }
46
- if (seen.has(node)) {
43
+ const result = `[${parts.join(',')}${closingIndent}]`;
47
44
  seen.delete(node);
48
- return 'null';
45
+ return result;
49
46
  }
50
- seen.add(node);
51
- const keys = Object.keys(node).sort();
52
- for (i = 0; i < keys.length; i++) {
53
- const key = keys[i];
54
- const value = stringify(node, key, node[key], level + 1);
55
- if (!value) {
47
+ const nodeKeys = Object.keys(node).sort();
48
+ for (let i = 0; i < nodeKeys.length; i++) {
49
+ const nodeKey = nodeKeys[i];
50
+ const value = stringify(node, nodeKey, node[nodeKey], level + 1);
51
+ if (value === '') {
56
52
  continue;
57
53
  }
58
- if (out) {
59
- out += ',';
60
- }
61
- out += indent + spacing + JSON.stringify(key) + separator + value;
54
+ parts.push(`${indent}${JSON.stringify(nodeKey)}${separator}${value}`);
62
55
  }
56
+ const result = `{${parts.join(',')}${closingIndent}}`;
63
57
  seen.delete(node);
64
- return '{' + out + indent + '}';
58
+ return result;
65
59
  };
66
60
  return stringify({ '': x }, '', x, 0);
67
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-stringify.js","sourceRoot":"","sources":["../../../src/functions/json-stringify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-stringify.js","sourceRoot":"","sources":["../../../src/functions/json-stringify.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export * from './injector';
34
34
  export * from './logger-level';
35
35
  export * from './logger';
36
36
  export * from './metadata';
37
+ export * from './method-name';
37
38
  export * from './naming-convention';
38
39
  export * from './null-value-resolver';
39
40
  export * from './nullable';
@@ -55,7 +56,9 @@ export * from './reference-key';
55
56
  export * from './reference-value-getter';
56
57
  export * from './reference-value-setter';
57
58
  export * from './reference-value';
59
+ export * from './serializer-callback';
58
60
  export * from './serializer-context';
61
+ export * from './serializer-handler';
59
62
  export * from './serializer';
60
63
  export * from './type-abstraction';
61
64
  export * from './type-argument';
@@ -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,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,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,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,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,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,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,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,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,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,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,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,wCAAwC,CAAC;AACvD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,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,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=method-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-name.js","sourceRoot":"","sources":["../../src/method-name.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=serializer-callback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer-callback.js","sourceRoot":"","sources":["../../src/serializer-callback.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=serializer-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer-handler.js","sourceRoot":"","sources":["../../src/serializer-handler.ts"],"names":[],"mappings":""}
@@ -12,8 +12,15 @@ export class TypeSerializer {
12
12
  const typeSerializerContext = serializerContext.polymorphic
13
13
  ? serializerContext.definePolymorphicSerializerContext(x.constructor)
14
14
  : serializerContext;
15
- const propertySerializerContext = typeSerializerContext.defineChildSerializerContext();
16
15
  const typeState = typeSerializerContext.typeState;
16
+ const beforeSerializeCallback = typeState.beforeSerializeCallback;
17
+ if (typeof beforeSerializeCallback === 'string' && typeof type[beforeSerializeCallback] === 'function') {
18
+ type[beforeSerializeCallback]();
19
+ }
20
+ else if (typeof beforeSerializeCallback === 'function') {
21
+ beforeSerializeCallback(type);
22
+ }
23
+ const propertySerializerContext = typeSerializerContext.defineChildSerializerContext();
17
24
  const object = {};
18
25
  propertySerializerContext.referenceValueSetter = (v, k) => {
19
26
  const declaringObject = propertySerializerContext.referenceMap.get(type);
@@ -104,6 +111,13 @@ export class TypeSerializer {
104
111
  else if (type.hasOwnProperty(typeState.discriminator)) {
105
112
  delete type[typeState.discriminator];
106
113
  }
114
+ const afterDeserializeCallback = typeState.afterDeserializeCallback;
115
+ if (typeof afterDeserializeCallback === 'string' && typeof type[afterDeserializeCallback] === 'function') {
116
+ type[afterDeserializeCallback]();
117
+ }
118
+ else if (typeof afterDeserializeCallback === 'function') {
119
+ afterDeserializeCallback(type);
120
+ }
107
121
  return type;
108
122
  });
109
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type-serializer.js","sourceRoot":"","sources":["../../../src/serializers/type-serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-serializer.js","sourceRoot":"","sources":["../../../src/serializers/type-serializer.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,cAAc;IAUhB,SAAS,CAAC,CAAgC,EAAE,iBAAyD;QAExG,IAAI,CAAC,KAAK,SAAS,EACnB;YACI,OAAO,iBAAiB,CAAC,sBAAsB,CAAC;SACnD;QAED,IAAI,CAAC,KAAK,IAAI,EACd;YACI,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;SAChD;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EACzB;YACI,OAAO,iBAAiB,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE;gBAE7C,MAAM,IAAI,GAAG,CAAwB,CAAC;gBAEtC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,WAAW;oBACvD,CAAC,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC,CAAC,WAAW,CAAC;oBACrE,CAAC,CAAC,iBAAiB,CAAC;gBAExB,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;gBAClD,MAAM,uBAAuB,GAAG,SAAS,CAAC,uBAAuB,CAAC;gBAElE,IAAI,OAAO,uBAAuB,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,UAAU,EACtG;oBACI,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC;iBACnC;qBACI,IAAI,OAAO,uBAAuB,KAAK,UAAU,EACtD;oBACI,uBAAuB,CAAC,IAAI,CAAC,CAAC;iBACjC;gBAED,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,4BAA4B,EAAE,CAAC;gBACvF,MAAM,MAAM,GAAG,EAAyB,CAAC;gBAEzC,yBAAyB,CAAC,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAEtD,MAAM,eAAe,GAAG,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAEzE,IAAI,eAAe,KAAK,SAAS,EACjC;wBACI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBAC1B;gBACL,CAAC,CAAC;gBAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EACjE;oBACI,MAAM,gBAAgB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;oBAC9D,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;oBAErD,IAAI,CAAC,aAAa,CAAC,YAAY,EAC/B;wBACI,SAAS;qBACZ;oBAED,MAAM,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;oBACpE,MAAM,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;oBACxE,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBAErD,yBAAyB,CAAC,WAAW,GAAG,sBAAsB,CAAC;oBAC/D,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;oBACxD,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC3E,yBAAyB,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;oBAE5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC;oBACxD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;oBAE7E,MAAM,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;iBAC1C;gBAED,IAAI,SAAS,CAAC,qBAAqB,EACnC;oBACI,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC;iBAC5D;qBACI,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,EACvD;oBACI,OAAO,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBAC1C;gBAED,OAAO,MAAM,CAAC;YAClB,CAAC,CAAC,CAAC;SACN;QAED,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,QAAQ,mCAAmC,EAAE,CAAC,CAAC,CAAC;QAEtH,OAAO,SAAS,CAAC;IACrB,CAAC;IAUM,WAAW,CAAC,CAAgB,EAAE,iBAAyD;QAE1F,IAAI,CAAC,KAAK,SAAS,EACnB;YACI,OAAO,iBAAiB,CAAC,wBAAwB,CAAC;SACrD;QAED,IAAI,CAAC,KAAK,IAAI,EACd;YACI,OAAO,iBAAiB,CAAC,qBAAqB,CAAC;SAClD;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EACzB;YACI,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE;gBAE9C,MAAM,MAAM,GAAG,CAAwB,CAAC;gBAExC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,WAAW;oBACvD,CAAC,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBACzD,CAAC,CAAC,iBAAiB,CAAC;gBAExB,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,4BAA4B,EAAE,CAAC;gBACvF,MAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC,CAAC;gBAElE,yBAAyB,CAAC,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBAEtD,MAAM,aAAa,GAAG,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAEzE,IAAI,aAAa,KAAK,SAAS,EAC/B;wBACI,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBACxB;gBACL,CAAC,CAAC;gBAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,EAAE,EACjE;oBACI,MAAM,gBAAgB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;oBAC9D,MAAM,aAAa,GAAG,gBAAgB,CAAC,aAAa,CAAC;oBAErD,IAAI,CAAC,aAAa,CAAC,cAAc,EACjC;wBACI,SAAS;qBACZ;oBAED,MAAM,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;oBACpE,MAAM,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;oBACxE,MAAM,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;oBAErD,yBAAyB,CAAC,WAAW,GAAG,sBAAsB,CAAC;oBAC/D,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;oBACxD,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC;oBAC3E,yBAAyB,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;oBAE5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,UAAU,CAAC;oBACxD,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;oBAE/E,YAAY,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBAChI,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC;iBAC/H;gBAED,KAAK,MAAM,YAAY,IAAI,MAAM,EACjC;oBACI,IAAI,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,EAC1E;wBACI,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;qBACtF;iBACJ;gBAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;gBAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;gBACpC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAE3E,IAAI,SAAS,CAAC,qBAAqB,EACnC;oBACI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC;iBAC1D;qBACI,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,EACrD;oBACI,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;iBACxC;gBAED,MAAM,wBAAwB,GAAG,SAAS,CAAC,wBAAwB,CAAC;gBAEpE,IAAI,OAAO,wBAAwB,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,UAAU,EACxG;oBACI,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC;iBACpC;qBACI,IAAI,OAAO,wBAAwB,KAAK,UAAU,EACvD;oBACI,wBAAwB,CAAC,IAAI,CAAC,CAAC;iBAClC;gBAED,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;QAED,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,QAAQ,qCAAqC,EAAE,CAAC,CAAC,CAAC;QAExH,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ"}
@@ -55,6 +55,12 @@ export class TypeMetadata extends Metadata {
55
55
  get deserializedDefaultValue() {
56
56
  return this.currentTypeState.deserializedDefaultValueResolver();
57
57
  }
58
+ get beforeSerializeCallback() {
59
+ return this.currentTypeState.beforeSerializeCallback;
60
+ }
61
+ get afterDeserializeCallback() {
62
+ return this.currentTypeState.afterDeserializeCallback;
63
+ }
58
64
  get discriminant() {
59
65
  return this.currentTypeState.discriminant;
60
66
  }
@@ -166,6 +172,8 @@ export class TypeMetadata extends Metadata {
166
172
  const typeOptions = this.typeOptions;
167
173
  const typeName = this.typeName;
168
174
  const alias = typeOptions.alias;
175
+ const beforeSerializeCallback = typeOptions.beforeSerializeCallback;
176
+ const afterDeserializeCallback = typeOptions.afterDeserializeCallback;
169
177
  const customValueMap = this.resolveCustomValueMap();
170
178
  const preserveNull = typeOptions.preserveNull === undefined
171
179
  ? typeOptionsBase.preserveNull
@@ -258,7 +266,7 @@ export class TypeMetadata extends Metadata {
258
266
  const injectOptionsMap = typeOptions.injectOptionsMap === undefined
259
267
  ? EMPTY_MAP
260
268
  : typeOptions.injectOptionsMap;
261
- const resolvedTypeState = new ResolvedTypeState(this, alias, customValueMap, serializedNullValueResolver, serializedDefaultValue, serializedDefaultValueResolver, deserializedNullValueResolver, deserializedDefaultValue, deserializedDefaultValueResolver, discriminant, discriminator, factory, injectable, injector, logger, namingConvention, polymorphic, typeMetadataMap, preserveDiscriminator, referenceHandler, serializer, preserveNull, useDefaultValue, useImplicitConversion, propertySorter, sortedPropertyMetadatas, injectSorter, sortedInjectMetadatas, parentTypeArguments, parentTypeMetadatas, ownParentTypeMetadatas, childTypeMetadatas, ownChildTypeMetadatas, propertyOptionsMap, propertyMetadataMap, ownPropertyMetadataMap, injectOptionsMap, injectMetadataMap);
269
+ const resolvedTypeState = new ResolvedTypeState(this, alias, customValueMap, serializedNullValueResolver, serializedDefaultValue, serializedDefaultValueResolver, deserializedNullValueResolver, deserializedDefaultValue, deserializedDefaultValueResolver, beforeSerializeCallback, afterDeserializeCallback, discriminant, discriminator, factory, injectable, injector, logger, namingConvention, polymorphic, typeMetadataMap, preserveDiscriminator, referenceHandler, serializer, preserveNull, useDefaultValue, useImplicitConversion, propertySorter, sortedPropertyMetadatas, injectSorter, sortedInjectMetadatas, parentTypeArguments, parentTypeMetadatas, ownParentTypeMetadatas, childTypeMetadatas, ownChildTypeMetadatas, propertyOptionsMap, propertyMetadataMap, ownPropertyMetadataMap, injectOptionsMap, injectMetadataMap);
262
270
  this.currentTypeState = resolvedTypeState;
263
271
  return resolvedTypeState;
264
272
  }
@@ -469,6 +477,16 @@ export class TypeMetadata extends Metadata {
469
477
  this.currentTypeState = new UnresolvedTypeState(this);
470
478
  return this;
471
479
  }
480
+ hasBeforeSerializeCallback(beforeSerializeCallback) {
481
+ this.typeOptions.beforeSerializeCallback = beforeSerializeCallback;
482
+ this.currentTypeState = new UnresolvedTypeState(this);
483
+ return this;
484
+ }
485
+ hasAfterDeserializeCallback(afterDeserializeCallback) {
486
+ this.typeOptions.afterDeserializeCallback = afterDeserializeCallback;
487
+ this.currentTypeState = new UnresolvedTypeState(this);
488
+ return this;
489
+ }
472
490
  hasDiscriminator(discriminator) {
473
491
  this.typeOptions.discriminator = discriminator;
474
492
  this.currentTypeState = new UnresolvedTypeState(this);
@@ -651,6 +669,12 @@ export class TypeMetadata extends Metadata {
651
669
  if (typeOptions.deserializedDefaultValue !== undefined) {
652
670
  this.hasDeserializedDefaultValue(typeOptions.deserializedDefaultValue);
653
671
  }
672
+ if (typeOptions.beforeSerializeCallback !== undefined) {
673
+ this.hasBeforeSerializeCallback(typeOptions.beforeSerializeCallback);
674
+ }
675
+ if (typeOptions.afterDeserializeCallback !== undefined) {
676
+ this.hasAfterDeserializeCallback(typeOptions.afterDeserializeCallback);
677
+ }
654
678
  if (typeOptions.discriminator !== undefined) {
655
679
  this.hasDiscriminator(typeOptions.discriminator);
656
680
  }
@@ -1 +1 @@
1
- {"version":3,"file":"type-metadata.js","sourceRoot":"","sources":["../../src/type-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-metadata.js","sourceRoot":"","sources":["../../src/type-metadata.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export class ResolvedTypeState {
2
- constructor(typeMetadata, alias, customValueMap, serializedNullValueResolver, serializedDefaultValue, serializedDefaultValueResolver, deserializedNullValueResolver, deserializedDefaultValue, deserializedDefaultValueResolver, discriminant, discriminator, factory, injectable, injector, logger, namingConvention, polymorphic, typeMetadataMap, preserveDiscriminator, referenceHandler, serializer, preserveNull, useDefaultValue, useImplicitConversion, propertySorter, sortedPropertyMetadatas, injectSorter, sortedInjectMetadatas, parentTypeArguments, parentTypeMetadatas, ownParentTypeMetadatas, childTypeMetadatas, ownChildTypeMetadatas, propertyOptionsMap, propertyMetadataMap, ownPropertyMetadataMap, injectOptionsMap, injectMetadataMap) {
2
+ constructor(typeMetadata, alias, customValueMap, serializedNullValueResolver, serializedDefaultValue, serializedDefaultValueResolver, deserializedNullValueResolver, deserializedDefaultValue, deserializedDefaultValueResolver, beforeSerializeCallback, afterDeserializeCallback, discriminant, discriminator, factory, injectable, injector, logger, namingConvention, polymorphic, typeMetadataMap, preserveDiscriminator, referenceHandler, serializer, preserveNull, useDefaultValue, useImplicitConversion, propertySorter, sortedPropertyMetadatas, injectSorter, sortedInjectMetadatas, parentTypeArguments, parentTypeMetadatas, ownParentTypeMetadatas, childTypeMetadatas, ownChildTypeMetadatas, propertyOptionsMap, propertyMetadataMap, ownPropertyMetadataMap, injectOptionsMap, injectMetadataMap) {
3
3
  this.typeMetadata = typeMetadata;
4
4
  this.alias = alias;
5
5
  this.customValueMap = customValueMap;
@@ -9,6 +9,8 @@ export class ResolvedTypeState {
9
9
  this.deserializedNullValueResolver = deserializedNullValueResolver;
10
10
  this.deserializedDefaultValue = deserializedDefaultValue;
11
11
  this.deserializedDefaultValueResolver = deserializedDefaultValueResolver;
12
+ this.beforeSerializeCallback = beforeSerializeCallback;
13
+ this.afterDeserializeCallback = afterDeserializeCallback;
12
14
  this.discriminant = discriminant;
13
15
  this.discriminator = discriminator;
14
16
  this.factory = factory;
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-type-state.js","sourceRoot":"","sources":["../../../src/type-states/resolved-type-state.ts"],"names":[],"mappings":"AAiCA,MAAM,OAAO,iBAAiB;IAsT1B,YACI,YAAmC,EACnC,KAAsB,EACtB,cAAwD,EACxD,2BAA8C,EAC9C,sBAAoC,EACpC,8BAAoD,EACpD,6BAAgD,EAChD,wBAAsC,EACtC,gCAAsD,EACtD,YAA0B,EAC1B,aAA4B,EAC5B,OAAgB,EAChB,UAAmB,EACnB,QAAkB,EAClB,MAAc,EACd,gBAA4C,EAC5C,WAAoB,EACpB,eAA4D,EAC5D,qBAA8B,EAC9B,gBAAkC,EAClC,UAA+B,EAC/B,YAAqB,EACrB,eAAwB,EACxB,qBAA8B,EAC9B,cAAwC,EACxC,uBAAsE,EACtE,YAAoC,EACpC,qBAAkE,EAClE,mBAAqD,EACrD,mBAAqD,EACrD,sBAAwD,EACxD,kBAAoD,EACpD,qBAAuD,EACvD,kBAAmE,EACnE,mBAA8E,EAC9E,sBAAiF,EACjF,gBAAgE,EAChE,iBAAyE;QAGzE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;QAC/D,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;QACrE,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;QACnE,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACzD,IAAI,CAAC,gCAAgC,GAAG,gCAAgC,CAAC;QACzE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAE3C,OAAO;IACX,CAAC;CACJ"}
1
+ {"version":3,"file":"resolved-type-state.js","sourceRoot":"","sources":["../../../src/type-states/resolved-type-state.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,22 @@ export class UnresolvedTypeState {
67
67
  }
68
68
  return resolvedTypeState.deserializedDefaultValueResolver;
69
69
  }
70
+ get beforeSerializeCallback() {
71
+ let resolvedTypeState = this.resolvedTypeState;
72
+ if (resolvedTypeState === undefined) {
73
+ resolvedTypeState = this.typeMetadata.resolveTypeState();
74
+ this.resolvedTypeState = resolvedTypeState;
75
+ }
76
+ return resolvedTypeState.beforeSerializeCallback;
77
+ }
78
+ get afterDeserializeCallback() {
79
+ let resolvedTypeState = this.resolvedTypeState;
80
+ if (resolvedTypeState === undefined) {
81
+ resolvedTypeState = this.typeMetadata.resolveTypeState();
82
+ this.resolvedTypeState = resolvedTypeState;
83
+ }
84
+ return resolvedTypeState.afterDeserializeCallback;
85
+ }
70
86
  get discriminant() {
71
87
  let resolvedTypeState = this.resolvedTypeState;
72
88
  if (resolvedTypeState === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"unresolved-type-state.js","sourceRoot":"","sources":["../../../src/type-states/unresolved-type-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unresolved-type-state.js","sourceRoot":"","sources":["../../../src/type-states/unresolved-type-state.ts"],"names":[],"mappings":"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"}