Skip to content

Commit c9925a1

Browse files
committed
Allow readonly arrays in resource Relations declaration
1 parent 64d4863 commit c9925a1

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/common/resource.dto.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,10 @@ export type ResourceShape<T> = AbstractClassType<T> & {
8080
// Default should probably be considered the props on Resource class.
8181
BaseNodeProps?: string[];
8282
Relations?: Thunk<
83-
Record<string, ResourceShape<any> | [ResourceShape<any>] | undefined>
83+
Record<
84+
string,
85+
ResourceShape<any> | readonly [ResourceShape<any>] | undefined
86+
>
8487
>;
8588
/**
8689
* Define this resource as being a child of another.
@@ -397,7 +400,7 @@ export type SecuredPropsPlusExtraKey<
397400
/* eslint-disable @typescript-eslint/ban-types -- {} is used to mean non-nullable, it's not an empty interface */
398401

399402
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>
401404
? U extends ResourceShape<any>
402405
? U['Parent'] extends {}
403406
? never
@@ -411,7 +414,7 @@ export type ExtraPropsFromRelationsKey<T extends ResourceShape<any>> = {
411414
}[RelKey<T>];
412415

413416
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[]
415418
? never
416419
: RelOf<T>[R] extends ResourceShape<any>
417420
? RelOf<T>[R]['Parent'] extends {}
@@ -421,7 +424,7 @@ export type ChildSinglesKey<T extends ResourceShape<any>> = {
421424
}[RelKey<T>];
422425

423426
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>
425428
? U extends ResourceShape<any>
426429
? U['Parent'] extends {}
427430
? R

0 commit comments

Comments
 (0)