@digifi/jexl-functions
Version:
Package with available JEXL functions
24 lines (23 loc) • 1.72 kB
TypeScript
import { createValidateTextLengthFunction, createValidateArrayLikeValueMaxSizeFunction, createValidateCriteria } from './validation';
import { createSaveFlattenFunction } from './array';
import { evalCriteriaParseResult, parseCriteriaExpression } from './criteria';
import { coerceToString, coerceToNumber, coerceNullishValueToArray } from './coerceUtils';
export interface ModuleUtils {
validateTextLength: ReturnType<typeof createValidateTextLengthFunction>;
validateArrayLikeValueMaxSize: ReturnType<typeof createValidateArrayLikeValueMaxSizeFunction>;
safeFlatten: ReturnType<typeof createSaveFlattenFunction>;
validateCriteria: ReturnType<typeof createValidateCriteria>;
evalCriteriaParseResult: typeof evalCriteriaParseResult;
parseCriteriaExpression: typeof parseCriteriaExpression;
coerceToNumber: typeof coerceToNumber;
coerceToString: typeof coerceToString;
coerceToStringWithValidation: (text: unknown, maxTextLengthOverride?: number) => string;
coerceNullishValueToArray: typeof coerceNullishValueToArray;
}
export interface IBaseCreateModuleOptions {
defaultMaxTextLength: number;
defaultMaxArraySize: number;
defaultMaxCriteriaLength: number;
}
export declare function createModule<ReturnType>(callback: (utils: ModuleUtils, currentOptions: IBaseCreateModuleOptions) => ReturnType): (options?: Partial<IBaseCreateModuleOptions>) => ReturnType;
export declare function createModule<ModuleOptions, ReturnType>(callback: (utils: ModuleUtils, currentOptions: IBaseCreateModuleOptions & ModuleOptions) => ReturnType, defaultOptions: ModuleOptions & Partial<IBaseCreateModuleOptions>): (options?: Partial<IBaseCreateModuleOptions & ModuleOptions>) => ReturnType;