bump package version to 1.4.2
[squeep-indieauth-helper] / lib / common.js
index b52b819da963d5172a06779e279cf3e2531acbcb..6ede0a80fde15d00e7de72edfaae252bedf1bec8 100644 (file)
@@ -1,25 +1,18 @@
 'use strict';
 
-const path = require('path');
-const { name: packageName, version: packageVersion } = require('../package');
-
-const libraryIdentifier = `${packageName}@${packageVersion}`;
-
 /**
- * Return a function which combines a part of the filename with a scope, for use in logging.
- * @param {string} filename
+ * @typedef {object} GotResponse
+ * @property {Buffer|string} body response body
+ * @property {Array} redirectUrls followed redirect urls
+ * @property {number=} retryCount retries
+ * @property {object=} timings timings object
+ * @property {object=} timings.phases timing phases object
+ * @property {number=} timings.phases.total timing total ms
  */
-const fileScope = (filename) => {
-  const shortFilename = path.basename(filename, '.js');
-  const fScope = (shortFilename === 'index') ? path.basename(path.dirname(filename)) : shortFilename;
-  return (scope) => [libraryIdentifier, fScope, scope].join(':');
-}
-
-
 /**
  * Pick out useful got response fields.
- * @param {GotResponse} res
- * @returns {Object}
+ * @param {GotResponse} res response
+ * @returns {object} filtered response
  */
 const gotResponseLogData = (res) => {
   const data = pick(res, [
@@ -27,6 +20,7 @@ const gotResponseLogData = (res) => {
     'statusMessage',
     'headers',
     'body',
+    'url',
     'error',
   ]);
   if (typeof res.body === 'string') {
@@ -47,9 +41,9 @@ const gotResponseLogData = (res) => {
 
 /**
  * Limit length of string to keep logs sane
- * @param {String} str
- * @param {Number} len
- * @returns {String}
+ * @param {string} str string
+ * @param {number} len length
+ * @returns {string} truncated string
  */
 const logTruncate = (str, len) => {
   if (typeof str !== 'string' || str.toString().length <= len) {
@@ -61,8 +55,9 @@ const logTruncate = (str, len) => {
 
 /**
  * Return a new object with selected props.
- * @param {Object} obj
- * @param {String[]} props
+ * @param {object} obj object
+ * @param {string[]} props list of properties
+ * @returns {object} filtered object
  */
 const pick = (obj, props) => {
   return props.reduce((acc, prop) => {
@@ -76,9 +71,9 @@ const pick = (obj, props) => {
 
 /**
  * Return a set containing non-shared items between two sets.
- * @param {Set} a
- * @param {Set} b
- * @returns {Set}
+ * @param {Set} a set a
+ * @param {Set} b set b
+ * @returns {Set} set difference
  */
 const setSymmetricDifference = (a, b) => {
   const d = new Set(a);
@@ -95,8 +90,8 @@ const setSymmetricDifference = (a, b) => {
 
 /**
  * URL objects have weird names.
- * @param {String} component
- * @returns {String}
+ * @param {string} component url component name
+ * @returns {string} translated url component name
  */
 const properURLComponentName = (component) => {
   // eslint-disable-next-line security/detect-object-injection
@@ -104,14 +99,13 @@ const properURLComponentName = (component) => {
     hash: 'fragment',
     protocol: 'scheme',
   }[component] || component;
-}
+};
 
 
 module.exports = {
-  fileScope,
   gotResponseLogData,
   logTruncate,
   pick,
   setSymmetricDifference,
   properURLComponentName,
-};
\ No newline at end of file
+};