@dipscope/type-manager 5.0.0-beta.1 → 6.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 +24 -1
- package/CONTRIBUTING.md +58 -0
- package/README.md +100 -59
- package/dist/es2015/alias.js +2 -0
- package/dist/es2015/alias.js.map +1 -0
- package/dist/es2015/any.js +3 -0
- package/dist/es2015/any.js.map +1 -0
- package/dist/es2015/custom-data.js +2 -0
- package/dist/es2015/custom-data.js.map +1 -0
- package/dist/es2015/default-value-resolver.js +2 -0
- package/dist/es2015/default-value-resolver.js.map +1 -0
- package/dist/es2015/default-value.js +2 -0
- package/dist/es2015/default-value.js.map +1 -0
- package/dist/es2015/discriminant.js +2 -0
- package/dist/es2015/discriminant.js.map +1 -0
- package/dist/es2015/discriminator.js +2 -0
- package/dist/es2015/discriminator.js.map +1 -0
- package/dist/es2015/factories/index.js +2 -0
- package/dist/es2015/factories/index.js.map +1 -0
- package/dist/es2015/factories/type-factory.js +34 -0
- package/dist/es2015/factories/type-factory.js.map +1 -0
- package/dist/es2015/factory.js +2 -0
- package/dist/es2015/factory.js.map +1 -0
- package/dist/es2015/functions/get-own-reflect-metadata.js +8 -0
- package/dist/es2015/functions/get-own-reflect-metadata.js.map +1 -0
- package/dist/es2015/functions/get-reflect-metadata.js +8 -0
- package/dist/es2015/functions/get-reflect-metadata.js.map +1 -0
- package/dist/es2015/functions/get-words.js +5 -0
- package/dist/es2015/functions/get-words.js.map +1 -0
- package/{functions/index.d.ts → dist/es2015/functions/index.js} +4 -1
- package/dist/es2015/functions/index.js.map +1 -0
- package/dist/es2015/functions/is-arrow-function.js +5 -0
- package/dist/es2015/functions/is-arrow-function.js.map +1 -0
- package/dist/es2015/functions/is-ctor-function.js +5 -0
- package/dist/es2015/functions/is-ctor-function.js.map +1 -0
- package/dist/es2015/functions/is-data-view.js +4 -0
- package/dist/es2015/functions/is-data-view.js.map +1 -0
- package/dist/es2015/functions/is-float-32-array.js +4 -0
- package/dist/es2015/functions/is-float-32-array.js.map +1 -0
- package/dist/es2015/functions/is-float-64-array.js +4 -0
- package/dist/es2015/functions/is-float-64-array.js.map +1 -0
- package/dist/es2015/functions/is-int-16-array.js +4 -0
- package/dist/es2015/functions/is-int-16-array.js.map +1 -0
- package/dist/es2015/functions/is-int-32-array.js +4 -0
- package/dist/es2015/functions/is-int-32-array.js.map +1 -0
- package/dist/es2015/functions/is-int-8-array.js +4 -0
- package/dist/es2015/functions/is-int-8-array.js.map +1 -0
- package/dist/es2015/functions/is-uint-16-array.js +4 -0
- package/dist/es2015/functions/is-uint-16-array.js.map +1 -0
- package/dist/es2015/functions/is-uint-32-array.js +4 -0
- package/dist/es2015/functions/is-uint-32-array.js.map +1 -0
- package/dist/es2015/functions/is-uint-8-array.js +4 -0
- package/dist/es2015/functions/is-uint-8-array.js.map +1 -0
- package/dist/es2015/functions/is-uint-8-clamped-array.js +4 -0
- package/dist/es2015/functions/is-uint-8-clamped-array.js.map +1 -0
- package/dist/es2015/functions/json-parse.js +4 -0
- package/dist/es2015/functions/json-parse.js.map +1 -0
- package/dist/es2015/functions/json-stringify.js +67 -0
- package/dist/es2015/functions/json-stringify.js.map +1 -0
- package/dist/es2015/functions/name-of.js +8 -0
- package/dist/es2015/functions/name-of.js.map +1 -0
- package/dist/es2015/generic-argument.js +2 -0
- package/dist/es2015/generic-argument.js.map +1 -0
- package/dist/es2015/generic-metadata-resolver.js +2 -0
- package/dist/es2015/generic-metadata-resolver.js.map +1 -0
- package/dist/es2015/generic-metadata.js +2 -0
- package/dist/es2015/generic-metadata.js.map +1 -0
- package/dist/es2015/generic-structure.js +2 -0
- package/dist/es2015/generic-structure.js.map +1 -0
- package/{index.d.ts → dist/es2015/index.js} +13 -0
- package/dist/es2015/index.js.map +1 -0
- package/dist/es2015/inject-index.js +2 -0
- package/dist/es2015/inject-index.js.map +1 -0
- package/dist/es2015/inject-internals.js +2 -0
- package/dist/es2015/inject-internals.js.map +1 -0
- package/dist/es2015/inject-metadata.js +63 -0
- package/dist/es2015/inject-metadata.js.map +1 -0
- package/dist/es2015/inject-options.js +2 -0
- package/dist/es2015/inject-options.js.map +1 -0
- package/dist/es2015/inject-sorter.js +2 -0
- package/dist/es2015/inject-sorter.js.map +1 -0
- package/dist/es2015/inject-sorters/asc-inject-sorter.js +14 -0
- package/dist/es2015/inject-sorters/asc-inject-sorter.js.map +1 -0
- package/dist/es2015/inject-sorters/desc-inject-sorter.js +14 -0
- package/dist/es2015/inject-sorters/desc-inject-sorter.js.map +1 -0
- package/dist/es2015/inject-sorters/index.js +3 -0
- package/dist/es2015/inject-sorters/index.js.map +1 -0
- package/dist/es2015/inject.js +24 -0
- package/dist/es2015/inject.js.map +1 -0
- package/dist/es2015/injector.js +2 -0
- package/dist/es2015/injector.js.map +1 -0
- package/{injectors/index.d.ts → dist/es2015/injectors/index.js} +1 -0
- package/dist/es2015/injectors/index.js.map +1 -0
- package/dist/es2015/injectors/singleton-injector.js +31 -0
- package/dist/es2015/injectors/singleton-injector.js.map +1 -0
- package/dist/es2015/log-level.js +8 -0
- package/dist/es2015/log-level.js.map +1 -0
- package/dist/es2015/log.js +50 -0
- package/dist/es2015/log.js.map +1 -0
- package/dist/es2015/metadata.js +81 -0
- package/dist/es2015/metadata.js.map +1 -0
- package/dist/es2015/naming-convention.js +2 -0
- package/dist/es2015/naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/camel-case-naming-convention.js +17 -0
- package/dist/es2015/naming-conventions/camel-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/flat-case-naming-convention.js +13 -0
- package/dist/es2015/naming-conventions/flat-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js +13 -0
- package/dist/es2015/naming-conventions/flat-upper-case-naming-convention.js.map +1 -0
- package/{naming-conventions/index.d.ts → dist/es2015/naming-conventions/index.js} +1 -0
- package/dist/es2015/naming-conventions/index.js.map +1 -0
- package/dist/es2015/naming-conventions/kebab-case-naming-convention.js +17 -0
- package/dist/es2015/naming-conventions/kebab-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js +17 -0
- package/dist/es2015/naming-conventions/kebab-upper-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/pascal-case-naming-convention.js +18 -0
- package/dist/es2015/naming-conventions/pascal-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/snake-case-naming-convention.js +17 -0
- package/dist/es2015/naming-conventions/snake-case-naming-convention.js.map +1 -0
- package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js +17 -0
- package/dist/es2015/naming-conventions/snake-upper-case-naming-convention.js.map +1 -0
- package/dist/es2015/property-internals.js +2 -0
- package/dist/es2015/property-internals.js.map +1 -0
- package/dist/es2015/property-metadata.js +259 -0
- package/dist/es2015/property-metadata.js.map +1 -0
- package/dist/es2015/property-name.js +2 -0
- package/dist/es2015/property-name.js.map +1 -0
- package/dist/es2015/property-options.js +2 -0
- package/dist/es2015/property-options.js.map +1 -0
- package/dist/es2015/property-sorter.js +2 -0
- package/dist/es2015/property-sorter.js.map +1 -0
- package/dist/es2015/property-sorters/asc-property-sorter.js +14 -0
- package/dist/es2015/property-sorters/asc-property-sorter.js.map +1 -0
- package/dist/es2015/property-sorters/desc-property-sorter.js +14 -0
- package/dist/es2015/property-sorters/desc-property-sorter.js.map +1 -0
- package/dist/es2015/property-sorters/index.js +3 -0
- package/dist/es2015/property-sorters/index.js.map +1 -0
- package/dist/es2015/property.js +39 -0
- package/dist/es2015/property.js.map +1 -0
- package/dist/es2015/reference-callback.js +2 -0
- package/dist/es2015/reference-callback.js.map +1 -0
- package/dist/es2015/reference-handler.js +2 -0
- package/dist/es2015/reference-handler.js.map +1 -0
- package/dist/es2015/reference-handlers/circular-reference-handler.js +36 -0
- package/dist/es2015/reference-handlers/circular-reference-handler.js.map +1 -0
- package/dist/es2015/reference-handlers/index.js +4 -0
- package/dist/es2015/reference-handlers/index.js.map +1 -0
- package/dist/es2015/reference-handlers/json-path-reference-handler.js +69 -0
- package/dist/es2015/reference-handlers/json-path-reference-handler.js.map +1 -0
- package/dist/es2015/reference-handlers/plain-reference-handler.js +32 -0
- package/dist/es2015/reference-handlers/plain-reference-handler.js.map +1 -0
- package/dist/es2015/reference-key.js +2 -0
- package/dist/es2015/reference-key.js.map +1 -0
- package/dist/es2015/reference-value-getter.js +2 -0
- package/dist/es2015/reference-value-getter.js.map +1 -0
- package/dist/es2015/reference-value-setter.js +2 -0
- package/dist/es2015/reference-value-setter.js.map +1 -0
- package/dist/es2015/reference-value.js +2 -0
- package/dist/es2015/reference-value.js.map +1 -0
- package/dist/es2015/serializer-context-options.js +2 -0
- package/dist/es2015/serializer-context-options.js.map +1 -0
- package/dist/es2015/serializer-context.js +295 -0
- package/dist/es2015/serializer-context.js.map +1 -0
- package/dist/es2015/serializer.js +2 -0
- package/dist/es2015/serializer.js.map +1 -0
- package/dist/es2015/serializers/any-serializer.js +22 -0
- package/dist/es2015/serializers/any-serializer.js.map +1 -0
- package/dist/es2015/serializers/array-buffer-serializer.js +41 -0
- package/dist/es2015/serializers/array-buffer-serializer.js.map +1 -0
- package/dist/es2015/serializers/array-serializer.js +60 -0
- package/dist/es2015/serializers/array-serializer.js.map +1 -0
- package/dist/es2015/serializers/boolean-serializer.js +55 -0
- package/dist/es2015/serializers/boolean-serializer.js.map +1 -0
- package/dist/es2015/serializers/data-view-serializer.js +42 -0
- package/dist/es2015/serializers/data-view-serializer.js.map +1 -0
- package/dist/es2015/serializers/date-serializer.js +34 -0
- package/dist/es2015/serializers/date-serializer.js.map +1 -0
- package/dist/es2015/serializers/float-32-array-serializer.js +35 -0
- package/dist/es2015/serializers/float-32-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/float-64-array-serializer.js +35 -0
- package/dist/es2015/serializers/float-64-array-serializer.js.map +1 -0
- package/{serializers/index.d.ts → dist/es2015/serializers/index.js} +3 -0
- package/dist/es2015/serializers/index.js.map +1 -0
- package/dist/es2015/serializers/int-16-array-serializer.js +35 -0
- package/dist/es2015/serializers/int-16-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/int-32-array-serializer.js +35 -0
- package/dist/es2015/serializers/int-32-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/int-8-array-serializer.js +35 -0
- package/dist/es2015/serializers/int-8-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/map-serializer.js +96 -0
- package/dist/es2015/serializers/map-serializer.js.map +1 -0
- package/dist/es2015/serializers/number-serializer.js +49 -0
- package/dist/es2015/serializers/number-serializer.js.map +1 -0
- package/dist/es2015/serializers/set-serializer.js +62 -0
- package/dist/es2015/serializers/set-serializer.js.map +1 -0
- package/dist/es2015/serializers/string-serializer.js +55 -0
- package/dist/es2015/serializers/string-serializer.js.map +1 -0
- package/dist/es2015/serializers/type-serializer.js +121 -0
- package/dist/es2015/serializers/type-serializer.js.map +1 -0
- package/dist/es2015/serializers/uint-16-array-serializer.js +35 -0
- package/dist/es2015/serializers/uint-16-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/uint-32-array-serializer.js +35 -0
- package/dist/es2015/serializers/uint-32-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/uint-8-array-serializer.js +35 -0
- package/dist/es2015/serializers/uint-8-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/uint-8-clamped-array-serializer.js +35 -0
- package/dist/es2015/serializers/uint-8-clamped-array-serializer.js.map +1 -0
- package/dist/es2015/serializers/unknown-serializer.js +22 -0
- package/dist/es2015/serializers/unknown-serializer.js.map +1 -0
- package/dist/es2015/type-abstraction.js +2 -0
- package/dist/es2015/type-abstraction.js.map +1 -0
- package/dist/es2015/type-argument.js +2 -0
- package/dist/es2015/type-argument.js.map +1 -0
- package/dist/es2015/type-configuration.js +2 -0
- package/dist/es2015/type-configuration.js.map +1 -0
- package/dist/es2015/type-context-entry.js +9 -0
- package/dist/es2015/type-context-entry.js.map +1 -0
- package/dist/es2015/type-context.js +25 -0
- package/dist/es2015/type-context.js.map +1 -0
- package/dist/es2015/type-ctor.js +2 -0
- package/dist/es2015/type-ctor.js.map +1 -0
- package/dist/es2015/type-fn.js +2 -0
- package/dist/es2015/type-fn.js.map +1 -0
- package/dist/es2015/type-like.js +2 -0
- package/dist/es2015/type-like.js.map +1 -0
- package/dist/es2015/type-manager-options.js +2 -0
- package/dist/es2015/type-manager-options.js.map +1 -0
- package/dist/es2015/type-manager.js +314 -0
- package/dist/es2015/type-manager.js.map +1 -0
- package/dist/es2015/type-metadata-extractor.js +2 -0
- package/dist/es2015/type-metadata-extractor.js.map +1 -0
- package/dist/es2015/type-metadata-resolver.js +2 -0
- package/dist/es2015/type-metadata-resolver.js.map +1 -0
- package/dist/es2015/type-metadata-symbol.js +2 -0
- package/dist/es2015/type-metadata-symbol.js.map +1 -0
- package/dist/es2015/type-metadata.js +399 -0
- package/dist/es2015/type-metadata.js.map +1 -0
- package/dist/es2015/type-name.js +2 -0
- package/dist/es2015/type-name.js.map +1 -0
- package/dist/es2015/type-options-base.js +2 -0
- package/dist/es2015/type-options-base.js.map +1 -0
- package/dist/es2015/type-options.js +2 -0
- package/dist/es2015/type-options.js.map +1 -0
- package/dist/es2015/type-resolver.js +2 -0
- package/dist/es2015/type-resolver.js.map +1 -0
- package/dist/es2015/type.js +8 -0
- package/dist/es2015/type.js.map +1 -0
- package/dist/es2015/unknown.js +3 -0
- package/dist/es2015/unknown.js.map +1 -0
- package/dist/es5/alias.js +2 -0
- package/dist/es5/alias.js.map +1 -0
- package/dist/es5/any.js +7 -0
- package/dist/es5/any.js.map +1 -0
- package/dist/es5/custom-data.js +2 -0
- package/dist/es5/custom-data.js.map +1 -0
- package/dist/es5/default-value-resolver.js +2 -0
- package/dist/es5/default-value-resolver.js.map +1 -0
- package/dist/es5/default-value.js +2 -0
- package/dist/es5/default-value.js.map +1 -0
- package/dist/es5/discriminant.js +2 -0
- package/dist/es5/discriminant.js.map +1 -0
- package/dist/es5/discriminator.js +2 -0
- package/dist/es5/discriminator.js.map +1 -0
- package/dist/es5/factories/index.js +2 -0
- package/dist/es5/factories/index.js.map +1 -0
- package/dist/es5/factories/type-factory.js +60 -0
- package/dist/es5/factories/type-factory.js.map +1 -0
- package/dist/es5/factory.js +2 -0
- package/dist/es5/factory.js.map +1 -0
- package/dist/es5/functions/get-own-reflect-metadata.js +8 -0
- package/dist/es5/functions/get-own-reflect-metadata.js.map +1 -0
- package/dist/es5/functions/get-reflect-metadata.js +8 -0
- package/dist/es5/functions/get-reflect-metadata.js.map +1 -0
- package/dist/es5/functions/get-words.js +5 -0
- package/dist/es5/functions/get-words.js.map +1 -0
- package/dist/es5/functions/index.js +19 -0
- package/dist/es5/functions/index.js.map +1 -0
- package/dist/es5/functions/is-arrow-function.js +5 -0
- package/dist/es5/functions/is-arrow-function.js.map +1 -0
- package/dist/es5/functions/is-ctor-function.js +5 -0
- package/dist/es5/functions/is-ctor-function.js.map +1 -0
- package/dist/es5/functions/is-data-view.js +4 -0
- package/dist/es5/functions/is-data-view.js.map +1 -0
- package/dist/es5/functions/is-float-32-array.js +4 -0
- package/dist/es5/functions/is-float-32-array.js.map +1 -0
- package/dist/es5/functions/is-float-64-array.js +4 -0
- package/dist/es5/functions/is-float-64-array.js.map +1 -0
- package/dist/es5/functions/is-int-16-array.js +4 -0
- package/dist/es5/functions/is-int-16-array.js.map +1 -0
- package/dist/es5/functions/is-int-32-array.js +4 -0
- package/dist/es5/functions/is-int-32-array.js.map +1 -0
- package/dist/es5/functions/is-int-8-array.js +4 -0
- package/dist/es5/functions/is-int-8-array.js.map +1 -0
- package/dist/es5/functions/is-uint-16-array.js +4 -0
- package/dist/es5/functions/is-uint-16-array.js.map +1 -0
- package/dist/es5/functions/is-uint-32-array.js +4 -0
- package/dist/es5/functions/is-uint-32-array.js.map +1 -0
- package/dist/es5/functions/is-uint-8-array.js +4 -0
- package/dist/es5/functions/is-uint-8-array.js.map +1 -0
- package/dist/es5/functions/is-uint-8-clamped-array.js +4 -0
- package/dist/es5/functions/is-uint-8-clamped-array.js.map +1 -0
- package/dist/es5/functions/json-parse.js +4 -0
- package/dist/es5/functions/json-parse.js.map +1 -0
- package/dist/es5/functions/json-stringify.js +67 -0
- package/dist/es5/functions/json-stringify.js.map +1 -0
- package/dist/es5/functions/name-of.js +8 -0
- package/dist/es5/functions/name-of.js.map +1 -0
- package/dist/es5/generic-argument.js +2 -0
- package/dist/es5/generic-argument.js.map +1 -0
- package/dist/es5/generic-metadata-resolver.js +2 -0
- package/dist/es5/generic-metadata-resolver.js.map +1 -0
- package/dist/es5/generic-metadata.js +2 -0
- package/dist/es5/generic-metadata.js.map +1 -0
- package/dist/es5/generic-structure.js +2 -0
- package/dist/es5/generic-structure.js.map +1 -0
- package/dist/es5/index.js +67 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/inject-index.js +2 -0
- package/dist/es5/inject-index.js.map +1 -0
- package/dist/es5/inject-internals.js +2 -0
- package/dist/es5/inject-internals.js.map +1 -0
- package/dist/es5/inject-metadata.js +84 -0
- package/dist/es5/inject-metadata.js.map +1 -0
- package/dist/es5/inject-options.js +2 -0
- package/dist/es5/inject-options.js.map +1 -0
- package/dist/es5/inject-sorter.js +2 -0
- package/dist/es5/inject-sorter.js.map +1 -0
- package/dist/es5/inject-sorters/asc-inject-sorter.js +18 -0
- package/dist/es5/inject-sorters/asc-inject-sorter.js.map +1 -0
- package/dist/es5/inject-sorters/desc-inject-sorter.js +18 -0
- package/dist/es5/inject-sorters/desc-inject-sorter.js.map +1 -0
- package/dist/es5/inject-sorters/index.js +3 -0
- package/dist/es5/inject-sorters/index.js.map +1 -0
- package/dist/es5/inject.js +24 -0
- package/dist/es5/inject.js.map +1 -0
- package/dist/es5/injector.js +2 -0
- package/dist/es5/injector.js.map +1 -0
- package/dist/es5/injectors/index.js +2 -0
- package/dist/es5/injectors/index.js.map +1 -0
- package/dist/es5/injectors/singleton-injector.js +45 -0
- package/dist/es5/injectors/singleton-injector.js.map +1 -0
- package/dist/es5/log-level.js +8 -0
- package/dist/es5/log-level.js.map +1 -0
- package/dist/es5/log.js +65 -0
- package/dist/es5/log.js.map +1 -0
- package/dist/es5/metadata.js +106 -0
- package/dist/es5/metadata.js.map +1 -0
- package/dist/es5/naming-convention.js +2 -0
- package/dist/es5/naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/camel-case-naming-convention.js +21 -0
- package/dist/es5/naming-conventions/camel-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/flat-case-naming-convention.js +17 -0
- package/dist/es5/naming-conventions/flat-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js +17 -0
- package/dist/es5/naming-conventions/flat-upper-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/index.js +9 -0
- package/dist/es5/naming-conventions/index.js.map +1 -0
- package/dist/es5/naming-conventions/kebab-case-naming-convention.js +21 -0
- package/dist/es5/naming-conventions/kebab-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js +21 -0
- package/dist/es5/naming-conventions/kebab-upper-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/pascal-case-naming-convention.js +22 -0
- package/dist/es5/naming-conventions/pascal-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/snake-case-naming-convention.js +21 -0
- package/dist/es5/naming-conventions/snake-case-naming-convention.js.map +1 -0
- package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js +21 -0
- package/dist/es5/naming-conventions/snake-upper-case-naming-convention.js.map +1 -0
- package/dist/es5/property-internals.js +2 -0
- package/dist/es5/property-internals.js.map +1 -0
- package/dist/es5/property-metadata.js +364 -0
- package/dist/es5/property-metadata.js.map +1 -0
- package/dist/es5/property-name.js +2 -0
- package/dist/es5/property-name.js.map +1 -0
- package/dist/es5/property-options.js +2 -0
- package/dist/es5/property-options.js.map +1 -0
- package/dist/es5/property-sorter.js +2 -0
- package/dist/es5/property-sorter.js.map +1 -0
- package/dist/es5/property-sorters/asc-property-sorter.js +18 -0
- package/dist/es5/property-sorters/asc-property-sorter.js.map +1 -0
- package/dist/es5/property-sorters/desc-property-sorter.js +18 -0
- package/dist/es5/property-sorters/desc-property-sorter.js.map +1 -0
- package/dist/es5/property-sorters/index.js +3 -0
- package/dist/es5/property-sorters/index.js.map +1 -0
- package/dist/es5/property.js +39 -0
- package/dist/es5/property.js.map +1 -0
- package/dist/es5/reference-callback.js +2 -0
- package/dist/es5/reference-callback.js.map +1 -0
- package/dist/es5/reference-handler.js +2 -0
- package/dist/es5/reference-handler.js.map +1 -0
- package/dist/es5/reference-handlers/circular-reference-handler.js +40 -0
- package/dist/es5/reference-handlers/circular-reference-handler.js.map +1 -0
- package/dist/es5/reference-handlers/index.js +4 -0
- package/dist/es5/reference-handlers/index.js.map +1 -0
- package/dist/es5/reference-handlers/json-path-reference-handler.js +93 -0
- package/dist/es5/reference-handlers/json-path-reference-handler.js.map +1 -0
- package/dist/es5/reference-handlers/plain-reference-handler.js +36 -0
- package/dist/es5/reference-handlers/plain-reference-handler.js.map +1 -0
- package/dist/es5/reference-key.js +2 -0
- package/dist/es5/reference-key.js.map +1 -0
- package/dist/es5/reference-value-getter.js +2 -0
- package/dist/es5/reference-value-getter.js.map +1 -0
- package/dist/es5/reference-value-setter.js +2 -0
- package/dist/es5/reference-value-setter.js.map +1 -0
- package/dist/es5/reference-value.js +2 -0
- package/dist/es5/reference-value.js.map +1 -0
- package/dist/es5/serializer-context-options.js +2 -0
- package/dist/es5/serializer-context-options.js.map +1 -0
- package/dist/es5/serializer-context.js +434 -0
- package/dist/es5/serializer-context.js.map +1 -0
- package/dist/es5/serializer.js +2 -0
- package/dist/es5/serializer.js.map +1 -0
- package/dist/es5/serializers/any-serializer.js +26 -0
- package/dist/es5/serializers/any-serializer.js.map +1 -0
- package/dist/es5/serializers/array-buffer-serializer.js +45 -0
- package/dist/es5/serializers/array-buffer-serializer.js.map +1 -0
- package/dist/es5/serializers/array-serializer.js +70 -0
- package/dist/es5/serializers/array-serializer.js.map +1 -0
- package/dist/es5/serializers/boolean-serializer.js +59 -0
- package/dist/es5/serializers/boolean-serializer.js.map +1 -0
- package/dist/es5/serializers/data-view-serializer.js +46 -0
- package/dist/es5/serializers/data-view-serializer.js.map +1 -0
- package/dist/es5/serializers/date-serializer.js +38 -0
- package/dist/es5/serializers/date-serializer.js.map +1 -0
- package/dist/es5/serializers/float-32-array-serializer.js +39 -0
- package/dist/es5/serializers/float-32-array-serializer.js.map +1 -0
- package/dist/es5/serializers/float-64-array-serializer.js +39 -0
- package/dist/es5/serializers/float-64-array-serializer.js.map +1 -0
- package/dist/es5/serializers/index.js +22 -0
- package/dist/es5/serializers/index.js.map +1 -0
- package/dist/es5/serializers/int-16-array-serializer.js +39 -0
- package/dist/es5/serializers/int-16-array-serializer.js.map +1 -0
- package/dist/es5/serializers/int-32-array-serializer.js +39 -0
- package/dist/es5/serializers/int-32-array-serializer.js.map +1 -0
- package/dist/es5/serializers/int-8-array-serializer.js +39 -0
- package/dist/es5/serializers/int-8-array-serializer.js.map +1 -0
- package/dist/es5/serializers/map-serializer.js +115 -0
- package/dist/es5/serializers/map-serializer.js.map +1 -0
- package/dist/es5/serializers/number-serializer.js +53 -0
- package/dist/es5/serializers/number-serializer.js.map +1 -0
- package/dist/es5/serializers/set-serializer.js +78 -0
- package/dist/es5/serializers/set-serializer.js.map +1 -0
- package/dist/es5/serializers/string-serializer.js +59 -0
- package/dist/es5/serializers/string-serializer.js.map +1 -0
- package/dist/es5/serializers/type-serializer.js +154 -0
- package/dist/es5/serializers/type-serializer.js.map +1 -0
- package/dist/es5/serializers/uint-16-array-serializer.js +39 -0
- package/dist/es5/serializers/uint-16-array-serializer.js.map +1 -0
- package/dist/es5/serializers/uint-32-array-serializer.js +39 -0
- package/dist/es5/serializers/uint-32-array-serializer.js.map +1 -0
- package/dist/es5/serializers/uint-8-array-serializer.js +39 -0
- package/dist/es5/serializers/uint-8-array-serializer.js.map +1 -0
- package/dist/es5/serializers/uint-8-clamped-array-serializer.js +39 -0
- package/dist/es5/serializers/uint-8-clamped-array-serializer.js.map +1 -0
- package/dist/es5/serializers/unknown-serializer.js +26 -0
- package/dist/es5/serializers/unknown-serializer.js.map +1 -0
- package/dist/es5/type-abstraction.js +2 -0
- package/dist/es5/type-abstraction.js.map +1 -0
- package/dist/es5/type-argument.js +2 -0
- package/dist/es5/type-argument.js.map +1 -0
- package/dist/es5/type-configuration.js +2 -0
- package/dist/es5/type-configuration.js.map +1 -0
- package/dist/es5/type-context-entry.js +11 -0
- package/dist/es5/type-context-entry.js.map +1 -0
- package/dist/es5/type-context.js +27 -0
- package/dist/es5/type-context.js.map +1 -0
- package/dist/es5/type-ctor.js +2 -0
- package/dist/es5/type-ctor.js.map +1 -0
- package/dist/es5/type-fn.js +2 -0
- package/dist/es5/type-fn.js.map +1 -0
- package/dist/es5/type-like.js +2 -0
- package/dist/es5/type-like.js.map +1 -0
- package/dist/es5/type-manager-options.js +2 -0
- package/dist/es5/type-manager-options.js.map +1 -0
- package/dist/es5/type-manager.js +407 -0
- package/dist/es5/type-manager.js.map +1 -0
- package/dist/es5/type-metadata-extractor.js +2 -0
- package/dist/es5/type-metadata-extractor.js.map +1 -0
- package/dist/es5/type-metadata-resolver.js +2 -0
- package/dist/es5/type-metadata-resolver.js.map +1 -0
- package/dist/es5/type-metadata-symbol.js +2 -0
- package/dist/es5/type-metadata-symbol.js.map +1 -0
- package/dist/es5/type-metadata.js +545 -0
- package/dist/es5/type-metadata.js.map +1 -0
- package/dist/es5/type-name.js +2 -0
- package/dist/es5/type-name.js.map +1 -0
- package/dist/es5/type-options-base.js +2 -0
- package/dist/es5/type-options-base.js.map +1 -0
- package/dist/es5/type-options.js +2 -0
- package/dist/es5/type-options.js.map +1 -0
- package/dist/es5/type-resolver.js +2 -0
- package/dist/es5/type-resolver.js.map +1 -0
- package/dist/es5/type.js +8 -0
- package/dist/es5/type.js.map +1 -0
- package/dist/es5/unknown.js +7 -0
- package/dist/es5/unknown.js.map +1 -0
- package/{alias.d.ts → dist/types/alias.d.ts} +1 -0
- package/dist/types/alias.d.ts.map +1 -0
- package/dist/types/any.d.ts +10 -0
- package/dist/types/any.d.ts.map +1 -0
- package/{custom-data.d.ts → dist/types/custom-data.d.ts} +1 -0
- package/dist/types/custom-data.d.ts.map +1 -0
- package/{default-value-resolver.d.ts → dist/types/default-value-resolver.d.ts} +1 -0
- package/dist/types/default-value-resolver.d.ts.map +1 -0
- package/{default-value.d.ts → dist/types/default-value.d.ts} +1 -0
- package/dist/types/default-value.d.ts.map +1 -0
- package/{discriminant.d.ts → dist/types/discriminant.d.ts} +1 -0
- package/dist/types/discriminant.d.ts.map +1 -0
- package/{discriminator.d.ts → dist/types/discriminator.d.ts} +1 -0
- package/dist/types/discriminator.d.ts.map +1 -0
- package/dist/types/factories/index.d.ts +2 -0
- package/dist/types/factories/index.d.ts.map +1 -0
- package/{factories → dist/types/factories}/type-factory.d.ts +1 -0
- package/dist/types/factories/type-factory.d.ts.map +1 -0
- package/{factory.d.ts → dist/types/factory.d.ts} +1 -0
- package/dist/types/factory.d.ts.map +1 -0
- package/{functions → dist/types/functions}/get-own-reflect-metadata.d.ts +1 -0
- package/dist/types/functions/get-own-reflect-metadata.d.ts.map +1 -0
- package/{functions → dist/types/functions}/get-reflect-metadata.d.ts +1 -0
- package/dist/types/functions/get-reflect-metadata.d.ts.map +1 -0
- package/{functions → dist/types/functions}/get-words.d.ts +1 -0
- package/dist/types/functions/get-words.d.ts.map +1 -0
- package/dist/types/functions/index.d.ts +19 -0
- package/dist/types/functions/index.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-arrow-function.d.ts +1 -0
- package/dist/types/functions/is-arrow-function.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-ctor-function.d.ts +1 -0
- package/dist/types/functions/is-ctor-function.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-data-view.d.ts +1 -0
- package/dist/types/functions/is-data-view.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-float-32-array.d.ts +1 -0
- package/dist/types/functions/is-float-32-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-float-64-array.d.ts +1 -0
- package/dist/types/functions/is-float-64-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-int-16-array.d.ts +1 -0
- package/dist/types/functions/is-int-16-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-int-32-array.d.ts +1 -0
- package/dist/types/functions/is-int-32-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-int-8-array.d.ts +1 -0
- package/dist/types/functions/is-int-8-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-uint-16-array.d.ts +1 -0
- package/dist/types/functions/is-uint-16-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-uint-32-array.d.ts +1 -0
- package/dist/types/functions/is-uint-32-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-uint-8-array.d.ts +1 -0
- package/dist/types/functions/is-uint-8-array.d.ts.map +1 -0
- package/{functions → dist/types/functions}/is-uint-8-clamped-array.d.ts +1 -0
- package/dist/types/functions/is-uint-8-clamped-array.d.ts.map +1 -0
- package/dist/types/functions/json-parse.d.ts +10 -0
- package/dist/types/functions/json-parse.d.ts.map +1 -0
- package/dist/types/functions/json-stringify.d.ts +11 -0
- package/dist/types/functions/json-stringify.d.ts.map +1 -0
- package/{functions → dist/types/functions}/name-of.d.ts +1 -0
- package/dist/types/functions/name-of.d.ts.map +1 -0
- package/{generic-argument.d.ts → dist/types/generic-argument.d.ts} +1 -0
- package/dist/types/generic-argument.d.ts.map +1 -0
- package/dist/types/generic-metadata-resolver.d.ts +8 -0
- package/dist/types/generic-metadata-resolver.d.ts.map +1 -0
- package/{generic-metadata.d.ts → dist/types/generic-metadata.d.ts} +1 -0
- package/dist/types/generic-metadata.d.ts.map +1 -0
- package/dist/types/generic-structure.d.ts +8 -0
- package/dist/types/generic-structure.d.ts.map +1 -0
- package/dist/types/index.d.ts +67 -0
- package/dist/types/index.d.ts.map +1 -0
- package/{inject-index.d.ts → dist/types/inject-index.d.ts} +1 -0
- package/dist/types/inject-index.d.ts.map +1 -0
- package/dist/types/inject-internals.d.ts +15 -0
- package/dist/types/inject-internals.d.ts.map +1 -0
- package/{inject-metadata.d.ts → dist/types/inject-metadata.d.ts} +55 -9
- package/dist/types/inject-metadata.d.ts.map +1 -0
- package/{inject-options.d.ts → dist/types/inject-options.d.ts} +1 -0
- package/dist/types/inject-options.d.ts.map +1 -0
- package/dist/types/inject-sorter.d.ts +20 -0
- package/dist/types/inject-sorter.d.ts.map +1 -0
- package/dist/types/inject-sorters/asc-inject-sorter.d.ts +21 -0
- package/dist/types/inject-sorters/asc-inject-sorter.d.ts.map +1 -0
- package/dist/types/inject-sorters/desc-inject-sorter.d.ts +21 -0
- package/dist/types/inject-sorters/desc-inject-sorter.d.ts.map +1 -0
- package/dist/types/inject-sorters/index.d.ts +3 -0
- package/dist/types/inject-sorters/index.d.ts.map +1 -0
- package/{inject.d.ts → dist/types/inject.d.ts} +1 -0
- package/dist/types/inject.d.ts.map +1 -0
- package/{injector.d.ts → dist/types/injector.d.ts} +1 -0
- package/dist/types/injector.d.ts.map +1 -0
- package/dist/types/injectors/index.d.ts +2 -0
- package/dist/types/injectors/index.d.ts.map +1 -0
- package/{injectors → dist/types/injectors}/singleton-injector.d.ts +1 -0
- package/dist/types/injectors/singleton-injector.d.ts.map +1 -0
- package/{log-level.d.ts → dist/types/log-level.d.ts} +1 -0
- package/dist/types/log-level.d.ts.map +1 -0
- package/{log.d.ts → dist/types/log.d.ts} +1 -0
- package/dist/types/log.d.ts.map +1 -0
- package/dist/types/metadata.d.ts +101 -0
- package/dist/types/metadata.d.ts.map +1 -0
- package/{naming-convention.d.ts → dist/types/naming-convention.d.ts} +1 -0
- package/dist/types/naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/camel-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/camel-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/flat-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/flat-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/flat-upper-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/flat-upper-case-naming-convention.d.ts.map +1 -0
- package/dist/types/naming-conventions/index.d.ts +9 -0
- package/dist/types/naming-conventions/index.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/kebab-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/kebab-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/kebab-upper-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/kebab-upper-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/pascal-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/pascal-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/snake-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/snake-case-naming-convention.d.ts.map +1 -0
- package/{naming-conventions → dist/types/naming-conventions}/snake-upper-case-naming-convention.d.ts +1 -0
- package/dist/types/naming-conventions/snake-upper-case-naming-convention.d.ts.map +1 -0
- package/dist/types/property-internals.d.ts +29 -0
- package/dist/types/property-internals.d.ts.map +1 -0
- package/dist/types/property-metadata.d.ts +353 -0
- package/dist/types/property-metadata.d.ts.map +1 -0
- package/{property-name.d.ts → dist/types/property-name.d.ts} +1 -0
- package/dist/types/property-name.d.ts.map +1 -0
- package/{property-options.d.ts → dist/types/property-options.d.ts} +1 -0
- package/dist/types/property-options.d.ts.map +1 -0
- package/dist/types/property-sorter.d.ts +20 -0
- package/dist/types/property-sorter.d.ts.map +1 -0
- package/dist/types/property-sorters/asc-property-sorter.d.ts +21 -0
- package/dist/types/property-sorters/asc-property-sorter.d.ts.map +1 -0
- package/dist/types/property-sorters/desc-property-sorter.d.ts +21 -0
- package/dist/types/property-sorters/desc-property-sorter.d.ts.map +1 -0
- package/dist/types/property-sorters/index.d.ts +3 -0
- package/dist/types/property-sorters/index.d.ts.map +1 -0
- package/{property.d.ts → dist/types/property.d.ts} +1 -0
- package/dist/types/property.d.ts.map +1 -0
- package/{reference-callback.d.ts → dist/types/reference-callback.d.ts} +1 -0
- package/dist/types/reference-callback.d.ts.map +1 -0
- package/{reference-handler.d.ts → dist/types/reference-handler.d.ts} +1 -0
- package/dist/types/reference-handler.d.ts.map +1 -0
- package/{reference-handlers/direct-reference-handler.d.ts → dist/types/reference-handlers/circular-reference-handler.d.ts} +4 -3
- package/dist/types/reference-handlers/circular-reference-handler.d.ts.map +1 -0
- package/dist/types/reference-handlers/index.d.ts +4 -0
- package/dist/types/reference-handlers/index.d.ts.map +1 -0
- package/{reference-handlers/path-reference-handler.d.ts → dist/types/reference-handlers/json-path-reference-handler.d.ts} +4 -3
- package/dist/types/reference-handlers/json-path-reference-handler.d.ts.map +1 -0
- package/{reference-handlers/lead-reference-handler.d.ts → dist/types/reference-handlers/plain-reference-handler.d.ts} +4 -3
- package/dist/types/reference-handlers/plain-reference-handler.d.ts.map +1 -0
- package/{reference-key.d.ts → dist/types/reference-key.d.ts} +2 -1
- package/dist/types/reference-key.d.ts.map +1 -0
- package/{reference-value-getter.d.ts → dist/types/reference-value-getter.d.ts} +1 -0
- package/dist/types/reference-value-getter.d.ts.map +1 -0
- package/{reference-value-setter.d.ts → dist/types/reference-value-setter.d.ts} +1 -0
- package/dist/types/reference-value-setter.d.ts.map +1 -0
- package/{reference-value.d.ts → dist/types/reference-value.d.ts} +1 -0
- package/dist/types/reference-value.d.ts.map +1 -0
- package/{serializer-context-options.d.ts → dist/types/serializer-context-options.d.ts} +12 -4
- package/dist/types/serializer-context-options.d.ts.map +1 -0
- package/{serializer-context.d.ts → dist/types/serializer-context.d.ts} +75 -11
- package/dist/types/serializer-context.d.ts.map +1 -0
- package/{serializer.d.ts → dist/types/serializer.d.ts} +1 -0
- package/dist/types/serializer.d.ts.map +1 -0
- package/dist/types/serializers/any-serializer.d.ts +29 -0
- package/dist/types/serializers/any-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/array-buffer-serializer.d.ts +1 -0
- package/dist/types/serializers/array-buffer-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/array-serializer.d.ts +1 -0
- package/dist/types/serializers/array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/boolean-serializer.d.ts +1 -0
- package/dist/types/serializers/boolean-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/data-view-serializer.d.ts +1 -0
- package/dist/types/serializers/data-view-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/date-serializer.d.ts +1 -0
- package/dist/types/serializers/date-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/float-32-array-serializer.d.ts +1 -0
- package/dist/types/serializers/float-32-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/float-64-array-serializer.d.ts +1 -0
- package/dist/types/serializers/float-64-array-serializer.d.ts.map +1 -0
- package/dist/types/serializers/index.d.ts +22 -0
- package/dist/types/serializers/index.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/int-16-array-serializer.d.ts +1 -0
- package/dist/types/serializers/int-16-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/int-32-array-serializer.d.ts +1 -0
- package/dist/types/serializers/int-32-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/int-8-array-serializer.d.ts +1 -0
- package/dist/types/serializers/int-8-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/map-serializer.d.ts +1 -12
- package/dist/types/serializers/map-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/number-serializer.d.ts +1 -0
- package/dist/types/serializers/number-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/set-serializer.d.ts +1 -0
- package/dist/types/serializers/set-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/string-serializer.d.ts +1 -0
- package/dist/types/serializers/string-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/type-serializer.d.ts +1 -0
- package/dist/types/serializers/type-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/uint-16-array-serializer.d.ts +1 -0
- package/dist/types/serializers/uint-16-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/uint-32-array-serializer.d.ts +1 -0
- package/dist/types/serializers/uint-32-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/uint-8-array-serializer.d.ts +1 -0
- package/dist/types/serializers/uint-8-array-serializer.d.ts.map +1 -0
- package/{serializers → dist/types/serializers}/uint-8-clamped-array-serializer.d.ts +1 -0
- package/dist/types/serializers/uint-8-clamped-array-serializer.d.ts.map +1 -0
- package/dist/types/serializers/unknown-serializer.d.ts +29 -0
- package/dist/types/serializers/unknown-serializer.d.ts.map +1 -0
- package/dist/types/type-abstraction.d.ts +7 -0
- package/dist/types/type-abstraction.d.ts.map +1 -0
- package/{type-argument.d.ts → dist/types/type-argument.d.ts} +2 -1
- package/dist/types/type-argument.d.ts.map +1 -0
- package/dist/types/type-configuration.d.ts +17 -0
- package/dist/types/type-configuration.d.ts.map +1 -0
- package/{type-context-entry.d.ts → dist/types/type-context-entry.d.ts} +1 -0
- package/dist/types/type-context-entry.d.ts.map +1 -0
- package/{type-context.d.ts → dist/types/type-context.d.ts} +1 -0
- package/dist/types/type-context.d.ts.map +1 -0
- package/{type-ctor.d.ts → dist/types/type-ctor.d.ts} +1 -0
- package/dist/types/type-ctor.d.ts.map +1 -0
- package/{type-fn.d.ts → dist/types/type-fn.d.ts} +1 -0
- package/dist/types/type-fn.d.ts.map +1 -0
- package/{type-like.d.ts → dist/types/type-like.d.ts} +1 -0
- package/dist/types/type-like.d.ts.map +1 -0
- package/{type-manager-options.d.ts → dist/types/type-manager-options.d.ts} +12 -2
- package/dist/types/type-manager-options.d.ts.map +1 -0
- package/dist/types/type-manager.d.ts +398 -0
- package/dist/types/type-manager.d.ts.map +1 -0
- package/dist/types/type-metadata-extractor.d.ts +9 -0
- package/dist/types/type-metadata-extractor.d.ts.map +1 -0
- package/{type-metadata-resolver.d.ts → dist/types/type-metadata-resolver.d.ts} +1 -0
- package/dist/types/type-metadata-resolver.d.ts.map +1 -0
- package/{type-metadata-symbol.d.ts → dist/types/type-metadata-symbol.d.ts} +1 -0
- package/dist/types/type-metadata-symbol.d.ts.map +1 -0
- package/{type-metadata.d.ts → dist/types/type-metadata.d.ts} +203 -29
- package/dist/types/type-metadata.d.ts.map +1 -0
- package/{type-name.d.ts → dist/types/type-name.d.ts} +1 -0
- package/dist/types/type-name.d.ts.map +1 -0
- package/{type-options-base.d.ts → dist/types/type-options-base.d.ts} +17 -0
- package/dist/types/type-options-base.d.ts.map +1 -0
- package/{type-options.d.ts → dist/types/type-options.d.ts} +1 -7
- package/dist/types/type-options.d.ts.map +1 -0
- package/{type-resolver.d.ts → dist/types/type-resolver.d.ts} +1 -0
- package/dist/types/type-resolver.d.ts.map +1 -0
- package/{type.d.ts → dist/types/type.d.ts} +1 -0
- package/dist/types/type.d.ts.map +1 -0
- package/dist/types/unknown.d.ts +10 -0
- package/dist/types/unknown.d.ts.map +1 -0
- package/dist/umd/index.js +2 -0
- package/dist/umd/index.js.map +1 -0
- package/package.json +26 -14
- package/factories/index.d.ts +0 -1
- package/index.js +0 -1
- package/metadata.d.ts +0 -42
- package/property-metadata.d.ts +0 -196
- package/reference-handlers/index.d.ts +0 -3
- package/type-abstraction.d.ts +0 -8
- package/type-manager.d.ts +0 -331
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,30 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [6.0.0] - 2023-03-22
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Fluent api for declarative configuration.
|
|
13
|
+
- Property metadata sorters.
|
|
14
|
+
- Inject metadata sorters.
|
|
15
|
+
- Stable json stringify and parse functions.
|
|
16
|
+
- Any and unknown type serializers.
|
|
17
|
+
- Modules support.
|
|
18
|
+
- Performance improvements.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- If property type argument is not configured then no error will be thrown and property will be serialized as unknown.
|
|
23
|
+
- Weak reference maps changed to regular maps to allow more extension points.
|
|
24
|
+
- Reference handler names to be more self descriptive.
|
|
25
|
+
|
|
26
|
+
### Migrating from previous version
|
|
27
|
+
|
|
28
|
+
- Replace old declarative configuration calls with newly introduced fluent api.
|
|
29
|
+
- You can still use raw declarative api through the options by adapting method calls.
|
|
30
|
+
|
|
31
|
+
## [5.0.0] - 2022-07-31
|
|
9
32
|
|
|
10
33
|
### Added
|
|
11
34
|
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
First off, thank you for considering contributing to `TypeManager.TS`. It's people like you that make `TypeManager.TS` such a great tool.
|
|
6
|
+
|
|
7
|
+
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
|
|
8
|
+
|
|
9
|
+
## What kinds of contributions we are looking for
|
|
10
|
+
|
|
11
|
+
`TypeManager.TS` is an open source project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into `TypeManager.TS` itself.
|
|
12
|
+
|
|
13
|
+
## Ground Rules
|
|
14
|
+
|
|
15
|
+
Please read our [CODE_OF_CONDUCT.md](https://github.com/dipscope/TypeManager.TS/blob/master/CODE_OF_CONDUCT.md) file to facilitate healthy and constructive community behavior.
|
|
16
|
+
|
|
17
|
+
* Ensure that code that goes into core meets our code style.
|
|
18
|
+
* Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
|
|
19
|
+
* Don't add any new classes to the codebase unless absolutely needed.
|
|
20
|
+
* Keep feature versions as small as possible, preferably one new feature per version.
|
|
21
|
+
* Be welcoming to newcomers and encourage diverse new contributors from all backgrounds.
|
|
22
|
+
|
|
23
|
+
## Your First Contribution
|
|
24
|
+
|
|
25
|
+
Unsure where to begin contributing to `TypeManager.TS`? You can start by looking through the beginner and help-wanted issues. Beginner issues - issues which should only require a few lines of code, and a test or two. Help wanted issues - issues which should be a bit more involved than beginner issues.
|
|
26
|
+
|
|
27
|
+
## How to report a bug
|
|
28
|
+
|
|
29
|
+
If you find a security vulnerability, do NOT open an issue. Email dipscope@gmail.com instead. In order to determine whether you are dealing with a security issue, ask yourself these two questions:
|
|
30
|
+
|
|
31
|
+
* Can I access something that's not mine, or something I shouldn't have access to?
|
|
32
|
+
* Can I disable something for other people?
|
|
33
|
+
|
|
34
|
+
If the answer to either of those two questions are «yes», then you're probably dealing with a security issue. Note that even if you answer «no» to both questions, you may still be dealing with a security issue, so if you're unsure, just email us at dipscope@gmail.com.
|
|
35
|
+
|
|
36
|
+
When filing an issue, make sure to answer these five questions:
|
|
37
|
+
|
|
38
|
+
1. What version of `TypeManager.TS` are you using?
|
|
39
|
+
2. What browser are you using?
|
|
40
|
+
3. What did you do?
|
|
41
|
+
4. What did you expect to see?
|
|
42
|
+
5. What did you see instead?
|
|
43
|
+
|
|
44
|
+
## How to suggest a feature
|
|
45
|
+
|
|
46
|
+
If you find yourself wishing for a feature that doesn't exist in `TypeManager.TS`, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that `TypeManager.TS` has today have been added because our users saw the need. Open an issue on our issues list on GitHub which describes the feature you would like to see, why you need it, and how it should work.
|
|
47
|
+
|
|
48
|
+
## Running the tests
|
|
49
|
+
|
|
50
|
+
If you are going to contribute make sure that all tests are passed by running `npm run test` command in the root project folder.
|
|
51
|
+
|
|
52
|
+
## Deployment
|
|
53
|
+
|
|
54
|
+
This project representing a library and can be built by running `npm run build` command. All compiled production files will be available under `dist` folder.
|
|
55
|
+
|
|
56
|
+
## Notes
|
|
57
|
+
|
|
58
|
+
We are continuously working on this file. If you have not found interesting information feel free to open an issue.
|
package/README.md
CHANGED
|
@@ -155,7 +155,18 @@ for (const user of users)
|
|
|
155
155
|
}
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
Now we can use all power provided by `JavaScript` class instances.
|
|
158
|
+
Now we can use all power provided by `JavaScript` class instances.
|
|
159
|
+
|
|
160
|
+
Furthermore `TypeManager.TS` provides you:
|
|
161
|
+
|
|
162
|
+
* Reflection abilities at runtime;
|
|
163
|
+
* Support for generic types;
|
|
164
|
+
* Handling of cyclic object references and different ways of serialization when they appear;
|
|
165
|
+
* Ability to configure serialization of 3rd party classes;
|
|
166
|
+
* Support for polymorphic types;
|
|
167
|
+
* Great alternative for similar packages like [class-transformer](https://github.com/typestack/class-transformer), [TypedJSON](https://github.com/JohnWeisz/TypedJSON) and [jackson-js](https://github.com/pichillilorenzo/jackson-js);
|
|
168
|
+
|
|
169
|
+
Want to know more? Let's dive into the details.
|
|
159
170
|
|
|
160
171
|
## Installation
|
|
161
172
|
|
|
@@ -196,7 +207,7 @@ Here we have a `User` class with `Type` and `Property` decorators assigned to it
|
|
|
196
207
|
The same configuration can be rewritten using declarative style.
|
|
197
208
|
|
|
198
209
|
```typescript
|
|
199
|
-
import { TypeManager,
|
|
210
|
+
import { TypeManager, TypeMetadata, TypeConfiguration } from '@dipscope/type-manager';
|
|
200
211
|
|
|
201
212
|
export class User
|
|
202
213
|
{
|
|
@@ -204,15 +215,24 @@ export class User
|
|
|
204
215
|
public email: string;
|
|
205
216
|
}
|
|
206
217
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
218
|
+
export class UserConfiguration implements TypeConfiguration<User>
|
|
219
|
+
{
|
|
220
|
+
public configure(typeMetadata: TypeMetadata<User>): void
|
|
221
|
+
{
|
|
222
|
+
typeMetadata.configurePropertyMetadata('name')
|
|
223
|
+
.hasTypeArgument(String);
|
|
224
|
+
|
|
225
|
+
typeMetadata.configurePropertyMetadata('email')
|
|
226
|
+
.hasTypeArgument(String);
|
|
227
|
+
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
TypeManager.applyTypeConfiguration(User, new UserConfiguration());
|
|
213
233
|
```
|
|
214
234
|
|
|
215
|
-
As you can see now our `User` class defined without decorators. Instead you have to call `TypeManager`
|
|
235
|
+
As you can see now our `User` class defined without decorators. Instead you have to call `TypeManager` method and provide `TypeConfiguration` related to `User` type.
|
|
216
236
|
|
|
217
237
|
No matter what style of configuration you have chosen the next step is to call serialize methods of `TypeManager` with providing a type and data you want to process.
|
|
218
238
|
|
|
@@ -243,14 +263,14 @@ Static functions are not the only way to work with a `TypeManager`. You can also
|
|
|
243
263
|
```typescript
|
|
244
264
|
import { TypeManager } from '@dipscope/type-manager';
|
|
245
265
|
|
|
246
|
-
const
|
|
247
|
-
const userObject = userManager.serialize(new User());
|
|
248
|
-
const user = userManager.deserialize(userObject);
|
|
266
|
+
const typeManager = new TypeManager();
|
|
267
|
+
const userObject = userManager.serialize(User, new User());
|
|
268
|
+
const user = userManager.deserialize(User, userObject);
|
|
249
269
|
|
|
250
270
|
user instanceof User; // True.
|
|
251
271
|
```
|
|
252
272
|
|
|
253
|
-
At first glance, it may seems that there is no difference but creating an instance of `TypeManager` preserves a configuration state. You can work with different configurations at the same time
|
|
273
|
+
At first glance, it may seems that there is no difference but creating an instance of `TypeManager` preserves a configuration state. You can work with different configurations at the same time and have different serialization groups. By default all decorator based configurations and static calls are applied to the singleton type manager instance which is automatically created under the hood.
|
|
254
274
|
|
|
255
275
|
## Defining decorators
|
|
256
276
|
|
|
@@ -304,7 +324,7 @@ export class User
|
|
|
304
324
|
}
|
|
305
325
|
```
|
|
306
326
|
|
|
307
|
-
This will register a `name` property for a `User`. Each property has a type associated with it. In our case this is a `String`. By default if no configure options are provided decorator will try to resolve a property type using [reflect-metadata](https://github.com/rbuckton/reflect-metadata). If you are not using reflect metadata then such configuration will result a property type to be `unknown` and
|
|
327
|
+
This will register a `name` property for a `User`. Each property has a type associated with it. In our case this is a `String`. By default if no configure options are provided decorator will try to resolve a property type using [reflect-metadata](https://github.com/rbuckton/reflect-metadata). If you are not using reflect metadata then such configuration will result a property type to be `unknown` and it will result in direct serialization. For such a case you have to explicitly define a property type.
|
|
308
328
|
|
|
309
329
|
```typescript
|
|
310
330
|
import { Type, Property } from '@dipscope/type-manager';
|
|
@@ -427,7 +447,7 @@ export class UserStatus
|
|
|
427
447
|
@Type()
|
|
428
448
|
export class User
|
|
429
449
|
{
|
|
430
|
-
@Property([UserStatus]) public userStatuses: UserStatus
|
|
450
|
+
@Property([UserStatus]) public userStatuses: Array<UserStatus>;
|
|
431
451
|
}
|
|
432
452
|
```
|
|
433
453
|
|
|
@@ -463,7 +483,7 @@ export class UserStatus
|
|
|
463
483
|
@Type()
|
|
464
484
|
export class User
|
|
465
485
|
{
|
|
466
|
-
@Property(Array, [UserStatus]) public userStatuses: UserStatus
|
|
486
|
+
@Property(Array, [UserStatus]) public userStatuses: Array<UserStatus>;
|
|
467
487
|
}
|
|
468
488
|
```
|
|
469
489
|
|
|
@@ -695,7 +715,7 @@ This will affect both serialized and deserialized default value. This will fit p
|
|
|
695
715
|
import { Type, Property } from '@dipscope/type-manager';
|
|
696
716
|
|
|
697
717
|
@Type({
|
|
698
|
-
serializedDefaultValue: () =>
|
|
718
|
+
serializedDefaultValue: () => {},
|
|
699
719
|
deserializedDefaultValue: () => new User()
|
|
700
720
|
})
|
|
701
721
|
export class User
|
|
@@ -973,7 +993,7 @@ With this any value which can be converted to `String` will be converted properl
|
|
|
973
993
|
|
|
974
994
|
## Defining configuration manually
|
|
975
995
|
|
|
976
|
-
There are circumstances when decorators cannot be used or you don't want to. For example you are using a 3rd party package and cannot decorate classes from it. Another use case when you want to configure some options globally. In such scenarios you can define the complete configuration through special
|
|
996
|
+
There are circumstances when decorators cannot be used or you don't want to. For example you are using a 3rd party package and cannot decorate classes from it. Another use case when you want to configure some options globally. In such scenarios you can define the complete configuration through special configure methods.
|
|
977
997
|
|
|
978
998
|
We have separate methods to configure each type manager option, so the provided examples can be simplified to avoid creating additional object. It is useful when you need to configure only one option. In our examples we are always use the main one to give you a general overview.
|
|
979
999
|
|
|
@@ -999,33 +1019,44 @@ For the full list of available global options check `TypeOptionsBase` definition
|
|
|
999
1019
|
|
|
1000
1020
|
### Configuring options per type
|
|
1001
1021
|
|
|
1002
|
-
Here is an example of declarative configuration which can be used for 3rd party or your own classes
|
|
1022
|
+
Here is an example of declarative configuration which can be used for 3rd party or your own classes. Basically you have exact same options as with decorators but configuration is done using method calls.
|
|
1003
1023
|
|
|
1004
1024
|
```typescript
|
|
1005
1025
|
import { DateTime } from '@external-library';
|
|
1006
|
-
import {
|
|
1026
|
+
import { TypeConfiguration, TypeMetadata, TypeManager } from '@dipscope/type-manager';
|
|
1007
1027
|
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1028
|
+
export class DateTimeConfiguration implements TypeConfiguration<DateTime>
|
|
1029
|
+
{
|
|
1030
|
+
public configure(typeMetadata: TypeMetadata<DateTime>): void
|
|
1031
|
+
{
|
|
1032
|
+
typeMetadata.hasAlias('DateTime')
|
|
1033
|
+
.hasSerializer(new DateTimeSerializer());
|
|
1012
1034
|
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
['name', { typeArgument: String, serializable: true, alias: 'username' }],
|
|
1017
|
-
['createdAt', { typeArgument: DateTime }]
|
|
1018
|
-
)
|
|
1019
|
-
};
|
|
1035
|
+
return;
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1020
1038
|
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1039
|
+
export class UserConfiguration implements TypeConfiguration<User>
|
|
1040
|
+
{
|
|
1041
|
+
public configure(typeMetadata: TypeMetadata<User>): void
|
|
1042
|
+
{
|
|
1043
|
+
typeMetadata.hasAlias('User')
|
|
1044
|
+
.hasSerializer(new DateTimeSerializer());
|
|
1027
1045
|
|
|
1028
|
-
|
|
1046
|
+
typeMetadata.configurePropertyMetadata('name')
|
|
1047
|
+
.isSerializable()
|
|
1048
|
+
.hasAlias('username')
|
|
1049
|
+
.hasTypeArgument(String);
|
|
1050
|
+
|
|
1051
|
+
typeMetadata.configurePropertyMetadata('createdAt')
|
|
1052
|
+
.hasTypeArgument(DateTime);
|
|
1053
|
+
|
|
1054
|
+
return;
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
TypeManager.applyTypeConfiguration(DateTime, new DateTimeConfiguration())
|
|
1059
|
+
.applyTypeConfiguration(User, new UserConfiguration());
|
|
1029
1060
|
```
|
|
1030
1061
|
|
|
1031
1062
|
There is a well defined order to how type options are applied when using configure methods on one type. One should remember this when combining and overriding options in different places.
|
|
@@ -1035,7 +1066,7 @@ There is a well defined order to how type options are applied when using configu
|
|
|
1035
1066
|
3. Declarative type options are applied;
|
|
1036
1067
|
4. Property type options are applied;
|
|
1037
1068
|
|
|
1038
|
-
|
|
1069
|
+
With declarative configuration you can declare types like the following and keep metadata in another place.
|
|
1039
1070
|
|
|
1040
1071
|
```typescript
|
|
1041
1072
|
export class User
|
|
@@ -1113,7 +1144,7 @@ import { Type, Property } from '@dipscope/type-manager';
|
|
|
1113
1144
|
@Type()
|
|
1114
1145
|
export class Plot
|
|
1115
1146
|
{
|
|
1116
|
-
@Property(Array, [Shape]) public shapes: Shape
|
|
1147
|
+
@Property(Array, [Shape]) public shapes: Array<Shape>;
|
|
1117
1148
|
}
|
|
1118
1149
|
```
|
|
1119
1150
|
|
|
@@ -1411,11 +1442,11 @@ Now all property names will be converted to snake case while reading them from J
|
|
|
1411
1442
|
|
|
1412
1443
|
### Configuring reference handler
|
|
1413
1444
|
|
|
1414
|
-
Reference handler defines how references to the same objects including a circular one should be treated. We have several reference handlers:
|
|
1445
|
+
Reference handler defines how references to the same objects including a circular one should be treated. We have several reference handlers: circular, json path and plain. Each of them can be used globally or per type.
|
|
1415
1446
|
|
|
1416
|
-
*
|
|
1417
|
-
*
|
|
1418
|
-
*
|
|
1447
|
+
* Circular reference handler preserves object references without making any special changes;
|
|
1448
|
+
* Json path reference handler preserves object references using JSONPath notation;
|
|
1449
|
+
* Plain reference handler preserves object references excluding a circular one. When circular reference is detected it will be set to undefined;
|
|
1419
1450
|
|
|
1420
1451
|
There is nothing better to show the difference than code. For example we have two classes which reference each other:
|
|
1421
1452
|
|
|
@@ -1452,23 +1483,23 @@ const result = TypeManager.serialize(User, user);
|
|
|
1452
1483
|
Here are results returned by different reference handlers:
|
|
1453
1484
|
|
|
1454
1485
|
```typescript
|
|
1455
|
-
//
|
|
1486
|
+
// Circular reference handler...
|
|
1456
1487
|
{ company: { user: result } };
|
|
1457
1488
|
|
|
1458
|
-
//
|
|
1489
|
+
// Json path reference handler...
|
|
1459
1490
|
{ company: { user: { $ref: '$' } } };
|
|
1460
1491
|
|
|
1461
|
-
//
|
|
1492
|
+
// Plain reference handler...
|
|
1462
1493
|
{ company: { user: undefined };
|
|
1463
1494
|
```
|
|
1464
1495
|
|
|
1465
|
-
As you can see `
|
|
1496
|
+
As you can see `CircularReferenceHandler` does not make changes to your data and completely fine until you have to convert circular reference structure to a string. `JSON.stringify` method which we are using under the hood does not support such conversions so you will encounter an error. In this case you can select another reference handler. For example `JsonPathReferenceHandler` which produces JSON string using JSONPath format for circular references supported by many libraries. Or you can simply ignore circular reference when it should be converted to a string and use `PlainReferenceHandler`. To change default reference handler you have to use `TypeManager` configure methods.
|
|
1466
1497
|
|
|
1467
1498
|
```typescript
|
|
1468
|
-
import { TypeManagerOptions, TypeOptionsBase,
|
|
1499
|
+
import { TypeManagerOptions, TypeOptionsBase, JsonPathReferenceHandler } from '@dipscope/type-manager';
|
|
1469
1500
|
|
|
1470
1501
|
const typeOptionsBase: TypeOptionsBase<any> = {
|
|
1471
|
-
referenceHandler: new
|
|
1502
|
+
referenceHandler: new JsonPathReferenceHandler()
|
|
1472
1503
|
};
|
|
1473
1504
|
|
|
1474
1505
|
const typeManagerOptions: TypeManagerOptions = {
|
|
@@ -1601,12 +1632,20 @@ export class DateTime
|
|
|
1601
1632
|
Or declarative configuration.
|
|
1602
1633
|
|
|
1603
1634
|
```typescript
|
|
1604
|
-
import { TypeManager } from '@dipscope/type-manager';
|
|
1635
|
+
import { TypeManager, TypeConfiguration, TypeMetadata } from '@dipscope/type-manager';
|
|
1605
1636
|
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1637
|
+
export class DateTimeConfiguration implements TypeConfiguration<DateTime>
|
|
1638
|
+
{
|
|
1639
|
+
public configure(typeMetadata: TypeMetadata<DateTime>): void
|
|
1640
|
+
{
|
|
1641
|
+
typeMetadata.hasAlias('DateTime')
|
|
1642
|
+
.hasSerializer(new DateTimeSerializer());
|
|
1643
|
+
|
|
1644
|
+
return;
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
TypeManager.applyTypeConfiguration(DateTime, new DateTimeConfiguration());
|
|
1610
1649
|
```
|
|
1611
1650
|
|
|
1612
1651
|
With declarative configuration it is possible to override built in serializers if it's behaviour not suitable for your use cases. Also you can register serializers for types we not yet cover.
|
|
@@ -1645,7 +1684,7 @@ import { Injector as AngularInjector } from '@angular/core';
|
|
|
1645
1684
|
|
|
1646
1685
|
const angularInjector: AngularInjector = ...; // Get framework injector in core module for example.
|
|
1647
1686
|
|
|
1648
|
-
TypeManager.
|
|
1687
|
+
TypeManager.applyTypeOptionsBase({
|
|
1649
1688
|
injector: new CustomInjector(angularInjector)
|
|
1650
1689
|
});
|
|
1651
1690
|
```
|
|
@@ -1702,13 +1741,13 @@ Or declarative configuration.
|
|
|
1702
1741
|
import { TypeManager } from '@dipscope/type-manager';
|
|
1703
1742
|
|
|
1704
1743
|
// Overriding only for user type.
|
|
1705
|
-
TypeManager.
|
|
1744
|
+
TypeManager.applyTypeOptions(User, {
|
|
1706
1745
|
customData: { rank: 1 },
|
|
1707
1746
|
factory: new CustomTypeFactory()
|
|
1708
1747
|
});
|
|
1709
1748
|
|
|
1710
1749
|
// Overriding for any type.
|
|
1711
|
-
TypeManager.
|
|
1750
|
+
TypeManager.applyTypeOptionsBase({
|
|
1712
1751
|
factory: new CustomTypeFactory()
|
|
1713
1752
|
});
|
|
1714
1753
|
```
|
|
@@ -1751,7 +1790,7 @@ Public `convert` method receives a property name as it declared in a class. You
|
|
|
1751
1790
|
```typescript
|
|
1752
1791
|
import { TypeManager } from '@dipscope/type-manager';
|
|
1753
1792
|
|
|
1754
|
-
TypeManager.
|
|
1793
|
+
TypeManager.applyTypeOptionsBase({
|
|
1755
1794
|
namingConvention: new CamelCaseNamingConvention()
|
|
1756
1795
|
});
|
|
1757
1796
|
```
|
|
@@ -1766,6 +1805,7 @@ This section describes certain use cases to separate them from the main document
|
|
|
1766
1805
|
|
|
1767
1806
|
Here is a list of types with built in serializers.
|
|
1768
1807
|
|
|
1808
|
+
* Any;
|
|
1769
1809
|
* Array;
|
|
1770
1810
|
* ArrayBuffer;
|
|
1771
1811
|
* Boolean;
|
|
@@ -1784,6 +1824,7 @@ Here is a list of types with built in serializers.
|
|
|
1784
1824
|
* Uint8ClampedArray;
|
|
1785
1825
|
* Uint16Array;
|
|
1786
1826
|
* Uint32Array;
|
|
1827
|
+
* Unknown;
|
|
1787
1828
|
|
|
1788
1829
|
For these you don't have to do anything to make them work. You are free to [create a custom serializer](#defining-custom-serializer) or override built in one if it does not cover your use case.
|
|
1789
1830
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias.js","sourceRoot":"","sources":["../../src/alias.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/any.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,GAAG;CAGf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-data.js","sourceRoot":"","sources":["../../src/custom-data.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-value-resolver.js","sourceRoot":"","sources":["../../src/default-value-resolver.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-value.js","sourceRoot":"","sources":["../../src/default-value.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminant.js","sourceRoot":"","sources":["../../src/discriminant.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discriminator.js","sourceRoot":"","sources":["../../src/discriminator.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isNil, isUndefined } from 'lodash';
|
|
2
|
+
import { isCtorFunction } from '../functions/is-ctor-function';
|
|
3
|
+
export class TypeFactory {
|
|
4
|
+
build(typeContext, injector) {
|
|
5
|
+
var _a;
|
|
6
|
+
const typeMetadata = typeContext.typeMetadata;
|
|
7
|
+
const typeCtor = isCtorFunction(typeMetadata.typeFn) ? typeMetadata.typeFn : undefined;
|
|
8
|
+
if (isNil(typeCtor)) {
|
|
9
|
+
throw new Error(`${typeMetadata.typeName}: cannot build instance of abstract type.`);
|
|
10
|
+
}
|
|
11
|
+
const injectedKeys = new Array();
|
|
12
|
+
const args = new Array(typeCtor.length).fill(undefined);
|
|
13
|
+
for (const injectMetadata of typeMetadata.sortedInjectMetadatas) {
|
|
14
|
+
const argKey = injectMetadata.key;
|
|
15
|
+
if (!isNil(argKey)) {
|
|
16
|
+
args[injectMetadata.injectIndex] = (_a = typeContext.get(argKey)) === null || _a === void 0 ? void 0 : _a.value;
|
|
17
|
+
injectedKeys.push(argKey);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
args[injectMetadata.injectIndex] = injector.get(injectMetadata.typeMetadata);
|
|
21
|
+
}
|
|
22
|
+
const type = new typeCtor(...args);
|
|
23
|
+
for (const typeContextEntry of typeContext.values()) {
|
|
24
|
+
const propertyMetadata = typeContextEntry.propertyMetadata;
|
|
25
|
+
if (!isNil(propertyMetadata)
|
|
26
|
+
&& !isUndefined(typeContextEntry.value)
|
|
27
|
+
&& !injectedKeys.includes(propertyMetadata.propertyName)) {
|
|
28
|
+
type[propertyMetadata.propertyName] = typeContextEntry.value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return type;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=type-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-factory.js","sourceRoot":"","sources":["../../../src/factories/type-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAS/D,MAAM,OAAO,WAAW;IAUb,KAAK,CAAQ,WAA+B,EAAE,QAAkB;;QAEnE,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAC9C,MAAM,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,IAAI,KAAK,CAAC,QAAQ,CAAC,EACnB;YACI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,CAAC,QAAQ,2CAA2C,CAAC,CAAC;SACxF;QAED,MAAM,YAAY,GAAG,IAAI,KAAK,EAAO,CAAC;QACtC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7D,KAAK,MAAM,cAAc,IAAI,YAAY,CAAC,qBAAqB,EAC/D;YACI,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC;YAElC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAClB;gBACI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,MAAA,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,KAAK,CAAC;gBAElE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE1B,SAAS;aACZ;YAED,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;SAChF;QAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAQ,CAAC;QAE1C,KAAK,MAAM,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,EACnD;YACI,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;YAE3D,IACI,CAAC,KAAK,CAAC,gBAAgB,CAAC;mBACrB,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;mBACpC,CAAC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAE5D;gBACI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;aAChE;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/factory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { isFunction, isObject } from 'lodash';
|
|
2
|
+
export function getOwnReflectMetadata(metadataKey, target) {
|
|
3
|
+
if (isObject(Reflect) && isFunction(Reflect.getOwnMetadata)) {
|
|
4
|
+
return Reflect.getOwnMetadata(metadataKey, target);
|
|
5
|
+
}
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=get-own-reflect-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-own-reflect-metadata.js","sourceRoot":"","sources":["../../../src/functions/get-own-reflect-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA4B9C,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,MAAW;IAElE,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,EAC3D;QACI,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KACtD;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { isFunction, isObject } from 'lodash';
|
|
2
|
+
export function getReflectMetadata(metadataKey, target, propertyKey) {
|
|
3
|
+
if (isObject(Reflect) && isFunction(Reflect.getMetadata)) {
|
|
4
|
+
return Reflect.getMetadata(metadataKey, target, propertyKey);
|
|
5
|
+
}
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=get-reflect-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-reflect-metadata.js","sourceRoot":"","sources":["../../../src/functions/get-reflect-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AA8B9C,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,MAAW,EAAE,WAA4B;IAE7F,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EACxD;QACI,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;KAChE;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-words.js","sourceRoot":"","sources":["../../../src/functions/get-words.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAS/B,MAAM,UAAU,QAAQ,CAAC,CAAS;IAE9B,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './get-reflect-metadata';
|
|
2
1
|
export * from './get-own-reflect-metadata';
|
|
2
|
+
export * from './get-reflect-metadata';
|
|
3
3
|
export * from './get-words';
|
|
4
4
|
export * from './is-arrow-function';
|
|
5
5
|
export * from './is-ctor-function';
|
|
@@ -13,4 +13,7 @@ export * from './is-uint-8-array';
|
|
|
13
13
|
export * from './is-uint-8-clamped-array';
|
|
14
14
|
export * from './is-uint-16-array';
|
|
15
15
|
export * from './is-uint-32-array';
|
|
16
|
+
export * from './json-parse';
|
|
17
|
+
export * from './json-stringify';
|
|
16
18
|
export * from './name-of';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-arrow-function.js","sourceRoot":"","sources":["../../../src/functions/is-arrow-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC,MAAM,UAAU,eAAe,CAAC,CAAM;IAElC,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-ctor-function.js","sourceRoot":"","sources":["../../../src/functions/is-ctor-function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AASpC,MAAM,UAAU,cAAc,CAAC,CAAM;IAEjC,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-data-view.js","sourceRoot":"","sources":["../../../src/functions/is-data-view.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,UAAU,CAAC,CAAM;IAE7B,OAAO,CAAC,YAAY,QAAQ,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-float-32-array.js","sourceRoot":"","sources":["../../../src/functions/is-float-32-array.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,cAAc,CAAC,CAAM;IAEjC,OAAO,CAAC,YAAY,YAAY,CAAC;AACrC,CAAC"}
|