deepmerge-ts
Advanced tools
Comparing version 4.2.2 to 4.3.0
# Changelog | ||
All notable changes to this project will be documented in this file. Dates are displayed in UTC. | ||
# [4.3.0](https://github.com/RebeccaStevens/deepmerge-ts/compare/v4.2.2...v4.3.0) (2023-02-06) | ||
### Features | ||
* create deepmergeInto function ([9c350a0](https://github.com/RebeccaStevens/deepmerge-ts/commit/9c350a051c16534907da459ff466a353b90d5505)), closes [#51](https://github.com/RebeccaStevens/deepmerge-ts/issues/51) | ||
## [4.2.2](https://github.com/RebeccaStevens/deepmerge-ts/compare/v4.2.1...v4.2.2) (2022-09-19) | ||
@@ -5,0 +12,0 @@ |
139
package.json
{ | ||
"name": "deepmerge-ts", | ||
"version": "4.2.2", | ||
"version": "4.3.0", | ||
"description": "Deeply merge 2 or more objects respecting type information.", | ||
@@ -72,7 +72,8 @@ "keywords": [ | ||
"scripts": { | ||
"benchmark": "yarn build && yarn link & cd benchmark && yarn benchmark; cd ..", | ||
"build": "rimraf build && yarn build:npm && yarn build:deno && rimraf build && if-env-defined CI || yarn build:assume-unchanged", | ||
"benchmark": "npm run build && npm run link & cd benchmark && npm run benchmark; cd ..", | ||
"build": "rimraf build && npm run build:node && npm run build:deno && rimraf build && if-env-defined CI || npm run build:assume-unchanged", | ||
"build:assume-unchanged": "cd dist; git update-index --assume-unchanged $(git ls-files | tr '\n' ' '); cd ..", | ||
"build:deno": "rimraf dist/deno && tsc -p tsconfig.build.deno.json && denoify", | ||
"build:npm": "rimraf dist/node types/current && rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript", | ||
"build:node": "rimraf dist/node && rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript", | ||
"build:types": "rimraf types/current && BUILD_TYPES_ONLY=1 rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript", | ||
"check-format": "prettier --list-different \"./**/*.{md,ts,yml}\"", | ||
@@ -82,72 +83,71 @@ "check-spelling": "cspell --config=.cspell.json \"**/*.{md,ts}\"", | ||
"format": "prettier --write \"./**/*.{md,ts,yml}\"", | ||
"lint": "yarn lint:js && yarn lint:md", | ||
"lint": "npm run lint:js && npm run lint:md", | ||
"lint:js": "eslint .", | ||
"lint:md": "markdownlint \"**/*.md\" --config=.markdownlint.json --ignore-path=.markdownlintignore", | ||
"prepare": "husky install", | ||
"test": "yarn test:js && yarn test:types", | ||
"test": "npm run test:js && npm run test:types", | ||
"test:js": "c8 ava", | ||
"test:types": "dtslint --localTs node_modules/typescript/lib --expectOnly tests/types" | ||
"test:types": "npm run build:types && tsd -f 'tests/**/*.test-d.ts'" | ||
}, | ||
"devDependencies": { | ||
"@commitlint/cli": "^17.0.3", | ||
"@commitlint/config-conventional": "^17.0.3", | ||
"@cspell/dict-cryptocurrencies": "^2.0.0", | ||
"@rebeccastevens/eslint-config": "^1.3.23", | ||
"@rollup/plugin-json": "^4.1.0", | ||
"@rollup/plugin-node-resolve": "^14.0.0", | ||
"@rollup/plugin-typescript": "^8.3.3", | ||
"@semantic-release/changelog": "^6.0.1", | ||
"@semantic-release/commit-analyzer": "^9.0.2", | ||
"@semantic-release/git": "^10.0.1", | ||
"@semantic-release/github": "^8.0.5", | ||
"@semantic-release/npm": "^9.0.1", | ||
"@semantic-release/release-notes-generator": "^10.0.3", | ||
"@types/lodash": "^4.14.182", | ||
"@types/node": "^18.0.3", | ||
"@types/rollup-plugin-auto-external": "^2.0.2", | ||
"@typescript-eslint/eslint-plugin": "^5.30.5", | ||
"@typescript-eslint/parser": "^5.30.5", | ||
"ava": "^4.3.1", | ||
"c8": "^7.11.3", | ||
"codecov": "^3.8.3", | ||
"commitizen": "^4.2.4", | ||
"cspell": "^6.2.3", | ||
"denoify": "^1.0.3", | ||
"dtslint": "^4.2.1", | ||
"eslint": "^8.19.0", | ||
"eslint-config-prettier": "^8.5.0", | ||
"eslint-import-resolver-typescript": "^3.2.5", | ||
"eslint-plugin-ava": "^13.2.0", | ||
"eslint-plugin-eslint-comments": "^3.2.0", | ||
"eslint-plugin-eslint-plugin": "^5.0.6", | ||
"eslint-plugin-functional": "^4.2.1", | ||
"eslint-plugin-import": "^2.26.0", | ||
"eslint-plugin-jsdoc": "^39.3.3", | ||
"eslint-plugin-markdown": "^3.0.0", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-optimize-regex": "^1.2.1", | ||
"eslint-plugin-prettier": "^4.2.1", | ||
"eslint-plugin-promise": "^6.0.0", | ||
"eslint-plugin-sonarjs": "^0.15.0", | ||
"eslint-plugin-tsdoc": "^0.2.16", | ||
"eslint-plugin-unicorn": "^43.0.1", | ||
"husky": "^8.0.1", | ||
"if-env-defined": "^1.0.0", | ||
"lint-staged": "^13.0.3", | ||
"lodash": "^4.17.21", | ||
"markdownlint-cli": "^0.32.1", | ||
"marked": "^4.0.17", | ||
"prettier": "^2.7.1", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.76.0", | ||
"rollup-plugin-auto-external": "^2.0.0", | ||
"rollup-plugin-copy": "^3.4.0", | ||
"rollup-plugin-dts": "^4.2.2", | ||
"semantic-release": "^19.0.3", | ||
"source-map-support": "^0.5.21", | ||
"ts-node": "^10.8.2", | ||
"tslib": "^2.4.0", | ||
"typescript": "^4.7.4" | ||
"@commitlint/cli": "17.4.2", | ||
"@commitlint/config-conventional": "17.4.2", | ||
"@cspell/dict-cryptocurrencies": "3.0.1", | ||
"@rebeccastevens/eslint-config": "1.5.2", | ||
"@rollup/plugin-json": "6.0.0", | ||
"@rollup/plugin-node-resolve": "15.0.1", | ||
"@rollup/plugin-typescript": "11.0.0", | ||
"@semantic-release/changelog": "6.0.2", | ||
"@semantic-release/commit-analyzer": "9.0.2", | ||
"@semantic-release/git": "10.0.1", | ||
"@semantic-release/github": "8.0.7", | ||
"@semantic-release/npm": "9.0.2", | ||
"@semantic-release/release-notes-generator": "10.0.3", | ||
"@types/lodash": "4.14.191", | ||
"@types/node": "18.11.18", | ||
"@types/rollup-plugin-auto-external": "2.0.2", | ||
"@typescript-eslint/eslint-plugin": "5.50.0", | ||
"@typescript-eslint/parser": "5.50.0", | ||
"ava": "4.3.3", | ||
"c8": "7.12.0", | ||
"codecov": "3.8.3", | ||
"commitizen": "4.3.0", | ||
"cspell": "6.20.1", | ||
"denoify": "1.4.9", | ||
"eslint": "8.33.0", | ||
"eslint-config-prettier": "8.6.0", | ||
"eslint-import-resolver-typescript": "3.5.3", | ||
"eslint-plugin-ava": "14.0.0", | ||
"eslint-plugin-eslint-comments": "3.2.0", | ||
"eslint-plugin-functional": "5.0.4", | ||
"eslint-plugin-import": "2.27.5", | ||
"eslint-plugin-jsdoc": "39.7.5", | ||
"eslint-plugin-markdown": "3.0.0", | ||
"eslint-plugin-node": "11.1.0", | ||
"eslint-plugin-optimize-regex": "1.2.1", | ||
"eslint-plugin-prettier": "4.2.1", | ||
"eslint-plugin-promise": "6.1.1", | ||
"eslint-plugin-sonarjs": "0.18.0", | ||
"eslint-plugin-unicorn": "45.0.2", | ||
"husky": "8.0.3", | ||
"if-env-defined": "1.0.0", | ||
"lint-staged": "13.1.0", | ||
"lodash": "4.17.21", | ||
"markdownlint-cli": "0.33.0", | ||
"marked": "4.2.12", | ||
"prettier": "2.8.3", | ||
"prettier-plugin-packagejson": "2.4.2", | ||
"rimraf": "3.0.2", | ||
"rollup": "2.79.1", | ||
"rollup-plugin-auto-external": "2.0.0", | ||
"rollup-plugin-copy": "3.4.0", | ||
"rollup-plugin-dts": "4.2.3", | ||
"semantic-release": "20.1.0", | ||
"source-map-support": "0.5.21", | ||
"ts-node": "10.9.1", | ||
"tsd": "0.25.0", | ||
"tslib": "2.5.0", | ||
"typescript": "4.9.5" | ||
}, | ||
"packageManager": "yarn@3.2.3", | ||
"packageManager": "yarn@3.4.1", | ||
"engines": { | ||
@@ -158,7 +158,4 @@ "node": ">=12.4.0" | ||
"out": "dist/deno", | ||
"index": "src/index.ts", | ||
"ports": { | ||
"is-plain-object": "https://raw.githubusercontent.com/jonschlinkert/is-plain-object/v5.0.0/is-plain-object.js" | ||
} | ||
"index": "src/index.ts" | ||
} | ||
} |
@@ -31,6 +31,9 @@ <div align="center"> | ||
# Install with npm | ||
npm install deepmerge-ts --save-dev | ||
npm install deepmerge-ts | ||
# Install with pnpm | ||
pnpm add deepmerge-ts | ||
# Install with yarn | ||
yarn add -D deepmerge-ts | ||
yarn add deepmerge-ts | ||
``` | ||
@@ -115,6 +118,17 @@ | ||
### Using customized config | ||
### Merging into a Target | ||
[See deepmerge custom docs](./docs/deepmergeCustom.md). | ||
You can use `deepmergeInto` if you want to update a target object with the merge result instead of creating a new object. | ||
This function is best used with objects that are all of the same type. | ||
Note: If the target object's type is different to the input objects, we'll assert that the target's type has changed (this is not done automatically with `deepmergeIntoCustom`). | ||
### Customized the Merging Process | ||
We provide a customizer function for each of our main deepmerge functions: `deepmergeCustom` and `deepmergeIntoCustom`. | ||
You can use these to customize the details of how values should be merged together. | ||
See [deepmerge custom docs](./docs/deepmergeCustom.md) for more details. | ||
## Performance | ||
@@ -142,2 +156,2 @@ | ||
[See API docs](./docs/API.md). | ||
See [API docs](./docs/API.md). |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
139179
58
1669
155