log-builder v1.1.3
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
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
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-builder
License
This project is licensed under the ESA D. Portgas