UNPKG

@flaresocial/api

Version:

API wrapper for the Flare Social API

72 lines 2.83 kB
"use strict"; 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