@frankhoodbs/cast-prop-to-type v3.0.3
Cast Prop to Type
This utility provides a straightforward mechanism to cast various types of JavaScript properties to desired data types, such as number, array, boolean, and object. In the event of a casting error or invalid input, a custom ValidationError is thrown to provide a meaningful error message.
Usage
import { castPropToType } from "@frankhoodbs/cast-prop-to-type";
const numValue = castPropToType("42", "number"); // Returns 42 as a numberAPI
castPropToType(value, type)
Cast the given value to the specified type.
Parameters:
- value (
any): The value to be casted. - type (
"number" | "array" | "boolean" | "object"): The type to which the value should be casted.
Returns:
The casted value. Throws ValidationError if casting is not possible.
ValidationError
Custom error that is thrown when there's a validation error during the casting process. It extends the native JavaScript Error class.
Examples
// Casting a string to a number
const num = castPropToType("42", "number"); // 42
// Casting a string to an array
const arr = castPropToType('["a", "b", "c"]', "array"); // ["a", "b", "c"]
// Casting a string to a boolean
const boolTrue = castPropToType("true", "boolean"); // true
// Casting a string to an object
const obj = castPropToType('{"key": "value"}', "object"); // { key: "value" }Error Handling
If the utility encounters an invalid value for the desired casting type or if the type itself is invalid, a ValidationError will be thrown:
try {
const num = castPropToType("foo", "number");
} catch (error) {
if (error instanceof ValidationError) {
console.error(error.message);
}
}1 year ago
6 months ago
6 months ago
7 months ago
7 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago