Skip to content

Commit

Permalink
fix: defined() when parameter is array
Browse files Browse the repository at this point in the history
  • Loading branch information
stephane-m-dev committed Sep 5, 2024
1 parent 3679c7e commit 3c04b83
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 13 deletions.
4 changes: 2 additions & 2 deletions @xen-orchestra/defined/.USAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
4 changes: 2 additions & 2 deletions @xen-orchestra/defined/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
4 changes: 2 additions & 2 deletions @xen-orchestra/defined/defined.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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', () => {
Expand Down
10 changes: 3 additions & 7 deletions @xen-orchestra/defined/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down

0 comments on commit 3c04b83

Please sign in to comment.