quantique-converter
Version:
Converters for all kind of data
56 lines (51 loc) • 2.08 kB
JavaScript
/**
* Universal data converter function
* @param {any} input - The input data to convert
* @param {string} outputType - Desired output type ('string', 'number', 'boolean', 'json', 'array', 'object')
* @returns {any} - Converted data
* @throws {Error} - If conversion is not possible
*/
const defaultErrorMessages = require('./Messages/defaultErrorMessages');
const convertHexToRGBA = require('./Converters/convertHexToRGBA');
const convertToArray = require('./Converters/convertToArray');
const convertToBoolean = require('./Converters/convertToBoolean');
const convertToJson = require('./Converters/convertToJson');
const convertToNumber = require('./Converters/convertToNumber');
const convertToObject = require('./Converters/convertToObject');
const convertToString = require('./Converters/convertToString');
const convertTob64 = require('./Converters/convertTob64');
const convertAes256 = require('./Converters/convertAes256');
const convertToBytes = require('./Converters/convertToBytes');
const convertTo = (outputType, input, parameters) => {
if (input === undefined || input === null) {
return null;
}
switch (outputType.toLowerCase()) {
case 'string':
return convertToString(input, parameters);
case 'number':
return convertToNumber(input, parameters);
case 'boolean':
return convertToBoolean(input, parameters);
case 'json':
return convertToJson(input, parameters);
case 'array':
return convertToArray(input, parameters);
case 'object':
return convertToObject(input, parameters);
case 'rgba':
return convertHexToRGBA(input, parameters);
case 'b64':
return convertTob64(input, parameters);
case 'aes256':
return convertAes256(input, parameters);
case 'bytes':
return convertToBytes(input, parameters);
default:
return {
error: `Unsupported output type: ${outputType}`,
};
// throw new Error(`Unsupported output type: ${outputType}`);
}
};
module.exports = convertTo;