@dipscope/type-manager 7.2.1 → 8.0.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.
- package/CHANGELOG.md +26 -0
- package/README.md +159 -168
- package/dist/es2015/constants/default-value-resolver.js +2 -0
- package/dist/es2015/constants/default-value-resolver.js.map +1 -0
- package/dist/es2015/constants/empty-array.js +2 -0
- package/dist/es2015/constants/empty-array.js.map +1 -0
- package/dist/es2015/constants/empty-map.js +2 -0
- package/dist/es2015/constants/empty-map.js.map +1 -0
- package/dist/es2015/constants/index.js +5 -0
- package/dist/es2015/constants/index.js.map +1 -0
- package/dist/es2015/constants/null-value-resolver.js +2 -0
- package/dist/es2015/constants/null-value-resolver.js.map +1 -0
- package/dist/es2015/custom-key.js.map +1 -1
- package/dist/es2015/factories/type-factory.js +22 -23
- package/dist/es2015/factories/type-factory.js.map +1 -1
- package/dist/es2015/functions/get-own-reflect-metadata.js +1 -2
- package/dist/es2015/functions/get-own-reflect-metadata.js.map +1 -1
- package/dist/es2015/functions/get-reflect-metadata.js +1 -2
- package/dist/es2015/functions/get-reflect-metadata.js.map +1 -1
- package/dist/es2015/functions/get-words.js +61 -2
- package/dist/es2015/functions/get-words.js.map +1 -1
- package/dist/es2015/functions/index.js +0 -12
- package/dist/es2015/functions/index.js.map +1 -1
- package/dist/es2015/functions/json-parse.js.map +1 -1
- package/dist/es2015/functions/json-stringify.js +6 -5
- package/dist/es2015/functions/json-stringify.js.map +1 -1
- package/dist/es2015/functions/name-of.js +1 -5
- package/dist/es2015/functions/name-of.js.map +1 -1
- package/dist/es2015/index.js +13 -12
- package/dist/es2015/index.js.map +1 -1
- package/dist/es2015/inject-metadata.js +34 -33
- package/dist/es2015/inject-metadata.js.map +1 -1
- package/dist/es2015/inject-sorters/asc-inject-sorter.js +1 -9
- package/dist/es2015/inject-sorters/asc-inject-sorter.js.map +1 -1
- package/dist/es2015/inject-sorters/desc-inject-sorter.js +1 -9
- package/dist/es2015/inject-sorters/desc-inject-sorter.js.map +1 -1
- package/dist/es2015/inject-state.js +2 -0
- package/dist/es2015/inject-state.js.map +1 -0
- package/dist/es2015/inject-states/index.js +3 -0
- package/dist/es2015/inject-states/index.js.map +1 -0
- package/dist/es2015/inject-states/resolved-inject-state.js +10 -0
- package/dist/es2015/inject-states/resolved-inject-state.js.map +1 -0
- package/dist/es2015/inject-states/unresolved-inject-state.js +31 -0
- package/dist/es2015/inject-states/unresolved-inject-state.js.map +1 -0
- package/dist/es2015/inject.js +6 -8
- package/dist/es2015/inject.js.map +1 -1
- package/dist/es2015/injectors/singleton-injector.js +6 -10
- package/dist/es2015/injectors/singleton-injector.js.map +1 -1
- package/dist/es2015/logger-level.js +9 -0
- package/dist/es2015/logger-level.js.map +1 -0
- package/dist/es2015/logger.js +79 -0
- package/dist/es2015/logger.js.map +1 -0
- package/dist/es2015/metadata.js +45 -57
- package/dist/es2015/metadata.js.map +1 -1
- package/dist/es2015/null-value-resolver.js +2 -0
- package/dist/es2015/null-value-resolver.js.map +1 -0
- package/dist/es2015/nullable.js +2 -0
- package/dist/es2015/nullable.js.map +1 -0
- package/dist/es2015/optional.js +2 -0
- package/dist/es2015/optional.js.map +1 -0
- package/dist/es2015/property-extension-metadata-ctor-set-key.js +1 -1
- package/dist/es2015/property-extension-metadata-ctor-set-key.js.map +1 -1
- package/dist/es2015/property-extension-metadata.js.map +1 -1
- package/dist/es2015/property-metadata.js +224 -145
- package/dist/es2015/property-metadata.js.map +1 -1
- package/dist/es2015/property-sorters/asc-property-sorter.js +1 -9
- package/dist/es2015/property-sorters/asc-property-sorter.js.map +1 -1
- package/dist/es2015/property-sorters/desc-property-sorter.js +1 -9
- package/dist/es2015/property-sorters/desc-property-sorter.js.map +1 -1
- package/dist/es2015/property-state.js +2 -0
- package/dist/es2015/property-state.js.map +1 -0
- package/dist/es2015/property-states/index.js +3 -0
- package/dist/es2015/property-states/index.js.map +1 -0
- package/dist/es2015/property-states/resolved-property-state.js +27 -0
- package/dist/es2015/property-states/resolved-property-state.js.map +1 -0
- package/dist/es2015/property-states/unresolved-property-state.js +167 -0
- package/dist/es2015/property-states/unresolved-property-state.js.map +1 -0
- package/dist/es2015/property.js +17 -19
- package/dist/es2015/property.js.map +1 -1
- package/dist/es2015/reference-handlers/circular-reference-handler.js +2 -3
- package/dist/es2015/reference-handlers/circular-reference-handler.js.map +1 -1
- package/dist/es2015/reference-handlers/json-path-reference-handler.js +7 -6
- package/dist/es2015/reference-handlers/json-path-reference-handler.js.map +1 -1
- package/dist/es2015/reference-handlers/plain-reference-handler.js +2 -3
- package/dist/es2015/reference-handlers/plain-reference-handler.js.map +1 -1
- package/dist/es2015/serializer-context.js +65 -171
- package/dist/es2015/serializer-context.js.map +1 -1
- package/dist/es2015/serializers/any-serializer.js +4 -5
- package/dist/es2015/serializers/any-serializer.js.map +1 -1
- package/dist/es2015/serializers/array-buffer-serializer.js +8 -13
- package/dist/es2015/serializers/array-buffer-serializer.js.map +1 -1
- package/dist/es2015/serializers/array-serializer.js +18 -25
- package/dist/es2015/serializers/array-serializer.js.map +1 -1
- package/dist/es2015/serializers/boolean-serializer.js +12 -19
- package/dist/es2015/serializers/boolean-serializer.js.map +1 -1
- package/dist/es2015/serializers/data-view-serializer.js +8 -14
- package/dist/es2015/serializers/data-view-serializer.js.map +1 -1
- package/dist/es2015/serializers/date-serializer.js +8 -13
- package/dist/es2015/serializers/date-serializer.js.map +1 -1
- package/dist/es2015/serializers/float-32-array-serializer.js +8 -14
- package/dist/es2015/serializers/float-32-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/float-64-array-serializer.js +8 -14
- package/dist/es2015/serializers/float-64-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/int-16-array-serializer.js +8 -14
- package/dist/es2015/serializers/int-16-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/int-32-array-serializer.js +8 -14
- package/dist/es2015/serializers/int-32-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/int-8-array-serializer.js +8 -14
- package/dist/es2015/serializers/int-8-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/map-serializer.js +42 -54
- package/dist/es2015/serializers/map-serializer.js.map +1 -1
- package/dist/es2015/serializers/number-serializer.js +10 -17
- package/dist/es2015/serializers/number-serializer.js.map +1 -1
- package/dist/es2015/serializers/set-serializer.js +19 -26
- package/dist/es2015/serializers/set-serializer.js.map +1 -1
- package/dist/es2015/serializers/string-serializer.js +12 -19
- package/dist/es2015/serializers/string-serializer.js.map +1 -1
- package/dist/es2015/serializers/type-serializer.js +64 -71
- package/dist/es2015/serializers/type-serializer.js.map +1 -1
- package/dist/es2015/serializers/uint-16-array-serializer.js +8 -14
- package/dist/es2015/serializers/uint-16-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/uint-32-array-serializer.js +8 -14
- package/dist/es2015/serializers/uint-32-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/uint-8-array-serializer.js +8 -14
- package/dist/es2015/serializers/uint-8-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +8 -14
- package/dist/es2015/serializers/uint-8-clamped-array-serializer.js.map +1 -1
- package/dist/es2015/serializers/unknown-serializer.js +4 -5
- package/dist/es2015/serializers/unknown-serializer.js.map +1 -1
- package/dist/es2015/type-entry.js +2 -0
- package/dist/es2015/type-entry.js.map +1 -0
- package/dist/es2015/type-extension-metadata-ctor-set-key.js +1 -1
- package/dist/es2015/type-extension-metadata-ctor-set-key.js.map +1 -1
- package/dist/es2015/type-extension-metadata.js.map +1 -1
- package/dist/es2015/type-manager.js +55 -55
- package/dist/es2015/type-manager.js.map +1 -1
- package/dist/es2015/type-metadata-symbol.js +1 -1
- package/dist/es2015/type-metadata-symbol.js.map +1 -1
- package/dist/es2015/type-metadata.js +465 -226
- package/dist/es2015/type-metadata.js.map +1 -1
- package/dist/es2015/type-scope.js +6 -7
- package/dist/es2015/type-scope.js.map +1 -1
- package/dist/es2015/type-state.js +2 -0
- package/dist/es2015/type-state.js.map +1 -0
- package/dist/es2015/type-states/index.js +3 -0
- package/dist/es2015/type-states/index.js.map +1 -0
- package/dist/es2015/type-states/resolved-type-state.js +44 -0
- package/dist/es2015/type-states/resolved-type-state.js.map +1 -0
- package/dist/es2015/type-states/unresolved-type-state.js +303 -0
- package/dist/es2015/type-states/unresolved-type-state.js.map +1 -0
- package/dist/es2015/type.js.map +1 -1
- package/dist/es5/constants/default-value-resolver.js +2 -0
- package/dist/es5/constants/default-value-resolver.js.map +1 -0
- package/dist/es5/constants/empty-array.js +2 -0
- package/dist/es5/constants/empty-array.js.map +1 -0
- package/dist/es5/constants/empty-map.js +2 -0
- package/dist/es5/constants/empty-map.js.map +1 -0
- package/dist/es5/constants/index.js +5 -0
- package/dist/es5/constants/index.js.map +1 -0
- package/dist/es5/constants/null-value-resolver.js +2 -0
- package/dist/es5/constants/null-value-resolver.js.map +1 -0
- package/dist/es5/custom-key.js.map +1 -1
- package/dist/es5/factories/type-factory.js +63 -39
- package/dist/es5/factories/type-factory.js.map +1 -1
- package/dist/es5/functions/get-own-reflect-metadata.js +1 -2
- package/dist/es5/functions/get-own-reflect-metadata.js.map +1 -1
- package/dist/es5/functions/get-reflect-metadata.js +1 -2
- package/dist/es5/functions/get-reflect-metadata.js.map +1 -1
- package/dist/es5/functions/get-words.js +61 -2
- package/dist/es5/functions/get-words.js.map +1 -1
- package/dist/es5/functions/index.js +0 -12
- package/dist/es5/functions/index.js.map +1 -1
- package/dist/es5/functions/json-parse.js.map +1 -1
- package/dist/es5/functions/json-stringify.js +6 -5
- package/dist/es5/functions/json-stringify.js.map +1 -1
- package/dist/es5/functions/name-of.js +1 -5
- package/dist/es5/functions/name-of.js.map +1 -1
- package/dist/es5/index.js +13 -12
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/inject-metadata.js +49 -34
- package/dist/es5/inject-metadata.js.map +1 -1
- package/dist/es5/inject-sorters/asc-inject-sorter.js +1 -9
- package/dist/es5/inject-sorters/asc-inject-sorter.js.map +1 -1
- package/dist/es5/inject-sorters/desc-inject-sorter.js +1 -9
- package/dist/es5/inject-sorters/desc-inject-sorter.js.map +1 -1
- package/dist/es5/inject-state.js +2 -0
- package/dist/es5/inject-state.js.map +1 -0
- package/dist/es5/inject-states/index.js +3 -0
- package/dist/es5/inject-states/index.js.map +1 -0
- package/dist/es5/inject-states/resolved-inject-state.js +12 -0
- package/dist/es5/inject-states/resolved-inject-state.js.map +1 -0
- package/dist/es5/inject-states/unresolved-inject-state.js +45 -0
- package/dist/es5/inject-states/unresolved-inject-state.js.map +1 -0
- package/dist/es5/inject.js +6 -8
- package/dist/es5/inject.js.map +1 -1
- package/dist/es5/injectors/singleton-injector.js +31 -22
- package/dist/es5/injectors/singleton-injector.js.map +1 -1
- package/dist/es5/logger-level.js +9 -0
- package/dist/es5/logger-level.js.map +1 -0
- package/dist/es5/logger.js +122 -0
- package/dist/es5/logger.js.map +1 -0
- package/dist/es5/metadata.js +44 -79
- package/dist/es5/metadata.js.map +1 -1
- package/dist/es5/null-value-resolver.js +2 -0
- package/dist/es5/null-value-resolver.js.map +1 -0
- package/dist/es5/nullable.js +2 -0
- package/dist/es5/nullable.js.map +1 -0
- package/dist/es5/optional.js +2 -0
- package/dist/es5/optional.js.map +1 -0
- package/dist/es5/property-extension-metadata-ctor-set-key.js +1 -1
- package/dist/es5/property-extension-metadata-ctor-set-key.js.map +1 -1
- package/dist/es5/property-extension-metadata.js.map +1 -1
- package/dist/es5/property-metadata.js +288 -162
- package/dist/es5/property-metadata.js.map +1 -1
- package/dist/es5/property-sorters/asc-property-sorter.js +1 -9
- package/dist/es5/property-sorters/asc-property-sorter.js.map +1 -1
- package/dist/es5/property-sorters/desc-property-sorter.js +1 -9
- package/dist/es5/property-sorters/desc-property-sorter.js.map +1 -1
- package/dist/es5/property-state.js +2 -0
- package/dist/es5/property-state.js.map +1 -0
- package/dist/es5/property-states/index.js +3 -0
- package/dist/es5/property-states/index.js.map +1 -0
- package/dist/es5/property-states/resolved-property-state.js +29 -0
- package/dist/es5/property-states/resolved-property-state.js.map +1 -0
- package/dist/es5/property-states/unresolved-property-state.js +249 -0
- package/dist/es5/property-states/unresolved-property-state.js.map +1 -0
- package/dist/es5/property.js +17 -19
- package/dist/es5/property.js.map +1 -1
- package/dist/es5/reference-handlers/circular-reference-handler.js +2 -3
- package/dist/es5/reference-handlers/circular-reference-handler.js.map +1 -1
- package/dist/es5/reference-handlers/json-path-reference-handler.js +10 -31
- package/dist/es5/reference-handlers/json-path-reference-handler.js.map +1 -1
- package/dist/es5/reference-handlers/plain-reference-handler.js +2 -3
- package/dist/es5/reference-handlers/plain-reference-handler.js.map +1 -1
- package/dist/es5/serializer-context.js +71 -237
- package/dist/es5/serializer-context.js.map +1 -1
- package/dist/es5/serializers/any-serializer.js +4 -5
- package/dist/es5/serializers/any-serializer.js.map +1 -1
- package/dist/es5/serializers/array-buffer-serializer.js +8 -13
- package/dist/es5/serializers/array-buffer-serializer.js.map +1 -1
- package/dist/es5/serializers/array-serializer.js +18 -31
- package/dist/es5/serializers/array-serializer.js.map +1 -1
- package/dist/es5/serializers/boolean-serializer.js +12 -19
- package/dist/es5/serializers/boolean-serializer.js.map +1 -1
- package/dist/es5/serializers/data-view-serializer.js +8 -14
- package/dist/es5/serializers/data-view-serializer.js.map +1 -1
- package/dist/es5/serializers/date-serializer.js +8 -13
- package/dist/es5/serializers/date-serializer.js.map +1 -1
- package/dist/es5/serializers/float-32-array-serializer.js +8 -14
- package/dist/es5/serializers/float-32-array-serializer.js.map +1 -1
- package/dist/es5/serializers/float-64-array-serializer.js +8 -14
- package/dist/es5/serializers/float-64-array-serializer.js.map +1 -1
- package/dist/es5/serializers/int-16-array-serializer.js +8 -14
- package/dist/es5/serializers/int-16-array-serializer.js.map +1 -1
- package/dist/es5/serializers/int-32-array-serializer.js +8 -14
- package/dist/es5/serializers/int-32-array-serializer.js.map +1 -1
- package/dist/es5/serializers/int-8-array-serializer.js +8 -14
- package/dist/es5/serializers/int-8-array-serializer.js.map +1 -1
- package/dist/es5/serializers/map-serializer.js +69 -55
- package/dist/es5/serializers/map-serializer.js.map +1 -1
- package/dist/es5/serializers/number-serializer.js +10 -17
- package/dist/es5/serializers/number-serializer.js.map +1 -1
- package/dist/es5/serializers/set-serializer.js +30 -27
- package/dist/es5/serializers/set-serializer.js.map +1 -1
- package/dist/es5/serializers/string-serializer.js +12 -19
- package/dist/es5/serializers/string-serializer.js.map +1 -1
- package/dist/es5/serializers/type-serializer.js +65 -101
- package/dist/es5/serializers/type-serializer.js.map +1 -1
- package/dist/es5/serializers/uint-16-array-serializer.js +8 -14
- package/dist/es5/serializers/uint-16-array-serializer.js.map +1 -1
- package/dist/es5/serializers/uint-32-array-serializer.js +8 -14
- package/dist/es5/serializers/uint-32-array-serializer.js.map +1 -1
- package/dist/es5/serializers/uint-8-array-serializer.js +8 -14
- package/dist/es5/serializers/uint-8-array-serializer.js.map +1 -1
- package/dist/es5/serializers/uint-8-clamped-array-serializer.js +8 -14
- package/dist/es5/serializers/uint-8-clamped-array-serializer.js.map +1 -1
- package/dist/es5/serializers/unknown-serializer.js +4 -5
- package/dist/es5/serializers/unknown-serializer.js.map +1 -1
- package/dist/es5/type-entry.js +2 -0
- package/dist/es5/type-entry.js.map +1 -0
- package/dist/es5/type-extension-metadata-ctor-set-key.js +1 -1
- package/dist/es5/type-extension-metadata-ctor-set-key.js.map +1 -1
- package/dist/es5/type-extension-metadata.js.map +1 -1
- package/dist/es5/type-manager.js +110 -63
- package/dist/es5/type-manager.js.map +1 -1
- package/dist/es5/type-metadata-symbol.js +1 -1
- package/dist/es5/type-metadata-symbol.js.map +1 -1
- package/dist/es5/type-metadata.js +597 -273
- package/dist/es5/type-metadata.js.map +1 -1
- package/dist/es5/type-scope.js +42 -37
- package/dist/es5/type-scope.js.map +1 -1
- package/dist/es5/type-state.js +2 -0
- package/dist/es5/type-state.js.map +1 -0
- package/dist/es5/type-states/index.js +3 -0
- package/dist/es5/type-states/index.js.map +1 -0
- package/dist/es5/type-states/resolved-type-state.js +46 -0
- package/dist/es5/type-states/resolved-type-state.js.map +1 -0
- package/dist/es5/type-states/unresolved-type-state.js +453 -0
- package/dist/es5/type-states/unresolved-type-state.js.map +1 -0
- package/dist/es5/type.js.map +1 -1
- package/dist/types/constants/default-value-resolver.d.ts +8 -0
- package/dist/types/constants/default-value-resolver.d.ts.map +1 -0
- package/dist/types/constants/empty-array.d.ts +7 -0
- package/dist/types/constants/empty-array.d.ts.map +1 -0
- package/dist/types/constants/empty-map.d.ts +7 -0
- package/dist/types/constants/empty-map.d.ts.map +1 -0
- package/dist/types/constants/index.d.ts +5 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/constants/null-value-resolver.d.ts +8 -0
- package/dist/types/constants/null-value-resolver.d.ts.map +1 -0
- package/dist/types/custom-key.d.ts +4 -3
- package/dist/types/custom-key.d.ts.map +1 -1
- package/dist/types/custom-option.d.ts +2 -2
- package/dist/types/custom-value.d.ts +2 -1
- package/dist/types/custom-value.d.ts.map +1 -1
- package/dist/types/factories/type-factory.d.ts +8 -5
- package/dist/types/factories/type-factory.d.ts.map +1 -1
- package/dist/types/factory.d.ts +7 -4
- package/dist/types/factory.d.ts.map +1 -1
- package/dist/types/functions/get-own-reflect-metadata.d.ts.map +1 -1
- package/dist/types/functions/get-reflect-metadata.d.ts.map +1 -1
- package/dist/types/functions/get-words.d.ts +3 -3
- package/dist/types/functions/get-words.d.ts.map +1 -1
- package/dist/types/functions/index.d.ts +0 -12
- package/dist/types/functions/index.d.ts.map +1 -1
- package/dist/types/functions/json-parse.d.ts +1 -1
- package/dist/types/functions/json-parse.d.ts.map +1 -1
- package/dist/types/functions/json-stringify.d.ts.map +1 -1
- package/dist/types/functions/name-of.d.ts.map +1 -1
- package/dist/types/generic-argument.d.ts +2 -2
- package/dist/types/generic-argument.d.ts.map +1 -1
- package/dist/types/generic-metadata.d.ts +2 -2
- package/dist/types/generic-metadata.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/inject-metadata.d.ts +52 -45
- package/dist/types/inject-metadata.d.ts.map +1 -1
- package/dist/types/inject-options.d.ts +8 -8
- package/dist/types/inject-options.d.ts.map +1 -1
- package/dist/types/inject-sorter.d.ts +3 -3
- package/dist/types/inject-sorter.d.ts.map +1 -1
- package/dist/types/inject-sorters/asc-inject-sorter.d.ts +3 -3
- package/dist/types/inject-sorters/asc-inject-sorter.d.ts.map +1 -1
- package/dist/types/inject-sorters/desc-inject-sorter.d.ts +3 -3
- package/dist/types/inject-sorters/desc-inject-sorter.d.ts.map +1 -1
- package/dist/types/inject-state.d.ts +36 -0
- package/dist/types/inject-state.d.ts.map +1 -0
- package/dist/types/inject-states/index.d.ts +3 -0
- package/dist/types/inject-states/index.d.ts.map +1 -0
- package/dist/types/inject-states/resolved-inject-state.d.ts +46 -0
- package/dist/types/inject-states/resolved-inject-state.d.ts.map +1 -0
- package/dist/types/inject-states/unresolved-inject-state.d.ts +49 -0
- package/dist/types/inject-states/unresolved-inject-state.d.ts.map +1 -0
- package/dist/types/inject.d.ts +3 -3
- package/dist/types/inject.d.ts.map +1 -1
- package/dist/types/injector.d.ts +4 -3
- package/dist/types/injector.d.ts.map +1 -1
- package/dist/types/injectors/singleton-injector.d.ts +5 -5
- package/dist/types/injectors/singleton-injector.d.ts.map +1 -1
- package/dist/types/logger-level.d.ts +31 -0
- package/dist/types/logger-level.d.ts.map +1 -0
- package/dist/types/logger.d.ts +125 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/metadata.d.ts +29 -39
- package/dist/types/metadata.d.ts.map +1 -1
- package/dist/types/null-value-resolver.d.ts +9 -0
- package/dist/types/null-value-resolver.d.ts.map +1 -0
- package/dist/types/nullable.d.ts +7 -0
- package/dist/types/nullable.d.ts.map +1 -0
- package/dist/types/optional.d.ts +7 -0
- package/dist/types/optional.d.ts.map +1 -0
- package/dist/types/property-extension-metadata-ctor-set-key.d.ts +1 -1
- package/dist/types/property-extension-metadata-ctor-set-key.d.ts.map +1 -1
- package/dist/types/property-extension-metadata-ctor.d.ts +2 -2
- package/dist/types/property-extension-metadata-ctor.d.ts.map +1 -1
- package/dist/types/property-extension-metadata.d.ts +7 -7
- package/dist/types/property-extension-metadata.d.ts.map +1 -1
- package/dist/types/property-metadata.d.ts +134 -119
- package/dist/types/property-metadata.d.ts.map +1 -1
- package/dist/types/property-options.d.ts +11 -10
- package/dist/types/property-options.d.ts.map +1 -1
- package/dist/types/property-sorter.d.ts +3 -3
- package/dist/types/property-sorter.d.ts.map +1 -1
- package/dist/types/property-sorters/asc-property-sorter.d.ts +3 -3
- package/dist/types/property-sorters/asc-property-sorter.d.ts.map +1 -1
- package/dist/types/property-sorters/desc-property-sorter.d.ts +3 -3
- package/dist/types/property-sorters/desc-property-sorter.d.ts.map +1 -1
- package/dist/types/property-state.d.ts +149 -0
- package/dist/types/property-state.d.ts.map +1 -0
- package/dist/types/property-states/index.d.ts +3 -0
- package/dist/types/property-states/index.d.ts.map +1 -0
- package/dist/types/property-states/resolved-property-state.d.ts +176 -0
- package/dist/types/property-states/resolved-property-state.d.ts.map +1 -0
- package/dist/types/property-states/unresolved-property-state.d.ts +162 -0
- package/dist/types/property-states/unresolved-property-state.d.ts.map +1 -0
- package/dist/types/property.d.ts +4 -4
- package/dist/types/property.d.ts.map +1 -1
- package/dist/types/reference-handlers/circular-reference-handler.d.ts.map +1 -1
- package/dist/types/reference-handlers/json-path-reference-handler.d.ts.map +1 -1
- package/dist/types/reference-handlers/plain-reference-handler.d.ts.map +1 -1
- package/dist/types/reference-value-setter.d.ts +1 -1
- package/dist/types/reference-value-setter.d.ts.map +1 -1
- package/dist/types/serializer-context.d.ts +70 -164
- package/dist/types/serializer-context.d.ts.map +1 -1
- package/dist/types/serializer.d.ts +8 -8
- package/dist/types/serializer.d.ts.map +1 -1
- package/dist/types/serializers/any-serializer.d.ts.map +1 -1
- package/dist/types/serializers/array-buffer-serializer.d.ts.map +1 -1
- package/dist/types/serializers/array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/boolean-serializer.d.ts +1 -1
- package/dist/types/serializers/boolean-serializer.d.ts.map +1 -1
- package/dist/types/serializers/data-view-serializer.d.ts.map +1 -1
- package/dist/types/serializers/date-serializer.d.ts.map +1 -1
- package/dist/types/serializers/float-32-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/float-64-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/int-16-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/int-32-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/int-8-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/map-serializer.d.ts.map +1 -1
- package/dist/types/serializers/number-serializer.d.ts +1 -1
- package/dist/types/serializers/number-serializer.d.ts.map +1 -1
- package/dist/types/serializers/set-serializer.d.ts.map +1 -1
- package/dist/types/serializers/string-serializer.d.ts +1 -1
- package/dist/types/serializers/string-serializer.d.ts.map +1 -1
- package/dist/types/serializers/type-serializer.d.ts.map +1 -1
- package/dist/types/serializers/uint-16-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/uint-32-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/uint-8-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts.map +1 -1
- package/dist/types/serializers/unknown-serializer.d.ts.map +1 -1
- package/dist/types/type-abstraction.d.ts +2 -2
- package/dist/types/type-abstraction.d.ts.map +1 -1
- package/dist/types/type-argument.d.ts +3 -3
- package/dist/types/type-argument.d.ts.map +1 -1
- package/dist/types/type-configuration.d.ts +4 -4
- package/dist/types/type-configuration.d.ts.map +1 -1
- package/dist/types/type-ctor.d.ts +2 -2
- package/dist/types/type-ctor.d.ts.map +1 -1
- package/dist/types/type-entry.d.ts +29 -0
- package/dist/types/type-entry.d.ts.map +1 -0
- package/dist/types/type-extension-metadata-ctor-set-key.d.ts +1 -1
- package/dist/types/type-extension-metadata-ctor-set-key.d.ts.map +1 -1
- package/dist/types/type-extension-metadata-ctor.d.ts +2 -2
- package/dist/types/type-extension-metadata-ctor.d.ts.map +1 -1
- package/dist/types/type-extension-metadata.d.ts +6 -6
- package/dist/types/type-extension-metadata.d.ts.map +1 -1
- package/dist/types/type-fn.d.ts +2 -2
- package/dist/types/type-fn.d.ts.map +1 -1
- package/dist/types/type-like.d.ts +2 -2
- package/dist/types/type-like.d.ts.map +1 -1
- package/dist/types/type-manager-options.d.ts.map +1 -1
- package/dist/types/type-manager.d.ts +116 -123
- package/dist/types/type-manager.d.ts.map +1 -1
- package/dist/types/type-metadata-symbol.d.ts +1 -1
- package/dist/types/type-metadata-symbol.d.ts.map +1 -1
- package/dist/types/type-metadata.d.ts +253 -152
- package/dist/types/type-metadata.d.ts.map +1 -1
- package/dist/types/type-options-base.d.ts +13 -12
- package/dist/types/type-options-base.d.ts.map +1 -1
- package/dist/types/type-options.d.ts +10 -10
- package/dist/types/type-options.d.ts.map +1 -1
- package/dist/types/type-resolver.d.ts +2 -2
- package/dist/types/type-resolver.d.ts.map +1 -1
- package/dist/types/type-scope.d.ts.map +1 -1
- package/dist/types/type-state.d.ts +262 -0
- package/dist/types/type-state.d.ts.map +1 -0
- package/dist/types/type-states/index.d.ts +3 -0
- package/dist/types/type-states/index.d.ts.map +1 -0
- package/dist/types/type-states/resolved-type-state.d.ts +306 -0
- package/dist/types/type-states/resolved-type-state.d.ts.map +1 -0
- package/dist/types/type-states/unresolved-type-state.d.ts +275 -0
- package/dist/types/type-states/unresolved-type-state.d.ts.map +1 -0
- package/dist/types/type.d.ts +2 -2
- package/dist/types/type.d.ts.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -8
- package/dist/es2015/custom-context.js +0 -59
- package/dist/es2015/custom-context.js.map +0 -1
- package/dist/es2015/functions/is-arrow-function.js +0 -5
- package/dist/es2015/functions/is-arrow-function.js.map +0 -1
- package/dist/es2015/functions/is-ctor-function.js +0 -5
- package/dist/es2015/functions/is-ctor-function.js.map +0 -1
- package/dist/es2015/functions/is-data-view.js +0 -4
- package/dist/es2015/functions/is-data-view.js.map +0 -1
- package/dist/es2015/functions/is-float-32-array.js +0 -4
- package/dist/es2015/functions/is-float-32-array.js.map +0 -1
- package/dist/es2015/functions/is-float-64-array.js +0 -4
- package/dist/es2015/functions/is-float-64-array.js.map +0 -1
- package/dist/es2015/functions/is-int-16-array.js +0 -4
- package/dist/es2015/functions/is-int-16-array.js.map +0 -1
- package/dist/es2015/functions/is-int-32-array.js +0 -4
- package/dist/es2015/functions/is-int-32-array.js.map +0 -1
- package/dist/es2015/functions/is-int-8-array.js +0 -4
- package/dist/es2015/functions/is-int-8-array.js.map +0 -1
- package/dist/es2015/functions/is-uint-16-array.js +0 -4
- package/dist/es2015/functions/is-uint-16-array.js.map +0 -1
- package/dist/es2015/functions/is-uint-32-array.js +0 -4
- package/dist/es2015/functions/is-uint-32-array.js.map +0 -1
- package/dist/es2015/functions/is-uint-8-array.js +0 -4
- package/dist/es2015/functions/is-uint-8-array.js.map +0 -1
- package/dist/es2015/functions/is-uint-8-clamped-array.js +0 -4
- package/dist/es2015/functions/is-uint-8-clamped-array.js.map +0 -1
- package/dist/es2015/generic-metadata-resolver.js +0 -2
- package/dist/es2015/generic-metadata-resolver.js.map +0 -1
- package/dist/es2015/generic-structure.js +0 -2
- package/dist/es2015/generic-structure.js.map +0 -1
- package/dist/es2015/inject-internals.js +0 -2
- package/dist/es2015/inject-internals.js.map +0 -1
- package/dist/es2015/log-level.js +0 -8
- package/dist/es2015/log-level.js.map +0 -1
- package/dist/es2015/log.js +0 -50
- package/dist/es2015/log.js.map +0 -1
- package/dist/es2015/property-internals.js +0 -2
- package/dist/es2015/property-internals.js.map +0 -1
- package/dist/es2015/serializer-context-options.js +0 -2
- package/dist/es2015/serializer-context-options.js.map +0 -1
- package/dist/es2015/type-context-entry.js +0 -9
- package/dist/es2015/type-context-entry.js.map +0 -1
- package/dist/es2015/type-context.js +0 -31
- package/dist/es2015/type-context.js.map +0 -1
- package/dist/es2015/type-internals.js +0 -2
- package/dist/es2015/type-internals.js.map +0 -1
- package/dist/es2015/type-metadata-resolver.js +0 -2
- package/dist/es2015/type-metadata-resolver.js.map +0 -1
- package/dist/es5/custom-context.js +0 -95
- package/dist/es5/custom-context.js.map +0 -1
- package/dist/es5/functions/is-arrow-function.js +0 -5
- package/dist/es5/functions/is-arrow-function.js.map +0 -1
- package/dist/es5/functions/is-ctor-function.js +0 -5
- package/dist/es5/functions/is-ctor-function.js.map +0 -1
- package/dist/es5/functions/is-data-view.js +0 -4
- package/dist/es5/functions/is-data-view.js.map +0 -1
- package/dist/es5/functions/is-float-32-array.js +0 -4
- package/dist/es5/functions/is-float-32-array.js.map +0 -1
- package/dist/es5/functions/is-float-64-array.js +0 -4
- package/dist/es5/functions/is-float-64-array.js.map +0 -1
- package/dist/es5/functions/is-int-16-array.js +0 -4
- package/dist/es5/functions/is-int-16-array.js.map +0 -1
- package/dist/es5/functions/is-int-32-array.js +0 -4
- package/dist/es5/functions/is-int-32-array.js.map +0 -1
- package/dist/es5/functions/is-int-8-array.js +0 -4
- package/dist/es5/functions/is-int-8-array.js.map +0 -1
- package/dist/es5/functions/is-uint-16-array.js +0 -4
- package/dist/es5/functions/is-uint-16-array.js.map +0 -1
- package/dist/es5/functions/is-uint-32-array.js +0 -4
- package/dist/es5/functions/is-uint-32-array.js.map +0 -1
- package/dist/es5/functions/is-uint-8-array.js +0 -4
- package/dist/es5/functions/is-uint-8-array.js.map +0 -1
- package/dist/es5/functions/is-uint-8-clamped-array.js +0 -4
- package/dist/es5/functions/is-uint-8-clamped-array.js.map +0 -1
- package/dist/es5/generic-metadata-resolver.js +0 -2
- package/dist/es5/generic-metadata-resolver.js.map +0 -1
- package/dist/es5/generic-structure.js +0 -2
- package/dist/es5/generic-structure.js.map +0 -1
- package/dist/es5/inject-internals.js +0 -2
- package/dist/es5/inject-internals.js.map +0 -1
- package/dist/es5/log-level.js +0 -8
- package/dist/es5/log-level.js.map +0 -1
- package/dist/es5/log.js +0 -65
- package/dist/es5/log.js.map +0 -1
- package/dist/es5/property-internals.js +0 -2
- package/dist/es5/property-internals.js.map +0 -1
- package/dist/es5/serializer-context-options.js +0 -2
- package/dist/es5/serializer-context-options.js.map +0 -1
- package/dist/es5/type-context-entry.js +0 -11
- package/dist/es5/type-context-entry.js.map +0 -1
- package/dist/es5/type-context.js +0 -33
- package/dist/es5/type-context.js.map +0 -1
- package/dist/es5/type-internals.js +0 -2
- package/dist/es5/type-internals.js.map +0 -1
- package/dist/es5/type-metadata-resolver.js +0 -2
- package/dist/es5/type-metadata-resolver.js.map +0 -1
- package/dist/types/custom-context.d.ts +0 -89
- package/dist/types/custom-context.d.ts.map +0 -1
- package/dist/types/functions/is-arrow-function.d.ts +0 -9
- package/dist/types/functions/is-arrow-function.d.ts.map +0 -1
- package/dist/types/functions/is-ctor-function.d.ts +0 -9
- package/dist/types/functions/is-ctor-function.d.ts.map +0 -1
- package/dist/types/functions/is-data-view.d.ts +0 -9
- package/dist/types/functions/is-data-view.d.ts.map +0 -1
- package/dist/types/functions/is-float-32-array.d.ts +0 -9
- package/dist/types/functions/is-float-32-array.d.ts.map +0 -1
- package/dist/types/functions/is-float-64-array.d.ts +0 -9
- package/dist/types/functions/is-float-64-array.d.ts.map +0 -1
- package/dist/types/functions/is-int-16-array.d.ts +0 -9
- package/dist/types/functions/is-int-16-array.d.ts.map +0 -1
- package/dist/types/functions/is-int-32-array.d.ts +0 -9
- package/dist/types/functions/is-int-32-array.d.ts.map +0 -1
- package/dist/types/functions/is-int-8-array.d.ts +0 -9
- package/dist/types/functions/is-int-8-array.d.ts.map +0 -1
- package/dist/types/functions/is-uint-16-array.d.ts +0 -9
- package/dist/types/functions/is-uint-16-array.d.ts.map +0 -1
- package/dist/types/functions/is-uint-32-array.d.ts +0 -9
- package/dist/types/functions/is-uint-32-array.d.ts.map +0 -1
- package/dist/types/functions/is-uint-8-array.d.ts +0 -9
- package/dist/types/functions/is-uint-8-array.d.ts.map +0 -1
- package/dist/types/functions/is-uint-8-clamped-array.d.ts +0 -9
- package/dist/types/functions/is-uint-8-clamped-array.d.ts.map +0 -1
- package/dist/types/generic-metadata-resolver.d.ts +0 -8
- package/dist/types/generic-metadata-resolver.d.ts.map +0 -1
- package/dist/types/generic-structure.d.ts +0 -8
- package/dist/types/generic-structure.d.ts.map +0 -1
- package/dist/types/inject-internals.d.ts +0 -15
- package/dist/types/inject-internals.d.ts.map +0 -1
- package/dist/types/log-level.d.ts +0 -12
- package/dist/types/log-level.d.ts.map +0 -1
- package/dist/types/log.d.ts +0 -96
- package/dist/types/log.d.ts.map +0 -1
- package/dist/types/property-internals.d.ts +0 -36
- package/dist/types/property-internals.d.ts.map +0 -1
- package/dist/types/serializer-context-options.d.ts +0 -51
- package/dist/types/serializer-context-options.d.ts.map +0 -1
- package/dist/types/type-context-entry.d.ts +0 -37
- package/dist/types/type-context-entry.d.ts.map +0 -1
- package/dist/types/type-context.d.ts +0 -71
- package/dist/types/type-context.d.ts.map +0 -1
- package/dist/types/type-internals.d.ts +0 -15
- package/dist/types/type-internals.d.ts.map +0 -1
- package/dist/types/type-metadata-resolver.d.ts +0 -9
- package/dist/types/type-metadata-resolver.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ 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.0.1] - 2025-03-22
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Remove outdated dependencies.
|
|
13
|
+
|
|
14
|
+
## [8.0.0] - 2025-01-11
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- Support for lazy parent type and interface inheritance.
|
|
19
|
+
- Performance on large object graphs is up to 3 times faster.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- The metadata is now read-only and configuration must be done using the provided API.
|
|
24
|
+
- Declaring and retrieving user custom options has been simplified.
|
|
25
|
+
- Property `customOptions` was replaced with `customValueMap`.
|
|
26
|
+
- Property `parentTypeFns` was replaced with `parentTypeArguments`.
|
|
27
|
+
- Custom context is now part of the metadata.
|
|
28
|
+
|
|
29
|
+
### Migrating from previous version
|
|
30
|
+
|
|
31
|
+
- Rename `customOptions` to `customValueMap` and wrap your configuration array into map.
|
|
32
|
+
- Rename `parentTypeFns` to `parentTypeArguments` if you have this option declared on your type.
|
|
33
|
+
|
|
8
34
|
## [7.2.1] - 2024-02-18
|
|
9
35
|
|
|
10
36
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,173 +1,114 @@
|
|
|
1
1
|
# TypeManager.TS
|
|
2
2
|
|
|
3
|
-
  
|
|
3
|
+
  
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## What is TypeManager?
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
TypeManager is a stable, highly-tested, highly-performant parsing package for `TypeScript` which handles everything you need to easily integrate classes into your workflow.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## What does it do?
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Most frontend developers are writing custom helpers and functions (in the form of React Hooks and Vue Composables) to solve a problem that, in the backend world, was solved elegantly decades ago by the use of Classes.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Imagine handling a `User` object that contains a first name, last name, and nickname. You need to intelligently display the `best` name for that user in multiple places.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
```typescript
|
|
16
|
+
// Hi! I'm some user data from the server!
|
|
17
|
+
const user = fetchUserData();
|
|
18
|
+
```
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
* [Installation](#installation)
|
|
19
|
-
* [How it works?](#how-it-works)
|
|
20
|
-
* [Defining decorators](#defining-decorators)
|
|
21
|
-
* [Type decorator](#type-decorator)
|
|
22
|
-
* [Property decorator](#property-decorator)
|
|
23
|
-
* [Inject decorator](#inject-decorator)
|
|
24
|
-
* [Defining decorator options](#defining-decorator-options)
|
|
25
|
-
* [Alias option](#alias-option)
|
|
26
|
-
* [Custom data option](#custom-data-option)
|
|
27
|
-
* [Default value option](#default-value-option)
|
|
28
|
-
* [Deserializable option](#deserializable-option)
|
|
29
|
-
* [Discriminant option](#discriminant-option)
|
|
30
|
-
* [Discriminator option](#discriminator-option)
|
|
31
|
-
* [Factory option](#factory-option)
|
|
32
|
-
* [Injectable option](#injectable-option)
|
|
33
|
-
* [Injector option](#injector-option)
|
|
34
|
-
* [Naming convention option](#naming-convention-option)
|
|
35
|
-
* [Preserve discriminator option](#preserve-discriminator-option)
|
|
36
|
-
* [Preserve null option](#preserve-null-option)
|
|
37
|
-
* [Reference handler option](#reference-handler-option)
|
|
38
|
-
* [Serializable option](#serializable-option)
|
|
39
|
-
* [Serializer option](#serializer-option)
|
|
40
|
-
* [Use default value option](#use-default-value-option)
|
|
41
|
-
* [Use implicit conversion option](#use-implicit-conversion-option)
|
|
42
|
-
* [Parent type functions option](#parent-type-functions-option)
|
|
43
|
-
* [Defining configuration manually](#defining-configuration-manually)
|
|
44
|
-
* [Configuring global options](#configuring-global-options)
|
|
45
|
-
* [Configuring options per type](#configuring-options-per-type)
|
|
46
|
-
* [Configuring usage of polymorphic types](#configuring-usage-of-polymorphic-types)
|
|
47
|
-
* [Configuring naming convention](#configuring-naming-convention)
|
|
48
|
-
* [Configuring reference handler](#configuring-reference-handler)
|
|
49
|
-
* [Advanced usage](#advanced-usage)
|
|
50
|
-
* [Defining custom data](#defining-custom-data)
|
|
51
|
-
* [Defining custom serializer](#defining-custom-serializer)
|
|
52
|
-
* [Defining custom injector](#defining-custom-injector)
|
|
53
|
-
* [Defining custom factory](#defining-custom-factory)
|
|
54
|
-
* [Defining custom naming convention](#defining-custom-naming-convention)
|
|
55
|
-
* [Use cases](#use-cases)
|
|
56
|
-
* [Built in serializers](#built-in-serializers)
|
|
57
|
-
* [Circular object references](#circular-object-references)
|
|
58
|
-
* [Dependency injection and immutable types](#dependency-injection-and-immutable-types)
|
|
59
|
-
* [Different case usage in class and JSON](#different-case-usage-in-class-and-json)
|
|
60
|
-
* [Enum types](#enum-types)
|
|
61
|
-
* [Generic types](#generic-types)
|
|
62
|
-
* [Integration with Angular](#integration-with-angular)
|
|
63
|
-
* [Polymorphic types](#polymorphic-types)
|
|
64
|
-
* [Versioning](#versioning)
|
|
65
|
-
* [Contributing](#contributing)
|
|
66
|
-
* [Authors](#authors)
|
|
67
|
-
* [Notes](#notes)
|
|
68
|
-
* [License](#license)
|
|
20
|
+
In the world of TypeScript, it has become common to see something like this, _repeated in every single file_ that needs this functionality:
|
|
69
21
|
|
|
70
|
-
|
|
22
|
+
```typescript
|
|
23
|
+
import { useFormattingFunctions } from '@/hooks/useFormattingFunctions';
|
|
71
24
|
|
|
72
|
-
|
|
25
|
+
// Get name formatting function.
|
|
26
|
+
const { nameFormatter } = useFormattingFunctions();
|
|
73
27
|
|
|
74
|
-
|
|
75
|
-
|
|
28
|
+
// A user in the form of JS object.
|
|
29
|
+
const preferredName = nameFormatter(user); // ...finally got what I needed!
|
|
30
|
+
```
|
|
76
31
|
|
|
77
|
-
|
|
32
|
+
But in the backend world, this sort of problem was solved decades ago:
|
|
78
33
|
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"id": 1,
|
|
83
|
-
"name": "Dmitry",
|
|
84
|
-
"deletedAt": "2021-02-22T20:15:00.000Z"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"id": 2,
|
|
88
|
-
"name": "Alex",
|
|
89
|
-
"deletedAt": null
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"id": 3,
|
|
93
|
-
"name": "Anna",
|
|
94
|
-
"deletedAt": null
|
|
95
|
-
}
|
|
96
|
-
]
|
|
34
|
+
```typescript
|
|
35
|
+
// A user in the form of `new MyUserClass()`.
|
|
36
|
+
const preferredName = user.getPreferredName(); // Whew! That was quick!
|
|
97
37
|
```
|
|
98
38
|
|
|
99
|
-
|
|
39
|
+
The problem is that, when you're used to working with plain-old JavaScript objects, you're used to having data (only!) and no business logic. But ask yourself: which one is simpler? Which one is easier to read?
|
|
100
40
|
|
|
101
|
-
|
|
102
|
-
export class User
|
|
103
|
-
{
|
|
104
|
-
public id: number;
|
|
105
|
-
public name: string;
|
|
106
|
-
public deletedAt: Date;
|
|
41
|
+
## TypeManager to the rescue
|
|
107
42
|
|
|
108
|
-
|
|
109
|
-
{
|
|
110
|
-
this.id = id;
|
|
111
|
-
this.name = name;
|
|
43
|
+
TypeManager 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 was never so fun and easy.
|
|
112
44
|
|
|
113
|
-
|
|
114
|
-
}
|
|
45
|
+
Configuration can be done using [decorators](https://www.typescriptlang.org/docs/handbook/decorators.html) or declarative configuration for your or 3rd party classes.
|
|
115
46
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
47
|
+
## What do I do?
|
|
48
|
+
|
|
49
|
+
It almost couldn't be easier. Instead of making a file like this:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// The old way...
|
|
53
|
+
export interface User
|
|
54
|
+
{
|
|
55
|
+
name: string;
|
|
56
|
+
email: string;
|
|
120
57
|
}
|
|
121
58
|
```
|
|
122
59
|
|
|
123
|
-
|
|
60
|
+
Just add a few extra keywords:
|
|
124
61
|
|
|
125
62
|
```typescript
|
|
126
|
-
|
|
63
|
+
// The new way!
|
|
64
|
+
import { Type, Property } from '@dipscope/type-manager';
|
|
127
65
|
|
|
128
|
-
|
|
66
|
+
@Type()
|
|
67
|
+
export class User
|
|
129
68
|
{
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
// Do some action...
|
|
133
|
-
}
|
|
69
|
+
@Property(String) public name: string;
|
|
70
|
+
@Property(String) public email: string;
|
|
134
71
|
}
|
|
135
72
|
```
|
|
136
73
|
|
|
137
|
-
|
|
74
|
+
Then, in the place where you used to get your data:
|
|
138
75
|
|
|
139
|
-
|
|
76
|
+
```typescript
|
|
77
|
+
// The old way...
|
|
78
|
+
const users = await fetchUsers();
|
|
79
|
+
```
|
|
140
80
|
|
|
141
|
-
|
|
81
|
+
...You _parse_ them instead, using TypeManager's `deserialize()` method:
|
|
142
82
|
|
|
143
|
-
|
|
83
|
+
```typescript
|
|
84
|
+
// The new way!
|
|
85
|
+
import { TypeManager } from '@dipscope/type-manager';
|
|
86
|
+
|
|
87
|
+
const users = TypeManager.deserialize(User, await fetchUsers());
|
|
88
|
+
```
|
|
144
89
|
|
|
145
|
-
|
|
90
|
+
And if you need to send them back to the server, you can just go the other direction using `serialize()`:
|
|
146
91
|
|
|
147
92
|
```typescript
|
|
93
|
+
// The new way!
|
|
148
94
|
import { TypeManager } from '@dipscope/type-manager';
|
|
149
95
|
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
for (const user of users)
|
|
153
|
-
{
|
|
154
|
-
if (user.isDeleted())
|
|
155
|
-
{
|
|
156
|
-
// Do some action...
|
|
157
|
-
}
|
|
158
|
-
}
|
|
96
|
+
const rawUserData = TypeManager.serialize(User, user);
|
|
97
|
+
const response = http.put('/users/123', rawUserData)
|
|
159
98
|
```
|
|
160
99
|
|
|
161
|
-
|
|
100
|
+
## Wow! It's that easy?
|
|
101
|
+
|
|
102
|
+
You're darn right it's that easy! Now we can use all the power provided by `JavaScript` class instances without worriyng about the annoying stuff.
|
|
162
103
|
|
|
163
104
|
Furthermore `TypeManager.TS` provides you:
|
|
164
105
|
|
|
165
|
-
* Reflection abilities at runtime
|
|
166
|
-
* Support for generic types
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
*
|
|
106
|
+
* Reflection abilities at runtime.
|
|
107
|
+
* Support for generic types.
|
|
108
|
+
* Support for inheritance and polymorphic types.
|
|
109
|
+
* Handling of circular object references and different ways of serialization.
|
|
110
|
+
* The ability to configure custom serialization of -party classes.
|
|
111
|
+
* A great alternative to similar packages like [class-transformer](https://github.com/typestack/class-transformer), [TypedJSON](https://github.com/JohnWeisz/TypedJSON) and [jackson-js](https://github.com/pichillilorenzo/jackson-js).
|
|
171
112
|
|
|
172
113
|
Want to know more? Let's dive into the details.
|
|
173
114
|
|
|
@@ -179,22 +120,72 @@ Want to know more? Let's dive into the details.
|
|
|
179
120
|
npm i @dipscope/type-manager
|
|
180
121
|
```
|
|
181
122
|
|
|
182
|
-
TypeScript needs to run with the `experimentalDecorators` and `emitDecoratorMetadata` options enabled when using decorator annotations. So make sure you have properly
|
|
123
|
+
TypeScript needs to run with the `experimentalDecorators` and `emitDecoratorMetadata` options enabled when using decorator annotations. So make sure you have them properly enabled in your `tsconfig.json` file.
|
|
183
124
|
|
|
184
|
-
_If you want additional type-safety and reduced syntax you may wish to install [reflect-metadata](https://github.com/rbuckton/reflect-metadata). This step is
|
|
125
|
+
_If you want additional type-safety and reduced syntax you may wish to install [reflect-metadata](https://github.com/rbuckton/reflect-metadata). This step is your choice and fully optional. All you have to do is make sure it's available globally to work -- this can usually be done with `import 'reflect-metadata';` in your main index file._
|
|
185
126
|
|
|
186
|
-
Starting from TypeScript 5 we also support modern decorator syntax. However
|
|
127
|
+
Starting from TypeScript 5 we will also support the modern decorator syntax. However, parameter decorations with this modern syntax are not supported - you will not be able to use the `Inject` decorator provided by the library as well as `reflect-metadata` package if you're using modern syntax. We will add support as soon as it's provided by TypeScript, however. In the meantime, if you need the `Inject` decorator and enabling legacy decorators support is not an option - you can simply use the declarative configuration style.
|
|
187
128
|
|
|
188
|
-
##
|
|
129
|
+
## Give us a star :star:
|
|
189
130
|
|
|
190
|
-
|
|
131
|
+
If you like or are using this project, please give it a star. Thanks!
|
|
191
132
|
|
|
192
|
-
|
|
193
|
-
* Using declarative style;
|
|
133
|
+
# Detailed Documentation
|
|
194
134
|
|
|
195
|
-
|
|
135
|
+
* [Understanding TypeManager](#understanding-typemanager)
|
|
136
|
+
* [Defining decorators](#defining-decorators)
|
|
137
|
+
* [Type decorator](#type-decorator)
|
|
138
|
+
* [Property decorator](#property-decorator)
|
|
139
|
+
* [Inject decorator](#inject-decorator)
|
|
140
|
+
* [Defining decorator options](#defining-decorator-options)
|
|
141
|
+
* [Alias option](#alias-option)
|
|
142
|
+
* [Custom data option](#custom-data-option)
|
|
143
|
+
* [Default value option](#default-value-option)
|
|
144
|
+
* [Deserializable option](#deserializable-option)
|
|
145
|
+
* [Discriminant option](#discriminant-option)
|
|
146
|
+
* [Discriminator option](#discriminator-option)
|
|
147
|
+
* [Factory option](#factory-option)
|
|
148
|
+
* [Injectable option](#injectable-option)
|
|
149
|
+
* [Injector option](#injector-option)
|
|
150
|
+
* [Naming convention option](#naming-convention-option)
|
|
151
|
+
* [Preserve discriminator option](#preserve-discriminator-option)
|
|
152
|
+
* [Preserve null option](#preserve-null-option)
|
|
153
|
+
* [Reference handler option](#reference-handler-option)
|
|
154
|
+
* [Serializable option](#serializable-option)
|
|
155
|
+
* [Serializer option](#serializer-option)
|
|
156
|
+
* [Use default value option](#use-default-value-option)
|
|
157
|
+
* [Use implicit conversion option](#use-implicit-conversion-option)
|
|
158
|
+
* [Parent type arguments option](#parent-type-arguments-option)
|
|
159
|
+
* [Defining configuration manually](#defining-configuration-manually)
|
|
160
|
+
* [Configuring global options](#configuring-global-options)
|
|
161
|
+
* [Configuring options per type](#configuring-options-per-type)
|
|
162
|
+
* [Configuring usage of polymorphic types](#configuring-usage-of-polymorphic-types)
|
|
163
|
+
* [Configuring naming convention](#configuring-naming-convention)
|
|
164
|
+
* [Configuring reference handler](#configuring-reference-handler)
|
|
165
|
+
* [Advanced usage](#advanced-usage)
|
|
166
|
+
* [Defining custom data](#defining-custom-data)
|
|
167
|
+
* [Defining custom serializer](#defining-custom-serializer)
|
|
168
|
+
* [Defining custom injector](#defining-custom-injector)
|
|
169
|
+
* [Defining custom factory](#defining-custom-factory)
|
|
170
|
+
* [Defining custom naming convention](#defining-custom-naming-convention)
|
|
171
|
+
* [Use cases](#use-cases)
|
|
172
|
+
* [Built in serializers](#built-in-serializers)
|
|
173
|
+
* [Circular object references](#circular-object-references)
|
|
174
|
+
* [Dependency injection and immutable types](#dependency-injection-and-immutable-types)
|
|
175
|
+
* [Different case usage in class and JSON](#different-case-usage-in-class-and-json)
|
|
176
|
+
* [Enum types](#enum-types)
|
|
177
|
+
* [Generic types](#generic-types)
|
|
178
|
+
* [Integration with Angular](#integration-with-angular)
|
|
179
|
+
* [Polymorphic types](#polymorphic-types)
|
|
180
|
+
* [Versioning](#versioning)
|
|
181
|
+
* [Contributing](#contributing)
|
|
182
|
+
* [Authors](#authors)
|
|
183
|
+
* [Notes](#notes)
|
|
184
|
+
* [License](#license)
|
|
185
|
+
|
|
186
|
+
## Understanding TypeManager
|
|
196
187
|
|
|
197
|
-
Let's have a look at
|
|
188
|
+
Let's have a look at that simple example of configuration using decorators from above.
|
|
198
189
|
|
|
199
190
|
```typescript
|
|
200
191
|
import { Type, Property } from '@dipscope/type-manager';
|
|
@@ -207,9 +198,9 @@ export class User
|
|
|
207
198
|
}
|
|
208
199
|
```
|
|
209
200
|
|
|
210
|
-
Here we have a `User` class with `Type` and `Property` decorators assigned to it. `Type` decorator declares a type. `Property` decorator describes available properties for that type.
|
|
201
|
+
Here we have a `User` class with `Type` and `Property` decorators assigned to it. `Type` decorator declares a type. `Property` decorator describes available properties for that type.
|
|
211
202
|
|
|
212
|
-
|
|
203
|
+
You can write the same configuration can using our "declarative style".
|
|
213
204
|
|
|
214
205
|
```typescript
|
|
215
206
|
import { TypeManager, TypeMetadata, TypeConfiguration } from '@dipscope/type-manager';
|
|
@@ -237,9 +228,9 @@ export class UserConfiguration implements TypeConfiguration<User>
|
|
|
237
228
|
TypeManager.applyTypeConfiguration(User, new UserConfiguration());
|
|
238
229
|
```
|
|
239
230
|
|
|
240
|
-
As you can see now our `User` class defined without decorators. Instead you
|
|
231
|
+
As you can see now our `User` class has been defined without decorators. Instead, you call the `TypeManager` method and provide `TypeConfiguration` related to the `User` type.
|
|
241
232
|
|
|
242
|
-
No matter what style of configuration you have chosen the next step is to call serialize methods of `TypeManager
|
|
233
|
+
No matter what style of configuration you have chosen, the next step is to call the serialize and deserialize methods of `TypeManager`, providing a type and the data you want to process.
|
|
243
234
|
|
|
244
235
|
```typescript
|
|
245
236
|
import { TypeManager } from '@dipscope/type-manager';
|
|
@@ -250,7 +241,8 @@ const user = TypeManager.deserialize(User, userObject);
|
|
|
250
241
|
user instanceof User; // True.
|
|
251
242
|
```
|
|
252
243
|
|
|
253
|
-
Calling serialize creates a plain object
|
|
244
|
+
Calling `serialize()` creates a plain object, while deserialize creates an instance of the `User` class. During the deserialization process, you can provide any object. It's not necessary that the object was produced by `TypeManager`.
|
|
245
|
+
If the object is an `Array`, you will get array of types in return. Objects are parsed based on general type configuration defined by the developer. It is also possible to stringify and parse JSON.
|
|
254
246
|
|
|
255
247
|
```typescript
|
|
256
248
|
import { TypeManager } from '@dipscope/type-manager';
|
|
@@ -261,25 +253,27 @@ const user = TypeManager.parse(User, userJson);
|
|
|
261
253
|
user instanceof User; // True.
|
|
262
254
|
```
|
|
263
255
|
|
|
264
|
-
|
|
256
|
+
The `stringify()` and `parse()` functions are wrappers over native JSON class functions. In addition, they add serialize and deserialize support under the hood.
|
|
265
257
|
|
|
266
|
-
Static functions are not the only way to work with a `TypeManager`. You can also work
|
|
258
|
+
Static functions are not the only way to work with a `TypeManager`. You can also work in an instance-based manner.
|
|
267
259
|
|
|
268
260
|
```typescript
|
|
269
261
|
import { TypeManager } from '@dipscope/type-manager';
|
|
270
262
|
|
|
271
|
-
const
|
|
263
|
+
const userManager = new TypeManager();
|
|
272
264
|
const userObject = userManager.serialize(User, new User());
|
|
273
265
|
const user = userManager.deserialize(User, userObject);
|
|
274
266
|
|
|
275
267
|
user instanceof User; // True.
|
|
276
268
|
```
|
|
277
269
|
|
|
278
|
-
At first glance, it may
|
|
270
|
+
At first glance, it may seem that there is no difference; however, creating an instance of `TypeManager` preserves a configuration state.
|
|
271
|
+
You can work with different configurations at the same time and have different serialization groups. By default, all decorator-based configurations and static calls are applied
|
|
272
|
+
to the singleton TypeManager instance which is automatically created under the hood.
|
|
279
273
|
|
|
280
274
|
## Defining decorators
|
|
281
275
|
|
|
282
|
-
There are few decorators which
|
|
276
|
+
There are few decorators which control the main flow. These are the `Type`, `Property` and `Inject` decorators. Let's go through each of them.
|
|
283
277
|
|
|
284
278
|
### Type decorator
|
|
285
279
|
|
|
@@ -370,7 +364,7 @@ export class User
|
|
|
370
364
|
|
|
371
365
|
This option configures an alias so `username` property will be used instead of `name` when deserializing from object. There are plenty of configure options, so check `PropertyOptions` definition or section with [decorator options](#defining-decorator-options) below. For example you can make some properties serializable only or define custom property serialization.
|
|
372
366
|
|
|
373
|
-
Now let's have a look at more complex definitions with generic types. This are `Array<
|
|
367
|
+
Now let's have a look at more complex definitions with generic types. This are `Array<TObject>`, `Map<TKey, TValue>` and others. To declare one of this you have to use extra argument available for `Property` decorator. Generic arguments are always passed as array to exactly see them within a source code.
|
|
374
368
|
|
|
375
369
|
If you are using [reflect-metadata](https://github.com/rbuckton/reflect-metadata) then provide generics as a first argument so configure options will become the second.
|
|
376
370
|
|
|
@@ -691,14 +685,14 @@ const rankKey = new CustomKey<number>('rank');
|
|
|
691
685
|
const orderKey = new CustomKey<number>('order');
|
|
692
686
|
|
|
693
687
|
@Type({
|
|
694
|
-
|
|
688
|
+
customValueMap: new Map([
|
|
695
689
|
[rankKey, 1],
|
|
696
690
|
[orderKey, 2]
|
|
697
|
-
]
|
|
691
|
+
])
|
|
698
692
|
})
|
|
699
693
|
export class User
|
|
700
694
|
{
|
|
701
|
-
@Property(String, {
|
|
695
|
+
@Property(String, { customValueMap: new Map([[orderKey, 3]]) }) public name: string;
|
|
702
696
|
}
|
|
703
697
|
```
|
|
704
698
|
|
|
@@ -1002,7 +996,7 @@ export class User
|
|
|
1002
996
|
|
|
1003
997
|
With this any value which can be converted to `String` will be converted properly. Such behaviour works for other built in serializers and supported for custom ones. By default implicit conversion is turned off. You can enable it using `useImplicitConversion` option per type and property or enable globally using `TypeManager` configure method.
|
|
1004
998
|
|
|
1005
|
-
### Parent type
|
|
999
|
+
### Parent type arguments option
|
|
1006
1000
|
|
|
1007
1001
|
When type implements interfaces which represent other classes this information got lost during `TypeScript` compilation process and there is no way to extract it. This option can be used to provide such information for a `TypeManager` to be used during serialization and deserialization.
|
|
1008
1002
|
|
|
@@ -1022,7 +1016,7 @@ export abstract class UserStatus extends Entity
|
|
|
1022
1016
|
}
|
|
1023
1017
|
|
|
1024
1018
|
@Type({
|
|
1025
|
-
|
|
1019
|
+
parentTypeArguments: [UserStatus]
|
|
1026
1020
|
})
|
|
1027
1021
|
export class ActiveUserStatus extends Entity implements UserStatus
|
|
1028
1022
|
{
|
|
@@ -1559,7 +1553,7 @@ Our goal is to cover as much use cases as possible without making you to write a
|
|
|
1559
1553
|
|
|
1560
1554
|
### Defining custom data
|
|
1561
1555
|
|
|
1562
|
-
You can attach you custom metadata to our decorators using `
|
|
1556
|
+
You can attach you custom metadata to our decorators using `customValueMap` option available on `Type` and `Property`.
|
|
1563
1557
|
|
|
1564
1558
|
```typescript
|
|
1565
1559
|
import { Type, Property, CustomKey } from '@dipscope/type-manager';
|
|
@@ -1568,13 +1562,13 @@ const rankKey = new CustomKey<number>('rank');
|
|
|
1568
1562
|
const priorityKey = new CustomKey<number>('priority');
|
|
1569
1563
|
|
|
1570
1564
|
@Type({
|
|
1571
|
-
|
|
1565
|
+
customValueMap: new Map([
|
|
1572
1566
|
[rankKey, 1]
|
|
1573
|
-
]
|
|
1567
|
+
])
|
|
1574
1568
|
})
|
|
1575
1569
|
class User
|
|
1576
1570
|
{
|
|
1577
|
-
@Property(String, {
|
|
1571
|
+
@Property(String, { customValueMap: new Map([[priorityKey, 10]]) }) public name: string;
|
|
1578
1572
|
}
|
|
1579
1573
|
```
|
|
1580
1574
|
|
|
@@ -1584,15 +1578,13 @@ This allows you to get it later in serializers, factories, injectors or your cod
|
|
|
1584
1578
|
import { TypeManager } from '@dipscope/type-manager';
|
|
1585
1579
|
|
|
1586
1580
|
const userMetadata = TypeManager.extractTypeMetadata(User);
|
|
1587
|
-
const
|
|
1588
|
-
const rank = customContext.get(rankKey);
|
|
1581
|
+
const rank = userMetadata.extractCustomValue(rankKey);
|
|
1589
1582
|
|
|
1590
1583
|
// Do something with type custom data...
|
|
1591
1584
|
|
|
1592
1585
|
for (const propertyMetadata of userMetadata.propertyMetadataMap.values())
|
|
1593
1586
|
{
|
|
1594
|
-
const
|
|
1595
|
-
const priority = propertyCustomContext.get(priorityKey);
|
|
1587
|
+
const priority = propertyMetadata.extractCustomValue(priorityKey);
|
|
1596
1588
|
|
|
1597
1589
|
// Do something with property custom data...
|
|
1598
1590
|
}
|
|
@@ -1660,7 +1652,7 @@ export class DateTimeSerializer implements Serializer<DateTime>
|
|
|
1660
1652
|
}
|
|
1661
1653
|
```
|
|
1662
1654
|
|
|
1663
|
-
This example follows internal conventions and gives you a picture of how real serializer may look like. `TypeManager` does not perform any checks and just passes values directly to serializer. Thats why input values can be undefined, null or others depending from what is stored inside certain property. `TypeLike` is an internal type to declare this behaviour.
|
|
1655
|
+
This example follows internal conventions and gives you a picture of how real serializer may look like. `TypeManager` does not perform any checks and just passes values directly to serializer. Thats why input values can be undefined, null or others depending from what is stored inside certain property. `TypeLike` is an internal type to declare this behaviour.
|
|
1664
1656
|
|
|
1665
1657
|
Serializer implementation is fully responsible for return result. You can get default values, custom data and other options specified in configuration from current serializer context and react accordingly. For example you can check if implicit conversion is enabled and convert any value to the target one.
|
|
1666
1658
|
|
|
@@ -1718,7 +1710,7 @@ export class CustomInjector implements Injector
|
|
|
1718
1710
|
return;
|
|
1719
1711
|
}
|
|
1720
1712
|
|
|
1721
|
-
public get<
|
|
1713
|
+
public get<TObject>(typeMetadata: TypeMetadata<TObject>): TObject | undefined
|
|
1722
1714
|
{
|
|
1723
1715
|
return this.angularInjector.get(typeMetadata.typeFn);
|
|
1724
1716
|
}
|
|
@@ -1749,17 +1741,16 @@ import { TypeContext, Injector, TypeFactory } from '@dipscope/type-manager';
|
|
|
1749
1741
|
|
|
1750
1742
|
export class CustomTypeFactory extends TypeFactory
|
|
1751
1743
|
{
|
|
1752
|
-
public build<
|
|
1744
|
+
public build<TObject>(typeContext: TypeContext<TObject>, injector: Injector): TObject
|
|
1753
1745
|
{
|
|
1754
1746
|
// Build any type.
|
|
1755
1747
|
const type = super.build(typeContext, injector) as any;
|
|
1756
1748
|
|
|
1757
1749
|
// Resolve custom data.
|
|
1758
1750
|
const typeMetadata = typeContext.typeMetadata;
|
|
1759
|
-
const customContext = typeMetadata.customContext;
|
|
1760
1751
|
|
|
1761
1752
|
// Get rank based on key.
|
|
1762
|
-
const rank =
|
|
1753
|
+
const rank = typeMetadata.extractCustomValue(rankKey);
|
|
1763
1754
|
|
|
1764
1755
|
// Process custom data...
|
|
1765
1756
|
|
|
@@ -1774,7 +1765,7 @@ When you are finished with definitions there are two possible ways to register a
|
|
|
1774
1765
|
import { Type, Factory } from '@dipscope/type-manager';
|
|
1775
1766
|
|
|
1776
1767
|
@Type({
|
|
1777
|
-
|
|
1768
|
+
customValueMap: new Map([[rankKey, 1]]),
|
|
1778
1769
|
factory: new CustomTypeFactory()
|
|
1779
1770
|
})
|
|
1780
1771
|
export class User
|
|
@@ -1790,7 +1781,7 @@ import { TypeManager } from '@dipscope/type-manager';
|
|
|
1790
1781
|
|
|
1791
1782
|
// Overriding only for user type.
|
|
1792
1783
|
TypeManager.applyTypeOptions(User, {
|
|
1793
|
-
|
|
1784
|
+
customValueMap: new Map([[rankKey, 1]]),
|
|
1794
1785
|
factory: new CustomTypeFactory()
|
|
1795
1786
|
});
|
|
1796
1787
|
|
|
@@ -1851,7 +1842,7 @@ This section describes certain use cases to separate them from the main document
|
|
|
1851
1842
|
|
|
1852
1843
|
### Built in serializers
|
|
1853
1844
|
|
|
1854
|
-
Here is a list of types with built in serializers.
|
|
1845
|
+
Here is a list of types with built in serializers.
|
|
1855
1846
|
|
|
1856
1847
|
* Any;
|
|
1857
1848
|
* Array;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-value-resolver.js","sourceRoot":"","sources":["../../../src/constants/default-value-resolver.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,sBAAsB,GAAyB,GAAG,EAAE,CAAC,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-array.js","sourceRoot":"","sources":["../../../src/constants/empty-array.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,WAAW,GAAuB,IAAI,KAAK,EAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"empty-map.js","sourceRoot":"","sources":["../../../src/constants/empty-map.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,SAAS,GAA0B,IAAI,GAAG,EAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"null-value-resolver.js","sourceRoot":"","sources":["../../../src/constants/null-value-resolver.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,mBAAmB,GAAsB,GAAG,EAAE,CAAC,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-key.js","sourceRoot":"","sources":["../../src/custom-key.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"custom-key.js","sourceRoot":"","sources":["../../src/custom-key.ts"],"names":[],"mappings":"AASA,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"}
|