diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c5cc49..e76b1cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,7 @@ ## Changelog -### [v2.0.1](https://github.com/panates/jsopen-objects/compare/v2.0.0...v2.0.1) - +### [v2.0.2](https://github.com/panates/jsopen-objects/compare/v2.0.1...v2.0.2) - #### 🛠 Refactoring and Updates -- refactor: Made default "symbolKeys" option to true @Eray Hanoğlu - -#### 💬 General Changes - -- dev: Coveralls parallel @Eray Hanoğlu -- dev: Coveralls parallel @Eray Hanoğlu +- refactor: Minor typing changes @Eray Hanoğlu diff --git a/package-lock.json b/package-lock.json index 3eb1b4a..847bbed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@jsopen/objects", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@jsopen/objects", - "version": "2.0.1", + "version": "2.0.2", "license": "MIT", "dependencies": { "tslib": "^2.8.1" diff --git a/package.json b/package.json index 3a0cafc..ed13089 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@jsopen/objects", "description": "Helper utilities for working with JavaScript objects and arrays", - "version": "2.0.1", + "version": "2.0.2", "author": "Panates", "license": "MIT", "private": true, diff --git a/src/merge.ts b/src/merge.ts index 60f1d2e..b194b28 100644 --- a/src/merge.ts +++ b/src/merge.ts @@ -3,31 +3,34 @@ import { isBuiltIn } from './type-guards.js'; const hasOwnProperty = Object.prototype.hasOwnProperty; -export function merge( - target: A, - source: B, - options?: merge.Options, -): A & B; -export function merge( +export function merge( target: A, source: [B, C], options?: merge.Options, ): A & B & C; -export function merge( - target: A, - source: [B, C, D], - options?: merge.Options, -): A & B & C & D; -export function merge( - target: A, - source: [B, C, D, E], - options?: merge.Options, -): A & B & C & D & E; +export function merge< + A extends object, + B extends object, + C extends object, + D extends object, +>(target: A, source: [B, C, D], options?: merge.Options): A & B & C & D; +export function merge< + A extends object, + B extends object, + C extends object, + D extends object, + E extends object, +>(target: A, source: [B, C, D, E], options?: merge.Options): A & B & C & D & E; export function merge( target: A, source: [B, C, D, F], options?: merge.Options, ): A & B & C & D & F; +export function merge( + target: A, + source: B, + options?: merge.Options, +): A & B; export function merge( targetObject: any, sourceObject: any, diff --git a/src/omit.ts b/src/omit.ts index 90ac61d..b3d7738 100644 --- a/src/omit.ts +++ b/src/omit.ts @@ -10,7 +10,10 @@ import { } from 'ts-gems'; import { merge } from './merge.js'; -export function omit(obj: T, keys: K[]): Omit { +export function omit( + obj: T, + keys: K[], +): Omit { const keysSet = new Set(keys); return merge({}, obj, { deep: false, @@ -20,11 +23,23 @@ export function omit(obj: T, keys: K[]): Omit { }); } -export function omitUndefined(obj: T, deep: true): DeepOmitUndefined; -export function omitUndefined(obj: T, deep: 'full'): DeeperOmitUndefined; -export function omitUndefined(obj: T, deep: false): OmitUndefined; -export function omitUndefined(obj: T): OmitUndefined; -export function omitUndefined(obj: T, deep?: boolean | 'full') { +export function omitUndefined( + obj: T, + deep: true, +): DeepOmitUndefined; +export function omitUndefined( + obj: T, + deep: 'full', +): DeeperOmitUndefined; +export function omitUndefined( + obj: T, + deep: false, +): OmitUndefined; +export function omitUndefined(obj: T): OmitUndefined; +export function omitUndefined( + obj: T, + deep?: boolean | 'full', +) { return merge({}, obj, { deep, ignoreUndefined: true, @@ -32,11 +47,20 @@ export function omitUndefined(obj: T, deep?: boolean | 'full') { }); } -export function omitNull(obj: T, deep: true): DeepOmitTypes; -export function omitNull(obj: T, deep: 'full'): DeeperUnNullish; -export function omitNull(obj: T, deep: false): OmitTypes; -export function omitNull(obj: T): OmitTypes; -export function omitNull(obj: T, deep?: boolean | 'full') { +export function omitNull( + obj: T, + deep: true, +): DeepOmitTypes; +export function omitNull( + obj: T, + deep: 'full', +): DeeperUnNullish; +export function omitNull( + obj: T, + deep: false, +): OmitTypes; +export function omitNull(obj: T): OmitTypes; +export function omitNull(obj: T, deep?: boolean | 'full') { return merge({}, obj, { deep, ignoreNulls: true, @@ -45,11 +69,20 @@ export function omitNull(obj: T, deep?: boolean | 'full') { }); } -export function omitNullish(obj: T, deep: true): DeepUnNullish; -export function omitNullish(obj: T, deep: 'full'): DeeperUnNullish; -export function omitNullish(obj: T, deep: false): UnNullish; -export function omitNullish(obj: T): UnNullish; -export function omitNullish(obj: T, deep?: boolean | 'full') { +export function omitNullish( + obj: T, + deep: true, +): DeepUnNullish; +export function omitNullish( + obj: T, + deep: 'full', +): DeeperUnNullish; +export function omitNullish( + obj: T, + deep: false, +): UnNullish; +export function omitNullish(obj: T): UnNullish; +export function omitNullish(obj: T, deep?: boolean | 'full') { return merge({}, obj, { deep, ignoreNulls: true,