tiny-essentials
Version:
Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.
64 lines (54 loc) • 2.2 kB
JavaScript
;
var objFilter = require('../../../../v1/basics/objFilter.cjs');
// @ts-nocheck
/**
* Validates the provided data and returns an object with either the parsed data or an error message.
* The function checks if the data is an object, array, or an invalid response, and processes it accordingly.
* If the data contains a `401 Unauthorized` error, it is handled specifically.
*
* @function
* @param {Object|Array} data - The response data to validate. This can be either an object or an array.
*
* @returns {Record<string, any>} The result object containing:
* - `data` (Object|null): The validated data if no error occurred or null if an error was found.
* - `error` (Object|null): The error object if there was an issue, or null if no error was found.
*
* @example
* const response = { error: 'invalid_request', error_description: 'Invalid request format' };
* const result = errorValidator(response);
* console.log(result); // { data: null, error: { code: 401, message: 'Invalid request format' } }
*
* @example
* const response = [{ id: 1, name: 'John' }];
* const result = errorValidator(response);
* console.log(result); // { data: [{ id: 1, name: 'John' }], error: null }
*
* @example
* const response = 'Invalid Response';
* const result = errorValidator(response);
* console.log(result); // { data: null, error: { code: 500, message: 'Invalid HTTP Result!' } }
*/
function errorValidator(data) {
// Result
const result = { data: null, error: null };
// Exist Object
if (objFilter.objType(data, 'object')) {
// Success
if (typeof data.message !== 'string' || data.message !== '401: Unauthorized') {
// Success Complete
if (typeof data.error !== 'string' || typeof data.error_description !== 'string')
result.data = data;
// Nope
else result.error = { code: 401, message: data.error_description };
}
// Nope
else result.error = { code: 401, message: data.message };
}
// Exist Array
else if (Array.isArray(data)) result.data = data;
// Nope
else result.error = { code: 500, message: 'Invalid HTTP Result!' };
// Complete
return result;
}
module.exports = errorValidator;