@ems-press/content-api-types
Version:
Typescript types for the EMS Press Content API
142 lines (141 loc) • 6.9 kB
TypeScript
import { SortOption } from '../sort';
import * as BookSeries from './book-series';
import * as Books from './books';
import * as BookChapters from './book-chapters';
import * as BookChapterFiles from './book-chapter-files';
import * as BookChapterImages from './book-chapter-images';
import * as BookFiles from './book-files';
import * as BookImages from './book-images';
import * as BookSupplementaryUrls from './book-supplementary-urls';
import * as Images from './images';
import * as Persons from './persons';
import * as PersonGroups from './person-groups';
import * as PersonGroupMembers from './person-group-members';
import * as Serials from './serials';
import * as SerialArticles from './serial-articles';
import * as SerialArticleFiles from './serial-article-files';
import * as SerialArticleImages from './serial-article-images';
import * as SerialIssues from './serial-issues';
import * as SerialIssueFiles from './serial-issue-files';
export declare type Type = Books.Type | BookChapters.Type | BookChapterFiles.Type | BookChapterImages.Type | BookFiles.Type | BookImages.Type | BookSeries.Type | BookSupplementaryUrls.Type | Images.Type | Persons.Type | PersonGroups.Type | PersonGroupMembers.Type | Serials.Type | SerialArticles.Type | SerialArticleFiles.Type | SerialArticleImages.Type | SerialIssues.Type | SerialIssueFiles.Type;
export declare type Relationship = {
cardinality: null | '1' | 'N';
type: Type;
};
export declare const types: Type[];
export { Books, BookChapters, BookChapterFiles, BookChapterImages, BookFiles, BookImages, BookSeries, BookSupplementaryUrls, Images, PersonGroups, PersonGroupMembers, Persons, Serials, SerialArticles, SerialArticleFiles, SerialArticleImages, SerialIssues, SerialIssueFiles, };
export declare type AttributesForType<T extends Type> = {
books: Books.Attributes;
'book-chapters': BookChapters.Attributes;
'book-chapter-files': BookChapterFiles.Attributes;
'book-chapter-images': BookChapterImages.Attributes;
'book-files': BookFiles.Attributes;
'book-images': BookImages.Attributes;
'book-series': BookSeries.Attributes;
'book-supplementary-urls': BookSupplementaryUrls.Attributes;
images: Images.Attributes;
'person-groups': PersonGroups.Attributes;
'person-group-members': PersonGroupMembers.Attributes;
persons: Persons.Attributes;
serials: Serials.Attributes;
'serial-articles': SerialArticles.Attributes;
'serial-article-files': SerialArticleFiles.Attributes;
'serial-article-images': SerialArticleImages.Attributes;
'serial-issues': SerialIssues.Attributes;
'serial-issue-files': SerialIssueFiles.Attributes;
}[T];
export declare type RelationshipsForType<T extends Type> = {
books: Books.Relationships;
'book-chapters': BookChapters.Relationships;
'book-chapter-files': BookChapterFiles.Relationships;
'book-chapter-images': BookChapterImages.Relationships;
'book-files': BookFiles.Relationships;
'book-images': BookImages.Relationships;
'book-series': BookSeries.Relationships;
'book-supplementary-urls': BookSupplementaryUrls.Relationships;
images: Images.Relationships;
'person-groups': PersonGroups.Relationships;
'person-group-members': PersonGroupMembers.Relationships;
persons: Persons.Relationships;
serials: Serials.Relationships;
'serial-articles': SerialArticles.Relationships;
'serial-article-files': SerialArticleFiles.Relationships;
'serial-article-images': SerialArticleImages.Relationships;
'serial-issues': SerialIssues.Relationships;
'serial-issue-files': SerialIssueFiles.Relationships;
}[T];
export declare type SortFieldForType<T extends Type> = {
books: Books.SortField;
'book-chapters': BookChapters.SortField;
'book-chapter-files': BookChapterFiles.SortField;
'book-chapter-images': BookChapterImages.SortField;
'book-files': BookFiles.SortField;
'book-images': BookImages.SortField;
'book-series': BookSeries.SortField;
'book-supplementary-urls': BookSupplementaryUrls.SortField;
images: Images.SortField;
'person-groups': PersonGroups.SortField;
'person-group-members': PersonGroupMembers.SortField;
persons: Persons.SortField;
serials: Serials.SortField;
'serial-articles': SerialArticles.SortField;
'serial-article-files': SerialArticleFiles.SortField;
'serial-article-images': SerialArticleImages.SortField;
'serial-issues': SerialIssues.SortField;
'serial-issue-files': SerialIssueFiles.SortField;
}[T];
export declare type SortOptionForType<T extends Type> = {
books: SortOption<Books.SortField>;
'book-chapters': SortOption<BookChapters.SortField>;
'book-chapter-files': SortOption<BookChapterFiles.SortField>;
'book-chapter-images': SortOption<BookChapterImages.SortField>;
'book-files': SortOption<BookFiles.SortField>;
'book-images': SortOption<BookImages.SortField>;
'book-series': SortOption<BookSeries.SortField>;
'book-supplementary-urls': SortOption<BookSupplementaryUrls.SortField>;
images: SortOption<Images.SortField>;
'person-groups': SortOption<PersonGroups.SortField>;
'person-group-members': SortOption<PersonGroupMembers.SortField>;
persons: SortOption<Persons.SortField>;
serials: SortOption<Serials.SortField>;
'serial-articles': SortOption<SerialArticles.SortField>;
'serial-article-files': SortOption<SerialArticleFiles.SortField>;
'serial-article-images': SortOption<SerialArticleImages.SortField>;
'serial-issues': SortOption<SerialIssues.SortField>;
'serial-issue-files': SortOption<SerialIssueFiles.SortField>;
}[T];
export declare type FilterForType<T extends Type> = {
books: Books.Filter;
'book-chapters': BookChapters.Filter;
'book-chapter-files': BookChapterFiles.Filter;
'book-chapter-images': BookChapterImages.Filter;
'book-files': BookFiles.Filter;
'book-images': BookImages.Filter;
'book-series': BookSeries.Filter;
'book-supplementary-urls': BookSupplementaryUrls.Filter;
images: Images.Filter;
'person-groups': PersonGroups.Filter;
'person-group-members': PersonGroupMembers.Filter;
persons: Persons.Filter;
serials: Serials.Filter;
'serial-articles': SerialArticles.Filter;
'serial-article-files': SerialArticleFiles.Filter;
'serial-article-images': SerialArticleImages.Filter;
'serial-issues': SerialIssues.Filter;
'serial-issue-files': SerialIssueFiles.Filter;
}[T];
export declare const attributeKeys: {
[T in Type]: (keyof AttributesForType<T>)[];
};
export declare const relationshipKeys: {
[T in Type]: (keyof RelationshipsForType<T>)[];
};
export declare const filterKeys: {
[T in Type]: (keyof FilterForType<T>)[];
};
export declare const sortFields: {
[T in Type]: SortFieldForType<T>[];
};
export declare const sortOptions: {
[T in Type]: SortOptionForType<T>[];
};