unchanged
Version:
A tiny, fast, unopinionated handler for updating JS objects and arrays immutably
130 lines (72 loc) • 3.41 kB
Markdown
# unchanged CHANGELOG
Yes, the irony is not lost on me. :)
## 2.2.0
- Fix issue where `getOwnPropertySymbols` was expected to always be supported when `Object.assign` was natively supported
- Greatly improve typings of handlers
## 2.1.0
- Add [not](README.md#not) and [notWith](README.md#notwith) methods
- Ensure that objects with custom prototypes always use the same creator
## 2.0.1
- Fix [#33](https://github.com/planttheidea/unchanged/issues/33) - ensure objects created with `Object.create(null)` do not error
- Switch from `babel-minify` to `terser` for minified build
## 2.0.0
Rewrite in TypeScript!
**BREAKING CHANGES**
- `transform` has changed to be `setWith`, and the signature has changed as well (see [the documentation](README.md#setWith) for details)
**NEW FEATURES**
- Added [`is`](README.md#is) method for assertion
- Added function-first `*With` methods corresponding to each existing method (see [the documentation](README.md#transform-methods) for details)
- TypeScript typings
**ADDITIONAL CHANGES**
- Faster `get`s, `set`s, `merge`s, and `remove`s
- Distinct `main`, `module`, and `browser` builds for better universality of consumption
## 1.5.2
- Fix `rollup` build setup with latest `curriable` and `pathington` setups
## 1.5.1
- Return support for `Symbol` keys when using `assign`, `merge`, `remove`, and `set`
- Add documentation for `has` method
- Improve speed of `add` by eliminating unneeded call to curried wrapper
- Improve speed of `merge` by eliminating unneeded extra cloning
- Improve speed of `remove` by eliminating unneeded iterations
- Allow cloning to work consistently even with data from across realms
## 1.5.0
- Add [`assign](README.md#assign) method
## 1.4.2
- Add `"sideEffects": false` for better tree-shaking in webpack
## 1.4.1
- Update to use `babel@7` (smaller build, slightly better performance)
## 1.4.0
- Add [`transform`](README.md#transform) function
- Remove use of native `Object.assign` in favor of local code (faster)
## 1.3.3
- Provide `Object.assign` fallback for IE support without polyfill
- Use internal `reduce` method for performance on non-standard objects
## 1.3.2
- Use direct assignment instead of `.push()` when cloning arrays, to prevent breakage when the array has a custom `push` method
## 1.3.1
- Remove benchmark files from published package
## 1.3.0
- Add [`call`](README.md#call) function
## 1.2.1
- Simplify code for `has`
## 1.2.0
- Add [`getOr`](README.md#getor) function
## 1.1.0
- Add `rollup` for building `dist` files
- Replace homegrown curry with `curriable`
## 1.0.7
- Improve speed of curried methods by removing unneeded `slice` calls and calling with initial `0` index
## 1.0.6
- Replace `map` with `slice` when shallow-cloning arrays (performance and footprint)
## 1.0.5
- Fix issue with using array keys when using `add` with nested arrays
## 1.0.4
- Ensure that the original object's prototype is retained on `merge` when it is not a standard object
## 1.0.3
- Use custom `splice` for `remove` instead of native (in case item is an extension of an `Array` and has messed with `splice`)
## 1.0.2
- Do not create a new object if the object type does not match what the key thinks it should be (causes invalid results for array-like objects)
## 1.0.1
- Remove duplicate call to `isCloneable` (performance improvement when cloning)
## 1.0.0
- Initial release