mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-06-03 05:35:02 -04:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { RecipeAPI } from "./class-interfaces/recipes";
|
|
import { UserApi } from "./class-interfaces/users";
|
|
import { GroupAPI } from "./class-interfaces/groups";
|
|
import { DebugAPI } from "./class-interfaces/debug";
|
|
import { EventsAPI } from "./class-interfaces/events";
|
|
import { BackupAPI } from "./class-interfaces/backups";
|
|
import { UploadFile } from "./class-interfaces/upload";
|
|
import { ApiRequestInstance } from "~/types/api";
|
|
|
|
class Api {
|
|
private static instance: Api;
|
|
public recipes: RecipeAPI;
|
|
public users: UserApi;
|
|
public groups: GroupAPI;
|
|
public debug: DebugAPI;
|
|
public events: EventsAPI;
|
|
public backups: BackupAPI;
|
|
public upload: UploadFile;
|
|
|
|
constructor(requests: ApiRequestInstance) {
|
|
if (Api.instance instanceof Api) {
|
|
return Api.instance;
|
|
}
|
|
|
|
this.recipes = new RecipeAPI(requests);
|
|
this.users = new UserApi(requests);
|
|
this.groups = new GroupAPI(requests);
|
|
this.debug = new DebugAPI(requests);
|
|
this.events = new EventsAPI(requests);
|
|
this.backups = new BackupAPI(requests);
|
|
this.upload = new UploadFile(requests);
|
|
|
|
Object.freeze(this);
|
|
Api.instance = this;
|
|
}
|
|
}
|
|
|
|
export { Api };
|