135 lines
4.3 KiB
Markdown
135 lines
4.3 KiB
Markdown
# fast-copy CHANGELOG
|
|
|
|
## 3.0.1
|
|
|
|
- [#78](https://github.com/planttheidea/fast-copy/pull/78) - Work when running Node process with `--disable-proto=throw` (thanks [@castarco](https://github.com/castarco))
|
|
|
|
## 3.0.0
|
|
|
|
**Breaking changes**
|
|
|
|
- Exports are now always named, so the `.default` suffix is required when accessing
|
|
- CommonJS in Node => `const copy = require('fast-copy').default;`
|
|
- UMD global via CDN => `const copy = globalThis['fast-copy'].default;`
|
|
- `copy.strict` is no longer available; it is now available as the explicit `copyStrict` named import
|
|
- Options have been removed
|
|
- `isStrict` option has been replaced with importing the separate `copyStrict` method
|
|
- `realm` has been removed entirely, as `instanceof` is no longer used internally
|
|
- The `FastCopy` namespace in typings has been removed in favor of explicit import of available types
|
|
|
|
**Enhancements**
|
|
|
|
- Support `exports` option, to have bettern handling for different environments (ESM vs CJS vs UMD) and improve tree-shaking when supported
|
|
- Can now create a custom copier (either standard or strict), allowing maximum performance for specific use-cases
|
|
- Small speed improvements when handling certain object types
|
|
|
|
**Bug fixes**
|
|
|
|
- Correctly handle primitive wrappers, e.g. `new String('foo')`
|
|
|
|
## 2.1.7
|
|
|
|
- Republish of [`2.1.6`](#216), as the release process failed mid-publish
|
|
|
|
## 2.1.6
|
|
|
|
- Revert [#69](https://github.com/planttheidea/fast-copy/pull/69) and [#71](https://github.com/planttheidea/fast-copy/pull/71), as they broke the package for NodeJS consumption (will be reintroduced in v3, as breaking changes are required)
|
|
|
|
## 2.1.5 - DO NOT USE
|
|
|
|
- Ensure `"type": "module"` is set to allow ESM in NodeJS to work [#71](https://github.com/planttheidea/fast-copy/pull/71)
|
|
|
|
## 2.1.4 - DO NOT USE
|
|
|
|
- Provide `"exports"` definition in `package.json` [#69](https://github.com/planttheidea/fast-copy/pull/69) (thanks [@liteoood](https://github.com/ilteoood))
|
|
|
|
## 2.1.3
|
|
|
|
- Fix source maps not referencing source code [#65](https://github.com/planttheidea/fast-copy/pull/65)
|
|
|
|
## 2.1.2
|
|
|
|
- Support `constructor` property override on object [#60](https://github.com/planttheidea/fast-copy/pull/60)
|
|
- Provide better support for `constructor` override on non-plain object types [#61](https://github.com/planttheidea/fast-copy/pull/61)
|
|
- Remove `tslint` in favor of `@typescript-eslint` [#62](https://github.com/planttheidea/fast-copy/pull/62)
|
|
|
|
## 2.1.1
|
|
|
|
- Fix ESM-to-CommonJS issue when using TSC to consume [#37](https://github.com/planttheidea/fast-copy/issues/37)
|
|
- Modify `Blob` cloning to use `blob.slice()` instead of `new Blob()` for speed
|
|
|
|
## 2.1.0
|
|
|
|
- Support cloning `Blob` [#31](https://github.com/planttheidea/fast-copy/pull/31) (thanks [@fratzigner](https://github.com/fratzinger))
|
|
- Fix cloning descriptors that only are getters / setters in strict mode
|
|
- Handle errors when defining properties in strict mode
|
|
|
|
## 2.0.5
|
|
|
|
- Fix issue copying objects referenced multiple times in source [#28](https://github.com/planttheidea/fast-copy/pull/28) (thanks [@darkowic](https://github.com/darkowic))
|
|
|
|
## 2.0.4
|
|
|
|
- Cache length of arrays for faster iteration [#22](https://github.com/planttheidea/fast-copy/pull/22)
|
|
- Update dev dependencies and types
|
|
|
|
## 2.0.3
|
|
|
|
- Add safety to constructing native objects (fixes #19)
|
|
|
|
## 2.0.2
|
|
|
|
- Manually coalesce options instead of use destructuring (performance)
|
|
|
|
## 2.0.1
|
|
|
|
- Fix typings declarations - [#17](https://github.com/planttheidea/fast-copy/pull/17)
|
|
|
|
## 2.0.0
|
|
|
|
- Rewrite in TypeScript
|
|
- Add strict mode (for more accurate and thorough copying, at the expense of less performance)
|
|
|
|
#### BREAKING CHANGES
|
|
|
|
- Second parameter is now an object of [options](README.md#options)
|
|
|
|
## 1.2.4
|
|
|
|
- Ensure `Date` copy uses realm-specific constructor
|
|
|
|
## 1.2.3
|
|
|
|
- Support custom prototype applied to plain object via `Object.create()`
|
|
|
|
## 1.2.2
|
|
|
|
- Support copy of extensions of native `Array` with alternative `push()` method
|
|
|
|
## 1.2.1
|
|
|
|
- Under-the-hood optimizations per recommendations from #7
|
|
|
|
## 1.2.0
|
|
|
|
- Add support for multiple realms
|
|
|
|
## 1.1.2
|
|
|
|
- Optimize order of operations for common use cases
|
|
|
|
## 1.1.1
|
|
|
|
- Fix cache using `WeakSet` when there was support for `WeakMap`s instead of `WeakSet`s (in case one was polyfilled but not the other)
|
|
|
|
## 1.1.0
|
|
|
|
- Add TypeScript and FlowType bindings
|
|
|
|
## 1.0.1
|
|
|
|
- Activate tree-shaking
|
|
|
|
## 1.0.0
|
|
|
|
- Initial release
|