( parentScopes: AnyObject[], resolver: ResolverCache, prop: ResolverObjectKey, value: unknown )
| 333 | } |
| 334 | |
| 335 | function createSubResolver( |
| 336 | parentScopes: AnyObject[], |
| 337 | resolver: ResolverCache, |
| 338 | prop: ResolverObjectKey, |
| 339 | value: unknown |
| 340 | ) { |
| 341 | const rootScopes = resolver._rootScopes; |
| 342 | const fallback = resolveFallback(resolver._fallback, prop, value); |
| 343 | const allScopes = [...parentScopes, ...rootScopes]; |
| 344 | const set = new Set<AnyObject>(); |
| 345 | set.add(value); |
| 346 | let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value); |
| 347 | if (key === null) { |
| 348 | return false; |
| 349 | } |
| 350 | if (typeof fallback !== 'undefined' && fallback !== prop) { |
| 351 | key = addScopesFromKey(set, allScopes, fallback, key, value); |
| 352 | if (key === null) { |
| 353 | return false; |
| 354 | } |
| 355 | } |
| 356 | return _createResolver(Array.from(set), [''], rootScopes, fallback, |
| 357 | () => subGetTarget(resolver, prop as string, value)); |
| 358 | } |
| 359 | |
| 360 | function addScopesFromKey( |
| 361 | set: Set<AnyObject>, |
no test coverage detected