Skip to content

Commit

Permalink
releases 3.7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
xuliangzhan committed Feb 17, 2025
1 parent 59469d2 commit 616bde0
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 12 deletions.
4 changes: 2 additions & 2 deletions func/helperCheckCopyKey.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function helperCheckCopyKey (key, val) {
return key !== '__proto__' && key !== 'constructor' && (!val || typeof val !== 'function')
function helperCheckCopyKey (key) {
return key !== '__proto__' && key !== 'constructor'
}

module.exports = helperCheckCopyKey
5 changes: 3 additions & 2 deletions func/merge.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
var isArray = require('./isArray')
var isPlainObject = require('./isPlainObject')
var isFunction = require('./isFunction')
var each = require('./each')

var helperCheckCopyKey = require('./helperCheckCopyKey')

function handleMerge (target, source) {
if ((isPlainObject(target) && isPlainObject(source)) || (isArray(target) && isArray(source))) {
each(source, function (val, key) {
if (helperCheckCopyKey(key, val)) {
target[key] = handleMerge(target[key], val)
if (helperCheckCopyKey(key)) {
target[key] = isFunction(source) ? val : handleMerge(target[key], val)
}
})
return target
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xe-utils",
"version": "3.7.1",
"version": "3.7.2",
"description": "JavaScript 函数库、工具类",
"main": "index.js",
"unpkg": "dist/xe-utils.umd.min.js",
Expand Down
7 changes: 7 additions & 0 deletions test/base.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2377,6 +2377,13 @@ describe('Base functions', () => {
expect(
obj4.a3 !== 1
).toEqual(true)

const obj5 = {}
const val5 = () => {}
XEUtils.set(obj5, 'aa', val5)
expect(
obj5.aa === val5
).toEqual(true)
})

test('groupBy()', () => {
Expand Down
23 changes: 16 additions & 7 deletions test/object.test.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
const XEUtils = require('../func')

test('assign()', () => {
let obj1 = { bb: { gg: 1 } }
let obj2 = XEUtils.assign({}, obj1, { a: 11 })
const obj1 = { bb: { gg: 1 } }
const obj2 = XEUtils.assign({}, obj1, { a: 11 })
expect(
obj1 === obj2
).toEqual(false)
expect(
obj1.bb === obj2.bb
).toEqual(true)
let obj3 = { bb: { b: 11 } }
let obj4 = XEUtils.assign(obj3, { a: 11 })
const obj3 = { bb: { b: 11 } }
const obj4 = XEUtils.assign(obj3, { a: 11 })
expect(
obj3.bb === obj4.bb
).toEqual(true)
expect(
obj3.bb === obj4.bb
).toEqual(true)
let arr1 = [11, 22]
const arr1 = [11, 22]
expect(
XEUtils.assign(arr1, [44, 11, 55])
).toEqual([44, 11, 55])
Expand All @@ -36,7 +36,7 @@ test('objectMap()', () => {
})

test('objectEach()', () => {
let rest = []
const rest = []
XEUtils.each({ a: 11, b: 22, c: 33, d: 44 }, (item, key, obj) => {
rest.push([item, key])
})
Expand All @@ -46,7 +46,7 @@ test('objectEach()', () => {
})

test('lastObjectEach()', () => {
let rest = []
const rest = []
XEUtils.lastObjectEach({ a: 11, b: 22, c: 33, d: 44 }, (item, key, obj) => {
rest.push([item, key])
})
Expand Down Expand Up @@ -112,4 +112,13 @@ test('merge()', () => {
expect(
obj2
).toEqual({ a: { a1: 11, a2: { bb1: 44, bdd: 55 }, a3: 44 }, bb: [{ vv: 11, cc: 11 }], f: 33, v: [88] })

const obj3 = { b: [{}] }
const val3 = { a: () => {} }
expect(
XEUtils.merge(obj3, val3).a === val3.a
).toEqual(true)
expect(
XEUtils.merge(obj3, val3).b === obj3.b
).toEqual(true)
})

0 comments on commit 616bde0

Please sign in to comment.