RenaiApp/src/shared/ipc/ipc.d.ts

263 lines
16 KiB
TypeScript

type IpcAnswers = {
[IpcChannel.NHENTAI_SAVE_FAVORITES]: void;
[IpcChannel.NHENTAI_GET_WORK]: WorkEntityInterface;
[IpcChannel.ENTITY_CREATE_AUTHOR]: AuthorSerializedInterface;
[IpcChannel.ENTITY_CREATE_AUTHOR_NAME]: AuthorNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_AUTHOR_ROLE]: AuthorRoleSerializedInterface;
[IpcChannel.ENTITY_CREATE_AUTHOR_ROLE_NAME]: AuthorRoleNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_CHARACTER_TAG]: CharacterTagSerializedInterface;
[IpcChannel.ENTITY_CREATE_COLLECTION]: CollectionSerializedInterface;
[IpcChannel.ENTITY_CREATE_COLLECTION_NAME]: CollectionNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_COLLECTION_PART]: CollectionPartSerializedInterface;
[IpcChannel.ENTITY_CREATE_COPY]: CopySerializedInterface;
[IpcChannel.ENTITY_CREATE_INTERACTION_TAG]: InteractionTagSerializedInterface;
[IpcChannel.ENTITY_CREATE_SITE]: SiteSerializedInterface;
[IpcChannel.ENTITY_CREATE_SITE_NAME]: SiteNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_SOURCE]: SourceSerializedInterface;
[IpcChannel.ENTITY_CREATE_TAG]: TagSerializedInterface;
[IpcChannel.ENTITY_CREATE_TAG_NAME]: TagNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION]: TransformationSerializedInterface;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION_TYPE]: TransformationTypeSerializedInterface;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION_TYPE_NAME]: TransformationTypeNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK_AUTHOR]: WorkAuthorSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK_CHARACTER]: WorkCharacterSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK_CHARACTER_NAME]: WorkCharacterNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK]: WorkSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK_NAME]: WorkNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORK_TAG]: WorkTagSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORLD]: WorldSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORLD_NAME]: WorldNameSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORLD_CHARACTER]: WorldCharacterSerializedInterface;
[IpcChannel.ENTITY_CREATE_WORLD_CHARACTER_NAME]: WorldCharacterNameSerializedInterface;
[IpcChannel.ENTITY_READ_AUTHOR]: AuthorSerializedInterface;
[IpcChannel.ENTITY_READ_AUTHOR_NAME]: AuthorNameSerializedInterface;
[IpcChannel.ENTITY_READ_AUTHOR_ROLE]: AuthorRoleSerializedInterface;
[IpcChannel.ENTITY_READ_AUTHOR_ROLE_NAME]: AuthorRoleNameSerializedInterface;
[IpcChannel.ENTITY_READ_CHARACTER_TAG]: CharacterTagSerializedInterface;
[IpcChannel.ENTITY_READ_COLLECTION]: CollectionSerializedInterface;
[IpcChannel.ENTITY_READ_COLLECTION_NAME]: CollectionNameSerializedInterface;
[IpcChannel.ENTITY_READ_COLLECTION_PART]: CollectionPartSerializedInterface;
[IpcChannel.ENTITY_READ_COPY]: CopySerializedInterface;
[IpcChannel.ENTITY_READ_INTERACTION_TAG]: InteractionTagSerializedInterface;
[IpcChannel.ENTITY_READ_LANGUAGE]: LanguageSerializedInterface;
[IpcChannel.ENTITY_READ_SITE]: SiteSerializedInterface;
[IpcChannel.ENTITY_READ_SITE_NAME]: SiteNameSerializedInterface;
[IpcChannel.ENTITY_READ_SOURCE]: SourceSerializedInterface;
[IpcChannel.ENTITY_READ_TAG]: TagSerializedInterface;
[IpcChannel.ENTITY_READ_TAG_NAME]: TagNameSerializedInterface;
[IpcChannel.ENTITY_READ_TRANSFORMATION]: TransformationSerializedInterface;
[IpcChannel.ENTITY_READ_TRANSFORMATION_TYPE]: TransformationTypeSerializedInterface;
[IpcChannel.ENTITY_READ_TRANSFORMATION_TYPE_NAME]: TransformationTypeNameSerializedInterface;
[IpcChannel.ENTITY_READ_WORK_AUTHOR]: WorkAuthorSerializedInterface;
[IpcChannel.ENTITY_READ_WORK_CHARACTER]: WorkCharacterSerializedInterface;
[IpcChannel.ENTITY_READ_WORK_CHARACTER_NAME]: WorkCharacterNameSerializedInterface;
[IpcChannel.ENTITY_READ_WORK]: WorkSerializedInterface;
[IpcChannel.ENTITY_READ_WORK_NAME]: WorkNameSerializedInterface;
[IpcChannel.ENTITY_READ_WORK_TAG]: WorkTagSerializedInterface;
[IpcChannel.ENTITY_READ_WORLD]: WorldSerializedInterface;
[IpcChannel.ENTITY_READ_WORLD_NAME]: WorldNameSerializedInterface;
[IpcChannel.ENTITY_READ_WORLD_CHARACTER]: WorldCharacterSerializedInterface;
[IpcChannel.ENTITY_READ_WORLD_CHARACTER_NAME]: WorldCharacterNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_AUTHOR]: AuthorSerializedInterface;
[IpcChannel.ENTITY_UPDATE_AUTHOR_NAME]: AuthorNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_AUTHOR_ROLE]: AuthorRoleSerializedInterface;
[IpcChannel.ENTITY_UPDATE_AUTHOR_ROLE_NAME]: AuthorRoleNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_CHARACTER_TAG]: CharacterTagSerializedInterface;
[IpcChannel.ENTITY_UPDATE_COLLECTION]: CollectionSerializedInterface;
[IpcChannel.ENTITY_UPDATE_COLLECTION_NAME]: CollectionNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_COLLECTION_PART]: CollectionPartSerializedInterface;
[IpcChannel.ENTITY_UPDATE_COPY]: CopySerializedInterface;
[IpcChannel.ENTITY_UPDATE_INTERACTION_TAG]: InteractionTagSerializedInterface;
[IpcChannel.ENTITY_UPDATE_SITE]: SiteSerializedInterface;
[IpcChannel.ENTITY_UPDATE_SITE_NAME]: SiteNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_SOURCE]: SourceSerializedInterface;
[IpcChannel.ENTITY_UPDATE_TAG]: TagSerializedInterface;
[IpcChannel.ENTITY_UPDATE_TAG_NAME]: TagNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION]: TransformationSerializedInterface;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION_TYPE]: TransformationTypeSerializedInterface;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION_TYPE_NAME]: TransformationTypeNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK_AUTHOR]: WorkAuthorSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK_CHARACTER]: WorkCharacterSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK_CHARACTER_NAME]: WorkCharacterNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK]: WorkSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK_NAME]: WorkNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORK_TAG]: WorkTagSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORLD]: WorldSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORLD_NAME]: WorldNameSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORLD_CHARACTER]: WorldCharacterSerializedInterface;
[IpcChannel.ENTITY_UPDATE_WORLD_CHARACTER_NAME]: WorldCharacterNameSerializedInterface;
[IpcChannel.ENTITY_DELETE_AUTHOR]: void;
[IpcChannel.ENTITY_DELETE_AUTHOR_NAME]: void;
[IpcChannel.ENTITY_DELETE_AUTHOR_ROLE]: void;
[IpcChannel.ENTITY_DELETE_AUTHOR_ROLE_NAME]: void;
[IpcChannel.ENTITY_DELETE_CHARACTER_TAG]: void;
[IpcChannel.ENTITY_DELETE_COLLECTION]: void;
[IpcChannel.ENTITY_DELETE_COLLECTION_NAME]: void;
[IpcChannel.ENTITY_DELETE_COLLECTION_PART]: void;
[IpcChannel.ENTITY_DELETE_COPY]: void;
[IpcChannel.ENTITY_DELETE_INTERACTION_TAG]: void;
[IpcChannel.ENTITY_DELETE_SITE]: void;
[IpcChannel.ENTITY_DELETE_SITE_NAME]: void;
[IpcChannel.ENTITY_DELETE_SOURCE]: void;
[IpcChannel.ENTITY_DELETE_TAG]: void;
[IpcChannel.ENTITY_DELETE_TAG_NAME]: void;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION]: void;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION_TYPE]: void;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION_TYPE_NAME]: void;
[IpcChannel.ENTITY_DELETE_WORK_AUTHOR]: void;
[IpcChannel.ENTITY_DELETE_WORK_CHARACTER]: void;
[IpcChannel.ENTITY_DELETE_WORK_CHARACTER_NAME]: void;
[IpcChannel.ENTITY_DELETE_WORK]: void;
[IpcChannel.ENTITY_DELETE_WORK_NAME]: void;
[IpcChannel.ENTITY_DELETE_WORK_TAG]: void;
[IpcChannel.ENTITY_DELETE_WORLD]: void;
[IpcChannel.ENTITY_DELETE_WORLD_NAME]: void;
[IpcChannel.ENTITY_DELETE_WORLD_CHARACTER]: void;
[IpcChannel.ENTITY_DELETE_WORLD_CHARACTER_NAME]: void;
};
type IpcAnswer<T extends IpcChannel> = IpcAnswers[T];
type IpcParameters = {
[IpcChannel.NHENTAI_SAVE_FAVORITES]: undefined;
[IpcChannel.NHENTAI_GET_WORK]: { galleryId: string };
[IpcChannel.ENTITY_CREATE_AUTHOR]: Partial<AuthorSerializedInterface>;
[IpcChannel.ENTITY_CREATE_AUTHOR_NAME]: Partial<AuthorNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_AUTHOR_ROLE]: Partial<AuthorRoleSerializedInterface>;
[IpcChannel.ENTITY_CREATE_AUTHOR_ROLE_NAME]: Partial<AuthorRoleNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_CHARACTER_TAG]: Partial<CharacterTagSerializedInterface>;
[IpcChannel.ENTITY_CREATE_COLLECTION]: Partial<CollectionSerializedInterface>;
[IpcChannel.ENTITY_CREATE_COLLECTION_NAME]: Partial<CollectionNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_COLLECTION_PART]: Partial<CollectionPartSerializedInterface>;
[IpcChannel.ENTITY_CREATE_COPY]: Partial<CopySerializedInterface>;
[IpcChannel.ENTITY_CREATE_INTERACTION_TAG]: Partial<InteractionTagSerializedInterface>;
[IpcChannel.ENTITY_CREATE_SITE]: Partial<SiteSerializedInterface>;
[IpcChannel.ENTITY_CREATE_SITE_NAME]: Partial<SiteNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_SOURCE]: Partial<SourceSerializedInterface>;
[IpcChannel.ENTITY_CREATE_TAG]: Partial<TagSerializedInterface>;
[IpcChannel.ENTITY_CREATE_TAG_NAME]: Partial<TagNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION]: Partial<TransformationSerializedInterface>;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION_TYPE]: Partial<TransformationTypeSerializedInterface>;
[IpcChannel.ENTITY_CREATE_TRANSFORMATION_TYPE_NAME]: Partial<TransformationTypeNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK_AUTHOR]: Partial<WorkAuthorSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK_CHARACTER]: Partial<WorkCharacterSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK_CHARACTER_NAME]: Partial<WorkCharacterNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK]: Partial<WorkSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK_NAME]: Partial<WorkNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORK_TAG]: Partial<WorkTagSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORLD]: Partial<WorldSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORLD_NAME]: Partial<WorldNameSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORLD_CHARACTER]: Partial<WorldCharacterSerializedInterface>;
[IpcChannel.ENTITY_CREATE_WORLD_CHARACTER_NAME]: Partial<WorldCharacterNameSerializedInterface>;
[IpcChannel.ENTITY_READ_AUTHOR]: number;
[IpcChannel.ENTITY_READ_AUTHOR_NAME]: number;
[IpcChannel.ENTITY_READ_AUTHOR_ROLE]: number;
[IpcChannel.ENTITY_READ_AUTHOR_ROLE_NAME]: number;
[IpcChannel.ENTITY_READ_CHARACTER_TAG]: number;
[IpcChannel.ENTITY_READ_COLLECTION]: number;
[IpcChannel.ENTITY_READ_COLLECTION_NAME]: number;
[IpcChannel.ENTITY_READ_COLLECTION_PART]: number;
[IpcChannel.ENTITY_READ_COPY]: number;
[IpcChannel.ENTITY_READ_INTERACTION_TAG]: number;
[IpcChannel.ENTITY_READ_LANGUAGE]: string;
[IpcChannel.ENTITY_READ_SITE]: number;
[IpcChannel.ENTITY_READ_SITE_NAME]: number;
[IpcChannel.ENTITY_READ_SOURCE]: number;
[IpcChannel.ENTITY_READ_TAG]: number;
[IpcChannel.ENTITY_READ_TAG_NAME]: number;
[IpcChannel.ENTITY_READ_TRANSFORMATION]: number;
[IpcChannel.ENTITY_READ_TRANSFORMATION_TYPE]: number;
[IpcChannel.ENTITY_READ_TRANSFORMATION_TYPE_NAME]: number;
[IpcChannel.ENTITY_READ_WORK_AUTHOR]: number;
[IpcChannel.ENTITY_READ_WORK_CHARACTER]: number;
[IpcChannel.ENTITY_READ_WORK_CHARACTER_NAME]: number;
[IpcChannel.ENTITY_READ_WORK]: number;
[IpcChannel.ENTITY_READ_WORK_NAME]: number;
[IpcChannel.ENTITY_READ_WORK_TAG]: number;
[IpcChannel.ENTITY_READ_WORLD]: number;
[IpcChannel.ENTITY_READ_WORLD_NAME]: number;
[IpcChannel.ENTITY_READ_WORLD_CHARACTER]: number;
[IpcChannel.ENTITY_READ_WORLD_CHARACTER_NAME]: number;
[IpcChannel.ENTITY_UPDATE_AUTHOR]: EntityUpdateData<AuthorSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_AUTHOR_NAME]: EntityUpdateData<AuthorNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_AUTHOR_ROLE]: EntityUpdateData<AuthorRoleSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_AUTHOR_ROLE_NAME]: EntityUpdateData<AuthorRoleNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_CHARACTER_TAG]: EntityUpdateData<CharacterTagSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_COLLECTION]: EntityUpdateData<CollectionSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_COLLECTION_NAME]: EntityUpdateData<CollectionNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_COLLECTION_PART]: EntityUpdateData<CollectionPartSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_COPY]: EntityUpdateData<CopySerializedInterface>;
[IpcChannel.ENTITY_UPDATE_INTERACTION_TAG]: EntityUpdateData<InteractionTagSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_SITE]: EntityUpdateData<SiteSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_SITE_NAME]: EntityUpdateData<SiteNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_SOURCE]: EntityUpdateData<SourceSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_TAG]: EntityUpdateData<TagSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_TAG_NAME]: EntityUpdateData<TagNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION]: EntityUpdateData<TransformationSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION_TYPE]: EntityUpdateData<TransformationTypeSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_TRANSFORMATION_TYPE_NAME]: EntityUpdateData<TransformationTypeNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK_AUTHOR]: EntityUpdateData<WorkAuthorSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK_CHARACTER]: EntityUpdateData<WorkCharacterSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK_CHARACTER_NAME]: EntityUpdateData<WorkCharacterNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK]: EntityUpdateData<WorkSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK_NAME]: EntityUpdateData<WorkNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORK_TAG]: EntityUpdateData<WorkTagSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORLD]: EntityUpdateData<WorldSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORLD_NAME]: EntityUpdateData<WorldNameSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORLD_CHARACTER]: EntityUpdateData<WorldCharacterSerializedInterface>;
[IpcChannel.ENTITY_UPDATE_WORLD_CHARACTER_NAME]: EntityUpdateData<WorldCharacterNameSerializedInterface>;
[IpcChannel.ENTITY_DELETE_AUTHOR]: number;
[IpcChannel.ENTITY_DELETE_AUTHOR_NAME]: number;
[IpcChannel.ENTITY_DELETE_AUTHOR_ROLE]: number;
[IpcChannel.ENTITY_DELETE_AUTHOR_ROLE_NAME]: number;
[IpcChannel.ENTITY_DELETE_CHARACTER_TAG]: number;
[IpcChannel.ENTITY_DELETE_COLLECTION]: number;
[IpcChannel.ENTITY_DELETE_COLLECTION_NAME]: number;
[IpcChannel.ENTITY_DELETE_COLLECTION_PART]: number;
[IpcChannel.ENTITY_DELETE_COPY]: number;
[IpcChannel.ENTITY_DELETE_INTERACTION_TAG]: number;
[IpcChannel.ENTITY_DELETE_SITE]: number;
[IpcChannel.ENTITY_DELETE_SITE_NAME]: number;
[IpcChannel.ENTITY_DELETE_SOURCE]: number;
[IpcChannel.ENTITY_DELETE_TAG]: number;
[IpcChannel.ENTITY_DELETE_TAG_NAME]: number;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION]: number;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION_TYPE]: number;
[IpcChannel.ENTITY_DELETE_TRANSFORMATION_TYPE_NAME]: number;
[IpcChannel.ENTITY_DELETE_WORK_AUTHOR]: number;
[IpcChannel.ENTITY_DELETE_WORK_CHARACTER]: number;
[IpcChannel.ENTITY_DELETE_WORK_CHARACTER_NAME]: number;
[IpcChannel.ENTITY_DELETE_WORK]: number;
[IpcChannel.ENTITY_DELETE_WORK_NAME]: number;
[IpcChannel.ENTITY_DELETE_WORK_TAG]: number;
[IpcChannel.ENTITY_DELETE_WORLD]: number;
[IpcChannel.ENTITY_DELETE_WORLD_NAME]: number;
[IpcChannel.ENTITY_DELETE_WORLD_CHARACTER]: number;
[IpcChannel.ENTITY_DELETE_WORLD_CHARACTER_NAME]: number;
};
type IpcParameter<T extends IpcChannel> = IpcParameters[T];
type IpcClient = {
ask<T extends IpcChannel>(channel: T, data: IpcParameter<T>): Promise<IpcAnswer<T>>;
};
type IpcServer = {
answer<T extends IpcChannel>(channel: T, answerer: IpcHandler<IpcParameter<T>, IpcAnswer<T>>): void;
};
type EntityUpdateData<Serialized> = {
id: number;
partial: Partial<Serialized>;
};
type IpcHandler<Data, Response> = (data: Data) => Promise<Response>;