mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-02 18:47:11 -05:00 
			
		
		
		
	Add seed entry types
This commit is contained in:
		
							parent
							
								
									d4257c1d02
								
							
						
					
					
						commit
						b9c022f614
					
				@ -1,7 +1,6 @@
 | 
				
			|||||||
import { t } from "elysia";
 | 
					import { t } from "elysia";
 | 
				
			||||||
import { EpisodeId } from "../utils/external-id";
 | 
					 | 
				
			||||||
import { Resource } from "../utils/resource";
 | 
					 | 
				
			||||||
import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
					import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
				
			||||||
 | 
					import { EpisodeId, SeedImage, TranslationRecord, Resource } from "../utils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const BaseEpisode = t.Intersect([
 | 
					export const BaseEpisode = t.Intersect([
 | 
				
			||||||
	BaseEntry,
 | 
						BaseEntry,
 | 
				
			||||||
@ -14,5 +13,16 @@ export const BaseEpisode = t.Intersect([
 | 
				
			|||||||
	}),
 | 
						}),
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const Episode = t.Intersect([Resource, BaseEpisode, EntryTranslation]);
 | 
					export const Episode = t.Intersect([Resource(), BaseEpisode, EntryTranslation]);
 | 
				
			||||||
export type Episode = typeof Episode.static;
 | 
					export type Episode = typeof Episode.static;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const SeedEpisode = t.Intersect([
 | 
				
			||||||
 | 
						BaseEpisode,
 | 
				
			||||||
 | 
						t.Omit(BaseEntry, ["thumbnail", "createdAt", "nextRefresh"]),
 | 
				
			||||||
 | 
						t.Object({
 | 
				
			||||||
 | 
							thumbnail: t.Nullable(SeedImage),
 | 
				
			||||||
 | 
							translations: TranslationRecord(EntryTranslation),
 | 
				
			||||||
 | 
							videos: t.Optional(t.Array(t.String({ format: "uuid" }))),
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
					]);
 | 
				
			||||||
 | 
					export type SeedEpisode = typeof SeedEpisode.static;
 | 
				
			||||||
 | 
				
			|||||||
@ -31,5 +31,5 @@ export const BaseExtra = t.Intersect(
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const Extra = t.Intersect([Resource, BaseExtra, EntryTranslation]);
 | 
					export const Extra = t.Intersect([Resource(), BaseExtra, EntryTranslation]);
 | 
				
			||||||
export type Extra = typeof Extra.static;
 | 
					export type Extra = typeof Extra.static;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,19 @@
 | 
				
			|||||||
import { t } from "elysia";
 | 
					import { t } from "elysia";
 | 
				
			||||||
import { Episode, MovieEntry, Special } from "../entry";
 | 
					import {
 | 
				
			||||||
 | 
						Episode,
 | 
				
			||||||
 | 
						SeedEpisode,
 | 
				
			||||||
 | 
						MovieEntry,
 | 
				
			||||||
 | 
						SeedMovieEntry,
 | 
				
			||||||
 | 
						Special,
 | 
				
			||||||
 | 
						SeedSpecial,
 | 
				
			||||||
 | 
					} from "../entry";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const Entry = t.Union([Episode, MovieEntry, Special]);
 | 
					export const Entry = t.Union([Episode, MovieEntry, Special]);
 | 
				
			||||||
export type Entry = typeof Entry.static;
 | 
					export type Entry = typeof Entry.static;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const SeedEntry = t.Union([SeedEpisode, SeedMovieEntry, SeedSpecial]);
 | 
				
			||||||
 | 
					export type SeedEntry = typeof Entry.static;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export * from "./episode";
 | 
					export * from "./episode";
 | 
				
			||||||
export * from "./movie-entry";
 | 
					export * from "./movie-entry";
 | 
				
			||||||
export * from "./special";
 | 
					export * from "./special";
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,17 @@
 | 
				
			|||||||
import { t } from "elysia";
 | 
					import { t } from "elysia";
 | 
				
			||||||
import { comment } from "../../utils";
 | 
					import { comment } from "../../utils";
 | 
				
			||||||
import { ExternalId } from "../utils/external-id";
 | 
					 | 
				
			||||||
import { Image } from "../utils/image";
 | 
					 | 
				
			||||||
import { Resource } from "../utils/resource";
 | 
					 | 
				
			||||||
import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
					import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
						Resource,
 | 
				
			||||||
 | 
						Image,
 | 
				
			||||||
 | 
						SeedImage,
 | 
				
			||||||
 | 
						ExternalId,
 | 
				
			||||||
 | 
						TranslationRecord,
 | 
				
			||||||
 | 
					} from "../utils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const BaseMovieEntry = t.Intersect(
 | 
					export const BaseMovieEntry = t.Intersect(
 | 
				
			||||||
	[
 | 
						[
 | 
				
			||||||
		t.Omit(BaseEntry, ["thumbnail"]),
 | 
							BaseEntry,
 | 
				
			||||||
		t.Object({
 | 
							t.Object({
 | 
				
			||||||
			kind: t.Literal("movie"),
 | 
								kind: t.Literal("movie"),
 | 
				
			||||||
			order: t.Number({
 | 
								order: t.Number({
 | 
				
			||||||
@ -29,13 +33,29 @@ export const MovieEntryTranslation = t.Intersect([
 | 
				
			|||||||
	EntryTranslation,
 | 
						EntryTranslation,
 | 
				
			||||||
	t.Object({
 | 
						t.Object({
 | 
				
			||||||
		tagline: t.Nullable(t.String()),
 | 
							tagline: t.Nullable(t.String()),
 | 
				
			||||||
		thumbnail: t.Nullable(Image),
 | 
							poster: t.Nullable(Image),
 | 
				
			||||||
	}),
 | 
						}),
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const MovieEntry = t.Intersect([
 | 
					export const MovieEntry = t.Intersect([
 | 
				
			||||||
	Resource,
 | 
						Resource(),
 | 
				
			||||||
	BaseMovieEntry,
 | 
						BaseMovieEntry,
 | 
				
			||||||
	MovieEntryTranslation,
 | 
						MovieEntryTranslation,
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
export type MovieEntry = typeof MovieEntry.static;
 | 
					export type MovieEntry = typeof MovieEntry.static;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const SeedMovieEntry = t.Intersect([
 | 
				
			||||||
 | 
						BaseMovieEntry,
 | 
				
			||||||
 | 
						t.Omit(BaseEntry, ["thumbnail", "createdAt", "nextRefresh"]),
 | 
				
			||||||
 | 
						t.Object({
 | 
				
			||||||
 | 
							thumbnail: t.Nullable(SeedImage),
 | 
				
			||||||
 | 
							translations: TranslationRecord(
 | 
				
			||||||
 | 
								t.Intersect([
 | 
				
			||||||
 | 
									t.Omit(MovieEntryTranslation, ["poster"]),
 | 
				
			||||||
 | 
									t.Object({ poster: t.Nullable(SeedImage) }),
 | 
				
			||||||
 | 
								]),
 | 
				
			||||||
 | 
							),
 | 
				
			||||||
 | 
							videos: t.Optional(t.Array(t.String({ format: "uuid" }))),
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
					]);
 | 
				
			||||||
 | 
					export type SeedMovieEntry = typeof SeedMovieEntry.static;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,7 @@
 | 
				
			|||||||
import { t } from "elysia";
 | 
					import { t } from "elysia";
 | 
				
			||||||
import { comment } from "../../utils";
 | 
					import { comment } from "../../utils";
 | 
				
			||||||
import { EpisodeId } from "../utils/external-id";
 | 
					 | 
				
			||||||
import { Resource } from "../utils/resource";
 | 
					 | 
				
			||||||
import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
					import { BaseEntry, EntryTranslation } from "./base-entry";
 | 
				
			||||||
 | 
					import { EpisodeId, Resource, SeedImage, TranslationRecord } from "../utils";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const BaseSpecial = t.Intersect(
 | 
					export const BaseSpecial = t.Intersect(
 | 
				
			||||||
	[
 | 
						[
 | 
				
			||||||
@ -25,5 +24,16 @@ export const BaseSpecial = t.Intersect(
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const Special = t.Intersect([Resource, BaseSpecial, EntryTranslation]);
 | 
					export const Special = t.Intersect([Resource(), BaseSpecial, EntryTranslation]);
 | 
				
			||||||
export type Special = typeof Special.static;
 | 
					export type Special = typeof Special.static;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const SeedSpecial = t.Intersect([
 | 
				
			||||||
 | 
						BaseSpecial,
 | 
				
			||||||
 | 
						t.Omit(BaseEntry, ["thumbnail", "createdAt", "nextRefresh"]),
 | 
				
			||||||
 | 
						t.Object({
 | 
				
			||||||
 | 
							thumbnail: t.Nullable(SeedImage),
 | 
				
			||||||
 | 
							translations: TranslationRecord(EntryTranslation),
 | 
				
			||||||
 | 
							videos: t.Optional(t.Array(t.String({ format: "uuid" }))),
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
					]);
 | 
				
			||||||
 | 
					export type SeedSpecial = typeof SeedSpecial.static;
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ export const UnknownEntryTranslation = t.Omit(EntryTranslation, [
 | 
				
			|||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const UnknownEntry = t.Intersect([
 | 
					export const UnknownEntry = t.Intersect([
 | 
				
			||||||
	Resource,
 | 
						Resource(),
 | 
				
			||||||
	BaseUnknownEntry,
 | 
						BaseUnknownEntry,
 | 
				
			||||||
	UnknownEntryTranslation,
 | 
						UnknownEntryTranslation,
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user