Commit 4b238e4c authored by nanahira's avatar nanahira

fix typings

parent 4cd9f878
...@@ -6,6 +6,7 @@ import { ...@@ -6,6 +6,7 @@ import {
ClassOrArray, ClassOrArray,
getClassFromClassOrArray, getClassFromClassOrArray,
InsertField, InsertField,
ParseType,
} from '../utility/insert-field'; } from '../utility/insert-field';
export interface BlankReturnMessage { export interface BlankReturnMessage {
...@@ -73,7 +74,13 @@ export class GenericReturnMessageDto<T> ...@@ -73,7 +74,13 @@ export class GenericReturnMessageDto<T>
} }
} }
export function ReturnMessageDto<T extends ClassOrArray>(type: T) { export function ReturnMessageDto<T extends ClassOrArray>(
type: T,
): new (
statusCode: number,
message: string,
data: ParseType<T>,
) => GenericReturnMessageDto<ParseType<T>> {
return InsertField( return InsertField(
GenericReturnMessageDto, GenericReturnMessageDto,
{ {
...@@ -106,7 +113,15 @@ export class GenericPaginatedReturnMessageDto<T> ...@@ -106,7 +113,15 @@ export class GenericPaginatedReturnMessageDto<T>
} }
} }
export function PaginatedReturnMessageDto<T extends AnyClass>(type: T) { export function PaginatedReturnMessageDto<T extends AnyClass>(
type: T,
): new (
statusCode: number,
message: string,
data: InstanceType<T>[],
total: number,
pageSettings: PageSettingsWise,
) => GenericPaginatedReturnMessageDto<InstanceType<T>[]> {
return InsertField( return InsertField(
GenericPaginatedReturnMessageDto, GenericPaginatedReturnMessageDto,
{ {
...@@ -124,5 +139,5 @@ export function PaginatedReturnMessageDto<T extends AnyClass>(type: T) { ...@@ -124,5 +139,5 @@ export function PaginatedReturnMessageDto<T extends AnyClass>(type: T) {
export class StringReturnMessageDto extends GenericReturnMessageDto<string> { export class StringReturnMessageDto extends GenericReturnMessageDto<string> {
@ApiProperty({ description: 'Return data.', type: String, required: false }) @ApiProperty({ description: 'Return data.', type: String, required: false })
data?: string; data: string;
} }
...@@ -25,7 +25,9 @@ export interface InsertOptions<C extends ClassOrArray = ClassOrArray> { ...@@ -25,7 +25,9 @@ export interface InsertOptions<C extends ClassOrArray = ClassOrArray> {
type TypeFromInsertOptions<O extends InsertOptions> = O extends InsertOptions< type TypeFromInsertOptions<O extends InsertOptions> = O extends InsertOptions<
infer C infer C
> >
? ParseType<C> ?
| ParseType<C>
| (O extends { options: { required: true } } ? never : undefined)
: never; : never;
export function InsertField< export function InsertField<
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment