From af8b2db241e1876dde344b6456c8155c64720c1e Mon Sep 17 00:00:00 2001 From: Daniel Gamage Date: Mon, 2 Dec 2024 22:17:18 -0500 Subject: [PATCH 1/2] using a class, ESM --- lib/siteleaf.js | 66 ++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/lib/siteleaf.js b/lib/siteleaf.js index 9c0bdf0..9715e6e 100644 --- a/lib/siteleaf.js +++ b/lib/siteleaf.js @@ -2,39 +2,49 @@ var rp = require("request-promise"); var merge = require("merge"); var request; -function Siteleaf(options) { - this.options = options || {}; - this.options = merge({ - apiKey: process.env['SITELEAF_APIKEY'], - apiSecret: process.env['SITELEAF_APISECRET'] - }, this.options); +class Siteleaf { + constructor(options = {}) { + this.options = { + apiKey: process.env['SITELEAF_APIKEY'], + apiSecret: process.env['SITELEAF_APISECRET'], + ...options + }; - request = rp.defaults({ - baseUrl: "https://api.siteleaf.com/v2/", - auth: { - user: this.options.apiKey, - pass: this.options.apiSecret - }, - headers: { + this.baseUrl = "https://api.siteleaf.com/v2/"; + this.headers = { 'Content-Type': 'application/json', 'User-Agent': 'Siteleaf-Node/0.1.0' - }, - json: true - }); -}; + }; + } -Siteleaf.prototype.request = function(uri, options){ - options = options || {}; - options = merge(options, { uri: uri }); - var self = this; + async request(uri, options = {}) { + const requestOptions = { + method: options.method || 'GET', + headers: { + ...this.headers, + ...options.headers + }, + body: options.body ? JSON.stringify(options.body) : undefined, + auth: { + user: this.options.apiKey, + pass: this.options.apiSecret + } + }; - return request(options).catch(function(err){ - self.onerror(err) - }); -}; + try { + const response = await fetch(`${this.baseUrl}${uri}`, requestOptions); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return await response.json(); + } catch (err) { + this.onerror(err); + } + } -Siteleaf.prototype.onerror = function(err) { - console.error(err.response.body); -}; + onerror(err) { + console.error(err.message); + } +} module.exports = Siteleaf; From c34692e759a3d76e383aff908376a30ab85cab62 Mon Sep 17 00:00:00 2001 From: Daniel Gamage Date: Mon, 2 Dec 2024 22:21:11 -0500 Subject: [PATCH 2/2] using ESM export, removing deps, and bumping version --- lib/siteleaf.js | 12 +++--------- package.json | 9 ++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/lib/siteleaf.js b/lib/siteleaf.js index 9715e6e..081eabb 100644 --- a/lib/siteleaf.js +++ b/lib/siteleaf.js @@ -1,8 +1,4 @@ -var rp = require("request-promise"); -var merge = require("merge"); -var request; - -class Siteleaf { +export default class Siteleaf { constructor(options = {}) { this.options = { apiKey: process.env['SITELEAF_APIKEY'], @@ -13,7 +9,7 @@ class Siteleaf { this.baseUrl = "https://api.siteleaf.com/v2/"; this.headers = { 'Content-Type': 'application/json', - 'User-Agent': 'Siteleaf-Node/0.1.0' + 'User-Agent': 'Siteleaf-Node/0.3.0' }; } @@ -45,6 +41,4 @@ class Siteleaf { onerror(err) { console.error(err.message); } -} - -module.exports = Siteleaf; +} \ No newline at end of file diff --git a/package.json b/package.json index fc24bbb..2e36792 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteleaf", "description": "Siteleaf v2 API library", - "version": "0.2.0", + "version": "0.3.0", "author": { "name": "Siteleaf" }, @@ -26,10 +26,5 @@ "url": "https://github.com/siteleaf/siteleaf-node/issues" }, "homepage": "https://github.com/siteleaf/siteleaf-node#readme", - "directories": {}, - "dependencies": { - "bluebird": "^2.10.2", - "merge": "^1.2.0", - "request-promise": "^1.0.1" - } + "directories": {} }