- Removed deprecated APIs and organized guides.
- Fixed the NPM publishing issue.
@Type
decorator has been changed to@Nested
, with a simpler syntax.
0.5.1 [BREAKING CHANGE] - 2021-11-22
- re-added accidentally removed deprecated function names
classToPlain
andplainToClass
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
->instanceToPlain
plainToClass
->plainToInstance
classToClass
->instanceToInstance
- prevent unhandled error in
plaintToclass
when 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
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-transform
- 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.