diff --git a/@xen-orchestra/defined/.USAGE.md b/@xen-orchestra/defined/.USAGE.md index d3e166dfc1a..544ad76adaa 100644 --- a/@xen-orchestra/defined/.USAGE.md +++ b/@xen-orchestra/defined/.USAGE.md @@ -8,10 +8,10 @@ defined(undefined, 'foo', 42) // Returns 'foo' defined([undefined, null, 10]) -// Returns [undefined, null, 10] +// Returns null defined([undefined, undefined], [undefined, undefined, 10]) -// Returns [undefined, undefined] +// Returns 10 defined(() => 'bar', 42) // Returns 'bar' diff --git a/@xen-orchestra/defined/README.md b/@xen-orchestra/defined/README.md index b7a89ef335c..6f5118ba585 100644 --- a/@xen-orchestra/defined/README.md +++ b/@xen-orchestra/defined/README.md @@ -26,10 +26,10 @@ defined(undefined, 'foo', 42) // Returns 'foo' defined([undefined, null, 10]) -// Returns [undefined, null, 10] +// Returns null defined([undefined, undefined], [undefined, undefined, 10]) -// Returns [undefined, undefined] +// Returns 10 defined(() => 'bar', 42) // Returns 'bar' diff --git a/@xen-orchestra/defined/defined.test.mjs b/@xen-orchestra/defined/defined.test.mjs index bfc26089720..d8c6ce3d00f 100644 --- a/@xen-orchestra/defined/defined.test.mjs +++ b/@xen-orchestra/defined/defined.test.mjs @@ -8,11 +8,11 @@ describe('Utilities to help handling (possibly) undefined values', () => { assert.deepStrictEqual(defined(undefined, 'foo', 42), expected) }) it('should return first non undefined value in array', () => { - const expected = [undefined, null, 10] + const expected = null assert.deepStrictEqual(defined([undefined, null, 10]), expected) }) it('should return first non undefined value in arrays', () => { - const expected = [undefined, undefined, undefined] + const expected = 10 assert.deepStrictEqual(defined([undefined, undefined, undefined], [undefined, undefined, 10]), expected) }) it('should return first non undefined value in function', () => { diff --git a/@xen-orchestra/defined/index.js b/@xen-orchestra/defined/index.js index 923bb886f02..b08cd6b08c1 100644 --- a/@xen-orchestra/defined/index.js +++ b/@xen-orchestra/defined/index.js @@ -14,15 +14,11 @@ // ]) // ``` function defined() { - let args = arguments - let n = args.length - if (n === 1) { - args = arguments[0] - n = args.length - } + const args = [...arguments].flat() + const n = args.length for (let i = 0; i < n; ++i) { - let arg = arguments[i] + let arg = args[i] if (typeof arg === 'function') { arg = get(arg) } diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index 28f167ebf88..70376c2b4ea 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -40,6 +40,7 @@ +- @xen-orchestra/defined minor - @xen-orchestra/lite minor - @xen-orchestra/web minor - @xen-orchestra/web-core minor