Skip to content

Commit 0d46724

Browse files
authored
Fix return type of tryit (#182)
* Fix return type of tryit The `tryit` utility is super nice but is currently returning `null` in absence of either an error or a result. This makes it impossible to utilize default values during destructuring assignment.
1 parent 5f19016 commit 0d46724

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

cdn/radash.esm.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,9 +438,9 @@ const sleep = (milliseconds) => {
438438
const tryit = (func) => {
439439
return async (...args) => {
440440
try {
441-
return [null, await func(...args)];
441+
return [void 0, await func(...args)];
442442
} catch (err) {
443-
return [err, null];
443+
return [err, void 0];
444444
}
445445
};
446446
};

cdn/radash.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,9 +441,9 @@ var radash = (function (exports) {
441441
const tryit = (func) => {
442442
return async (...args) => {
443443
try {
444-
return [null, await func(...args)];
444+
return [void 0, await func(...args)];
445445
} catch (err) {
446-
return [err, null];
446+
return [err, void 0];
447447
}
448448
};
449449
};

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@
4848
"engines": {
4949
"node": ">=14.18.0"
5050
}
51-
}
51+
}

src/async.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,12 +198,12 @@ export const tryit = <TFunction extends (...args: any) => any>(
198198
return async (
199199
...args: ArgumentsType<TFunction>
200200
): Promise<
201-
[Error, null] | [null, UnwrapPromisify<ReturnType<TFunction>>]
201+
[Error, undefined] | [undefined, UnwrapPromisify<ReturnType<TFunction>>]
202202
> => {
203203
try {
204-
return [null, await func(...(args as any))]
204+
return [undefined, await func(...(args as any))]
205205
} catch (err) {
206-
return [err as any, null]
206+
return [err as any, undefined]
207207
}
208208
}
209209
}

src/tests/async.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,15 +215,15 @@ describe('async module', () => {
215215
const [err, result] = await _.try(async () => {
216216
throw new Error('not good enough')
217217
})()
218-
assert.isNull(result)
218+
assert.isUndefined(result)
219219
assert.isNotNull(err)
220220
assert.equal(err!.message, 'not good enough')
221221
})
222222
test('returns result when no error is thrown', async () => {
223223
const [err, result] = await _.try(async () => {
224224
return 'hello'
225225
})()
226-
assert.isNull(err)
226+
assert.isUndefined(err)
227227
assert.isNotNull(result)
228228
assert.equal(result, 'hello')
229229
})
@@ -294,7 +294,7 @@ describe('async module', () => {
294294
return `hi_${num}`
295295
})
296296
})()
297-
assert.isNull(errors)
297+
assert.isUndefined(errors)
298298
assert.deepEqual(results, ['hi_1', 'hi_2', 'hi_3'])
299299
})
300300
test('throws erros as array of all errors', async () => {
@@ -306,7 +306,7 @@ describe('async module', () => {
306306
})
307307
})()
308308
const err = error as AggregateError
309-
assert.isNull(results)
309+
assert.isUndefined(results)
310310
assert.equal(err.errors.length, 1)
311311
assert.equal(err.errors[0].message, 'number is 2')
312312
})

0 commit comments

Comments
 (0)