@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
|
@@ -1,339 +1,620 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
var __values = (this && this.__values) || function(o) {
|
|
17
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
18
|
+
if (m) return m.call(o);
|
|
19
|
+
if (o && typeof o.length === "number") return {
|
|
20
|
+
next: function () {
|
|
21
|
+
if (o && i >= o.length) o = void 0;
|
|
22
|
+
return { value: o && o[i++], done: !o };
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
26
|
+
};
|
|
27
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
28
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
29
|
+
if (!m) return o;
|
|
30
|
+
var i = m.call(o), r, ar = [], e;
|
|
31
|
+
try {
|
|
32
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
33
|
+
}
|
|
34
|
+
catch (error) { e = { error: error }; }
|
|
35
|
+
finally {
|
|
36
|
+
try {
|
|
37
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
38
|
+
}
|
|
39
|
+
finally { if (e) throw e.error; }
|
|
40
|
+
}
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
import { DEFAULT_VALUE_RESOLVER } from './constants/default-value-resolver';
|
|
44
|
+
import { EMPTY_ARRAY } from './constants/empty-array';
|
|
45
|
+
import { EMPTY_MAP } from './constants/empty-map';
|
|
46
|
+
import { NULL_VALUE_RESOLVER } from './constants/null-value-resolver';
|
|
4
47
|
import { getOwnReflectMetadata } from './functions/get-own-reflect-metadata';
|
|
5
48
|
import { nameOf } from './functions/name-of';
|
|
6
49
|
import { InjectMetadata } from './inject-metadata';
|
|
7
50
|
import { Metadata } from './metadata';
|
|
8
51
|
import { PropertyMetadata } from './property-metadata';
|
|
9
|
-
import {
|
|
52
|
+
import { TYPE_EXTENSION_METADATA_CTOR_SET_KEY } from './type-extension-metadata-ctor-set-key';
|
|
53
|
+
import { ResolvedTypeState } from './type-states/resolved-type-state';
|
|
54
|
+
import { UnresolvedTypeState } from './type-states/unresolved-type-state';
|
|
10
55
|
var TypeMetadata = (function (_super) {
|
|
11
56
|
__extends(TypeMetadata, _super);
|
|
12
|
-
function TypeMetadata(typeManager, typeFn, typeOptions,
|
|
13
|
-
var _this = _super.call(this, typeManager) || this;
|
|
14
|
-
_this.childrenTypeMetadataMap = new Map();
|
|
15
|
-
_this.discriminantMap = new Map();
|
|
16
|
-
_this.propertyMetadataMap = new Map();
|
|
17
|
-
_this.injectMetadataMap = new Map();
|
|
57
|
+
function TypeMetadata(typeManager, typeFnMap, typeMetadataSet, typeFn, typeOptions, parentTypeMetadata) {
|
|
58
|
+
var _this = _super.call(this, typeManager, typeFnMap) || this;
|
|
18
59
|
_this.typeName = nameOf(typeFn);
|
|
19
60
|
_this.typeFn = typeFn;
|
|
61
|
+
_this.parentTypeMetadata = parentTypeMetadata;
|
|
20
62
|
_this.typeOptionsBase = typeManager.typeOptionsBase;
|
|
21
63
|
_this.typeOptions = _this.constructTypeOptions(typeOptions);
|
|
22
|
-
_this.
|
|
23
|
-
_this.
|
|
24
|
-
_this.
|
|
25
|
-
_this.
|
|
64
|
+
_this.typeMetadataSet = typeMetadataSet;
|
|
65
|
+
_this.currentTypeFnMap = typeFnMap;
|
|
66
|
+
_this.currentChildTypeMetadataMap = new Map();
|
|
67
|
+
_this.currentPropertyMetadataMap = new Map();
|
|
68
|
+
_this.currentInjectMetadataMap = new Map();
|
|
69
|
+
_this.currentTypeState = new UnresolvedTypeState(_this);
|
|
70
|
+
_this.extendParentTypeMetadata();
|
|
26
71
|
_this.configure(typeOptions);
|
|
27
72
|
return _this;
|
|
28
73
|
}
|
|
29
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
74
|
+
Object.defineProperty(TypeMetadata.prototype, "typeState", {
|
|
30
75
|
get: function () {
|
|
31
|
-
return
|
|
76
|
+
return this.currentTypeState;
|
|
32
77
|
},
|
|
33
78
|
enumerable: false,
|
|
34
79
|
configurable: true
|
|
35
80
|
});
|
|
36
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
81
|
+
Object.defineProperty(TypeMetadata.prototype, "injectMetadataMap", {
|
|
37
82
|
get: function () {
|
|
38
|
-
return this.
|
|
83
|
+
return this.currentTypeState.injectMetadataMap;
|
|
39
84
|
},
|
|
40
85
|
enumerable: false,
|
|
41
86
|
configurable: true
|
|
42
87
|
});
|
|
43
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
88
|
+
Object.defineProperty(TypeMetadata.prototype, "propertyMetadataMap", {
|
|
44
89
|
get: function () {
|
|
45
|
-
return this.
|
|
90
|
+
return this.currentTypeState.propertyMetadataMap;
|
|
46
91
|
},
|
|
47
92
|
enumerable: false,
|
|
48
93
|
configurable: true
|
|
49
94
|
});
|
|
50
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
95
|
+
Object.defineProperty(TypeMetadata.prototype, "alias", {
|
|
51
96
|
get: function () {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
97
|
+
return this.currentTypeState.alias;
|
|
98
|
+
},
|
|
99
|
+
enumerable: false,
|
|
100
|
+
configurable: true
|
|
101
|
+
});
|
|
102
|
+
Object.defineProperty(TypeMetadata.prototype, "customValueMap", {
|
|
103
|
+
get: function () {
|
|
104
|
+
return this.currentTypeState.customValueMap;
|
|
59
105
|
},
|
|
60
106
|
enumerable: false,
|
|
61
107
|
configurable: true
|
|
62
108
|
});
|
|
63
109
|
Object.defineProperty(TypeMetadata.prototype, "serializedNullValue", {
|
|
64
110
|
get: function () {
|
|
65
|
-
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
return this.serializedDefaultValue;
|
|
111
|
+
return this.currentTypeState.serializedNullValueResolver();
|
|
69
112
|
},
|
|
70
113
|
enumerable: false,
|
|
71
114
|
configurable: true
|
|
72
115
|
});
|
|
73
116
|
Object.defineProperty(TypeMetadata.prototype, "serializedDefaultValue", {
|
|
74
117
|
get: function () {
|
|
75
|
-
|
|
76
|
-
if (this.useDefaultValue) {
|
|
77
|
-
var serializedDefaultValue = (_a = this.typeOptions.defaultValue) !== null && _a !== void 0 ? _a : this.typeOptions.serializedDefaultValue;
|
|
78
|
-
var defaultValue = isFunction(serializedDefaultValue)
|
|
79
|
-
? serializedDefaultValue()
|
|
80
|
-
: serializedDefaultValue;
|
|
81
|
-
return defaultValue;
|
|
82
|
-
}
|
|
83
|
-
return undefined;
|
|
118
|
+
return this.currentTypeState.serializedDefaultValueResolver();
|
|
84
119
|
},
|
|
85
120
|
enumerable: false,
|
|
86
121
|
configurable: true
|
|
87
122
|
});
|
|
88
123
|
Object.defineProperty(TypeMetadata.prototype, "deserializedNullValue", {
|
|
89
124
|
get: function () {
|
|
90
|
-
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
return this.deserializedDefaultValue;
|
|
125
|
+
return this.currentTypeState.deserializedNullValueResolver();
|
|
94
126
|
},
|
|
95
127
|
enumerable: false,
|
|
96
128
|
configurable: true
|
|
97
129
|
});
|
|
98
130
|
Object.defineProperty(TypeMetadata.prototype, "deserializedDefaultValue", {
|
|
99
131
|
get: function () {
|
|
100
|
-
|
|
101
|
-
if (this.useDefaultValue) {
|
|
102
|
-
var deserializedDefaultValue = (_a = this.typeOptions.defaultValue) !== null && _a !== void 0 ? _a : this.typeOptions.deserializedDefaultValue;
|
|
103
|
-
var defaultValue = isFunction(deserializedDefaultValue)
|
|
104
|
-
? deserializedDefaultValue()
|
|
105
|
-
: deserializedDefaultValue;
|
|
106
|
-
return defaultValue;
|
|
107
|
-
}
|
|
108
|
-
return undefined;
|
|
132
|
+
return this.currentTypeState.deserializedDefaultValueResolver();
|
|
109
133
|
},
|
|
110
134
|
enumerable: false,
|
|
111
135
|
configurable: true
|
|
112
136
|
});
|
|
113
137
|
Object.defineProperty(TypeMetadata.prototype, "discriminant", {
|
|
114
138
|
get: function () {
|
|
115
|
-
|
|
116
|
-
return (_a = this.typeOptions.discriminant) !== null && _a !== void 0 ? _a : this.typeName;
|
|
139
|
+
return this.currentTypeState.discriminant;
|
|
117
140
|
},
|
|
118
141
|
enumerable: false,
|
|
119
142
|
configurable: true
|
|
120
143
|
});
|
|
121
144
|
Object.defineProperty(TypeMetadata.prototype, "discriminator", {
|
|
122
145
|
get: function () {
|
|
123
|
-
|
|
124
|
-
return (_a = this.typeOptions.discriminator) !== null && _a !== void 0 ? _a : this.typeOptionsBase.discriminator;
|
|
146
|
+
return this.currentTypeState.discriminator;
|
|
125
147
|
},
|
|
126
148
|
enumerable: false,
|
|
127
149
|
configurable: true
|
|
128
150
|
});
|
|
129
151
|
Object.defineProperty(TypeMetadata.prototype, "factory", {
|
|
130
152
|
get: function () {
|
|
131
|
-
|
|
132
|
-
return (_a = this.typeOptions.factory) !== null && _a !== void 0 ? _a : this.typeOptionsBase.factory;
|
|
153
|
+
return this.currentTypeState.factory;
|
|
133
154
|
},
|
|
134
155
|
enumerable: false,
|
|
135
156
|
configurable: true
|
|
136
157
|
});
|
|
137
158
|
Object.defineProperty(TypeMetadata.prototype, "injectable", {
|
|
138
159
|
get: function () {
|
|
139
|
-
return this.
|
|
160
|
+
return this.currentTypeState.injectable;
|
|
140
161
|
},
|
|
141
162
|
enumerable: false,
|
|
142
163
|
configurable: true
|
|
143
164
|
});
|
|
144
165
|
Object.defineProperty(TypeMetadata.prototype, "injector", {
|
|
145
166
|
get: function () {
|
|
146
|
-
|
|
147
|
-
return (_a = this.typeOptions.injector) !== null && _a !== void 0 ? _a : this.typeOptionsBase.injector;
|
|
167
|
+
return this.currentTypeState.injector;
|
|
148
168
|
},
|
|
149
169
|
enumerable: false,
|
|
150
170
|
configurable: true
|
|
151
171
|
});
|
|
152
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
172
|
+
Object.defineProperty(TypeMetadata.prototype, "logger", {
|
|
153
173
|
get: function () {
|
|
154
|
-
|
|
155
|
-
return (_a = this.typeOptions.log) !== null && _a !== void 0 ? _a : this.typeOptionsBase.log;
|
|
174
|
+
return this.currentTypeState.logger;
|
|
156
175
|
},
|
|
157
176
|
enumerable: false,
|
|
158
177
|
configurable: true
|
|
159
178
|
});
|
|
160
179
|
Object.defineProperty(TypeMetadata.prototype, "namingConvention", {
|
|
161
180
|
get: function () {
|
|
162
|
-
|
|
163
|
-
return (_a = this.typeOptions.namingConvention) !== null && _a !== void 0 ? _a : this.typeOptionsBase.namingConvention;
|
|
181
|
+
return this.currentTypeState.namingConvention;
|
|
164
182
|
},
|
|
165
183
|
enumerable: false,
|
|
166
184
|
configurable: true
|
|
167
185
|
});
|
|
168
186
|
Object.defineProperty(TypeMetadata.prototype, "polymorphic", {
|
|
169
187
|
get: function () {
|
|
170
|
-
return this.
|
|
188
|
+
return this.currentTypeState.polymorphic;
|
|
171
189
|
},
|
|
172
190
|
enumerable: false,
|
|
173
191
|
configurable: true
|
|
174
192
|
});
|
|
175
193
|
Object.defineProperty(TypeMetadata.prototype, "preserveDiscriminator", {
|
|
176
194
|
get: function () {
|
|
177
|
-
|
|
178
|
-
return (_a = this.typeOptions.preserveDiscriminator) !== null && _a !== void 0 ? _a : this.typeOptionsBase.preserveDiscriminator;
|
|
195
|
+
return this.currentTypeState.preserveDiscriminator;
|
|
179
196
|
},
|
|
180
197
|
enumerable: false,
|
|
181
198
|
configurable: true
|
|
182
199
|
});
|
|
183
200
|
Object.defineProperty(TypeMetadata.prototype, "referenceHandler", {
|
|
184
201
|
get: function () {
|
|
185
|
-
|
|
186
|
-
return (_a = this.typeOptions.referenceHandler) !== null && _a !== void 0 ? _a : this.typeOptionsBase.referenceHandler;
|
|
202
|
+
return this.currentTypeState.referenceHandler;
|
|
187
203
|
},
|
|
188
204
|
enumerable: false,
|
|
189
205
|
configurable: true
|
|
190
206
|
});
|
|
191
207
|
Object.defineProperty(TypeMetadata.prototype, "serializer", {
|
|
192
208
|
get: function () {
|
|
193
|
-
|
|
194
|
-
return (_a = this.typeOptions.serializer) !== null && _a !== void 0 ? _a : this.typeOptionsBase.serializer;
|
|
209
|
+
return this.currentTypeState.serializer;
|
|
195
210
|
},
|
|
196
211
|
enumerable: false,
|
|
197
212
|
configurable: true
|
|
198
213
|
});
|
|
199
214
|
Object.defineProperty(TypeMetadata.prototype, "preserveNull", {
|
|
200
215
|
get: function () {
|
|
201
|
-
|
|
202
|
-
return (_a = this.typeOptions.preserveNull) !== null && _a !== void 0 ? _a : this.typeOptionsBase.preserveNull;
|
|
216
|
+
return this.currentTypeState.preserveNull;
|
|
203
217
|
},
|
|
204
218
|
enumerable: false,
|
|
205
219
|
configurable: true
|
|
206
220
|
});
|
|
207
221
|
Object.defineProperty(TypeMetadata.prototype, "useDefaultValue", {
|
|
208
222
|
get: function () {
|
|
209
|
-
|
|
210
|
-
return (_a = this.typeOptions.useDefaultValue) !== null && _a !== void 0 ? _a : this.typeOptionsBase.useDefaultValue;
|
|
223
|
+
return this.currentTypeState.useDefaultValue;
|
|
211
224
|
},
|
|
212
225
|
enumerable: false,
|
|
213
226
|
configurable: true
|
|
214
227
|
});
|
|
215
228
|
Object.defineProperty(TypeMetadata.prototype, "useImplicitConversion", {
|
|
216
229
|
get: function () {
|
|
217
|
-
|
|
218
|
-
return (_a = this.typeOptions.useImplicitConversion) !== null && _a !== void 0 ? _a : this.typeOptionsBase.useImplicitConversion;
|
|
230
|
+
return this.currentTypeState.useImplicitConversion;
|
|
219
231
|
},
|
|
220
232
|
enumerable: false,
|
|
221
233
|
configurable: true
|
|
222
234
|
});
|
|
223
235
|
Object.defineProperty(TypeMetadata.prototype, "propertySorter", {
|
|
224
236
|
get: function () {
|
|
225
|
-
|
|
226
|
-
return (_a = this.typeOptions.propertySorter) !== null && _a !== void 0 ? _a : this.typeOptionsBase.propertySorter;
|
|
237
|
+
return this.currentTypeState.propertySorter;
|
|
227
238
|
},
|
|
228
239
|
enumerable: false,
|
|
229
240
|
configurable: true
|
|
230
241
|
});
|
|
231
242
|
Object.defineProperty(TypeMetadata.prototype, "sortedPropertyMetadatas", {
|
|
232
243
|
get: function () {
|
|
233
|
-
|
|
234
|
-
var propertyMetadatas = this.propertyMetadataMap.values();
|
|
235
|
-
if (isNil(propertySorter)) {
|
|
236
|
-
return propertyMetadatas;
|
|
237
|
-
}
|
|
238
|
-
var sortedPropertyMetadatas = Array.from(propertyMetadatas).sort(propertySorter.sort);
|
|
239
|
-
return sortedPropertyMetadatas[Symbol.iterator]();
|
|
244
|
+
return this.currentTypeState.sortedPropertyMetadatas;
|
|
240
245
|
},
|
|
241
246
|
enumerable: false,
|
|
242
247
|
configurable: true
|
|
243
248
|
});
|
|
244
249
|
Object.defineProperty(TypeMetadata.prototype, "injectSorter", {
|
|
245
250
|
get: function () {
|
|
246
|
-
|
|
247
|
-
return (_a = this.typeOptions.injectSorter) !== null && _a !== void 0 ? _a : this.typeOptionsBase.injectSorter;
|
|
251
|
+
return this.currentTypeState.injectSorter;
|
|
248
252
|
},
|
|
249
253
|
enumerable: false,
|
|
250
254
|
configurable: true
|
|
251
255
|
});
|
|
252
256
|
Object.defineProperty(TypeMetadata.prototype, "sortedInjectMetadatas", {
|
|
253
257
|
get: function () {
|
|
254
|
-
|
|
255
|
-
var injectMetadatas = this.injectMetadataMap.values();
|
|
256
|
-
if (isNil(injectSorter)) {
|
|
257
|
-
return injectMetadatas;
|
|
258
|
-
}
|
|
259
|
-
var sortedInjectMetadatas = Array.from(injectMetadatas).sort(injectSorter.sort);
|
|
260
|
-
return sortedInjectMetadatas[Symbol.iterator]();
|
|
258
|
+
return this.currentTypeState.sortedInjectMetadatas;
|
|
261
259
|
},
|
|
262
260
|
enumerable: false,
|
|
263
261
|
configurable: true
|
|
264
262
|
});
|
|
265
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
263
|
+
Object.defineProperty(TypeMetadata.prototype, "parentTypeArguments", {
|
|
266
264
|
get: function () {
|
|
267
|
-
|
|
268
|
-
if (isNil(propertyOptionsMap)) {
|
|
269
|
-
propertyOptionsMap = new Map();
|
|
270
|
-
this.typeOptions.propertyOptionsMap = propertyOptionsMap;
|
|
271
|
-
}
|
|
272
|
-
return propertyOptionsMap;
|
|
265
|
+
return this.currentTypeState.parentTypeArguments;
|
|
273
266
|
},
|
|
274
267
|
enumerable: false,
|
|
275
268
|
configurable: true
|
|
276
269
|
});
|
|
277
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
270
|
+
Object.defineProperty(TypeMetadata.prototype, "propertyOptionsMap", {
|
|
278
271
|
get: function () {
|
|
279
|
-
|
|
280
|
-
if (isNil(injectOptionsMap)) {
|
|
281
|
-
injectOptionsMap = new Map();
|
|
282
|
-
this.typeOptions.injectOptionsMap = injectOptionsMap;
|
|
283
|
-
}
|
|
284
|
-
return injectOptionsMap;
|
|
272
|
+
return this.currentTypeState.propertyOptionsMap;
|
|
285
273
|
},
|
|
286
274
|
enumerable: false,
|
|
287
275
|
configurable: true
|
|
288
276
|
});
|
|
289
|
-
Object.defineProperty(TypeMetadata.prototype, "
|
|
277
|
+
Object.defineProperty(TypeMetadata.prototype, "injectOptionsMap", {
|
|
290
278
|
get: function () {
|
|
291
|
-
return this.
|
|
279
|
+
return this.currentTypeState.injectOptionsMap;
|
|
292
280
|
},
|
|
293
281
|
enumerable: false,
|
|
294
282
|
configurable: true
|
|
295
283
|
});
|
|
296
284
|
TypeMetadata.prototype.constructTypeOptions = function (typeOptions) {
|
|
285
|
+
if (typeOptions.customValueMap === undefined) {
|
|
286
|
+
typeOptions.customValueMap = new Map();
|
|
287
|
+
}
|
|
288
|
+
if (typeOptions.propertyOptionsMap === undefined) {
|
|
289
|
+
typeOptions.propertyOptionsMap = new Map();
|
|
290
|
+
}
|
|
291
|
+
if (typeOptions.injectOptionsMap === undefined) {
|
|
292
|
+
typeOptions.injectOptionsMap = new Map();
|
|
293
|
+
}
|
|
297
294
|
return typeOptions;
|
|
298
295
|
};
|
|
299
|
-
TypeMetadata.prototype.
|
|
300
|
-
var
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
296
|
+
TypeMetadata.prototype.configureTypeExtensionMetadata = function (typeExtensionMetadataCtor, typeExtensionOptions) {
|
|
297
|
+
var typeExtensionMetadataCtorSet = this.extractTypeExtensionMetadataCtorSet();
|
|
298
|
+
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
299
|
+
typeExtensionMetadataCtorSet.add(typeExtensionMetadataCtor);
|
|
300
|
+
}
|
|
301
|
+
var initialTypeExtensionOptions = typeExtensionOptions !== null && typeExtensionOptions !== void 0 ? typeExtensionOptions : {};
|
|
302
|
+
var typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
303
|
+
return typeExtensionMetadata;
|
|
304
304
|
};
|
|
305
|
-
TypeMetadata.prototype.
|
|
306
|
-
var
|
|
307
|
-
if (
|
|
308
|
-
return
|
|
305
|
+
TypeMetadata.prototype.extractTypeExtensionMetadata = function (typeExtensionMetadataCtor) {
|
|
306
|
+
var typeExtensionMetadataCtorSet = this.extractTypeExtensionMetadataCtorSet();
|
|
307
|
+
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
308
|
+
return undefined;
|
|
309
309
|
}
|
|
310
|
+
var initialTypeExtensionOptions = {};
|
|
311
|
+
var typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
312
|
+
return typeExtensionMetadata;
|
|
313
|
+
};
|
|
314
|
+
TypeMetadata.prototype.extractTypeExtensionMetadataCtorSet = function () {
|
|
315
|
+
var customValueMap = this.typeOptions.customValueMap;
|
|
316
|
+
if (customValueMap === undefined) {
|
|
317
|
+
customValueMap = new Map();
|
|
318
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
319
|
+
}
|
|
320
|
+
var typeExtensionMetadataCtorSet = customValueMap.get(TYPE_EXTENSION_METADATA_CTOR_SET_KEY);
|
|
321
|
+
if (typeExtensionMetadataCtorSet === undefined) {
|
|
322
|
+
typeExtensionMetadataCtorSet = new Set();
|
|
323
|
+
customValueMap.set(TYPE_EXTENSION_METADATA_CTOR_SET_KEY, typeExtensionMetadataCtorSet);
|
|
324
|
+
}
|
|
325
|
+
return typeExtensionMetadataCtorSet;
|
|
326
|
+
};
|
|
327
|
+
TypeMetadata.prototype.resolveTypeState = function () {
|
|
328
|
+
var typeOptionsBase = this.typeOptionsBase;
|
|
329
|
+
var typeOptions = this.typeOptions;
|
|
330
|
+
var typeName = this.typeName;
|
|
331
|
+
var alias = typeOptions.alias;
|
|
332
|
+
var customValueMap = this.resolveCustomValueMap();
|
|
333
|
+
var preserveNull = typeOptions.preserveNull === undefined
|
|
334
|
+
? typeOptionsBase.preserveNull
|
|
335
|
+
: typeOptions.preserveNull;
|
|
336
|
+
var useDefaultValue = typeOptions.useDefaultValue === undefined
|
|
337
|
+
? typeOptionsBase.useDefaultValue
|
|
338
|
+
: typeOptions.useDefaultValue;
|
|
339
|
+
var useImplicitConversion = typeOptions.useImplicitConversion === undefined
|
|
340
|
+
? typeOptionsBase.useImplicitConversion
|
|
341
|
+
: typeOptions.useImplicitConversion;
|
|
342
|
+
var serializedDefaultValue = typeOptions.defaultValue === undefined
|
|
343
|
+
? typeOptions.serializedDefaultValue
|
|
344
|
+
: typeOptions.defaultValue;
|
|
345
|
+
var serializedDefaultValueResolver = useDefaultValue
|
|
346
|
+
? (typeof serializedDefaultValue === 'function' ? serializedDefaultValue : function () { return serializedDefaultValue; })
|
|
347
|
+
: DEFAULT_VALUE_RESOLVER;
|
|
348
|
+
var serializedNullValueResolver = preserveNull
|
|
349
|
+
? NULL_VALUE_RESOLVER
|
|
350
|
+
: serializedDefaultValueResolver;
|
|
351
|
+
var deserializedDefaultValue = typeOptions.defaultValue === undefined
|
|
352
|
+
? typeOptions.deserializedDefaultValue
|
|
353
|
+
: typeOptions.defaultValue;
|
|
354
|
+
var deserializedDefaultValueResolver = useDefaultValue
|
|
355
|
+
? (typeof deserializedDefaultValue === 'function' ? deserializedDefaultValue : function () { return deserializedDefaultValue; })
|
|
356
|
+
: DEFAULT_VALUE_RESOLVER;
|
|
357
|
+
var deserializedNullValueResolver = preserveNull
|
|
358
|
+
? NULL_VALUE_RESOLVER
|
|
359
|
+
: deserializedDefaultValueResolver;
|
|
360
|
+
var discriminant = typeOptions.discriminant === undefined
|
|
361
|
+
? typeName
|
|
362
|
+
: typeOptions.discriminant;
|
|
363
|
+
var discriminator = typeOptions.discriminator === undefined
|
|
364
|
+
? typeOptionsBase.discriminator
|
|
365
|
+
: typeOptions.discriminator;
|
|
366
|
+
var factory = typeOptions.factory === undefined
|
|
367
|
+
? typeOptionsBase.factory
|
|
368
|
+
: typeOptions.factory;
|
|
369
|
+
var injectable = typeOptions.injectable === true;
|
|
370
|
+
var injector = typeOptions.injector === undefined
|
|
371
|
+
? typeOptionsBase.injector
|
|
372
|
+
: typeOptions.injector;
|
|
373
|
+
var logger = typeOptions.logger === undefined
|
|
374
|
+
? typeOptionsBase.logger
|
|
375
|
+
: typeOptions.logger;
|
|
376
|
+
var namingConvention = typeOptions.namingConvention === undefined
|
|
377
|
+
? typeOptionsBase.namingConvention
|
|
378
|
+
: typeOptions.namingConvention;
|
|
379
|
+
var parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
380
|
+
? EMPTY_ARRAY
|
|
381
|
+
: typeOptions.parentTypeArguments;
|
|
382
|
+
var ownParentTypeMetadatas = this.resolveOwnParentTypeMetadatas(parentTypeArguments);
|
|
383
|
+
var ownChildTypeMetadatas = this.resolveOwnChildTypeMetadatas();
|
|
384
|
+
var parentTypeMetadataSet = this.resolveParentTypeMetadataSet(this);
|
|
385
|
+
var parentTypeMetadatas = Array.from(parentTypeMetadataSet);
|
|
386
|
+
var childTypeMetadataSet = this.resolveChildTypeMetadataSet(this);
|
|
387
|
+
var childTypeMetadatas = Array.from(childTypeMetadataSet);
|
|
388
|
+
var typeMetadataMap = new Map();
|
|
389
|
+
var polymorphic = childTypeMetadatas.length > 1;
|
|
390
|
+
for (var i = 0; i < childTypeMetadatas.length; i++) {
|
|
391
|
+
var childTypeMetadata = childTypeMetadatas[i];
|
|
392
|
+
typeMetadataMap.set(childTypeMetadata.typeFn, childTypeMetadata);
|
|
393
|
+
}
|
|
394
|
+
var preserveDiscriminator = typeOptions.preserveDiscriminator === undefined
|
|
395
|
+
? typeOptionsBase.preserveDiscriminator
|
|
396
|
+
: typeOptions.preserveDiscriminator;
|
|
397
|
+
var referenceHandler = typeOptions.referenceHandler === undefined
|
|
398
|
+
? typeOptionsBase.referenceHandler
|
|
399
|
+
: typeOptions.referenceHandler;
|
|
400
|
+
var serializer = typeOptions.serializer === undefined
|
|
401
|
+
? typeOptionsBase.serializer
|
|
402
|
+
: typeOptions.serializer;
|
|
403
|
+
var propertySorter = typeOptions.propertySorter === undefined
|
|
404
|
+
? typeOptionsBase.propertySorter
|
|
405
|
+
: typeOptions.propertySorter;
|
|
406
|
+
var ownPropertyMetadataMap = this.currentPropertyMetadataMap;
|
|
407
|
+
var propertyMetadataMap = this.resolvePropertyMetadataMap(parentTypeMetadatas);
|
|
408
|
+
var sortedPropertyMetadatas = propertySorter === undefined
|
|
409
|
+
? Array.from(propertyMetadataMap.values())
|
|
410
|
+
: Array.from(propertyMetadataMap.values()).sort(propertySorter.sort);
|
|
411
|
+
var injectMetadataMap = this.currentInjectMetadataMap;
|
|
412
|
+
var injectSorter = typeOptions.injectSorter === undefined
|
|
413
|
+
? typeOptionsBase.injectSorter
|
|
414
|
+
: typeOptions.injectSorter;
|
|
415
|
+
var sortedInjectMetadatas = injectSorter === undefined
|
|
416
|
+
? Array.from(injectMetadataMap.values())
|
|
417
|
+
: Array.from(injectMetadataMap.values()).sort(injectSorter.sort);
|
|
418
|
+
var propertyOptionsMap = typeOptions.propertyOptionsMap === undefined
|
|
419
|
+
? EMPTY_MAP
|
|
420
|
+
: typeOptions.propertyOptionsMap;
|
|
421
|
+
var injectOptionsMap = typeOptions.injectOptionsMap === undefined
|
|
422
|
+
? EMPTY_MAP
|
|
423
|
+
: typeOptions.injectOptionsMap;
|
|
424
|
+
var 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);
|
|
425
|
+
this.currentTypeState = resolvedTypeState;
|
|
426
|
+
return resolvedTypeState;
|
|
427
|
+
};
|
|
428
|
+
TypeMetadata.prototype.unresolveTypeState = function () {
|
|
429
|
+
var unresolvedTypeState = new UnresolvedTypeState(this);
|
|
430
|
+
this.currentTypeState = unresolvedTypeState;
|
|
431
|
+
return unresolvedTypeState;
|
|
432
|
+
};
|
|
433
|
+
TypeMetadata.prototype.resolveCustomValueMap = function () {
|
|
434
|
+
var e_1, _a;
|
|
435
|
+
var typeOptionsBase = this.typeOptionsBase;
|
|
436
|
+
var typeOptions = this.typeOptions;
|
|
437
|
+
var customValueMap = new Map();
|
|
438
|
+
if (typeOptions.customValueMap === undefined) {
|
|
439
|
+
return customValueMap;
|
|
440
|
+
}
|
|
441
|
+
var baseCustomValueMap = typeOptionsBase.customValueMap === undefined
|
|
442
|
+
? EMPTY_MAP
|
|
443
|
+
: typeOptionsBase.customValueMap;
|
|
310
444
|
try {
|
|
311
|
-
for (var
|
|
312
|
-
var
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
if (!this.propertyMetadataMap.has(propertyName)) {
|
|
317
|
-
this.propertyMetadataMap.set(propertyName, propertyMetadata);
|
|
318
|
-
}
|
|
319
|
-
}
|
|
445
|
+
for (var _b = __values(typeOptions.customValueMap), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
446
|
+
var _d = __read(_c.value, 2), customKey = _d[0], customValue = _d[1];
|
|
447
|
+
if (customValue === undefined) {
|
|
448
|
+
customValueMap.set(customKey, baseCustomValueMap.get(customKey));
|
|
449
|
+
continue;
|
|
320
450
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
451
|
+
customValueMap.set(customKey, customValue);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
455
|
+
finally {
|
|
456
|
+
try {
|
|
457
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
458
|
+
}
|
|
459
|
+
finally { if (e_1) throw e_1.error; }
|
|
460
|
+
}
|
|
461
|
+
return customValueMap;
|
|
462
|
+
};
|
|
463
|
+
TypeMetadata.prototype.resolveOwnParentTypeMetadatas = function (parentTypeArguments) {
|
|
464
|
+
var ownParentTypeMetadatas = new Array();
|
|
465
|
+
var parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
466
|
+
for (var i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
467
|
+
ownParentTypeMetadatas.push(parentTypeMetadatas[i]);
|
|
468
|
+
}
|
|
469
|
+
if (this.parentTypeMetadata !== undefined) {
|
|
470
|
+
ownParentTypeMetadatas.push(this.parentTypeMetadata);
|
|
471
|
+
}
|
|
472
|
+
return ownParentTypeMetadatas;
|
|
473
|
+
};
|
|
474
|
+
TypeMetadata.prototype.resolveOwnChildTypeMetadatas = function () {
|
|
475
|
+
var e_2, _a, e_3, _b;
|
|
476
|
+
var ownChildTypeMetadatas = new Array();
|
|
477
|
+
try {
|
|
478
|
+
for (var _c = __values(this.currentChildTypeMetadataMap.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
479
|
+
var childTypeMetadata = _d.value;
|
|
480
|
+
ownChildTypeMetadatas.push(childTypeMetadata);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
484
|
+
finally {
|
|
485
|
+
try {
|
|
486
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
487
|
+
}
|
|
488
|
+
finally { if (e_2) throw e_2.error; }
|
|
489
|
+
}
|
|
490
|
+
try {
|
|
491
|
+
for (var _e = __values(this.typeMetadataSet), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
492
|
+
var setTypeMetadata = _f.value;
|
|
493
|
+
var typeOptions = setTypeMetadata.typeOptions;
|
|
494
|
+
var parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
495
|
+
? EMPTY_ARRAY
|
|
496
|
+
: typeOptions.parentTypeArguments;
|
|
497
|
+
var parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
498
|
+
for (var i = 0; i < parentTypeMetadatas.length; i++) {
|
|
499
|
+
if (parentTypeMetadatas[i] === this) {
|
|
500
|
+
ownChildTypeMetadatas.push(setTypeMetadata);
|
|
501
|
+
break;
|
|
325
502
|
}
|
|
326
|
-
finally { if (e_2) throw e_2.error; }
|
|
327
503
|
}
|
|
328
|
-
parentTypeMetadata.childrenTypeMetadataMap.set(this.typeFn, this);
|
|
329
504
|
}
|
|
330
505
|
}
|
|
331
|
-
catch (
|
|
506
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
507
|
+
finally {
|
|
508
|
+
try {
|
|
509
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
510
|
+
}
|
|
511
|
+
finally { if (e_3) throw e_3.error; }
|
|
512
|
+
}
|
|
513
|
+
return ownChildTypeMetadatas;
|
|
514
|
+
};
|
|
515
|
+
TypeMetadata.prototype.resolveParentTypeMetadataSet = function (typeMetadata, parentTypeMetadataSet) {
|
|
516
|
+
if (parentTypeMetadataSet === void 0) { parentTypeMetadataSet = new Set(); }
|
|
517
|
+
if (parentTypeMetadataSet.has(typeMetadata)) {
|
|
518
|
+
return parentTypeMetadataSet;
|
|
519
|
+
}
|
|
520
|
+
parentTypeMetadataSet.add(typeMetadata);
|
|
521
|
+
var typeOptions = typeMetadata.typeOptions;
|
|
522
|
+
var parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
523
|
+
? EMPTY_ARRAY
|
|
524
|
+
: typeOptions.parentTypeArguments;
|
|
525
|
+
var parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
526
|
+
for (var i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
527
|
+
this.resolveParentTypeMetadataSet(parentTypeMetadatas[i], parentTypeMetadataSet);
|
|
528
|
+
}
|
|
529
|
+
if (typeMetadata.parentTypeMetadata !== undefined) {
|
|
530
|
+
this.resolveParentTypeMetadataSet(typeMetadata.parentTypeMetadata, parentTypeMetadataSet);
|
|
531
|
+
}
|
|
532
|
+
return parentTypeMetadataSet;
|
|
533
|
+
};
|
|
534
|
+
TypeMetadata.prototype.resolveChildTypeMetadataSet = function (typeMetadata, childTypeMetadataSet) {
|
|
535
|
+
var e_4, _a, e_5, _b;
|
|
536
|
+
if (childTypeMetadataSet === void 0) { childTypeMetadataSet = new Set(); }
|
|
537
|
+
if (childTypeMetadataSet.has(typeMetadata)) {
|
|
538
|
+
return childTypeMetadataSet;
|
|
539
|
+
}
|
|
540
|
+
childTypeMetadataSet.add(typeMetadata);
|
|
541
|
+
try {
|
|
542
|
+
for (var _c = __values(typeMetadata.currentChildTypeMetadataMap.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
543
|
+
var childTypeMetadata = _d.value;
|
|
544
|
+
this.resolveChildTypeMetadataSet(childTypeMetadata, childTypeMetadataSet);
|
|
545
|
+
childTypeMetadata.unresolveTypeState();
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
332
549
|
finally {
|
|
333
550
|
try {
|
|
334
551
|
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
335
552
|
}
|
|
336
|
-
finally { if (
|
|
553
|
+
finally { if (e_4) throw e_4.error; }
|
|
554
|
+
}
|
|
555
|
+
try {
|
|
556
|
+
for (var _e = __values(this.typeMetadataSet), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
557
|
+
var setTypeMetadata = _f.value;
|
|
558
|
+
var typeOptions = setTypeMetadata.typeOptions;
|
|
559
|
+
var parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
560
|
+
? EMPTY_ARRAY
|
|
561
|
+
: typeOptions.parentTypeArguments;
|
|
562
|
+
var parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
563
|
+
for (var i = 0; i < parentTypeMetadatas.length; i++) {
|
|
564
|
+
if (parentTypeMetadatas[i] === typeMetadata) {
|
|
565
|
+
this.resolveChildTypeMetadataSet(setTypeMetadata, childTypeMetadataSet);
|
|
566
|
+
setTypeMetadata.unresolveTypeState();
|
|
567
|
+
break;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
573
|
+
finally {
|
|
574
|
+
try {
|
|
575
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
576
|
+
}
|
|
577
|
+
finally { if (e_5) throw e_5.error; }
|
|
578
|
+
}
|
|
579
|
+
return childTypeMetadataSet;
|
|
580
|
+
};
|
|
581
|
+
TypeMetadata.prototype.resolvePropertyMetadataMap = function (parentTypeMetadatas) {
|
|
582
|
+
var e_6, _a, e_7, _b;
|
|
583
|
+
var propertyMetadataMap = new Map();
|
|
584
|
+
for (var i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
585
|
+
try {
|
|
586
|
+
for (var _c = (e_6 = void 0, __values(parentTypeMetadatas[i].currentPropertyMetadataMap)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
587
|
+
var _e = __read(_d.value, 2), propertyName = _e[0], propertyMetadata = _e[1];
|
|
588
|
+
propertyMetadataMap.set(propertyName, propertyMetadata);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
592
|
+
finally {
|
|
593
|
+
try {
|
|
594
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
595
|
+
}
|
|
596
|
+
finally { if (e_6) throw e_6.error; }
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
try {
|
|
600
|
+
for (var _f = __values(this.currentPropertyMetadataMap.values()), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
601
|
+
var propertyMetadata = _g.value;
|
|
602
|
+
propertyMetadata.unresolvePropertyState();
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
606
|
+
finally {
|
|
607
|
+
try {
|
|
608
|
+
if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
|
|
609
|
+
}
|
|
610
|
+
finally { if (e_7) throw e_7.error; }
|
|
611
|
+
}
|
|
612
|
+
return propertyMetadataMap;
|
|
613
|
+
};
|
|
614
|
+
TypeMetadata.prototype.extendParentTypeMetadata = function () {
|
|
615
|
+
var parentTypeMetadata = this.parentTypeMetadata;
|
|
616
|
+
if (parentTypeMetadata !== undefined) {
|
|
617
|
+
parentTypeMetadata.currentChildTypeMetadataMap.set(this.typeFn, this);
|
|
337
618
|
}
|
|
338
619
|
return this;
|
|
339
620
|
};
|
|
@@ -344,8 +625,8 @@ var TypeMetadata = (function (_super) {
|
|
|
344
625
|
}
|
|
345
626
|
var injectTypeFns = ((_a = getOwnReflectMetadata('design:paramtypes', this.typeFn)) !== null && _a !== void 0 ? _a : new Array());
|
|
346
627
|
for (var injectIndex = 0; injectIndex < injectTypeFns.length; injectIndex++) {
|
|
347
|
-
if (!this.
|
|
348
|
-
this.configureInjectMetadata(injectIndex, {
|
|
628
|
+
if (!this.currentInjectMetadataMap.has(injectIndex)) {
|
|
629
|
+
this.configureInjectMetadata(injectIndex, { typeArgument: injectTypeFns[injectIndex] });
|
|
349
630
|
}
|
|
350
631
|
}
|
|
351
632
|
return this;
|
|
@@ -353,311 +634,354 @@ var TypeMetadata = (function (_super) {
|
|
|
353
634
|
TypeMetadata.prototype.hasAlias = function (alias) {
|
|
354
635
|
this.releaseAlias();
|
|
355
636
|
this.typeOptions.alias = alias;
|
|
356
|
-
if (
|
|
357
|
-
this.
|
|
637
|
+
if (alias !== undefined) {
|
|
638
|
+
this.currentTypeFnMap.set(alias, this.typeFn);
|
|
358
639
|
}
|
|
640
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
359
641
|
return this;
|
|
360
642
|
};
|
|
361
643
|
TypeMetadata.prototype.releaseAlias = function () {
|
|
362
|
-
var alias = this.alias;
|
|
363
|
-
if (
|
|
364
|
-
this.
|
|
644
|
+
var alias = this.typeOptions.alias;
|
|
645
|
+
if (alias !== undefined && this.currentTypeFnMap.has(alias)) {
|
|
646
|
+
this.currentTypeFnMap.delete(alias);
|
|
647
|
+
}
|
|
648
|
+
return this;
|
|
649
|
+
};
|
|
650
|
+
TypeMetadata.prototype.hasCustomValueMap = function (customValueMap) {
|
|
651
|
+
var e_8, _a;
|
|
652
|
+
var currentCustomValueMap = this.typeOptions.customValueMap;
|
|
653
|
+
if (currentCustomValueMap === undefined) {
|
|
654
|
+
currentCustomValueMap = new Map();
|
|
655
|
+
this.typeOptions.customValueMap = currentCustomValueMap;
|
|
656
|
+
}
|
|
657
|
+
if (customValueMap !== undefined) {
|
|
658
|
+
if (currentCustomValueMap !== customValueMap) {
|
|
659
|
+
currentCustomValueMap.clear();
|
|
660
|
+
}
|
|
661
|
+
try {
|
|
662
|
+
for (var customValueMap_1 = __values(customValueMap), customValueMap_1_1 = customValueMap_1.next(); !customValueMap_1_1.done; customValueMap_1_1 = customValueMap_1.next()) {
|
|
663
|
+
var _b = __read(customValueMap_1_1.value, 2), customKey = _b[0], customValue = _b[1];
|
|
664
|
+
currentCustomValueMap.set(customKey, customValue);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
668
|
+
finally {
|
|
669
|
+
try {
|
|
670
|
+
if (customValueMap_1_1 && !customValueMap_1_1.done && (_a = customValueMap_1.return)) _a.call(customValueMap_1);
|
|
671
|
+
}
|
|
672
|
+
finally { if (e_8) throw e_8.error; }
|
|
673
|
+
}
|
|
365
674
|
}
|
|
675
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
366
676
|
return this;
|
|
367
677
|
};
|
|
368
|
-
TypeMetadata.prototype.
|
|
369
|
-
this.
|
|
678
|
+
TypeMetadata.prototype.hasCustomValue = function (customKey, customValue) {
|
|
679
|
+
var customValueMap = this.typeOptions.customValueMap;
|
|
680
|
+
if (customValueMap === undefined) {
|
|
681
|
+
customValueMap = new Map();
|
|
682
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
683
|
+
}
|
|
684
|
+
customValueMap.set(customKey, customValue);
|
|
685
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
370
686
|
return this;
|
|
371
687
|
};
|
|
372
|
-
TypeMetadata.prototype.
|
|
373
|
-
|
|
688
|
+
TypeMetadata.prototype.extractCustomValue = function (customKey) {
|
|
689
|
+
var customValue = this.typeState.customValueMap.get(customKey);
|
|
690
|
+
if (customValue === undefined && customKey.customValueResolver !== undefined) {
|
|
691
|
+
customValue = customKey.customValueResolver();
|
|
692
|
+
}
|
|
693
|
+
return customValue;
|
|
374
694
|
};
|
|
375
695
|
TypeMetadata.prototype.hasCustomOptions = function (customOptions) {
|
|
376
|
-
|
|
377
|
-
|
|
696
|
+
var customValueMap = this.typeOptions.customValueMap;
|
|
697
|
+
if (customValueMap === undefined) {
|
|
698
|
+
customValueMap = new Map();
|
|
699
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
378
700
|
}
|
|
701
|
+
for (var i = 0; i < customOptions.length; i++) {
|
|
702
|
+
customValueMap.set(customOptions[i][0], customOptions[i][1]);
|
|
703
|
+
}
|
|
704
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
379
705
|
return this;
|
|
380
706
|
};
|
|
381
707
|
TypeMetadata.prototype.hasDefaultValue = function (defaultValue) {
|
|
382
708
|
this.typeOptions.defaultValue = defaultValue;
|
|
709
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
383
710
|
return this;
|
|
384
711
|
};
|
|
385
712
|
TypeMetadata.prototype.hasSerializedDefaultValue = function (serializedDefaultValue) {
|
|
386
713
|
this.typeOptions.serializedDefaultValue = serializedDefaultValue;
|
|
714
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
387
715
|
return this;
|
|
388
716
|
};
|
|
389
717
|
TypeMetadata.prototype.hasDeserializedDefaultValue = function (deserializedDefaultValue) {
|
|
390
718
|
this.typeOptions.deserializedDefaultValue = deserializedDefaultValue;
|
|
719
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
391
720
|
return this;
|
|
392
721
|
};
|
|
393
722
|
TypeMetadata.prototype.hasDiscriminator = function (discriminator) {
|
|
394
723
|
this.typeOptions.discriminator = discriminator;
|
|
724
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
395
725
|
return this;
|
|
396
726
|
};
|
|
397
727
|
TypeMetadata.prototype.hasDiscriminant = function (discriminant) {
|
|
398
728
|
this.typeOptions.discriminant = discriminant;
|
|
399
|
-
|
|
400
|
-
this.provideDiscriminant(this.typeFn, discriminant);
|
|
401
|
-
}
|
|
402
|
-
return this;
|
|
403
|
-
};
|
|
404
|
-
TypeMetadata.prototype.provideDiscriminant = function (typeFn, discriminant) {
|
|
405
|
-
var e_3, _a;
|
|
406
|
-
this.discriminantMap.set(typeFn, discriminant);
|
|
407
|
-
if (!isEmpty(this.parentTypeMetadatas)) {
|
|
408
|
-
try {
|
|
409
|
-
for (var _b = __values(this.parentTypeMetadatas), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
410
|
-
var parentTypeMetadata = _c.value;
|
|
411
|
-
parentTypeMetadata.provideDiscriminant(typeFn, discriminant);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
415
|
-
finally {
|
|
416
|
-
try {
|
|
417
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
418
|
-
}
|
|
419
|
-
finally { if (e_3) throw e_3.error; }
|
|
420
|
-
}
|
|
421
|
-
}
|
|
729
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
422
730
|
return this;
|
|
423
731
|
};
|
|
424
732
|
TypeMetadata.prototype.hasFactory = function (factory) {
|
|
425
733
|
this.typeOptions.factory = factory;
|
|
734
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
426
735
|
return this;
|
|
427
736
|
};
|
|
428
737
|
TypeMetadata.prototype.isInjectable = function (injectable) {
|
|
429
738
|
if (injectable === void 0) { injectable = true; }
|
|
430
739
|
this.typeOptions.injectable = injectable;
|
|
740
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
431
741
|
return this;
|
|
432
742
|
};
|
|
433
743
|
TypeMetadata.prototype.hasInjector = function (injector) {
|
|
434
744
|
this.typeOptions.injector = injector;
|
|
745
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
435
746
|
return this;
|
|
436
747
|
};
|
|
437
|
-
TypeMetadata.prototype.
|
|
438
|
-
this.typeOptions.
|
|
748
|
+
TypeMetadata.prototype.hasLogger = function (logger) {
|
|
749
|
+
this.typeOptions.logger = logger;
|
|
750
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
439
751
|
return this;
|
|
440
752
|
};
|
|
441
753
|
TypeMetadata.prototype.hasNamingConvention = function (namingConvention) {
|
|
442
754
|
this.typeOptions.namingConvention = namingConvention;
|
|
755
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
443
756
|
return this;
|
|
444
757
|
};
|
|
445
758
|
TypeMetadata.prototype.shouldPreserveDiscriminator = function (preserveDiscriminator) {
|
|
446
759
|
if (preserveDiscriminator === void 0) { preserveDiscriminator = true; }
|
|
447
760
|
this.typeOptions.preserveDiscriminator = preserveDiscriminator;
|
|
761
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
448
762
|
return this;
|
|
449
763
|
};
|
|
450
764
|
TypeMetadata.prototype.hasReferenceHandler = function (referenceHandler) {
|
|
451
765
|
this.typeOptions.referenceHandler = referenceHandler;
|
|
766
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
452
767
|
return this;
|
|
453
768
|
};
|
|
454
769
|
TypeMetadata.prototype.hasSerializer = function (serializer) {
|
|
455
770
|
this.typeOptions.serializer = serializer;
|
|
771
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
456
772
|
return this;
|
|
457
773
|
};
|
|
458
774
|
TypeMetadata.prototype.shouldPreserveNull = function (preserveNull) {
|
|
459
775
|
if (preserveNull === void 0) { preserveNull = true; }
|
|
460
776
|
this.typeOptions.preserveNull = preserveNull;
|
|
777
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
461
778
|
return this;
|
|
462
779
|
};
|
|
463
780
|
TypeMetadata.prototype.shouldUseDefaultValue = function (useDefaultValue) {
|
|
464
781
|
if (useDefaultValue === void 0) { useDefaultValue = true; }
|
|
465
782
|
this.typeOptions.useDefaultValue = useDefaultValue;
|
|
783
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
466
784
|
return this;
|
|
467
785
|
};
|
|
468
786
|
TypeMetadata.prototype.shouldUseImplicitConversion = function (useImplicitConversion) {
|
|
469
787
|
if (useImplicitConversion === void 0) { useImplicitConversion = true; }
|
|
470
788
|
this.typeOptions.useImplicitConversion = useImplicitConversion;
|
|
789
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
471
790
|
return this;
|
|
472
791
|
};
|
|
473
792
|
TypeMetadata.prototype.hasPropertySorter = function (propertySorter) {
|
|
474
793
|
this.typeOptions.propertySorter = propertySorter;
|
|
794
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
475
795
|
return this;
|
|
476
796
|
};
|
|
477
797
|
TypeMetadata.prototype.hasInjectSorter = function (injectSorter) {
|
|
478
798
|
this.typeOptions.injectSorter = injectSorter;
|
|
799
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
800
|
+
return this;
|
|
801
|
+
};
|
|
802
|
+
TypeMetadata.prototype.hasParentTypeArguments = function (parentTypeArguments) {
|
|
803
|
+
this.typeOptions.parentTypeArguments = parentTypeArguments;
|
|
804
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
479
805
|
return this;
|
|
480
806
|
};
|
|
481
807
|
TypeMetadata.prototype.configurePropertyMetadata = function (propertyName, propertyOptions) {
|
|
482
|
-
var
|
|
483
|
-
if (
|
|
484
|
-
|
|
485
|
-
this.
|
|
486
|
-
|
|
808
|
+
var propertyOptionsMap = this.typeOptions.propertyOptionsMap;
|
|
809
|
+
if (propertyOptionsMap === undefined) {
|
|
810
|
+
propertyOptionsMap = new Map();
|
|
811
|
+
this.typeOptions.propertyOptionsMap = propertyOptionsMap;
|
|
812
|
+
}
|
|
813
|
+
var propertyMetadata = this.currentPropertyMetadataMap.get(propertyName);
|
|
814
|
+
if (propertyMetadata === undefined) {
|
|
815
|
+
propertyOptions = propertyOptions !== null && propertyOptions !== void 0 ? propertyOptions : {};
|
|
816
|
+
propertyMetadata = new PropertyMetadata(this.typeManager, this.currentTypeFnMap, this, propertyName, propertyOptions);
|
|
817
|
+
this.currentPropertyMetadataMap.set(propertyName, propertyMetadata);
|
|
818
|
+
propertyOptionsMap.set(propertyName, propertyOptions);
|
|
819
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
487
820
|
return propertyMetadata;
|
|
488
821
|
}
|
|
489
|
-
if (
|
|
822
|
+
if (propertyOptions !== undefined) {
|
|
490
823
|
propertyMetadata.configure(propertyOptions);
|
|
491
824
|
}
|
|
825
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
492
826
|
return propertyMetadata;
|
|
493
827
|
};
|
|
494
828
|
TypeMetadata.prototype.configureInjectMetadata = function (injectIndex, injectOptions) {
|
|
495
|
-
var
|
|
496
|
-
if (
|
|
497
|
-
|
|
498
|
-
this.
|
|
499
|
-
|
|
829
|
+
var injectOptionsMap = this.typeOptions.injectOptionsMap;
|
|
830
|
+
if (injectOptionsMap === undefined) {
|
|
831
|
+
injectOptionsMap = new Map();
|
|
832
|
+
this.typeOptions.injectOptionsMap = injectOptionsMap;
|
|
833
|
+
}
|
|
834
|
+
var injectMetadata = this.currentInjectMetadataMap.get(injectIndex);
|
|
835
|
+
if (injectMetadata === undefined) {
|
|
836
|
+
injectOptions = injectOptions !== null && injectOptions !== void 0 ? injectOptions : {};
|
|
837
|
+
injectMetadata = new InjectMetadata(this.typeManager, this.currentTypeFnMap, this, injectIndex, injectOptions);
|
|
838
|
+
this.currentInjectMetadataMap.set(injectIndex, injectMetadata);
|
|
839
|
+
injectOptionsMap.set(injectIndex, injectOptions);
|
|
840
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
500
841
|
return injectMetadata;
|
|
501
842
|
}
|
|
502
|
-
if (
|
|
843
|
+
if (injectOptions !== undefined) {
|
|
503
844
|
injectMetadata.configure(injectOptions);
|
|
504
845
|
}
|
|
846
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
505
847
|
return injectMetadata;
|
|
506
848
|
};
|
|
507
849
|
TypeMetadata.prototype.hasPropertyMetadataMap = function (propertyOptionsMap) {
|
|
508
|
-
var
|
|
850
|
+
var e_9, _a;
|
|
851
|
+
var currentPropertyOptionsMap = this.clearPropertyOptionsMap(propertyOptionsMap);
|
|
509
852
|
try {
|
|
510
853
|
for (var propertyOptionsMap_1 = __values(propertyOptionsMap), propertyOptionsMap_1_1 = propertyOptionsMap_1.next(); !propertyOptionsMap_1_1.done; propertyOptionsMap_1_1 = propertyOptionsMap_1.next()) {
|
|
511
854
|
var _b = __read(propertyOptionsMap_1_1.value, 2), propertyName = _b[0], propertyOptions = _b[1];
|
|
512
|
-
this.
|
|
855
|
+
var propertyMetadata = new PropertyMetadata(this.typeManager, this.currentTypeFnMap, this, propertyName, propertyOptions);
|
|
856
|
+
this.currentPropertyMetadataMap.set(propertyName, propertyMetadata);
|
|
857
|
+
currentPropertyOptionsMap.set(propertyName, propertyOptions);
|
|
513
858
|
}
|
|
514
859
|
}
|
|
515
|
-
catch (
|
|
860
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
516
861
|
finally {
|
|
517
862
|
try {
|
|
518
863
|
if (propertyOptionsMap_1_1 && !propertyOptionsMap_1_1.done && (_a = propertyOptionsMap_1.return)) _a.call(propertyOptionsMap_1);
|
|
519
864
|
}
|
|
520
|
-
finally { if (
|
|
865
|
+
finally { if (e_9) throw e_9.error; }
|
|
521
866
|
}
|
|
867
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
522
868
|
return this;
|
|
523
869
|
};
|
|
870
|
+
TypeMetadata.prototype.clearPropertyOptionsMap = function (propertyOptionsMap) {
|
|
871
|
+
var currentPropertyOptionsMap = this.typeOptions.propertyOptionsMap;
|
|
872
|
+
if (currentPropertyOptionsMap === undefined) {
|
|
873
|
+
currentPropertyOptionsMap = new Map();
|
|
874
|
+
this.typeOptions.propertyOptionsMap = currentPropertyOptionsMap;
|
|
875
|
+
}
|
|
876
|
+
if (currentPropertyOptionsMap !== propertyOptionsMap) {
|
|
877
|
+
currentPropertyOptionsMap.clear();
|
|
878
|
+
this.currentPropertyMetadataMap.clear();
|
|
879
|
+
}
|
|
880
|
+
return currentPropertyOptionsMap;
|
|
881
|
+
};
|
|
524
882
|
TypeMetadata.prototype.hasInjectMetadataMap = function (injectOptionsMap) {
|
|
525
|
-
var
|
|
883
|
+
var e_10, _a;
|
|
884
|
+
var currentInjectOptionsMap = this.clearInjectOptionsMap(injectOptionsMap);
|
|
526
885
|
try {
|
|
527
886
|
for (var injectOptionsMap_1 = __values(injectOptionsMap), injectOptionsMap_1_1 = injectOptionsMap_1.next(); !injectOptionsMap_1_1.done; injectOptionsMap_1_1 = injectOptionsMap_1.next()) {
|
|
528
887
|
var _b = __read(injectOptionsMap_1_1.value, 2), injectIndex = _b[0], injectOptions = _b[1];
|
|
529
|
-
this.
|
|
888
|
+
var injectMetadata = new InjectMetadata(this.typeManager, this.currentTypeFnMap, this, injectIndex, injectOptions);
|
|
889
|
+
this.currentInjectMetadataMap.set(injectIndex, injectMetadata);
|
|
890
|
+
currentInjectOptionsMap.set(injectIndex, injectOptions);
|
|
530
891
|
}
|
|
531
892
|
}
|
|
532
|
-
catch (
|
|
893
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
533
894
|
finally {
|
|
534
895
|
try {
|
|
535
896
|
if (injectOptionsMap_1_1 && !injectOptionsMap_1_1.done && (_a = injectOptionsMap_1.return)) _a.call(injectOptionsMap_1);
|
|
536
897
|
}
|
|
537
|
-
finally { if (
|
|
898
|
+
finally { if (e_10) throw e_10.error; }
|
|
538
899
|
}
|
|
900
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
539
901
|
return this;
|
|
540
902
|
};
|
|
541
|
-
TypeMetadata.prototype.
|
|
542
|
-
var
|
|
543
|
-
if (
|
|
544
|
-
|
|
903
|
+
TypeMetadata.prototype.clearInjectOptionsMap = function (injectOptionsMap) {
|
|
904
|
+
var currentInjectOptionsMap = this.typeOptions.injectOptionsMap;
|
|
905
|
+
if (currentInjectOptionsMap === undefined) {
|
|
906
|
+
currentInjectOptionsMap = new Map();
|
|
907
|
+
this.typeOptions.injectOptionsMap = currentInjectOptionsMap;
|
|
545
908
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
};
|
|
550
|
-
TypeMetadata.prototype.extractTypeExtensionMetadata = function (typeExtensionMetadataCtor) {
|
|
551
|
-
var typeExtensionMetadataCtorSet = this.extractCustomOption(typeExtensionMetadataCtorSetKey);
|
|
552
|
-
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
553
|
-
return undefined;
|
|
909
|
+
if (currentInjectOptionsMap !== injectOptionsMap) {
|
|
910
|
+
currentInjectOptionsMap.clear();
|
|
911
|
+
this.currentInjectMetadataMap.clear();
|
|
554
912
|
}
|
|
555
|
-
|
|
556
|
-
var typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
557
|
-
return typeExtensionMetadata;
|
|
558
|
-
};
|
|
559
|
-
TypeMetadata.prototype.hasParentTypeFns = function (parentTypeFns) {
|
|
560
|
-
var e_6, _a;
|
|
561
|
-
if (isNil(this.typeOptions.parentTypeFns)) {
|
|
562
|
-
this.typeOptions.parentTypeFns = new Array();
|
|
563
|
-
}
|
|
564
|
-
var _loop_1 = function (parentTypeFn) {
|
|
565
|
-
var parentTypeMetadata = this_1.typeManager.extractTypeMetadata(parentTypeFn);
|
|
566
|
-
if (!this_1.parentTypeMetadatas.some(function (ptm) { return ptm === parentTypeMetadata; })) {
|
|
567
|
-
this_1.parentTypeMetadatas.push(parentTypeMetadata);
|
|
568
|
-
}
|
|
569
|
-
if (!this_1.typeOptions.parentTypeFns.some(function (ptf) { return ptf === parentTypeFn; })) {
|
|
570
|
-
this_1.typeOptions.parentTypeFns.push(parentTypeFn);
|
|
571
|
-
}
|
|
572
|
-
};
|
|
573
|
-
var this_1 = this;
|
|
574
|
-
try {
|
|
575
|
-
for (var parentTypeFns_1 = __values(parentTypeFns), parentTypeFns_1_1 = parentTypeFns_1.next(); !parentTypeFns_1_1.done; parentTypeFns_1_1 = parentTypeFns_1.next()) {
|
|
576
|
-
var parentTypeFn = parentTypeFns_1_1.value;
|
|
577
|
-
_loop_1(parentTypeFn);
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
581
|
-
finally {
|
|
582
|
-
try {
|
|
583
|
-
if (parentTypeFns_1_1 && !parentTypeFns_1_1.done && (_a = parentTypeFns_1.return)) _a.call(parentTypeFns_1);
|
|
584
|
-
}
|
|
585
|
-
finally { if (e_6) throw e_6.error; }
|
|
586
|
-
}
|
|
587
|
-
this.deriveParentTypeMetadataProperties();
|
|
588
|
-
this.hasDiscriminant(this.discriminant);
|
|
589
|
-
return this;
|
|
913
|
+
return currentInjectOptionsMap;
|
|
590
914
|
};
|
|
591
915
|
TypeMetadata.prototype.configure = function (typeOptions) {
|
|
592
|
-
if (
|
|
593
|
-
this.hasParentTypeFns(typeOptions.parentTypeFns);
|
|
594
|
-
}
|
|
595
|
-
if (!isUndefined(typeOptions.alias)) {
|
|
916
|
+
if (typeOptions.alias !== undefined) {
|
|
596
917
|
this.hasAlias(typeOptions.alias);
|
|
597
918
|
}
|
|
598
|
-
if (
|
|
599
|
-
this.
|
|
919
|
+
if (typeOptions.customValueMap !== undefined) {
|
|
920
|
+
this.hasCustomValueMap(typeOptions.customValueMap);
|
|
600
921
|
}
|
|
601
|
-
if (
|
|
922
|
+
if (typeOptions.defaultValue !== undefined) {
|
|
602
923
|
this.hasDefaultValue(typeOptions.defaultValue);
|
|
603
924
|
}
|
|
604
|
-
if (
|
|
925
|
+
if (typeOptions.serializedDefaultValue !== undefined) {
|
|
605
926
|
this.hasSerializedDefaultValue(typeOptions.serializedDefaultValue);
|
|
606
927
|
}
|
|
607
|
-
if (
|
|
928
|
+
if (typeOptions.deserializedDefaultValue !== undefined) {
|
|
608
929
|
this.hasDeserializedDefaultValue(typeOptions.deserializedDefaultValue);
|
|
609
930
|
}
|
|
610
|
-
if (
|
|
931
|
+
if (typeOptions.discriminator !== undefined) {
|
|
611
932
|
this.hasDiscriminator(typeOptions.discriminator);
|
|
612
933
|
}
|
|
613
|
-
if (
|
|
934
|
+
if (typeOptions.discriminant !== undefined) {
|
|
614
935
|
this.hasDiscriminant(typeOptions.discriminant);
|
|
615
936
|
}
|
|
616
|
-
if (
|
|
937
|
+
if (typeOptions.factory !== undefined) {
|
|
617
938
|
this.hasFactory(typeOptions.factory);
|
|
618
939
|
}
|
|
619
|
-
if (
|
|
940
|
+
if (typeOptions.injectable !== undefined) {
|
|
620
941
|
this.isInjectable(typeOptions.injectable);
|
|
621
942
|
}
|
|
622
|
-
if (
|
|
943
|
+
if (typeOptions.injector !== undefined) {
|
|
623
944
|
this.hasInjector(typeOptions.injector);
|
|
624
945
|
}
|
|
625
|
-
if (
|
|
626
|
-
this.
|
|
946
|
+
if (typeOptions.logger !== undefined) {
|
|
947
|
+
this.hasLogger(typeOptions.logger);
|
|
627
948
|
}
|
|
628
|
-
if (
|
|
949
|
+
if (typeOptions.namingConvention !== undefined) {
|
|
629
950
|
this.hasNamingConvention(typeOptions.namingConvention);
|
|
630
951
|
}
|
|
631
|
-
if (
|
|
952
|
+
if (typeOptions.preserveDiscriminator !== undefined) {
|
|
632
953
|
this.shouldPreserveDiscriminator(typeOptions.preserveDiscriminator);
|
|
633
954
|
}
|
|
634
|
-
if (
|
|
955
|
+
if (typeOptions.referenceHandler !== undefined) {
|
|
635
956
|
this.hasReferenceHandler(typeOptions.referenceHandler);
|
|
636
957
|
}
|
|
637
|
-
if (
|
|
958
|
+
if (typeOptions.serializer !== undefined) {
|
|
638
959
|
this.hasSerializer(typeOptions.serializer);
|
|
639
960
|
}
|
|
640
|
-
if (
|
|
961
|
+
if (typeOptions.preserveNull !== undefined) {
|
|
641
962
|
this.shouldPreserveNull(typeOptions.preserveNull);
|
|
642
963
|
}
|
|
643
|
-
if (
|
|
964
|
+
if (typeOptions.useDefaultValue !== undefined) {
|
|
644
965
|
this.shouldUseDefaultValue(typeOptions.useDefaultValue);
|
|
645
966
|
}
|
|
646
|
-
if (
|
|
967
|
+
if (typeOptions.useImplicitConversion !== undefined) {
|
|
647
968
|
this.shouldUseImplicitConversion(typeOptions.useImplicitConversion);
|
|
648
969
|
}
|
|
649
|
-
if (
|
|
970
|
+
if (typeOptions.propertyOptionsMap !== undefined) {
|
|
650
971
|
this.hasPropertyMetadataMap(typeOptions.propertyOptionsMap);
|
|
651
972
|
}
|
|
652
|
-
if (
|
|
973
|
+
if (typeOptions.injectOptionsMap !== undefined) {
|
|
653
974
|
this.hasInjectMetadataMap(typeOptions.injectOptionsMap);
|
|
654
975
|
}
|
|
655
|
-
if (
|
|
976
|
+
if (typeOptions.propertySorter !== undefined) {
|
|
656
977
|
this.hasPropertySorter(typeOptions.propertySorter);
|
|
657
978
|
}
|
|
658
|
-
if (
|
|
979
|
+
if (typeOptions.injectSorter !== undefined) {
|
|
659
980
|
this.hasInjectSorter(typeOptions.injectSorter);
|
|
660
981
|
}
|
|
982
|
+
if (typeOptions.parentTypeArguments !== undefined) {
|
|
983
|
+
this.hasParentTypeArguments(typeOptions.parentTypeArguments);
|
|
984
|
+
}
|
|
661
985
|
return this;
|
|
662
986
|
};
|
|
663
987
|
return TypeMetadata;
|