api / const
stringAndArrayOp
Creates the string/array-specific operation chain for a value.
Creates the string/array-specific operation chain for a value.
Signature
export const stringAndArrayOp = <T extends string | unknown[]>(
input: MaybeSignalValue<T> | (() => T)
): StringAndArrayOperation => {
const evaluate: () => T =
typeof input === "function"
? (input as () => T)
: (): T => value(input as MaybeSignalValue<T>);
return {
...genericOp(input),
lengthBetween: (
lowerValue: MaybeSignalValue<number>,
upperValue: MaybeSignalValue<number>,
touchingLower = true,
touchingUpper = true
) =>
genericOp(() => {
const val = evaluate();
const len = val.length;
const lowerVal = value(lowerValue);
const upperVal = value(upperValue);
const lowerCheckPass = touchingLower ? len >= lowerVal : len > lowerVal;
const upperCheckPass = touchingUpper ? len <= upperVal : len < upperVal;
return lowerCheckPass && upperCheckPass;
}),
lengthEquals: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length === value(compareValue);
}),
lengthNotEquals: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length !== value(compareValue);
}),
lengthLT: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length < value(compareValue);
}),
lengthLTE: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length <= value(compareValue);
}),
lengthGT: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length > value(compareValue);
}),
lengthGTE: (compareValue: MaybeSignalValue<number>) =>
genericOp(() => {
const val = evaluate();
return val.length >= value(compareValue);
}),
};
};
Type Parameters
- The string or array value type
Parameters
input: A signalified string/array or value-producing function
Returns
A string-and-array operation object with length-based methods
Remarks
- Used when the evaluated value is a string or array
- Methods return new operation objects for chaining