3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-07 11:07:19 +00:00

add one or two funcs

Signed-off-by: GitHub <noreply@github.com>
This commit is contained in:
Tiago R 2023-10-09 10:37:03 +00:00 committed by GitHub
parent e1996e35f6
commit 13565e2a7a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 216 additions and 0 deletions

View file

@ -1,3 +1,4 @@
import { convertBase } from "baseroo";
import seedrandom from "seedrandom";
import { get, has } from "./utils";
@ -434,6 +435,10 @@ const baseValues = {
if (isNaN(arg)) return 0;
return Math.ceil(parseFloat(arg));
},
abs(arg) {
if (isNaN(arg)) return 0;
return Math.abs(parseFloat(arg));
},
add(...args) {
return args.reduce((result, arg) => {
if (isNaN(arg)) return result;
@ -465,6 +470,73 @@ const baseValues = {
if (isNaN(base) || isNaN(power)) return 0;
return Math.pow(parseFloat(base), parseFloat(power));
},
sqrt(arg) {
if (isNaN(arg)) return 0;
return Math.sqrt(parseFloat(arg));
},
cbrt(arg) {
if (isNaN(arg)) return 0;
return Math.cbrt(parseFloat(arg));
},
sin(radians) {
if (isNaN(radians)) return 0;
return Math.sin(parseFloat(radians));
},
sinh(arg) {
if (isNaN(arg)) return 0;
return Math.sinh(parseFloat(arg));
},
tan(arg) {
if (isNaN(arg)) return 0;
return Math.tan(parseFloat(arg));
},
tanh(arg) {
if (isNaN(arg)) return 0;
return Math.tanh(parseFloat(arg));
},
log(arg) {
if (isNaN(arg)) return 0;
return Math.log(parseFloat(arg));
},
log2(arg) {
if (isNaN(arg)) return 0;
return Math.log2(parseFloat(arg));
},
log10(arg) {
if (isNaN(arg)) return 0;
return Math.log10(parseFloat(arg));
},
log1p(arg) {
if (isNaN(arg)) return 0;
return Math.log1p(parseFloat(arg));
},
hypot(...args) {
if (!args.every((e) => !isNaN(e))) return ""; // TODO: Improve validation
return Math.hypot(...args.map((e) => parseFloat(e)));
},
cos(arg) {
if (isNaN(arg)) return 0;
return Math.cos(parseFloat(arg));
},
cosh(arg) {
if (isNaN(arg)) return 0;
return Math.cosh(parseFloat(arg));
},
const(str) {
// math constants lmao :joy:
const math_constants = {
pi: Math.PI,
e: Math.E,
sqrt2: Math.SQRT2,
"sqrt0.5": Math.SQRT1_2,
ln10: Math.LN10,
ln2: Math.LN2,
log10e: Math.LOG10E,
log2e: Math.LOG2E,
};
if (typeof str !== "string") return "";
return math_constants[str.toLowerCase()] ?? "";
},
map(obj, key) {
if (Array.isArray(obj)) {
return obj.map((tobj) => tobj[key]);
@ -485,6 +557,14 @@ const baseValues = {
if (!str || typeof str !== "string") return "";
return str.replaceAll(/[^\d]+/g, "");
},
convert_base(value, from, to) {
try {
// :joy:
return convertBase(value, from, to);
} catch (_) {
return "";
}
},
};
export async function renderTemplate(