Skip to content

Commit 6756446

Browse files
authored
Declare list FilterField type lazily (#3242)
1 parent bf0f1bb commit 6756446

File tree

23 files changed

+25
-25
lines changed

23 files changed

+25
-25
lines changed

src/common/filter-field.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { AbstractClassType } from './types';
1010
* A field that is a filter object probably for input on a list query.
1111
*/
1212
export const FilterField = <T extends object>(
13-
type: HasRequiredKeys<T> extends true ? never : AbstractClassType<T>,
13+
type: () => HasRequiredKeys<T> extends true ? never : AbstractClassType<T>,
1414
options?: {
1515
/**
1616
* There are no external fields on the filter, so don't expose to GQL.
@@ -22,12 +22,12 @@ export const FilterField = <T extends object>(
2222
...(options?.internal
2323
? []
2424
: [
25-
Field(() => type as unknown as Constructor<T>, {
25+
Field(type as unknown as () => Constructor<T>, {
2626
nullable: true,
2727
defaultValue: {} as unknown as T, // Only for GQL schema & not always applied in TS
2828
}),
2929
]),
30-
Type(() => type),
30+
Type(type),
3131
ValidateNested(),
3232
DefaultValue.Set({}), // Default when omitted
3333
Transform(({ value }) => value || {}), // null -> {}

src/components/budget/dto/list-budget.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export abstract class BudgetFilters {
2020
export class BudgetListInput extends SortablePaginationInput<keyof Budget>({
2121
defaultSort: 'status',
2222
}) {
23-
@FilterField(BudgetFilters, { internal: true })
23+
@FilterField(() => BudgetFilters, { internal: true })
2424
readonly filter: BudgetFilters;
2525
}
2626

src/components/ceremony/dto/list-ceremony.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class CeremonyListInput extends SortablePaginationInput<
1818
>({
1919
defaultSort: 'projectName',
2020
}) {
21-
@FilterField(CeremonyFilters)
21+
@FilterField(() => CeremonyFilters)
2222
readonly filter: CeremonyFilters;
2323
}
2424

src/components/engagement/dto/list-engagements.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class EngagementListInput extends SortablePaginationInput<
3434
>({
3535
defaultSort: 'createdAt',
3636
}) {
37-
@FilterField(EngagementFilters)
37+
@FilterField(() => EngagementFilters)
3838
readonly filter: EngagementFilters;
3939
}
4040

src/components/ethno-art/dto/list-ethno-art.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export abstract class EthnoArtFilters {}
99
export class EthnoArtListInput extends SortablePaginationInput<keyof EthnoArt>({
1010
defaultSort: 'name',
1111
}) {
12-
@FilterField(EthnoArtFilters, { internal: true })
12+
@FilterField(() => EthnoArtFilters, { internal: true })
1313
readonly filter: EthnoArtFilters;
1414
}
1515

src/components/field-region/dto/list-field-region.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class FieldRegionListInput extends SortablePaginationInput<
1919
>({
2020
defaultSort: 'name',
2121
}) {
22-
@FilterField(FieldRegionFilters, { internal: true })
22+
@FilterField(() => FieldRegionFilters, { internal: true })
2323
readonly filter: FieldRegionFilters;
2424
}
2525

src/components/field-zone/dto/list-field-zone.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export class FieldZoneListInput extends SortablePaginationInput<
1919
>({
2020
defaultSort: 'name',
2121
}) {
22-
@FilterField(FieldZoneFilters, { internal: true })
22+
@FilterField(() => FieldZoneFilters, { internal: true })
2323
readonly filter: FieldZoneFilters;
2424
}
2525

src/components/file/dto/list.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class FileListInput extends SortablePaginationInput<
2424
>({
2525
defaultSort: 'name',
2626
}) {
27-
@FilterField(FileFilters)
27+
@FilterField(() => FileFilters)
2828
readonly filter?: FileFilters;
2929
}
3030

src/components/film/dto/list-film.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export abstract class FilmFilters {}
99
export class FilmListInput extends SortablePaginationInput<keyof Film>({
1010
defaultSort: 'name',
1111
}) {
12-
@FilterField(FilmFilters, { internal: true })
12+
@FilterField(() => FilmFilters, { internal: true })
1313
readonly filter: FilmFilters;
1414
}
1515

src/components/language/dto/list-language.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export abstract class LanguageFilters {
5555
export class LanguageListInput extends SortablePaginationInput<keyof Language>({
5656
defaultSort: 'name',
5757
}) {
58-
@FilterField(LanguageFilters)
58+
@FilterField(() => LanguageFilters)
5959
readonly filter: LanguageFilters;
6060
}
6161

0 commit comments

Comments
 (0)