summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js')
-rw-r--r--includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js b/includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js
new file mode 100644
index 0000000..5d8ee9e
--- /dev/null
+++ b/includes/external/addressbook/node_modules/open-graph-scraper/dist/lib/request.js
@@ -0,0 +1,43 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const chardet_1 = require("chardet");
+const iconv_lite_1 = require("iconv-lite");
+const utils_1 = require("./utils");
+/**
+ * performs the got request and formats the body for ogs
+ *
+ * @param {object} gotOptions - options for got
+ * @param {object} ogsOptions - options for ogs
+ * @return {object} formatted request body and response
+ *
+ */
+async function requestAndResultsFormatter(gotOptions, ogsOptions) {
+ const got = await (0, utils_1.gotClient)(ogsOptions.downloadLimit);
+ return got(gotOptions)
+ .then((response) => {
+ if (response && response.headers && response.headers['content-type'] && !response.headers['content-type'].includes('text/')) {
+ throw new Error('Page must return a header content-type with text/');
+ }
+ if (response && response.statusCode && (response.statusCode.toString().substring(0, 1) === '4' || response.statusCode.toString().substring(0, 1) === '5')) {
+ throw new Error('Server has returned a 400/500 error code');
+ }
+ if (response.body === undefined || response.body === '') {
+ throw new Error('Page not found');
+ }
+ const char = chardet_1.default.detect(response.rawBody);
+ let decodedBody = response.rawBody.toString();
+ if (char && typeof response.rawBody === 'object') {
+ decodedBody = (0, iconv_lite_1.decode)(response.rawBody, char);
+ }
+ if (!decodedBody) {
+ throw new Error('Page not found');
+ }
+ return { decodedBody, response };
+ })
+ .catch((error) => {
+ if (error instanceof Error)
+ throw error;
+ throw new Error(error);
+ });
+}
+exports.default = requestAndResultsFormatter;