@ribajs/core
Version:
Core module of Riba.js
30 lines (28 loc) • 848 B
text/typescript
import { isNumber } from "@ribajs/utils/src/type.js";
/**
* Gets back random value of array
* @example <div rv-add-class='"["col-2", "col-3", "col-4", "col-5", "col-6"]" | parse | random'>
*
* Or gets back a randon number
* Random number between 0 and 6:
* @example <div rv-add-class='6 | random'>
* Random number between 1 and 6:
* @example <div rv-add-class='6 | random 1'>
*/
export const randomFormatter = {
name: "random",
read(arrayOrMaxNumber: any, min = 0) {
// If is array
if (Array.isArray(arrayOrMaxNumber)) {
return arrayOrMaxNumber[
Math.floor(Math.random() * arrayOrMaxNumber.length)
];
}
// If is number
if (isNumber(arrayOrMaxNumber)) {
const max = arrayOrMaxNumber as number;
return Math.floor(Math.random() * (max - min + 1) + min);
}
return null;
},
};