This changelog follows the keep a changelog format to maintain a human readable changelog.
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
group
information is exposed in the@Transform
handler- transformation options are exposed in the
@Transform
handler
- fixed TypeError when
discriminator.subTypes
is 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. */)
exposeDefaultValues
option 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
@Transform
decorator
- 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]
enableImplicitConversion
has been added and imlplicit value conversion is disabled by default.- reverted #234 - fix: write properties with defined default values on prototype which broke the
@Exclude
decorator.
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
excludeExtraneousValues
option
0.2.0 [BREAKING CHANGE]
- add documentation for using
Set
s andMap
s - 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
null
values 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
null
prototype 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
TransformClassToPlain
andTransformClassToClass
decorators
- renamed library from
constructor-utils
toclass-transformer
- completely renamed most of names
- renamed all main methods:
plainToConstructor
now isplainToClass
andconstructorToPlain
isclassToPlain
, etc. plainToConstructorArray
method removed - nowplainToClass
handles it@Skip()
decorator renamed to@Exclude()
- added
@Expose
decorator - added lot of new options: groups, versioning, custom names, etc.
- methods and getters that should be exposed must be decorated with
@Expose
decorator - added
excludedPrefix
to 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-utils
toconstructor-utils
package 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.ts
toconstructor-utils
. - Added
constructor-utils
namespace.