UNPKG

hyperformula

Version:

HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas

79 lines (77 loc) 2.82 kB
"use strict"; exports.__esModule = true; exports.configCheckIfParametersNotInConflict = configCheckIfParametersNotInConflict; exports.configValueFromParam = configValueFromParam; exports.configValueFromParamCheck = configValueFromParamCheck; exports.validateArgToType = validateArgToType; exports.validateNumberToBeAtLeast = validateNumberToBeAtLeast; exports.validateNumberToBeAtMost = validateNumberToBeAtMost; var _Config = require("./Config"); var _errors = require("./errors"); /** * @license * Copyright (c) 2025 Handsoncode. All rights reserved. */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function configValueFromParam(inputValue, expectedType, paramName) { if (typeof inputValue === 'undefined') { return _Config.Config.defaultConfig[paramName]; } else if (typeof expectedType === 'string') { if (typeof inputValue === expectedType) { return inputValue; } else { throw new _errors.ExpectedValueOfTypeError(expectedType, paramName); } } else { if (expectedType.includes(inputValue)) { return inputValue; } else { throw new _errors.ExpectedOneOfValuesError(expectedType.map(val => `'${val}'`).join(' '), paramName); } } } function validateNumberToBeAtLeast(value, paramName, minimum) { if (value < minimum) { throw new _errors.ConfigValueTooSmallError(paramName, minimum); } } function validateNumberToBeAtMost(value, paramName, maximum) { if (value > maximum) { throw new _errors.ConfigValueTooBigError(paramName, maximum); } } // eslint-disable-next-line @typescript-eslint/no-explicit-any function configValueFromParamCheck(inputValue, typeCheck, expectedType, paramName) { if (typeCheck(inputValue)) { return inputValue; } else if (typeof inputValue === 'undefined') { return _Config.Config.defaultConfig[paramName]; } else { throw new _errors.ExpectedValueOfTypeError(expectedType, paramName); } } function configCheckIfParametersNotInConflict(...params) { const valuesMap = new Map(); params.forEach(param => { const names = valuesMap.get(param.value) || []; names.push(param.name); valuesMap.set(param.value, names); }); const duplicates = []; for (const entry of valuesMap.values()) { if (entry.length > 1) { duplicates.push(entry); } } if (duplicates.length > 0) { duplicates.forEach(entry => entry.sort()); const paramNames = duplicates.map(entry => `[${entry}]`).join('; '); throw new Error(`Config initialization failed. Parameters in conflict: ${paramNames}`); } } // eslint-disable-next-line @typescript-eslint/no-explicit-any function validateArgToType(inputValue, expectedType, paramName) { if (typeof inputValue !== expectedType) { throw new _errors.ExpectedValueOfTypeError(expectedType, paramName); } }