Extract Mangas action option types

This commit is contained in:
schroda
2024-04-20 01:29:14 +02:00
parent 8ebd028d25
commit 6b066fe8ca

View File

@@ -124,13 +124,25 @@ type MigrateOptions = {
migrateCategories?: boolean; migrateCategories?: boolean;
deleteChapters?: boolean; deleteChapters?: boolean;
}; };
type MarkAsReadActionOption = MarkAsReadOptions &
PropertiesNever<ChangeCategoriesOptions> &
PropertiesNever<MigrateOptions>;
type ChangeCategoriesActionOption = PropertiesNever<MarkAsReadOptions> &
ChangeCategoriesOptions &
PropertiesNever<MigrateOptions>;
type MigrateActionOption = PropertiesNever<MarkAsReadOptions> &
PropertiesNever<ChangeCategoriesOptions> &
MigrateOptions;
type DefaultActionOption = Partial<MarkAsReadOptions> & Partial<ChangeCategoriesOptions> & Partial<MigrateOptions>;
type PerformActionOptions<Action extends MangaAction> = Action extends 'mark_as_read' type PerformActionOptions<Action extends MangaAction> = Action extends 'mark_as_read'
? MarkAsReadOptions & PropertiesNever<ChangeCategoriesOptions> & PropertiesNever<MigrateOptions> ? MarkAsReadActionOption
: Action extends 'change_categories' : Action extends 'change_categories'
? PropertiesNever<MarkAsReadOptions> & ChangeCategoriesOptions & PropertiesNever<MigrateOptions> ? ChangeCategoriesActionOption
: Action extends 'migrate' : Action extends 'migrate'
? PropertiesNever<MarkAsReadOptions> & PropertiesNever<ChangeCategoriesOptions> & MigrateOptions ? MigrateActionOption
: Partial<MarkAsReadOptions> & Partial<ChangeCategoriesOptions> & Partial<MigrateOptions>; : DefaultActionOption;
export class Mangas { export class Mangas {
static getIds(mangas: { id: number }[]): number[] { static getIds(mangas: { id: number }[]): number[] {