@flaresocial/api
Version:
API wrapper for the Flare Social API
72 lines • 2.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PostEntity = exports.UserEntity = void 0;
const users_1 = require("./users");
const posts_1 = require("./posts");
var users_2 = require("./users");
Object.defineProperty(exports, "UserEntity", { enumerable: true, get: function () { return users_2.UserEntity; } });
var posts_2 = require("./posts");
Object.defineProperty(exports, "PostEntity", { enumerable: true, get: function () { return posts_2.PostEntity; } });
class FlareApi {
constructor(getToken, baseUrl = 'https://api.tryflare.social') {
this.users = new users_1.UsersEndpoint(this);
this.posts = new posts_1.PostsEndpoint(this);
FlareApi.getToken = getToken;
this.baseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
}
async request(method, path, headers, init) {
console.log(`[${method}] ${this.baseUrl}/${path}`);
const response = await fetch(`${this.baseUrl}/${path}`, {
method,
headers: {
Authorization: `Bearer ${FlareApi.getToken()}`,
...(headers || {}),
},
...(init || {}),
});
const data = await response.json();
if (!response.ok || data.status !== 200) {
console.error(`Request failed: ${data.error}`);
throw new Error(data.error);
}
console.log(`Request status: ${data.status}`);
return data.data;
}
static async register(username, email, password, displayName, baseUrl = 'https://api.tryflare.social') {
const result = await fetch(`${baseUrl}/auth/register`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
username,
email,
password,
display_name: displayName,
}),
});
const data = await result.json();
if (!result.ok || data.status !== 200) {
console.error(`Login failed: ${data.error}`);
throw new Error(data.error);
}
return data.data.token;
}
static async login(login, password, baseUrl = 'https://api.tryflare.social') {
const result = await fetch(`${baseUrl}/auth/login`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ login, password }),
});
const data = await result.json();
if (!result.ok || data.status !== 200) {
console.error(`Login failed: ${data.error}`);
throw new Error(data.error);
}
return data.data.token;
}
}
exports.default = FlareApi;
//# sourceMappingURL=index.js.map