@@ -4,7 +4,6 @@ import { CachedByArg, mapKeys } from '@seedcompany/common';
4
4
import { isObjectType } from 'graphql' ;
5
5
import { LazyGetter as Once } from 'lazy-get-decorator' ;
6
6
import { mapValues } from 'lodash' ;
7
- import { ValueOf } from 'type-fest' ;
8
7
import {
9
8
EnhancedResource ,
10
9
InvalidIdForTypeException ,
@@ -14,6 +13,7 @@ import {
14
13
import { ResourceMap } from './map' ;
15
14
import { __privateDontUseThis } from './resource-map-holder' ;
16
15
import {
16
+ AllResourceNames ,
17
17
ResourceName ,
18
18
ResourceNameLike ,
19
19
ResourceStaticFromName ,
@@ -52,17 +52,20 @@ export class ResourcesHost {
52
52
return mapValues ( map , EnhancedResource . of ) as any ;
53
53
}
54
54
55
- getByName < K extends keyof ResourceMap > (
56
- name : K ,
57
- ) : EnhancedResource < ValueOf < Pick < ResourceMap , K > > > {
55
+ getByName < Name extends AllResourceNames > (
56
+ name : Name ,
57
+ ) : EnhancedResource < ResourceStaticFromName < ResourceName < Name > > > {
58
+ if ( name . includes ( '::' ) ) {
59
+ return this . getByEdgeDB ( name ) as any ;
60
+ }
58
61
const map = this . getEnhancedMap ( ) ;
59
- const resource = map [ name ] ;
62
+ const resource = map [ name as keyof ResourceMap ] ;
60
63
if ( ! resource ) {
61
64
throw new ServerException (
62
65
`Unable to determine resource from ResourceMap for type: ${ name } ` ,
63
66
) ;
64
67
}
65
- return resource ;
68
+ return resource as any ;
66
69
}
67
70
68
71
getByDynamicName ( name : ResourceNameLike ) : EnhancedResource < any > {
0 commit comments