@dipscope/type-manager 7.2.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +160 -167
- 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 +17 -12
- package/dist/es2015/index.js.map +1 -1
- package/dist/es2015/inject-decorator.js +2 -0
- package/dist/es2015/inject-decorator.js.map +1 -0
- 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-decorator.js +2 -0
- package/dist/es2015/property-decorator.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 +44 -22
- 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-decorator.js +2 -0
- package/dist/es2015/type-decorator.js.map +1 -0
- 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 +57 -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 -222
- package/dist/es2015/type-metadata.js.map +1 -1
- package/dist/es2015/type-scope.js +58 -0
- package/dist/es2015/type-scope.js.map +1 -0
- 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 +3 -1
- 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 +17 -12
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/inject-decorator.js +2 -0
- package/dist/es5/inject-decorator.js.map +1 -0
- 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-decorator.js +2 -0
- package/dist/es5/property-decorator.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 +44 -22
- 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-decorator.js +2 -0
- package/dist/es5/type-decorator.js.map +1 -0
- 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 +112 -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 -265
- package/dist/es5/type-metadata.js.map +1 -1
- package/dist/es5/type-scope.js +108 -0
- package/dist/es5/type-scope.js.map +1 -0
- 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 +3 -1
- 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 +17 -12
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/inject-decorator.d.ts +7 -0
- package/dist/types/inject-decorator.d.ts.map +1 -0
- 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 +5 -4
- 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-decorator.d.ts +7 -0
- package/dist/types/property-decorator.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 +5 -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-decorator.d.ts +7 -0
- package/dist/types/type-decorator.d.ts.map +1 -0
- 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 +120 -120
- 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 +68 -0
- package/dist/types/type-scope.d.ts.map +1 -0
- 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 +4 -3
- 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 -7
- 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,200 +1,381 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { DEFAULT_VALUE_RESOLVER } from './constants/default-value-resolver';
|
|
2
|
+
import { EMPTY_ARRAY } from './constants/empty-array';
|
|
3
|
+
import { EMPTY_MAP } from './constants/empty-map';
|
|
4
|
+
import { NULL_VALUE_RESOLVER } from './constants/null-value-resolver';
|
|
3
5
|
import { getOwnReflectMetadata } from './functions/get-own-reflect-metadata';
|
|
4
6
|
import { nameOf } from './functions/name-of';
|
|
5
7
|
import { InjectMetadata } from './inject-metadata';
|
|
6
8
|
import { Metadata } from './metadata';
|
|
7
9
|
import { PropertyMetadata } from './property-metadata';
|
|
8
|
-
import {
|
|
10
|
+
import { TYPE_EXTENSION_METADATA_CTOR_SET_KEY } from './type-extension-metadata-ctor-set-key';
|
|
11
|
+
import { ResolvedTypeState } from './type-states/resolved-type-state';
|
|
12
|
+
import { UnresolvedTypeState } from './type-states/unresolved-type-state';
|
|
9
13
|
export class TypeMetadata extends Metadata {
|
|
10
|
-
constructor(typeManager, typeFn, typeOptions,
|
|
11
|
-
super(typeManager);
|
|
12
|
-
this.childrenTypeMetadataMap = new Map();
|
|
13
|
-
this.discriminantMap = new Map();
|
|
14
|
-
this.propertyMetadataMap = new Map();
|
|
15
|
-
this.injectMetadataMap = new Map();
|
|
14
|
+
constructor(typeManager, typeFnMap, typeMetadataSet, typeFn, typeOptions, parentTypeMetadata) {
|
|
15
|
+
super(typeManager, typeFnMap);
|
|
16
16
|
this.typeName = nameOf(typeFn);
|
|
17
17
|
this.typeFn = typeFn;
|
|
18
|
+
this.parentTypeMetadata = parentTypeMetadata;
|
|
18
19
|
this.typeOptionsBase = typeManager.typeOptionsBase;
|
|
19
20
|
this.typeOptions = this.constructTypeOptions(typeOptions);
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
21
|
+
this.typeMetadataSet = typeMetadataSet;
|
|
22
|
+
this.currentTypeFnMap = typeFnMap;
|
|
23
|
+
this.currentChildTypeMetadataMap = new Map();
|
|
24
|
+
this.currentPropertyMetadataMap = new Map();
|
|
25
|
+
this.currentInjectMetadataMap = new Map();
|
|
26
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
27
|
+
this.extendParentTypeMetadata();
|
|
24
28
|
this.configure(typeOptions);
|
|
25
29
|
return;
|
|
26
30
|
}
|
|
27
|
-
get
|
|
28
|
-
return
|
|
31
|
+
get typeState() {
|
|
32
|
+
return this.currentTypeState;
|
|
29
33
|
}
|
|
30
|
-
get
|
|
31
|
-
return this.
|
|
34
|
+
get injectMetadataMap() {
|
|
35
|
+
return this.currentTypeState.injectMetadataMap;
|
|
32
36
|
}
|
|
33
|
-
get
|
|
34
|
-
return this.
|
|
37
|
+
get propertyMetadataMap() {
|
|
38
|
+
return this.currentTypeState.propertyMetadataMap;
|
|
35
39
|
}
|
|
36
|
-
get
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
customContext = this.typeInternals.customContext;
|
|
42
|
-
}
|
|
43
|
-
return customContext;
|
|
40
|
+
get alias() {
|
|
41
|
+
return this.currentTypeState.alias;
|
|
42
|
+
}
|
|
43
|
+
get customValueMap() {
|
|
44
|
+
return this.currentTypeState.customValueMap;
|
|
44
45
|
}
|
|
45
46
|
get serializedNullValue() {
|
|
46
|
-
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
return this.serializedDefaultValue;
|
|
47
|
+
return this.currentTypeState.serializedNullValueResolver();
|
|
50
48
|
}
|
|
51
49
|
get serializedDefaultValue() {
|
|
52
|
-
|
|
53
|
-
if (this.useDefaultValue) {
|
|
54
|
-
const serializedDefaultValue = (_a = this.typeOptions.defaultValue) !== null && _a !== void 0 ? _a : this.typeOptions.serializedDefaultValue;
|
|
55
|
-
const defaultValue = isFunction(serializedDefaultValue)
|
|
56
|
-
? serializedDefaultValue()
|
|
57
|
-
: serializedDefaultValue;
|
|
58
|
-
return defaultValue;
|
|
59
|
-
}
|
|
60
|
-
return undefined;
|
|
50
|
+
return this.currentTypeState.serializedDefaultValueResolver();
|
|
61
51
|
}
|
|
62
52
|
get deserializedNullValue() {
|
|
63
|
-
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
return this.deserializedDefaultValue;
|
|
53
|
+
return this.currentTypeState.deserializedNullValueResolver();
|
|
67
54
|
}
|
|
68
55
|
get deserializedDefaultValue() {
|
|
69
|
-
|
|
70
|
-
if (this.useDefaultValue) {
|
|
71
|
-
const deserializedDefaultValue = (_a = this.typeOptions.defaultValue) !== null && _a !== void 0 ? _a : this.typeOptions.deserializedDefaultValue;
|
|
72
|
-
const defaultValue = isFunction(deserializedDefaultValue)
|
|
73
|
-
? deserializedDefaultValue()
|
|
74
|
-
: deserializedDefaultValue;
|
|
75
|
-
return defaultValue;
|
|
76
|
-
}
|
|
77
|
-
return undefined;
|
|
56
|
+
return this.currentTypeState.deserializedDefaultValueResolver();
|
|
78
57
|
}
|
|
79
58
|
get discriminant() {
|
|
80
|
-
|
|
81
|
-
return (_a = this.typeOptions.discriminant) !== null && _a !== void 0 ? _a : this.typeName;
|
|
59
|
+
return this.currentTypeState.discriminant;
|
|
82
60
|
}
|
|
83
61
|
get discriminator() {
|
|
84
|
-
|
|
85
|
-
return (_a = this.typeOptions.discriminator) !== null && _a !== void 0 ? _a : this.typeOptionsBase.discriminator;
|
|
62
|
+
return this.currentTypeState.discriminator;
|
|
86
63
|
}
|
|
87
64
|
get factory() {
|
|
88
|
-
|
|
89
|
-
return (_a = this.typeOptions.factory) !== null && _a !== void 0 ? _a : this.typeOptionsBase.factory;
|
|
65
|
+
return this.currentTypeState.factory;
|
|
90
66
|
}
|
|
91
67
|
get injectable() {
|
|
92
|
-
return this.
|
|
68
|
+
return this.currentTypeState.injectable;
|
|
93
69
|
}
|
|
94
70
|
get injector() {
|
|
95
|
-
|
|
96
|
-
return (_a = this.typeOptions.injector) !== null && _a !== void 0 ? _a : this.typeOptionsBase.injector;
|
|
71
|
+
return this.currentTypeState.injector;
|
|
97
72
|
}
|
|
98
|
-
get
|
|
99
|
-
|
|
100
|
-
return (_a = this.typeOptions.log) !== null && _a !== void 0 ? _a : this.typeOptionsBase.log;
|
|
73
|
+
get logger() {
|
|
74
|
+
return this.currentTypeState.logger;
|
|
101
75
|
}
|
|
102
76
|
get namingConvention() {
|
|
103
|
-
|
|
104
|
-
return (_a = this.typeOptions.namingConvention) !== null && _a !== void 0 ? _a : this.typeOptionsBase.namingConvention;
|
|
77
|
+
return this.currentTypeState.namingConvention;
|
|
105
78
|
}
|
|
106
79
|
get polymorphic() {
|
|
107
|
-
return this.
|
|
80
|
+
return this.currentTypeState.polymorphic;
|
|
108
81
|
}
|
|
109
82
|
get preserveDiscriminator() {
|
|
110
|
-
|
|
111
|
-
return (_a = this.typeOptions.preserveDiscriminator) !== null && _a !== void 0 ? _a : this.typeOptionsBase.preserveDiscriminator;
|
|
83
|
+
return this.currentTypeState.preserveDiscriminator;
|
|
112
84
|
}
|
|
113
85
|
get referenceHandler() {
|
|
114
|
-
|
|
115
|
-
return (_a = this.typeOptions.referenceHandler) !== null && _a !== void 0 ? _a : this.typeOptionsBase.referenceHandler;
|
|
86
|
+
return this.currentTypeState.referenceHandler;
|
|
116
87
|
}
|
|
117
88
|
get serializer() {
|
|
118
|
-
|
|
119
|
-
return (_a = this.typeOptions.serializer) !== null && _a !== void 0 ? _a : this.typeOptionsBase.serializer;
|
|
89
|
+
return this.currentTypeState.serializer;
|
|
120
90
|
}
|
|
121
91
|
get preserveNull() {
|
|
122
|
-
|
|
123
|
-
return (_a = this.typeOptions.preserveNull) !== null && _a !== void 0 ? _a : this.typeOptionsBase.preserveNull;
|
|
92
|
+
return this.currentTypeState.preserveNull;
|
|
124
93
|
}
|
|
125
94
|
get useDefaultValue() {
|
|
126
|
-
|
|
127
|
-
return (_a = this.typeOptions.useDefaultValue) !== null && _a !== void 0 ? _a : this.typeOptionsBase.useDefaultValue;
|
|
95
|
+
return this.currentTypeState.useDefaultValue;
|
|
128
96
|
}
|
|
129
97
|
get useImplicitConversion() {
|
|
130
|
-
|
|
131
|
-
return (_a = this.typeOptions.useImplicitConversion) !== null && _a !== void 0 ? _a : this.typeOptionsBase.useImplicitConversion;
|
|
98
|
+
return this.currentTypeState.useImplicitConversion;
|
|
132
99
|
}
|
|
133
100
|
get propertySorter() {
|
|
134
|
-
|
|
135
|
-
return (_a = this.typeOptions.propertySorter) !== null && _a !== void 0 ? _a : this.typeOptionsBase.propertySorter;
|
|
101
|
+
return this.currentTypeState.propertySorter;
|
|
136
102
|
}
|
|
137
103
|
get sortedPropertyMetadatas() {
|
|
138
|
-
|
|
139
|
-
const propertyMetadatas = this.propertyMetadataMap.values();
|
|
140
|
-
if (isNil(propertySorter)) {
|
|
141
|
-
return propertyMetadatas;
|
|
142
|
-
}
|
|
143
|
-
const sortedPropertyMetadatas = Array.from(propertyMetadatas).sort(propertySorter.sort);
|
|
144
|
-
return sortedPropertyMetadatas[Symbol.iterator]();
|
|
104
|
+
return this.currentTypeState.sortedPropertyMetadatas;
|
|
145
105
|
}
|
|
146
106
|
get injectSorter() {
|
|
147
|
-
|
|
148
|
-
return (_a = this.typeOptions.injectSorter) !== null && _a !== void 0 ? _a : this.typeOptionsBase.injectSorter;
|
|
107
|
+
return this.currentTypeState.injectSorter;
|
|
149
108
|
}
|
|
150
109
|
get sortedInjectMetadatas() {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
const sortedInjectMetadatas = Array.from(injectMetadatas).sort(injectSorter.sort);
|
|
157
|
-
return sortedInjectMetadatas[Symbol.iterator]();
|
|
110
|
+
return this.currentTypeState.sortedInjectMetadatas;
|
|
111
|
+
}
|
|
112
|
+
get parentTypeArguments() {
|
|
113
|
+
return this.currentTypeState.parentTypeArguments;
|
|
158
114
|
}
|
|
159
115
|
get propertyOptionsMap() {
|
|
160
|
-
|
|
161
|
-
if (isNil(propertyOptionsMap)) {
|
|
162
|
-
propertyOptionsMap = new Map();
|
|
163
|
-
this.typeOptions.propertyOptionsMap = propertyOptionsMap;
|
|
164
|
-
}
|
|
165
|
-
return propertyOptionsMap;
|
|
116
|
+
return this.currentTypeState.propertyOptionsMap;
|
|
166
117
|
}
|
|
167
118
|
get injectOptionsMap() {
|
|
168
|
-
|
|
169
|
-
if (isNil(injectOptionsMap)) {
|
|
170
|
-
injectOptionsMap = new Map();
|
|
171
|
-
this.typeOptions.injectOptionsMap = injectOptionsMap;
|
|
172
|
-
}
|
|
173
|
-
return injectOptionsMap;
|
|
174
|
-
}
|
|
175
|
-
get parentTypeFns() {
|
|
176
|
-
return this.typeOptions.parentTypeFns;
|
|
119
|
+
return this.currentTypeState.injectOptionsMap;
|
|
177
120
|
}
|
|
178
121
|
constructTypeOptions(typeOptions) {
|
|
122
|
+
if (typeOptions.customValueMap === undefined) {
|
|
123
|
+
typeOptions.customValueMap = new Map();
|
|
124
|
+
}
|
|
125
|
+
if (typeOptions.propertyOptionsMap === undefined) {
|
|
126
|
+
typeOptions.propertyOptionsMap = new Map();
|
|
127
|
+
}
|
|
128
|
+
if (typeOptions.injectOptionsMap === undefined) {
|
|
129
|
+
typeOptions.injectOptionsMap = new Map();
|
|
130
|
+
}
|
|
179
131
|
return typeOptions;
|
|
180
132
|
}
|
|
181
|
-
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
133
|
+
configureTypeExtensionMetadata(typeExtensionMetadataCtor, typeExtensionOptions) {
|
|
134
|
+
const typeExtensionMetadataCtorSet = this.extractTypeExtensionMetadataCtorSet();
|
|
135
|
+
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
136
|
+
typeExtensionMetadataCtorSet.add(typeExtensionMetadataCtor);
|
|
137
|
+
}
|
|
138
|
+
const initialTypeExtensionOptions = typeExtensionOptions !== null && typeExtensionOptions !== void 0 ? typeExtensionOptions : {};
|
|
139
|
+
const typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
140
|
+
return typeExtensionMetadata;
|
|
186
141
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
142
|
+
extractTypeExtensionMetadata(typeExtensionMetadataCtor) {
|
|
143
|
+
const typeExtensionMetadataCtorSet = this.extractTypeExtensionMetadataCtorSet();
|
|
144
|
+
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
const initialTypeExtensionOptions = {};
|
|
148
|
+
const typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
149
|
+
return typeExtensionMetadata;
|
|
150
|
+
}
|
|
151
|
+
extractTypeExtensionMetadataCtorSet() {
|
|
152
|
+
let customValueMap = this.typeOptions.customValueMap;
|
|
153
|
+
if (customValueMap === undefined) {
|
|
154
|
+
customValueMap = new Map();
|
|
155
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
156
|
+
}
|
|
157
|
+
let typeExtensionMetadataCtorSet = customValueMap.get(TYPE_EXTENSION_METADATA_CTOR_SET_KEY);
|
|
158
|
+
if (typeExtensionMetadataCtorSet === undefined) {
|
|
159
|
+
typeExtensionMetadataCtorSet = new Set();
|
|
160
|
+
customValueMap.set(TYPE_EXTENSION_METADATA_CTOR_SET_KEY, typeExtensionMetadataCtorSet);
|
|
161
|
+
}
|
|
162
|
+
return typeExtensionMetadataCtorSet;
|
|
163
|
+
}
|
|
164
|
+
resolveTypeState() {
|
|
165
|
+
const typeOptionsBase = this.typeOptionsBase;
|
|
166
|
+
const typeOptions = this.typeOptions;
|
|
167
|
+
const typeName = this.typeName;
|
|
168
|
+
const alias = typeOptions.alias;
|
|
169
|
+
const customValueMap = this.resolveCustomValueMap();
|
|
170
|
+
const preserveNull = typeOptions.preserveNull === undefined
|
|
171
|
+
? typeOptionsBase.preserveNull
|
|
172
|
+
: typeOptions.preserveNull;
|
|
173
|
+
const useDefaultValue = typeOptions.useDefaultValue === undefined
|
|
174
|
+
? typeOptionsBase.useDefaultValue
|
|
175
|
+
: typeOptions.useDefaultValue;
|
|
176
|
+
const useImplicitConversion = typeOptions.useImplicitConversion === undefined
|
|
177
|
+
? typeOptionsBase.useImplicitConversion
|
|
178
|
+
: typeOptions.useImplicitConversion;
|
|
179
|
+
const serializedDefaultValue = typeOptions.defaultValue === undefined
|
|
180
|
+
? typeOptions.serializedDefaultValue
|
|
181
|
+
: typeOptions.defaultValue;
|
|
182
|
+
const serializedDefaultValueResolver = useDefaultValue
|
|
183
|
+
? (typeof serializedDefaultValue === 'function' ? serializedDefaultValue : () => serializedDefaultValue)
|
|
184
|
+
: DEFAULT_VALUE_RESOLVER;
|
|
185
|
+
const serializedNullValueResolver = preserveNull
|
|
186
|
+
? NULL_VALUE_RESOLVER
|
|
187
|
+
: serializedDefaultValueResolver;
|
|
188
|
+
const deserializedDefaultValue = typeOptions.defaultValue === undefined
|
|
189
|
+
? typeOptions.deserializedDefaultValue
|
|
190
|
+
: typeOptions.defaultValue;
|
|
191
|
+
const deserializedDefaultValueResolver = useDefaultValue
|
|
192
|
+
? (typeof deserializedDefaultValue === 'function' ? deserializedDefaultValue : () => deserializedDefaultValue)
|
|
193
|
+
: DEFAULT_VALUE_RESOLVER;
|
|
194
|
+
const deserializedNullValueResolver = preserveNull
|
|
195
|
+
? NULL_VALUE_RESOLVER
|
|
196
|
+
: deserializedDefaultValueResolver;
|
|
197
|
+
const discriminant = typeOptions.discriminant === undefined
|
|
198
|
+
? typeName
|
|
199
|
+
: typeOptions.discriminant;
|
|
200
|
+
const discriminator = typeOptions.discriminator === undefined
|
|
201
|
+
? typeOptionsBase.discriminator
|
|
202
|
+
: typeOptions.discriminator;
|
|
203
|
+
const factory = typeOptions.factory === undefined
|
|
204
|
+
? typeOptionsBase.factory
|
|
205
|
+
: typeOptions.factory;
|
|
206
|
+
const injectable = typeOptions.injectable === true;
|
|
207
|
+
const injector = typeOptions.injector === undefined
|
|
208
|
+
? typeOptionsBase.injector
|
|
209
|
+
: typeOptions.injector;
|
|
210
|
+
const logger = typeOptions.logger === undefined
|
|
211
|
+
? typeOptionsBase.logger
|
|
212
|
+
: typeOptions.logger;
|
|
213
|
+
const namingConvention = typeOptions.namingConvention === undefined
|
|
214
|
+
? typeOptionsBase.namingConvention
|
|
215
|
+
: typeOptions.namingConvention;
|
|
216
|
+
const parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
217
|
+
? EMPTY_ARRAY
|
|
218
|
+
: typeOptions.parentTypeArguments;
|
|
219
|
+
const ownParentTypeMetadatas = this.resolveOwnParentTypeMetadatas(parentTypeArguments);
|
|
220
|
+
const ownChildTypeMetadatas = this.resolveOwnChildTypeMetadatas();
|
|
221
|
+
const parentTypeMetadataSet = this.resolveParentTypeMetadataSet(this);
|
|
222
|
+
const parentTypeMetadatas = Array.from(parentTypeMetadataSet);
|
|
223
|
+
const childTypeMetadataSet = this.resolveChildTypeMetadataSet(this);
|
|
224
|
+
const childTypeMetadatas = Array.from(childTypeMetadataSet);
|
|
225
|
+
const typeMetadataMap = new Map();
|
|
226
|
+
const polymorphic = childTypeMetadatas.length > 1;
|
|
227
|
+
for (let i = 0; i < childTypeMetadatas.length; i++) {
|
|
228
|
+
const childTypeMetadata = childTypeMetadatas[i];
|
|
229
|
+
typeMetadataMap.set(childTypeMetadata.typeFn, childTypeMetadata);
|
|
230
|
+
}
|
|
231
|
+
const preserveDiscriminator = typeOptions.preserveDiscriminator === undefined
|
|
232
|
+
? typeOptionsBase.preserveDiscriminator
|
|
233
|
+
: typeOptions.preserveDiscriminator;
|
|
234
|
+
const referenceHandler = typeOptions.referenceHandler === undefined
|
|
235
|
+
? typeOptionsBase.referenceHandler
|
|
236
|
+
: typeOptions.referenceHandler;
|
|
237
|
+
const serializer = typeOptions.serializer === undefined
|
|
238
|
+
? typeOptionsBase.serializer
|
|
239
|
+
: typeOptions.serializer;
|
|
240
|
+
const propertySorter = typeOptions.propertySorter === undefined
|
|
241
|
+
? typeOptionsBase.propertySorter
|
|
242
|
+
: typeOptions.propertySorter;
|
|
243
|
+
const ownPropertyMetadataMap = this.currentPropertyMetadataMap;
|
|
244
|
+
const propertyMetadataMap = this.resolvePropertyMetadataMap(parentTypeMetadatas);
|
|
245
|
+
const sortedPropertyMetadatas = propertySorter === undefined
|
|
246
|
+
? Array.from(propertyMetadataMap.values())
|
|
247
|
+
: Array.from(propertyMetadataMap.values()).sort(propertySorter.sort);
|
|
248
|
+
const injectMetadataMap = this.currentInjectMetadataMap;
|
|
249
|
+
const injectSorter = typeOptions.injectSorter === undefined
|
|
250
|
+
? typeOptionsBase.injectSorter
|
|
251
|
+
: typeOptions.injectSorter;
|
|
252
|
+
const sortedInjectMetadatas = injectSorter === undefined
|
|
253
|
+
? Array.from(injectMetadataMap.values())
|
|
254
|
+
: Array.from(injectMetadataMap.values()).sort(injectSorter.sort);
|
|
255
|
+
const propertyOptionsMap = typeOptions.propertyOptionsMap === undefined
|
|
256
|
+
? EMPTY_MAP
|
|
257
|
+
: typeOptions.propertyOptionsMap;
|
|
258
|
+
const injectOptionsMap = typeOptions.injectOptionsMap === undefined
|
|
259
|
+
? EMPTY_MAP
|
|
260
|
+
: typeOptions.injectOptionsMap;
|
|
261
|
+
const resolvedTypeState = new ResolvedTypeState(this, alias, customValueMap, serializedNullValueResolver, serializedDefaultValue, serializedDefaultValueResolver, deserializedNullValueResolver, deserializedDefaultValue, deserializedDefaultValueResolver, discriminant, discriminator, factory, injectable, injector, logger, namingConvention, polymorphic, typeMetadataMap, preserveDiscriminator, referenceHandler, serializer, preserveNull, useDefaultValue, useImplicitConversion, propertySorter, sortedPropertyMetadatas, injectSorter, sortedInjectMetadatas, parentTypeArguments, parentTypeMetadatas, ownParentTypeMetadatas, childTypeMetadatas, ownChildTypeMetadatas, propertyOptionsMap, propertyMetadataMap, ownPropertyMetadataMap, injectOptionsMap, injectMetadataMap);
|
|
262
|
+
this.currentTypeState = resolvedTypeState;
|
|
263
|
+
return resolvedTypeState;
|
|
264
|
+
}
|
|
265
|
+
unresolveTypeState() {
|
|
266
|
+
const unresolvedTypeState = new UnresolvedTypeState(this);
|
|
267
|
+
this.currentTypeState = unresolvedTypeState;
|
|
268
|
+
return unresolvedTypeState;
|
|
269
|
+
}
|
|
270
|
+
resolveCustomValueMap() {
|
|
271
|
+
const typeOptionsBase = this.typeOptionsBase;
|
|
272
|
+
const typeOptions = this.typeOptions;
|
|
273
|
+
const customValueMap = new Map();
|
|
274
|
+
if (typeOptions.customValueMap === undefined) {
|
|
275
|
+
return customValueMap;
|
|
276
|
+
}
|
|
277
|
+
const baseCustomValueMap = typeOptionsBase.customValueMap === undefined
|
|
278
|
+
? EMPTY_MAP
|
|
279
|
+
: typeOptionsBase.customValueMap;
|
|
280
|
+
for (const [customKey, customValue] of typeOptions.customValueMap) {
|
|
281
|
+
if (customValue === undefined) {
|
|
282
|
+
customValueMap.set(customKey, baseCustomValueMap.get(customKey));
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
customValueMap.set(customKey, customValue);
|
|
286
|
+
}
|
|
287
|
+
return customValueMap;
|
|
288
|
+
}
|
|
289
|
+
resolveOwnParentTypeMetadatas(parentTypeArguments) {
|
|
290
|
+
const ownParentTypeMetadatas = new Array();
|
|
291
|
+
const parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
292
|
+
for (let i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
293
|
+
ownParentTypeMetadatas.push(parentTypeMetadatas[i]);
|
|
294
|
+
}
|
|
295
|
+
if (this.parentTypeMetadata !== undefined) {
|
|
296
|
+
ownParentTypeMetadatas.push(this.parentTypeMetadata);
|
|
297
|
+
}
|
|
298
|
+
return ownParentTypeMetadatas;
|
|
299
|
+
}
|
|
300
|
+
resolveOwnChildTypeMetadatas() {
|
|
301
|
+
const ownChildTypeMetadatas = new Array();
|
|
302
|
+
for (const childTypeMetadata of this.currentChildTypeMetadataMap.values()) {
|
|
303
|
+
ownChildTypeMetadatas.push(childTypeMetadata);
|
|
304
|
+
}
|
|
305
|
+
for (const setTypeMetadata of this.typeMetadataSet) {
|
|
306
|
+
const typeOptions = setTypeMetadata.typeOptions;
|
|
307
|
+
const parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
308
|
+
? EMPTY_ARRAY
|
|
309
|
+
: typeOptions.parentTypeArguments;
|
|
310
|
+
const parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
311
|
+
for (let i = 0; i < parentTypeMetadatas.length; i++) {
|
|
312
|
+
if (parentTypeMetadatas[i] === this) {
|
|
313
|
+
ownChildTypeMetadatas.push(setTypeMetadata);
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
190
317
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
318
|
+
return ownChildTypeMetadatas;
|
|
319
|
+
}
|
|
320
|
+
resolveParentTypeMetadataSet(typeMetadata, parentTypeMetadataSet = new Set()) {
|
|
321
|
+
if (parentTypeMetadataSet.has(typeMetadata)) {
|
|
322
|
+
return parentTypeMetadataSet;
|
|
323
|
+
}
|
|
324
|
+
parentTypeMetadataSet.add(typeMetadata);
|
|
325
|
+
const typeOptions = typeMetadata.typeOptions;
|
|
326
|
+
const parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
327
|
+
? EMPTY_ARRAY
|
|
328
|
+
: typeOptions.parentTypeArguments;
|
|
329
|
+
const parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
330
|
+
for (let i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
331
|
+
this.resolveParentTypeMetadataSet(parentTypeMetadatas[i], parentTypeMetadataSet);
|
|
332
|
+
}
|
|
333
|
+
if (typeMetadata.parentTypeMetadata !== undefined) {
|
|
334
|
+
this.resolveParentTypeMetadataSet(typeMetadata.parentTypeMetadata, parentTypeMetadataSet);
|
|
335
|
+
}
|
|
336
|
+
return parentTypeMetadataSet;
|
|
337
|
+
}
|
|
338
|
+
resolveChildTypeMetadataSet(typeMetadata, childTypeMetadataSet = new Set()) {
|
|
339
|
+
if (childTypeMetadataSet.has(typeMetadata)) {
|
|
340
|
+
return childTypeMetadataSet;
|
|
341
|
+
}
|
|
342
|
+
childTypeMetadataSet.add(typeMetadata);
|
|
343
|
+
for (const childTypeMetadata of typeMetadata.currentChildTypeMetadataMap.values()) {
|
|
344
|
+
this.resolveChildTypeMetadataSet(childTypeMetadata, childTypeMetadataSet);
|
|
345
|
+
childTypeMetadata.unresolveTypeState();
|
|
346
|
+
}
|
|
347
|
+
for (const setTypeMetadata of this.typeMetadataSet) {
|
|
348
|
+
const typeOptions = setTypeMetadata.typeOptions;
|
|
349
|
+
const parentTypeArguments = typeOptions.parentTypeArguments === undefined
|
|
350
|
+
? EMPTY_ARRAY
|
|
351
|
+
: typeOptions.parentTypeArguments;
|
|
352
|
+
const parentTypeMetadatas = this.resolveTypeMetadatas(parentTypeArguments);
|
|
353
|
+
for (let i = 0; i < parentTypeMetadatas.length; i++) {
|
|
354
|
+
if (parentTypeMetadatas[i] === typeMetadata) {
|
|
355
|
+
this.resolveChildTypeMetadataSet(setTypeMetadata, childTypeMetadataSet);
|
|
356
|
+
setTypeMetadata.unresolveTypeState();
|
|
357
|
+
break;
|
|
195
358
|
}
|
|
196
359
|
}
|
|
197
|
-
|
|
360
|
+
}
|
|
361
|
+
return childTypeMetadataSet;
|
|
362
|
+
}
|
|
363
|
+
resolvePropertyMetadataMap(parentTypeMetadatas) {
|
|
364
|
+
const propertyMetadataMap = new Map();
|
|
365
|
+
for (let i = parentTypeMetadatas.length - 1; i >= 0; i--) {
|
|
366
|
+
for (const [propertyName, propertyMetadata] of parentTypeMetadatas[i].currentPropertyMetadataMap) {
|
|
367
|
+
propertyMetadataMap.set(propertyName, propertyMetadata);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
for (const propertyMetadata of this.currentPropertyMetadataMap.values()) {
|
|
371
|
+
propertyMetadata.unresolvePropertyState();
|
|
372
|
+
}
|
|
373
|
+
return propertyMetadataMap;
|
|
374
|
+
}
|
|
375
|
+
extendParentTypeMetadata() {
|
|
376
|
+
const parentTypeMetadata = this.parentTypeMetadata;
|
|
377
|
+
if (parentTypeMetadata !== undefined) {
|
|
378
|
+
parentTypeMetadata.currentChildTypeMetadataMap.set(this.typeFn, this);
|
|
198
379
|
}
|
|
199
380
|
return this;
|
|
200
381
|
}
|
|
@@ -205,8 +386,8 @@ export class TypeMetadata extends Metadata {
|
|
|
205
386
|
}
|
|
206
387
|
const injectTypeFns = ((_a = getOwnReflectMetadata('design:paramtypes', this.typeFn)) !== null && _a !== void 0 ? _a : new Array());
|
|
207
388
|
for (let injectIndex = 0; injectIndex < injectTypeFns.length; injectIndex++) {
|
|
208
|
-
if (!this.
|
|
209
|
-
this.configureInjectMetadata(injectIndex, {
|
|
389
|
+
if (!this.currentInjectMetadataMap.has(injectIndex)) {
|
|
390
|
+
this.configureInjectMetadata(injectIndex, { typeArgument: injectTypeFns[injectIndex] });
|
|
210
391
|
}
|
|
211
392
|
}
|
|
212
393
|
return this;
|
|
@@ -214,254 +395,316 @@ export class TypeMetadata extends Metadata {
|
|
|
214
395
|
hasAlias(alias) {
|
|
215
396
|
this.releaseAlias();
|
|
216
397
|
this.typeOptions.alias = alias;
|
|
217
|
-
if (
|
|
218
|
-
this.
|
|
398
|
+
if (alias !== undefined) {
|
|
399
|
+
this.currentTypeFnMap.set(alias, this.typeFn);
|
|
219
400
|
}
|
|
401
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
220
402
|
return this;
|
|
221
403
|
}
|
|
222
404
|
releaseAlias() {
|
|
223
|
-
const alias = this.alias;
|
|
224
|
-
if (
|
|
225
|
-
this.
|
|
405
|
+
const alias = this.typeOptions.alias;
|
|
406
|
+
if (alias !== undefined && this.currentTypeFnMap.has(alias)) {
|
|
407
|
+
this.currentTypeFnMap.delete(alias);
|
|
408
|
+
}
|
|
409
|
+
return this;
|
|
410
|
+
}
|
|
411
|
+
hasCustomValueMap(customValueMap) {
|
|
412
|
+
let currentCustomValueMap = this.typeOptions.customValueMap;
|
|
413
|
+
if (currentCustomValueMap === undefined) {
|
|
414
|
+
currentCustomValueMap = new Map();
|
|
415
|
+
this.typeOptions.customValueMap = currentCustomValueMap;
|
|
416
|
+
}
|
|
417
|
+
if (customValueMap !== undefined) {
|
|
418
|
+
if (currentCustomValueMap !== customValueMap) {
|
|
419
|
+
currentCustomValueMap.clear();
|
|
420
|
+
}
|
|
421
|
+
for (const [customKey, customValue] of customValueMap) {
|
|
422
|
+
currentCustomValueMap.set(customKey, customValue);
|
|
423
|
+
}
|
|
226
424
|
}
|
|
425
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
227
426
|
return this;
|
|
228
427
|
}
|
|
229
|
-
|
|
230
|
-
this.
|
|
428
|
+
hasCustomValue(customKey, customValue) {
|
|
429
|
+
let customValueMap = this.typeOptions.customValueMap;
|
|
430
|
+
if (customValueMap === undefined) {
|
|
431
|
+
customValueMap = new Map();
|
|
432
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
433
|
+
}
|
|
434
|
+
customValueMap.set(customKey, customValue);
|
|
435
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
231
436
|
return this;
|
|
232
437
|
}
|
|
233
|
-
|
|
234
|
-
|
|
438
|
+
extractCustomValue(customKey) {
|
|
439
|
+
let customValue = this.typeState.customValueMap.get(customKey);
|
|
440
|
+
if (customValue === undefined && customKey.customValueResolver !== undefined) {
|
|
441
|
+
customValue = customKey.customValueResolver();
|
|
442
|
+
}
|
|
443
|
+
return customValue;
|
|
235
444
|
}
|
|
236
445
|
hasCustomOptions(customOptions) {
|
|
237
|
-
|
|
238
|
-
|
|
446
|
+
let customValueMap = this.typeOptions.customValueMap;
|
|
447
|
+
if (customValueMap === undefined) {
|
|
448
|
+
customValueMap = new Map();
|
|
449
|
+
this.typeOptions.customValueMap = customValueMap;
|
|
450
|
+
}
|
|
451
|
+
for (let i = 0; i < customOptions.length; i++) {
|
|
452
|
+
customValueMap.set(customOptions[i][0], customOptions[i][1]);
|
|
239
453
|
}
|
|
454
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
240
455
|
return this;
|
|
241
456
|
}
|
|
242
457
|
hasDefaultValue(defaultValue) {
|
|
243
458
|
this.typeOptions.defaultValue = defaultValue;
|
|
459
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
244
460
|
return this;
|
|
245
461
|
}
|
|
246
462
|
hasSerializedDefaultValue(serializedDefaultValue) {
|
|
247
463
|
this.typeOptions.serializedDefaultValue = serializedDefaultValue;
|
|
464
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
248
465
|
return this;
|
|
249
466
|
}
|
|
250
467
|
hasDeserializedDefaultValue(deserializedDefaultValue) {
|
|
251
468
|
this.typeOptions.deserializedDefaultValue = deserializedDefaultValue;
|
|
469
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
252
470
|
return this;
|
|
253
471
|
}
|
|
254
472
|
hasDiscriminator(discriminator) {
|
|
255
473
|
this.typeOptions.discriminator = discriminator;
|
|
474
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
256
475
|
return this;
|
|
257
476
|
}
|
|
258
477
|
hasDiscriminant(discriminant) {
|
|
259
478
|
this.typeOptions.discriminant = discriminant;
|
|
260
|
-
|
|
261
|
-
this.provideDiscriminant(this.typeFn, discriminant);
|
|
262
|
-
}
|
|
263
|
-
return this;
|
|
264
|
-
}
|
|
265
|
-
provideDiscriminant(typeFn, discriminant) {
|
|
266
|
-
this.discriminantMap.set(typeFn, discriminant);
|
|
267
|
-
if (!isEmpty(this.parentTypeMetadatas)) {
|
|
268
|
-
for (const parentTypeMetadata of this.parentTypeMetadatas) {
|
|
269
|
-
parentTypeMetadata.provideDiscriminant(typeFn, discriminant);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
479
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
272
480
|
return this;
|
|
273
481
|
}
|
|
274
482
|
hasFactory(factory) {
|
|
275
483
|
this.typeOptions.factory = factory;
|
|
484
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
276
485
|
return this;
|
|
277
486
|
}
|
|
278
487
|
isInjectable(injectable = true) {
|
|
279
488
|
this.typeOptions.injectable = injectable;
|
|
489
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
280
490
|
return this;
|
|
281
491
|
}
|
|
282
492
|
hasInjector(injector) {
|
|
283
493
|
this.typeOptions.injector = injector;
|
|
494
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
284
495
|
return this;
|
|
285
496
|
}
|
|
286
|
-
|
|
287
|
-
this.typeOptions.
|
|
497
|
+
hasLogger(logger) {
|
|
498
|
+
this.typeOptions.logger = logger;
|
|
499
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
288
500
|
return this;
|
|
289
501
|
}
|
|
290
502
|
hasNamingConvention(namingConvention) {
|
|
291
503
|
this.typeOptions.namingConvention = namingConvention;
|
|
504
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
292
505
|
return this;
|
|
293
506
|
}
|
|
294
507
|
shouldPreserveDiscriminator(preserveDiscriminator = true) {
|
|
295
508
|
this.typeOptions.preserveDiscriminator = preserveDiscriminator;
|
|
509
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
296
510
|
return this;
|
|
297
511
|
}
|
|
298
512
|
hasReferenceHandler(referenceHandler) {
|
|
299
513
|
this.typeOptions.referenceHandler = referenceHandler;
|
|
514
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
300
515
|
return this;
|
|
301
516
|
}
|
|
302
517
|
hasSerializer(serializer) {
|
|
303
518
|
this.typeOptions.serializer = serializer;
|
|
519
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
304
520
|
return this;
|
|
305
521
|
}
|
|
306
522
|
shouldPreserveNull(preserveNull = true) {
|
|
307
523
|
this.typeOptions.preserveNull = preserveNull;
|
|
524
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
308
525
|
return this;
|
|
309
526
|
}
|
|
310
527
|
shouldUseDefaultValue(useDefaultValue = true) {
|
|
311
528
|
this.typeOptions.useDefaultValue = useDefaultValue;
|
|
529
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
312
530
|
return this;
|
|
313
531
|
}
|
|
314
532
|
shouldUseImplicitConversion(useImplicitConversion = true) {
|
|
315
533
|
this.typeOptions.useImplicitConversion = useImplicitConversion;
|
|
534
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
316
535
|
return this;
|
|
317
536
|
}
|
|
318
537
|
hasPropertySorter(propertySorter) {
|
|
319
538
|
this.typeOptions.propertySorter = propertySorter;
|
|
539
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
320
540
|
return this;
|
|
321
541
|
}
|
|
322
542
|
hasInjectSorter(injectSorter) {
|
|
323
543
|
this.typeOptions.injectSorter = injectSorter;
|
|
544
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
545
|
+
return this;
|
|
546
|
+
}
|
|
547
|
+
hasParentTypeArguments(parentTypeArguments) {
|
|
548
|
+
this.typeOptions.parentTypeArguments = parentTypeArguments;
|
|
549
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
324
550
|
return this;
|
|
325
551
|
}
|
|
326
552
|
configurePropertyMetadata(propertyName, propertyOptions) {
|
|
327
|
-
let
|
|
328
|
-
if (
|
|
329
|
-
|
|
330
|
-
this.
|
|
331
|
-
|
|
553
|
+
let propertyOptionsMap = this.typeOptions.propertyOptionsMap;
|
|
554
|
+
if (propertyOptionsMap === undefined) {
|
|
555
|
+
propertyOptionsMap = new Map();
|
|
556
|
+
this.typeOptions.propertyOptionsMap = propertyOptionsMap;
|
|
557
|
+
}
|
|
558
|
+
let propertyMetadata = this.currentPropertyMetadataMap.get(propertyName);
|
|
559
|
+
if (propertyMetadata === undefined) {
|
|
560
|
+
propertyOptions = propertyOptions !== null && propertyOptions !== void 0 ? propertyOptions : {};
|
|
561
|
+
propertyMetadata = new PropertyMetadata(this.typeManager, this.currentTypeFnMap, this, propertyName, propertyOptions);
|
|
562
|
+
this.currentPropertyMetadataMap.set(propertyName, propertyMetadata);
|
|
563
|
+
propertyOptionsMap.set(propertyName, propertyOptions);
|
|
564
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
332
565
|
return propertyMetadata;
|
|
333
566
|
}
|
|
334
|
-
if (
|
|
567
|
+
if (propertyOptions !== undefined) {
|
|
335
568
|
propertyMetadata.configure(propertyOptions);
|
|
336
569
|
}
|
|
570
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
337
571
|
return propertyMetadata;
|
|
338
572
|
}
|
|
339
573
|
configureInjectMetadata(injectIndex, injectOptions) {
|
|
340
|
-
let
|
|
341
|
-
if (
|
|
342
|
-
|
|
343
|
-
this.
|
|
344
|
-
|
|
574
|
+
let injectOptionsMap = this.typeOptions.injectOptionsMap;
|
|
575
|
+
if (injectOptionsMap === undefined) {
|
|
576
|
+
injectOptionsMap = new Map();
|
|
577
|
+
this.typeOptions.injectOptionsMap = injectOptionsMap;
|
|
578
|
+
}
|
|
579
|
+
let injectMetadata = this.currentInjectMetadataMap.get(injectIndex);
|
|
580
|
+
if (injectMetadata === undefined) {
|
|
581
|
+
injectOptions = injectOptions !== null && injectOptions !== void 0 ? injectOptions : {};
|
|
582
|
+
injectMetadata = new InjectMetadata(this.typeManager, this.currentTypeFnMap, this, injectIndex, injectOptions);
|
|
583
|
+
this.currentInjectMetadataMap.set(injectIndex, injectMetadata);
|
|
584
|
+
injectOptionsMap.set(injectIndex, injectOptions);
|
|
585
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
345
586
|
return injectMetadata;
|
|
346
587
|
}
|
|
347
|
-
if (
|
|
588
|
+
if (injectOptions !== undefined) {
|
|
348
589
|
injectMetadata.configure(injectOptions);
|
|
349
590
|
}
|
|
591
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
350
592
|
return injectMetadata;
|
|
351
593
|
}
|
|
352
594
|
hasPropertyMetadataMap(propertyOptionsMap) {
|
|
595
|
+
const currentPropertyOptionsMap = this.clearPropertyOptionsMap(propertyOptionsMap);
|
|
353
596
|
for (const [propertyName, propertyOptions] of propertyOptionsMap) {
|
|
354
|
-
this.
|
|
597
|
+
const propertyMetadata = new PropertyMetadata(this.typeManager, this.currentTypeFnMap, this, propertyName, propertyOptions);
|
|
598
|
+
this.currentPropertyMetadataMap.set(propertyName, propertyMetadata);
|
|
599
|
+
currentPropertyOptionsMap.set(propertyName, propertyOptions);
|
|
355
600
|
}
|
|
601
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
356
602
|
return this;
|
|
357
603
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
604
|
+
clearPropertyOptionsMap(propertyOptionsMap) {
|
|
605
|
+
let currentPropertyOptionsMap = this.typeOptions.propertyOptionsMap;
|
|
606
|
+
if (currentPropertyOptionsMap === undefined) {
|
|
607
|
+
currentPropertyOptionsMap = new Map();
|
|
608
|
+
this.typeOptions.propertyOptionsMap = currentPropertyOptionsMap;
|
|
361
609
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
const typeExtensionMetadataCtorSet = this.extractCustomOption(typeExtensionMetadataCtorSetKey);
|
|
366
|
-
if (!typeExtensionMetadataCtorSet.has(typeExtensionMetadataCtor)) {
|
|
367
|
-
typeExtensionMetadataCtorSet.add(typeExtensionMetadataCtor);
|
|
610
|
+
if (currentPropertyOptionsMap !== propertyOptionsMap) {
|
|
611
|
+
currentPropertyOptionsMap.clear();
|
|
612
|
+
this.currentPropertyMetadataMap.clear();
|
|
368
613
|
}
|
|
369
|
-
|
|
370
|
-
const typeExtensionMetadata = new typeExtensionMetadataCtor(this, initialTypeExtensionOptions);
|
|
371
|
-
return typeExtensionMetadata;
|
|
614
|
+
return currentPropertyOptionsMap;
|
|
372
615
|
}
|
|
373
|
-
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
616
|
+
hasInjectMetadataMap(injectOptionsMap) {
|
|
617
|
+
const currentInjectOptionsMap = this.clearInjectOptionsMap(injectOptionsMap);
|
|
618
|
+
for (const [injectIndex, injectOptions] of injectOptionsMap) {
|
|
619
|
+
const injectMetadata = new InjectMetadata(this.typeManager, this.currentTypeFnMap, this, injectIndex, injectOptions);
|
|
620
|
+
this.currentInjectMetadataMap.set(injectIndex, injectMetadata);
|
|
621
|
+
currentInjectOptionsMap.set(injectIndex, injectOptions);
|
|
377
622
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
return typeExtensionMetadata;
|
|
623
|
+
this.currentTypeState = new UnresolvedTypeState(this);
|
|
624
|
+
return this;
|
|
381
625
|
}
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
626
|
+
clearInjectOptionsMap(injectOptionsMap) {
|
|
627
|
+
let currentInjectOptionsMap = this.typeOptions.injectOptionsMap;
|
|
628
|
+
if (currentInjectOptionsMap === undefined) {
|
|
629
|
+
currentInjectOptionsMap = new Map();
|
|
630
|
+
this.typeOptions.injectOptionsMap = currentInjectOptionsMap;
|
|
385
631
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
this.
|
|
389
|
-
this.typeOptions.parentTypeFns.push(parentTypeFn);
|
|
632
|
+
if (currentInjectOptionsMap !== injectOptionsMap) {
|
|
633
|
+
currentInjectOptionsMap.clear();
|
|
634
|
+
this.currentInjectMetadataMap.clear();
|
|
390
635
|
}
|
|
391
|
-
|
|
392
|
-
this.hasDiscriminant(this.discriminant);
|
|
393
|
-
return this;
|
|
636
|
+
return currentInjectOptionsMap;
|
|
394
637
|
}
|
|
395
638
|
configure(typeOptions) {
|
|
396
|
-
if (
|
|
397
|
-
this.hasParentTypeFns(typeOptions.parentTypeFns);
|
|
398
|
-
}
|
|
399
|
-
if (!isUndefined(typeOptions.alias)) {
|
|
639
|
+
if (typeOptions.alias !== undefined) {
|
|
400
640
|
this.hasAlias(typeOptions.alias);
|
|
401
641
|
}
|
|
402
|
-
if (
|
|
403
|
-
this.
|
|
642
|
+
if (typeOptions.customValueMap !== undefined) {
|
|
643
|
+
this.hasCustomValueMap(typeOptions.customValueMap);
|
|
404
644
|
}
|
|
405
|
-
if (
|
|
645
|
+
if (typeOptions.defaultValue !== undefined) {
|
|
406
646
|
this.hasDefaultValue(typeOptions.defaultValue);
|
|
407
647
|
}
|
|
408
|
-
if (
|
|
648
|
+
if (typeOptions.serializedDefaultValue !== undefined) {
|
|
409
649
|
this.hasSerializedDefaultValue(typeOptions.serializedDefaultValue);
|
|
410
650
|
}
|
|
411
|
-
if (
|
|
651
|
+
if (typeOptions.deserializedDefaultValue !== undefined) {
|
|
412
652
|
this.hasDeserializedDefaultValue(typeOptions.deserializedDefaultValue);
|
|
413
653
|
}
|
|
414
|
-
if (
|
|
654
|
+
if (typeOptions.discriminator !== undefined) {
|
|
415
655
|
this.hasDiscriminator(typeOptions.discriminator);
|
|
416
656
|
}
|
|
417
|
-
if (
|
|
657
|
+
if (typeOptions.discriminant !== undefined) {
|
|
418
658
|
this.hasDiscriminant(typeOptions.discriminant);
|
|
419
659
|
}
|
|
420
|
-
if (
|
|
660
|
+
if (typeOptions.factory !== undefined) {
|
|
421
661
|
this.hasFactory(typeOptions.factory);
|
|
422
662
|
}
|
|
423
|
-
if (
|
|
663
|
+
if (typeOptions.injectable !== undefined) {
|
|
424
664
|
this.isInjectable(typeOptions.injectable);
|
|
425
665
|
}
|
|
426
|
-
if (
|
|
666
|
+
if (typeOptions.injector !== undefined) {
|
|
427
667
|
this.hasInjector(typeOptions.injector);
|
|
428
668
|
}
|
|
429
|
-
if (
|
|
430
|
-
this.
|
|
669
|
+
if (typeOptions.logger !== undefined) {
|
|
670
|
+
this.hasLogger(typeOptions.logger);
|
|
431
671
|
}
|
|
432
|
-
if (
|
|
672
|
+
if (typeOptions.namingConvention !== undefined) {
|
|
433
673
|
this.hasNamingConvention(typeOptions.namingConvention);
|
|
434
674
|
}
|
|
435
|
-
if (
|
|
675
|
+
if (typeOptions.preserveDiscriminator !== undefined) {
|
|
436
676
|
this.shouldPreserveDiscriminator(typeOptions.preserveDiscriminator);
|
|
437
677
|
}
|
|
438
|
-
if (
|
|
678
|
+
if (typeOptions.referenceHandler !== undefined) {
|
|
439
679
|
this.hasReferenceHandler(typeOptions.referenceHandler);
|
|
440
680
|
}
|
|
441
|
-
if (
|
|
681
|
+
if (typeOptions.serializer !== undefined) {
|
|
442
682
|
this.hasSerializer(typeOptions.serializer);
|
|
443
683
|
}
|
|
444
|
-
if (
|
|
684
|
+
if (typeOptions.preserveNull !== undefined) {
|
|
445
685
|
this.shouldPreserveNull(typeOptions.preserveNull);
|
|
446
686
|
}
|
|
447
|
-
if (
|
|
687
|
+
if (typeOptions.useDefaultValue !== undefined) {
|
|
448
688
|
this.shouldUseDefaultValue(typeOptions.useDefaultValue);
|
|
449
689
|
}
|
|
450
|
-
if (
|
|
690
|
+
if (typeOptions.useImplicitConversion !== undefined) {
|
|
451
691
|
this.shouldUseImplicitConversion(typeOptions.useImplicitConversion);
|
|
452
692
|
}
|
|
453
|
-
if (
|
|
693
|
+
if (typeOptions.propertyOptionsMap !== undefined) {
|
|
454
694
|
this.hasPropertyMetadataMap(typeOptions.propertyOptionsMap);
|
|
455
695
|
}
|
|
456
|
-
if (
|
|
696
|
+
if (typeOptions.injectOptionsMap !== undefined) {
|
|
457
697
|
this.hasInjectMetadataMap(typeOptions.injectOptionsMap);
|
|
458
698
|
}
|
|
459
|
-
if (
|
|
699
|
+
if (typeOptions.propertySorter !== undefined) {
|
|
460
700
|
this.hasPropertySorter(typeOptions.propertySorter);
|
|
461
701
|
}
|
|
462
|
-
if (
|
|
702
|
+
if (typeOptions.injectSorter !== undefined) {
|
|
463
703
|
this.hasInjectSorter(typeOptions.injectSorter);
|
|
464
704
|
}
|
|
705
|
+
if (typeOptions.parentTypeArguments !== undefined) {
|
|
706
|
+
this.hasParentTypeArguments(typeOptions.parentTypeArguments);
|
|
707
|
+
}
|
|
465
708
|
return this;
|
|
466
709
|
}
|
|
467
710
|
}
|