UNPKG

quantique-converter

Version:
56 lines (51 loc) 2.08 kB
/** * 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;