Skip to content

Releases: riok/mapperly

v4.0.0

11 Oct 08:27
9968132
Compare
Choose a tag to compare

🚨 Breaking Changes

  • ignore indexed properties by @latonz in #1351
  • add enum underlying type conversion by @latonz in #1352
  • strict mappings by default by @latonz in #1353
  • support mapping properties of custom collection mappings by @latonz in #1364
  • improve handling of read-only and immutable types by @latonz in #1413
  • improve member matching performance for member names with lots of upper case letters by @latonz in #1447
  • enum from/to string explicit mappings by @BeeTwin in #1483

🚀 Features

  • introduce MapValueAttribute to map constant values and method provided values by @latonz in #1335
  • add MappingTarget attribute to set the mapping target as the first parameter by @latonz in #1376
  • support additional mapping method parameters by @latonz in #1400
  • inline methods consisting of a single return statement or local variable declaration expression by @hartmair in #1422
  • support private constructors by @latonz in #1405
  • improve handling of read-only and immutable types by @latonz in #1413
  • improve constructor mapping readability by @aradalvand in #1448
  • add support for mappers being nested under interfaces or records by @david-driscoll in #1464
  • enum from/to string explicit mappings by @BeeTwin in #1483
  • enum from/to string naming strategies for different letter casings by @BeeTwin in #1486
  • enum from/to string naming strategies for DescriptionAttribute and EnumMemberAttribute by @latonz in #1507

🐛 Bug Fixes

  • adjust diagnostic messages to be correct when applied with MapValue by @latonz in #1332
  • allow same-name members with different casings by @latonz in #1350
  • replace invalid MapPropertyAttribute constructors with valid versions by @latonz in #1354
  • failing projection with static mapper from another assembly by @trejjam in #1418
  • collect EnumerateUnmappedOrConfiguredTargetMembers to prevent collection was modified exception by @trejjam in #1438
  • support inline expression with casting by @trejjam in #1419
  • correct map nested interfaced enumerations by @latonz in #1404
  • only initialize unflattened nullable target members when needed by @latonz in #1408
  • improve handling of read-only and immutable types by @latonz in #1413
  • improve member matching performance for member names with lots of upper case letters by @latonz in #1447
  • initialize nullable values when assigning null to a child member by @latonz in #1449
  • report inaccessible constructor instead of mapping could not be created by @latonz in #1462
  • support inlining of method with generic type arguments by @trejjam in #1498
  • refactor member matching and member mapping building process by @latonz in #1334

Full Changelog: v3.6.0...v4.0.0
Migration guide: https://mapperly.riok.app/docs/breaking-changes/4-0/

v4.0.0-next.4

29 Sep 17:45
d04ea66
Compare
Choose a tag to compare
v4.0.0-next.4 Pre-release
Pre-release

🚨 Breaking Changes

🚀 Features

  • Adding support for mappers being nested under interfaces or records by @david-driscoll in #1464
  • Enum from/to string explicit mappings by @BeeTwin in #1483
  • Enum from/to string naming strategies by @BeeTwin in #1486
  • Enum naming strategies for DescriptionAttribute and EnuMemberAttribute by @latonz in #1507

🐛 Bug Fixes

  • report inaccessible constructor instead of mapping could not be created by @latonz in #1462
  • Support inlining of method with generic type arguments by @trejjam in #1498

Full Changelog: v4.0.0-next.3...v4.0.0-next.4

v4.0.0-next.3

13 Aug 22:33
35571e5
Compare
Choose a tag to compare
v4.0.0-next.3 Pre-release
Pre-release

🚨 Breaking Changes

  • fix: improve handling of read-only and immutable types by @latonz in #1413
  • fix: improve member matching performance for member names with lots of upper case letters by @latonz in #1447

🚀 Features

🐛 Bug Fixes

  • fix: correct map nested interfaced enumerations by @latonz in #1404
  • fix: only initialize unflattened nullable target members when needed by @latonz in #1408
  • fix: improve handling of read-only and immutable types by @latonz in #1413
  • fix: improve member matching performance for member names with lots of upper case letters by @latonz in #1447
  • fix: initialize nullable values when assigning null to a child member by @latonz in #1449

Full Changelog: v4.0.0-next.2...v4.0.0-next.3

v4.0.0-next.2

06 Aug 01:40
2654e9a
Compare
Choose a tag to compare
v4.0.0-next.2 Pre-release
Pre-release

🚀 Features

  • Add MappingTarget attribute to set the mapping target as the first parameter by @latonz in #1376
  • support additional mapping method parameters by @latonz in #1400
  • feat: inline methods consisting of a single return statement or local variable declaration expression by @hartmair in #1422

🐛 Bug Fixes

  • Fix failing projection with static mapper from another assembly by @trejjam in #1418
  • fix: Collect EnumerateUnmappedOrConfiguredTargetMembers to prevent collection was modified exception by @trejjam in #1438
  • Support inline expression with casting by @trejjam in #1419

Full Changelog: v4.0.0-next.1...v4.0.0-next.2

v4.0.0-next.1

30 Jun 01:38
be76178
Compare
Choose a tag to compare
v4.0.0-next.1 Pre-release
Pre-release

🚨 Breaking Changes

🚀 Features

  • Refactor member matching and member mapping building process by @latonz in #1334
  • Introduce MapValueAttribute to map constant values and method provided values by @latonz in #1335

🐛 Bug Fixes

  • adjust diagnostic messages to be correct when applied with MapValue by @latonz in #1332
  • allow same-name members with different casings by @latonz in #1350
  • Replace invalid MapPropertyAttribute constructors with valid versions by @latonz in #1354

Full Changelog: v3.6.0...v4.0.0-next.0
Breaking changes migration guide: Breaking Changes

v3.6.0

18 Jun 20:40
51aa1da
Compare
Choose a tag to compare

3.6.0 (2024-06-18)

Bug Fixes

  • correct syntax in nameof clause of throw null exceptions (#1263) (3d43a6f)
  • fixes using the wrong object factory when multiple factories with the same target type but different source types are used (#1313) (51aa1da)
  • In disable nullable reference type contexts do not assume nullable IQueryable generic types (#1268) (56b03d2)
  • prefer coalesce operator over if-else to simplify generated source code (#1262) (b4548d2)

Features

  • add a warning when a referenced mapping types do not match (#1256) (2fd22e3)
  • Adds an option to include all members of a single member (#1245) (b69b2a9)
  • Map from source object (#1247) (d790055)

v3.6.0-next.2

03 Jun 15:39
51aa1da
Compare
Choose a tag to compare
v3.6.0-next.2 Pre-release
Pre-release

3.6.0-next.2 (2024-06-03)

Bug Fixes

  • fixes using the wrong object factory when multiple factories with the same target type but different source types are used (#1313) (51aa1da)
  • In disable nullable reference type contexts do not assume nullable IQueryable generic types (#1268) (56b03d2)

v3.6.0-next.1

03 May 18:39
d790055
Compare
Choose a tag to compare
v3.6.0-next.1 Pre-release
Pre-release

3.6.0-next.1 (2024-05-03)

Bug Fixes

  • correct syntax in nameof clause of throw null exceptions (#1263) (3d43a6f)
  • prefer coalesce operator over if-else to simplify generated source code (#1262) (b4548d2)

Features

  • add a warning when a referenced mapping types do not match (#1256) (2fd22e3)
  • Adds an option to include all members of a single member (#1245) (b69b2a9)
  • Map from source object (#1247) (d790055)

v3.5.1

23 Apr 03:15
840b6e1
Compare
Choose a tag to compare

3.5.1 (2024-04-23)

Bug Fixes

  • Add missing generic constraints to generated methods (#1227) (5324612)
  • Do not discover mapping methods marked as [ObjectFactory] automatically (#1234) (1cd6814)
  • expand target type new when inlining in queryable projection mappings (#1238) (840b6e1)
  • extend queryable project inlined arguments with full namespace (#1233) (de3b332)
  • respect user mapping attributes in generic mappings (#1230) (f753ceb)
  • use correct nullable types when referencing named mappings (#1237) (b3f79e8)

v3.5.1-next.2

15 Apr 12:10
840b6e1
Compare
Choose a tag to compare
v3.5.1-next.2 Pre-release
Pre-release

3.5.1-next.2 (2024-04-15)

Bug Fixes

  • Do not discover mapping methods marked as [ObjectFactory] automatically (#1234) (1cd6814)
  • expand target type new when inlining in queryable projection mappings (#1238) (840b6e1)
  • extend queryable project inlined arguments with full namespace (#1233) (de3b332)
  • respect user mapping attributes in generic mappings (#1230) (f753ceb)
  • use correct nullable types when referencing named mappings (#1237) (b3f79e8)