add some support for tickets, introspection method, minor fixes
[squeep-indieauth-helper] / lib / common.js
index dc0585471303780c5720ab0d5f62fdf55d11d059..f199b4947ed1ba537a29350c617322cf64678512 100644 (file)
@@ -17,8 +17,8 @@ const fileScope = (filename) => {
 
 /**
  * Pick out useful axios response fields.
- * @param {*} res
- * @returns
+ * @param {AxiosResponse} res
+ * @returns {Object}
  */
 const axiosResponseLogData = (res) => {
   const data = pick(res, [
@@ -97,6 +97,17 @@ const properURLComponentName = (component) => {
 }
 
 
+/**
+ * Encodes single-level object as form data string.
+ * @param {Object} data
+ */
+const formData = (data) => {
+  const formData = new URLSearchParams();
+  Object.entries(data).forEach(([name, value]) => formData.set(name, value));
+  return formData.toString();
+};
+
+
 module.exports = {
   fileScope,
   axiosResponseLogData,
@@ -104,4 +115,5 @@ module.exports = {
   pick,
   setSymmetricDifference,
   properURLComponentName,
+  formData,
 };
\ No newline at end of file