Recent Releases of https://github.com/csbiology/dynamicobj

https://github.com/csbiology/dynamicobj - 7.0.0

What's Changed

  • DeepHash by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/49

Breaking changes.

Improve DynamicObj GetHashCode and by extension Equals methods with recursive deephash function.

DeepHash covers the following types:

  • Primitive types
  • DynamicObj
  • IDictionary
  • Other IEnumerables (List, Array, Seq, ResizeArray...)
  • Option

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/6.0.0...7.0.0

- F#
Published by HLWeil over 1 year ago

https://github.com/csbiology/dynamicobj - 6.0.0

6.0.0

Breaking changes.

Closed issues: - Deep copy: add native fallbacks for objects in js/py - Expand DeepCopy logic to mutable collections that contain primitives - Add a flag for DeepCopyPropertiesTo that enabled to omit static props

Improve DynamicObj deep copy methods and refactor into a separate CopyUtils class for reuse:

The following types/classes can be (recursively) deep copied now:

  • Basic F# types (bool, byte, sbyte, int16, uint16, int, uint, int64, uint64, nativeint, unativeint, float, float32, char, string, unit, decimal)

  • ResizeArrays and Dictionaries containing any combination of basic F# types

  • Dictionaries containing DynamicObj as keys or values in any combination with DynamicObj or basic F# types as keys or values

  • array<DynamicObj>, list<DynamicObj>, ResizeArray<DynamicObj>: These collections of DynamicObj are copied as a new collection with recursively deep copied elements.

  • System.ICloneable: If the property implements ICloneable, the Clone() method is called on the property.

  • DynamicObj (and derived classes): properties that are themselves DynamicObj instances are deep copied recursively. if a derived class has static properties (e.g. instance properties), these can be copied as dynamic properties on the new instance or ignored.

Note on Classes that inherit from DynamicObj:

Classes that inherit from DynamicObj will match the DynamicObj typecheck if they do not implement ICloneable. The deep copied instances will be cast to DynamicObj with deep copied dynamic properties. Staic/instance properties can be copied as dynamic properties on the new instance or be ignored. It should be possible to 'recover' the original type by checking if the needed properties exist as dynamic properties, and then passing them to the class constructor if needed.

Full release notes: https://github.com/CSBiology/DynamicObj/blob/main/RELEASE_NOTES.md Full Changelog: https://github.com/CSBiology/DynamicObj/compare/5.0.0...6.0.0

- F#
Published by kMutagene over 1 year ago

https://github.com/csbiology/dynamicobj - 5.0.0

Breaking changes.

  • Refactor and improve Copy methods on DynamicObj:
    • ShallowCopyDynamicProperties: Copies all dynamic properties to a new DynamicObj instance without trying to prevent reference equality.
    • ShallowCopyDynamicPropertiesTo: Copies all dynamic properties to a target DynamicObj instance without trying to prevent reference equality.
    • DeepCopyProperties: Recursively deep copy a DynamicObj instance (or derived class) with all (static and dynamic) properties. Reinstantiation - and therefore prevention of reference equality - is possible for DynamicObj, array|list|ResizeArray<DynamicObj>, and classes implementing System.Icloneable
    • DeepCopyPropertiesTo: Recursively deep copies all (static and dynamic) properties to a target DynamicObj instance (or derived class). Reinstantiation - and therefore prevention of reference equality - is possible for DynamicObj, array|list|ResizeArray<DynamicObj>, and classes implementing System.Icloneable
  • Copy method was therefore removed
  • Expose CopyUtils class that contains our generic deep copy attempt

Full release notes: https://github.com/CSBiology/DynamicObj/blob/main/RELEASE_NOTES.md

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/4.0.3...5.0.0

- F#
Published by kMutagene over 1 year ago

https://github.com/csbiology/dynamicobj - 4.0.3

What's Changed

  • Fix hash function failing for null property values by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/41

Full release notes: https://github.com/CSBiology/DynamicObj/blob/main/RELEASE_NOTES.md

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/4.0.2...4.0.3

- F#
Published by kMutagene over 1 year ago

https://github.com/csbiology/dynamicobj - 4.0.2

  • Undo DynObj.combine working with #DynamicObj as input - this caused issues with ncombining nested DOs of types that inherited from DynamicObj. The type signature has been fixed to DynamicObj (without the flexible #)

Full release notes: https://github.com/CSBiology/DynamicObj/blob/main/RELEASE_NOTES.md

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/4.0.1...4.0.2

- F#
Published by kMutagene over 1 year ago

https://github.com/csbiology/dynamicobj - 4.0.1

  • Fix DynObj functions not being inlined (#39)

Full release notes: https://github.com/CSBiology/DynamicObj/blob/main/RELEASE_NOTES.md

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/4.0.0...4.0.1

- F#
Published by kMutagene over 1 year ago

https://github.com/csbiology/dynamicobj - DynamicObj v4.0.0

What's Changed

  • Fable compatability by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/23
  • Fixes and copyDynamicProperties by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/27
  • Add typed property retrieval function by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/28
  • Add tests and a fix by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/29
  • DynObj rework and various tests by @kMutagene in https://github.com/CSBiology/DynamicObj/pull/32
  • rename some tests by @kMutagene in https://github.com/CSBiology/DynamicObj/pull/34
  • Api renaming by @kMutagene in https://github.com/CSBiology/DynamicObj/pull/36
  • Add conditional compilation rules to transpilation-specific sections by @HLWeil in https://github.com/CSBiology/DynamicObj/pull/38
  • Fix System.Dynamic.DynamicObject based Serialization via Newtonsoft.Json by @kMutagene in https://github.com/CSBiology/DynamicObj/pull/37

Manual changelog

See RELEASE_NOTES.md

New Contributors

  • @HLWeil made their first contribution in https://github.com/CSBiology/DynamicObj/pull/23

Full Changelog: https://github.com/CSBiology/DynamicObj/compare/2.0.0...4.0.0

- F#
Published by kMutagene almost 2 years ago