type-coercion
v1.0.1
Published
Simple node module that coerce strings to certain types
Maintainers
Readme
Type Coercion
Usage
import { Coercion } from 'type-coercion';
Coercion.boolean("yes"); // trueFunctions
Boolean
Defaults to false.
Coercion.boolean("foo"); // false
Coercion.boolean("true"); // true
Coercion.boolean("false"); // false
Coercion.boolean("yes"); // true
Coercion.boolean("no"); // false
Coercion.boolean("1"); // true
Coercion.boolean("0"); // false
Coercion.boolean("on"); // true
Coercion.boolean("off"); // falseInteger
Optional options:
type Options = {
default?: number;
min?: number;
max?: number;
radix?: number;
}Defaults to 0 if no default is provided.
Coercion.integer("10"); // 10
Coercion.integer("foo"); // 0
Coercion.integer("bar", { default: 10 }); // 10
Coercion.integer("84", { min: 0, max: 42 }); // 42
Coercion.integer("A", { radix: 16 }); // 10Positive Integer
Optional options:
type Options = {
default?: number;
min?: number;
max?: number;
radix?: number;
}Defaults to 0 if no default is provided.
Coercion.positiveInteger("10"); // 10
Coercion.positiveInteger("-10"); // 0
Coercion.positiveInteger("foo"); // 0
Coercion.positiveInteger("bar", { default: 10 }); // 10
Coercion.positiveInteger("84", { min: 0, max: 42 }); // 42
Coercion.positiveInteger("A", { radix: 16 }); // 10Float
Optional options:
type Options = {
default?: number;
min?: number;
max?: number;
}Defaults to 0 if no default is provided.
Coercion.float("10.5"); // 10.5
Coercion.float("foo"); // 0
Coercion.float("bar", { default: 10.5 }); // 10.5
Coercion.float("84.5", { min: 0, max: 42 }); // 42Positive Float
Optional options:
type Options = {
default?: number;
min?: number;
max?: number;
}Defaults to 0 if no default is provided.
Coercion.positiveFloat("10.5"); // 10.5
Coercion.positiveFloat("-10.5"); // 0
Coercion.positiveFloat("foo"); // 0
Coercion.positiveFloat("bar", { default: 10.5 }); // 10.5
Coercion.positiveFloat("84.5", { min: 0, max: 42 }); // 42Contributing
Feel free to open an issue or a pull request if you have any suggestions or improvements. Adding new coercion functions is especially welcome!
License
This project is licensed under the MIT License. See the LICENSE file for details.
