Skip to content
Snippets Groups Projects
Verified Commit ef67c1e0 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

feat: new is- commands for transformer, not command

parent fdb932be
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,7 @@ import { ...@@ -17,6 +17,7 @@ import {
validateObject, validateObject,
validatePrimitive, validatePrimitive,
validateString, validateString,
validateBoolean,
} from "../types/validate.mjs"; } from "../types/validate.mjs";
import {clone} from "../util/clone.mjs"; import {clone} from "../util/clone.mjs";
import {Pathfinder} from "./pathfinder.mjs"; import {Pathfinder} from "./pathfinder.mjs";
...@@ -186,6 +187,42 @@ function transform(value) { ...@@ -186,6 +187,42 @@ function transform(value) {
validateString(value); validateString(value);
return value.toLowerCase(); return value.toLowerCase();
case "isundefined":
case "is-undefined":
return value === undefined;
case "isnull":
case "is-null":
return value === null;
case "isset":
case "is-set":
return value !== undefined && value !== null;
case "isnumber":
case "is-number":
return isPrimitive(value) && !isNaN(value);
case "isinteger":
case "is-integer":
return isPrimitive(value) && !isNaN(value) && value % 1 === 0;
case "isfloat":
case "is-float":
return isPrimitive(value) && !isNaN(value) && value % 1 !== 0;
case "isobject":
case "is-object":
return isObject(value);
case "isarray":
case "is-array":
return Array.isArray(value);
case "not":
validateBoolean(value);
return !value;
case "toupper": case "toupper":
case "strtoupper": case "strtoupper":
case "touppercase": case "touppercase":
......
...@@ -24,9 +24,31 @@ describe('Transformer', function () { ...@@ -24,9 +24,31 @@ describe('Transformer', function () {
}); });
describe('Transformer.run()', function () { describe('Transformer.run()', function () {
[ [
['isundefined', "a", false],
['isundefined', null, false],
['isundefined', undefined, true],
['isnull', "a", false],
['isnull', null, true],
['isset', null, false],
['isset', undefined, false],
['isset', "", true],
['isnumber', "a", false],
['isnumber', 4, true],
['isnumber', 4.5, true],
['isinteger', 4.5, false],
['isinteger', 4, true],
['isfloat', 5.6, true],
['isfloat', 5, false],
['isobject', 4, false],
['isobject', {}, true],
['isarray', [{}], true],
['isarray', "a", false],
['not', true, false],
['not', false, true],
['map:a=4:b=5:c=6', "a", "4"], ['map:a=4:b=5:c=6', "a", "4"],
['date', "2023-02-14", "14.2.2023"], ['date', "2023-02-14", "14.2.2023"],
['year', "2023-02-14", 2023], ['year', "2023-02-14", 2023],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment