This changelog follows the keep a changelog format to maintain a human readable changelog.
0.5.1 [BREAKING CHANGE] - 2021-11-22
- re-added accidentally removed deprecated function names
classToPlainandplainToClass
0.5.0 [BREAKING CHANGE] - 2021-11-20
NOTE: This version fixes a security vulnerability allowing denial of service attacks with a specially crafted request payload. Please update as soon as possible.
See the breaking changes from 0.4.1 release. It was accidentally released as patch version.
0.4.1 [BREAKING CHANGE] - 2021-11-20
NOTE: This version fixes a security vulnerability allowing denial of service attacks with a specially crafted request payload. Please update as soon as possible.
Exported functions has been renamed Some of the exported functions has been renamed to better reflect what they are doing.
classToPlain->instanceToPlainplainToClass->plainToInstanceclassToClass->instanceToInstance
- prevent unhandled error in
plaintToclasswhen union-type member is undefined - fixed a scenario when a specially crafted JS object would be parsed to Array
- various dev-dependencies updated
0.4.0 [BREAKING CHANGE] - 2021-02-14
See the breaking changes from 0.3.2 release. It was accidentally released as patch version.
- add option to ignore unset properties
groupinformation is exposed in the@Transformhandler- transformation options are exposed in the
@Transformhandler
- fixed TypeError when
discriminator.subTypesis not defined
- various dev-dependencies has been updated
0.3.2 [BREAKING CHANGE] - 2021-01-14
Signature change for @Transform decorator
From this version the @Transform decorator receives the transformation parameters in a a wrapper object. You need to
destructure the values you are interested in.
Old way:
@Transform((value, obj, type) => /* Do some stuff with value here. */)New way with wrapper object:
@Transform(({ value, key, obj, type }) => /* Do some stuff with value here. */)exposeDefaultValuesoption has been added, when enabled properties will use their default values when no value is present for the property- the name of the currently transformed parameter is exposed in the
@Transformdecorator
- fixed an issue with transforming
Map(#319) - fixed an issue with sourcemap generation (#472)
- various internal refactors
- various changes to the project tooling
- various dev-dependencies has been updated
0.3.1 - 2020-07-29
- table of content added to readme
- moved from Mocha to Jest
- added Prettier for code formatting
- added Eslint for linting
- updated CI configuration
- removed some unused dev dependencies
- updated dependencies to latest version
- circular dependency fixed
- dev dependencies removed from package.json before publishing (no more security warnings)
- transformer order is deterministic now (#231)
- fix prototype pollution issue (#367)
- various fixes in documentation
0.2.3 [BREAKING CHANGE]
enableImplicitConversionhas been added and imlplicit value conversion is disabled by default.- reverted #234 - fix: write properties with defined default values on prototype which broke the
@Excludedecorator.
0.2.2 [BREAKING CHANGE]
NOTE: This version is deprecated.
This version has introduced a breaking-change when this library is used with class-validator. See #257 for details.
- implicity type conversion between values.
NOTE: This version is deprecated.
- add option to strip unkown properties via using the
excludeExtraneousValuesoption
0.2.0 [BREAKING CHANGE]
- add documentation for using
Sets andMaps - add opotion to pass a discriminator function to convert values into different types based on custom conditions
- added support for polymorphism based on a named type property
- fix bug when transforming
nullvalues as primitives
- improve MetadataStorage perf by changing from Arrays to ES6 Maps by @sheiidan
- fixed getAncestor issue with unknown nested properties by @247GradLabs
- objects with
nullprototype are converted properly now - objects with unknown non primitive properties are converted properly now
- corrected a typo in the README.md
- fixed the deserialize example in the README.md
- added
TransformClassToPlainandTransformClassToClassdecorators
- renamed library from
constructor-utilstoclass-transformer - completely renamed most of names
- renamed all main methods:
plainToConstructornow isplainToClassandconstructorToPlainisclassToPlain, etc. plainToConstructorArraymethod removed - nowplainToClasshandles it@Skip()decorator renamed to@Exclude()- added
@Exposedecorator - added lot of new options: groups, versioning, custom names, etc.
- methods and getters that should be exposed must be decorated with
@Exposedecorator - added
excludedPrefixto class transform options that allows exclude properties that start with one of the given prefix
- fixed array with primitive types being converted
- fixed bugs when getters are not converted with es6 target
- fixed issue #4
- added type guessing during transformation from constructor to plain object
- added sample with generics
- renamed
constructor-utils/constructor-utilstoconstructor-utilspackage namespace
- removed code mappings from package
- removed
import "reflect-metadata"from source code. Now reflect metadata should be included like any other shims.
- Library has changed its name from
serializer.tstoconstructor-utils. - Added
constructor-utilsnamespace.