UNPKG

akiraa-scrape

Version:

Module & tools for bot whatsApp

60 lines (55 loc) 1.32 kB
const got = require("got"); const stringify = (obj) => JSON.stringify(obj, null, 2); const parse = (str) => JSON.parse(str, (_, v) => { if ( v !== null && typeof v === "object" && "type" in v && v.type === "Buffer" && "data" in v && Array.isArray(v.data) ) { return Buffer.from(v.data); } return v; }); class CloudDBAdapter { constructor( url, { serialize = stringify, deserialize = parse, fetchOptions = {} } = {}, ) { this.url = url; this.serialize = serialize; this.deserialize = deserialize; this.fetchOptions = fetchOptions; } async read() { try { let res = await got(this.url, { method: "GET", headers: { Accept: "application/json;q=0.9,text/plain", }, ...this.fetchOptions, }); if (res.statusCode !== 200) throw res.statusMessage; return this.deserialize(res.body); } catch (e) { return null; } } async write(obj) { let res = await got(this.url, { method: "POST", headers: { "Content-Type": "application/json", }, ...this.fetchOptions, body: this.serialize(obj), }); if (res.statusCode !== 200) throw res.statusMessage; return res.body; } } module.exports = CloudDBAdapter;