log-builder
v1.1.4
Published
A repository for building log expressions and evaluating them.
Downloads
34
Maintainers
Readme
LogBuilderRepository
Overview
LogBuilderRepository is a TypeScript utility that processes expressions with references to source and target data. It supports various functions such as string manipulation, mathematical operations, conditional evaluations, and logical comparisons.
Supported Functions
1. CONCAT
Concatenates multiple values into a single string.
Usage:CONCAT([value1, value2, ...])
Example:CONCAT(["Hello", " ", "World"]) → "Hello World"
2. ADD
Adds multiple numbers together.
Usage:ADD([num1, num2, ...])
Example:ADD([5, 10]) → 15
3. DIVIDE
Divides two numbers.
Usage:DIVIDE([num1, num2])
Example:DIVIDE([10, 2]) → 5
Returns null if division by zero.
4. MULTIPLY
Multiplies multiple numbers together.
Usage:MULTIPLY([num1, num2, ...])
Example:MULTIPLY([3, 4]) → 12
5. MIN
Finds the minimum value among the given numbers.
Usage:MIN([num1, num2, ...])
Example:MIN([5, 10, 2]) → 2
5.2. MAX
Finds the maximum value among the given numbers.
Usage:MAX([num1, num2, ...])
Example:MAX([5, 10, 2]) → 10
6. RIGHT
Extracts the rightmost characters of a string.
Usage:RIGHT([length, string])
Example:RIGHT([3, "Hello"]) → "llo"
7. LEFT
Extracts the leftmost characters of a string.
Usage:LEFT([length, string])
Example:LEFT([3, "Hello"]) → "Hel"
8. COMPARE
Compares two values with an operator.
Usage:COMPARE([value1, operator, value2])
Example:COMPARE([10, ">", 5]) → true
Supported operators: >, <, >=, <=, =, !=, like*, *like, *like*, in, range
9. IF
Conditional function returning one value if true, another if false.
Usage:IF([condition, trueValue, falseValue])
Example:IF([COMPARE([5, ">", 3]), "Yes", "No"]) → "Yes"
10. AND
Returns true if all conditions are true, otherwise false.
Usage:AND([condition1, condition2, ...])
Example:AND([COMPARE([10, ">", 5]), COMPARE([3, "<", 7])]) → true
11. OR
Returns true if at least one condition is true, otherwise false.
Usage:OR([condition1, condition2, ...])
Example:OR([COMPARE([2, ">", 5]), COMPARE([7, ">", 3])]) → true
12. _ALL
collect all json object.
Usage:
{
"source":{
"data1":"1",
"nested":{
"yohohoh":"ok",
"nested2":{
"yohihi":"hihi"
}
}
},
"builder":{
"COLLECT":"S._ALL",
"data1":"CONCAT([S.data1,YUHU])"
},
"target":{}
}
// output
{
"data1": "1YUHU",
"nested": {
"yohohoh": "ok",
"nested2": {
"yohihi": "hihi"
}
}
}Usage Example
const repository = new LogBuilderRepository();
const source = { name: 'John', age: 30 };
const target = {};
const result = repository.evaluateExpression('CONCAT(["Hello ", source.name])', source, target);
console.log(result); // Output: "Hello John"Installation
Install via npm:
npm install log-builderLicense
This project is licensed under the ESA D. Portgas
