Skip to content

Commit c511f11

Browse files
committed
Add types for option log
1 parent f2d826d commit c511f11

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

src/main.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ export type Options = BeautifulErrorOptions & {
4343
*/
4444
readonly timeout?: number
4545

46+
/**
47+
*
48+
* @default console.error
49+
*/
50+
readonly log?: (message: string) => void
51+
4652
/**
4753
* Specify different options per error class. The object:
4854
* - Keys are either the

src/main.test-d.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,30 @@ expectAssignable<Options>({ timeout: Number.POSITIVE_INFINITY })
3939
handleCliError('', { timeout: '0' })
4040
expectNotAssignable<Options>({ timeout: '0' })
4141

42+
handleCliError('', { log: () => {} })
43+
expectAssignable<Options>({ log: () => {} })
44+
handleCliError('', { log: (message: string) => {} })
45+
expectAssignable<Options>({ log: (message: string) => {} })
46+
handleCliError('', { log: (message: unknown) => {} })
47+
expectAssignable<Options>({ log: (message: unknown) => {} })
48+
handleCliError('', { log: (message: string) => true })
49+
expectAssignable<Options>({ log: (message: string) => true })
50+
handleCliError('', { log: async (message: string) => {} })
51+
expectAssignable<Options>({ log: async (message: string) => {} })
52+
// eslint-disable-next-line no-console, no-restricted-globals
53+
handleCliError('', { log: console.log })
54+
// eslint-disable-next-line no-console, no-restricted-globals
55+
expectAssignable<Options>({ log: console.log })
56+
// @ts-expect-error
57+
handleCliError('', { log: 0 })
58+
expectNotAssignable<Options>({ log: 0 })
59+
// @ts-expect-error
60+
handleCliError('', { log: (message: boolean) => {} })
61+
expectNotAssignable<Options>({ log: (message: boolean) => {} })
62+
// @ts-expect-error
63+
handleCliError('', { log: (message: string, second: boolean) => {} })
64+
expectNotAssignable<Options>({ log: (message: string, second: boolean) => {} })
65+
4266
handleCliError('', { classes: {} })
4367
expectAssignable<Options>({ classes: {} })
4468
// @ts-expect-error

0 commit comments

Comments
 (0)