@@ -4,10 +4,6 @@ function isObjectLike(obj: unknown): obj is Record<string, unknown> {
4
4
return Boolean ( obj ) && typeof obj === 'object' ; // typeof null === 'object'
5
5
}
6
6
7
- function isPromiseLike ( obj : unknown ) : obj is Promise < unknown > {
8
- return isObjectLike ( obj ) && typeof ( obj as any ) . then === 'function' ;
9
- }
10
-
11
7
function isParserOptsFunction < T extends ParserPreset > (
12
8
obj : T
13
9
) : obj is T & {
@@ -27,9 +23,19 @@ export async function loadParserOpts(
27
23
// Await for the module, loaded with require
28
24
const parser = await pendingParser ;
29
25
30
- // Await parser opts if applicable
31
- if ( isPromiseLike ( parser . parserOpts ) ) {
32
- parser . parserOpts = ( ( await parser . parserOpts ) as any ) . parserOpts ;
26
+ // exit early if there is no opts
27
+ if ( ! parser . parserOpts ) {
28
+ return parser ;
29
+ }
30
+
31
+ // Pull nested parserOpts, might happen if overwritten with a module in main config
32
+ if ( typeof parser . parserOpts === 'object' ) {
33
+ // Await parser opts if applicable
34
+ const opts = await parser . parserOpts ;
35
+ parser . parserOpts =
36
+ isObjectLike ( opts ) && isObjectLike ( opts . parserOpts )
37
+ ? opts . parserOpts
38
+ : undefined ;
33
39
return parser ;
34
40
}
35
41
@@ -61,12 +67,5 @@ export async function loadParserOpts(
61
67
} ) ;
62
68
}
63
69
64
- // Pull nested parserOpts, might happen if overwritten with a module in main config
65
- if (
66
- isObjectLike ( parser . parserOpts ) &&
67
- typeof parser . parserOpts . parserOpts === 'object'
68
- ) {
69
- parser . parserOpts = parser . parserOpts . parserOpts ;
70
- }
71
70
return parser ;
72
71
}
0 commit comments