@digicms/cms
Version:
An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite
26 lines (20 loc) • 907 B
TypeScript
type Entity = object;
interface BaseService {
getFetchParams?(params: object): object;
}
export interface SingleTypeService extends BaseService {
find?(params: object): Promise<Entity> | Entity;
createOrUpdate?(params: object): Promise<Entity> | Entity;
delete?(params: object): Promise<Entity> | Entity;
}
export interface CollectionTypeService extends BaseService {
find?(params: object): Promise<Entity[]> | Entity;
findOne?(entityId: string, params: object): Promise<Entity> | Entity;
create?(params: object): Promise<Entity> | Entity;
update?(entityId: string, params: object): Promise<Entity> | Entity;
delete?(entityId: string, params: object): Promise<Entity> | Entity;
}
export type Service = SingleTypeService | CollectionTypeService;
export type GenericService = Partial<Service> & {
[method: string | number | symbol]: (...args: any) => any;
};