@@ -80,7 +80,10 @@ export type ResourceShape<T> = AbstractClassType<T> & {
80
80
// Default should probably be considered the props on Resource class.
81
81
BaseNodeProps ?: string [ ] ;
82
82
Relations ?: Thunk <
83
- Record < string , ResourceShape < any > | [ ResourceShape < any > ] | undefined >
83
+ Record <
84
+ string ,
85
+ ResourceShape < any > | readonly [ ResourceShape < any > ] | undefined
86
+ >
84
87
> ;
85
88
/**
86
89
* Define this resource as being a child of another.
@@ -397,7 +400,7 @@ export type SecuredPropsPlusExtraKey<
397
400
/* eslint-disable @typescript-eslint/ban-types -- {} is used to mean non-nullable, it's not an empty interface */
398
401
399
402
export type ExtraPropsFromRelationsKey < T extends ResourceShape < any > > = {
400
- [ R in RelKey < T > ] : RelOf < T > [ R ] extends Array < infer U >
403
+ [ R in RelKey < T > ] : RelOf < T > [ R ] extends ReadonlyArray < infer U >
401
404
? U extends ResourceShape < any >
402
405
? U [ 'Parent' ] extends { }
403
406
? never
@@ -411,7 +414,7 @@ export type ExtraPropsFromRelationsKey<T extends ResourceShape<any>> = {
411
414
} [ RelKey < T > ] ;
412
415
413
416
export type ChildSinglesKey < T extends ResourceShape < any > > = {
414
- [ R in RelKey < T > ] : RelOf < T > [ R ] extends any [ ]
417
+ [ R in RelKey < T > ] : RelOf < T > [ R ] extends readonly any [ ]
415
418
? never
416
419
: RelOf < T > [ R ] extends ResourceShape < any >
417
420
? RelOf < T > [ R ] [ 'Parent' ] extends { }
@@ -421,7 +424,7 @@ export type ChildSinglesKey<T extends ResourceShape<any>> = {
421
424
} [ RelKey < T > ] ;
422
425
423
426
export type ChildListsKey < T extends ResourceShape < any > > = {
424
- [ R in RelKey < T > ] : RelOf < T > [ R ] extends Array < infer U >
427
+ [ R in RelKey < T > ] : RelOf < T > [ R ] extends ReadonlyArray < infer U >
425
428
? U extends ResourceShape < any >
426
429
? U [ 'Parent' ] extends { }
427
430
? R
0 commit comments