2021-08-01 19:24:47 -08:00
|
|
|
import { RecipeAPI } from "./class-interfaces/recipes";
|
2021-08-03 21:38:45 -08:00
|
|
|
import { UserApi } from "./class-interfaces/users";
|
2021-08-01 19:24:47 -08:00
|
|
|
import { ApiRequestInstance } from "~/types/api";
|
2021-07-31 14:45:28 -08:00
|
|
|
|
2021-08-01 19:24:47 -08:00
|
|
|
class Api {
|
|
|
|
private static instance: Api;
|
|
|
|
public recipes: RecipeAPI;
|
2021-08-03 21:38:45 -08:00
|
|
|
public users: UserApi;
|
2021-07-31 14:45:28 -08:00
|
|
|
|
2021-08-01 19:24:47 -08:00
|
|
|
constructor(requests: ApiRequestInstance) {
|
|
|
|
if (Api.instance instanceof Api) {
|
|
|
|
return Api.instance;
|
|
|
|
}
|
2021-07-31 14:45:28 -08:00
|
|
|
|
2021-08-01 19:24:47 -08:00
|
|
|
this.recipes = new RecipeAPI(requests);
|
2021-08-03 21:38:45 -08:00
|
|
|
this.users = new UserApi(requests);
|
2021-07-31 14:45:28 -08:00
|
|
|
|
2021-08-01 19:24:47 -08:00
|
|
|
Object.freeze(this);
|
|
|
|
Api.instance = this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export { Api };
|