ts-flex-query
Version:
Flexible and type-safe data queries
107 lines (106 loc) • 6.09 kB
TypeScript
import { FunctionContainer } from '../types/function-container';
export declare const publicFunctionContainers: {
readonly aggregation: {
count(values: unknown[] | undefined): number;
countDistinct(values: unknown[] | undefined): number;
maximum(values: (number | undefined)[]): number | undefined;
minimum(values: (number | undefined)[]): number | undefined;
sum(values: (number | undefined)[]): number;
average(values: (number | undefined)[]): number | undefined;
};
readonly boolean: {
and(v1: boolean | undefined, v2: boolean | undefined): boolean;
or(v1: boolean | undefined, v2: boolean | undefined): boolean;
xor(v1: boolean | undefined, v2: boolean | undefined): boolean;
not(v: boolean | undefined): boolean;
};
readonly collections: {
distinct(collection: unknown[]): unknown[];
in(value: unknown, collection: unknown[] | undefined): boolean;
first(collection: unknown[] | undefined): unknown;
};
readonly comparison: {
equal(v1: unknown, v2: unknown): boolean;
notEqual(v1: unknown, v2: unknown): boolean;
greater(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
greaterOrEqual(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
lower(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
lowerOrEqual(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
has(v1: unknown, v2: unknown): boolean;
};
readonly mathematics: {
add(v1: number | undefined, v2: number | undefined): number | undefined;
subtract(v1: number | undefined, v2: number | undefined): number | undefined;
multiply(v1: number | undefined, v2: number | undefined): number | undefined;
divide(v1: number | undefined, v2: number | undefined): number | undefined;
divideInteger(v1: number | undefined, v2: number | undefined): number | undefined;
modulo(v1: number | undefined, v2: number | undefined): number | undefined;
};
readonly text: {
startsWith(v1: string | undefined, v2: string | undefined): boolean;
endsWith(v1: string | undefined, v2: string | undefined): boolean;
upperCase(v: string | undefined): string | undefined;
lowerCase(v: string | undefined): string | undefined;
concat(v1: string | undefined, v2: string | undefined): string;
contains(v1: string | undefined, v2: string | undefined): boolean;
indexOf(v1: string | undefined, v2: string | undefined): number;
getLength(v: string | undefined): number;
asString(v: unknown): string | undefined;
};
};
export declare const functionContainers: {
readonly internal: {
ifUndefined(val: unknown, fallback: unknown): unknown;
mergeObjects(obj1: Record<PropertyKey, any>, obj2: Record<PropertyKey, any>): Record<PropertyKey, any>;
};
readonly aggregation: {
count(values: unknown[] | undefined): number;
countDistinct(values: unknown[] | undefined): number;
maximum(values: (number | undefined)[]): number | undefined;
minimum(values: (number | undefined)[]): number | undefined;
sum(values: (number | undefined)[]): number;
average(values: (number | undefined)[]): number | undefined;
};
readonly boolean: {
and(v1: boolean | undefined, v2: boolean | undefined): boolean;
or(v1: boolean | undefined, v2: boolean | undefined): boolean;
xor(v1: boolean | undefined, v2: boolean | undefined): boolean;
not(v: boolean | undefined): boolean;
};
readonly collections: {
distinct(collection: unknown[]): unknown[];
in(value: unknown, collection: unknown[] | undefined): boolean;
first(collection: unknown[] | undefined): unknown;
};
readonly comparison: {
equal(v1: unknown, v2: unknown): boolean;
notEqual(v1: unknown, v2: unknown): boolean;
greater(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
greaterOrEqual(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
lower(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
lowerOrEqual(v1: number | bigint | Date | undefined, v2: number | bigint | Date | undefined): boolean;
has(v1: unknown, v2: unknown): boolean;
};
readonly mathematics: {
add(v1: number | undefined, v2: number | undefined): number | undefined;
subtract(v1: number | undefined, v2: number | undefined): number | undefined;
multiply(v1: number | undefined, v2: number | undefined): number | undefined;
divide(v1: number | undefined, v2: number | undefined): number | undefined;
divideInteger(v1: number | undefined, v2: number | undefined): number | undefined;
modulo(v1: number | undefined, v2: number | undefined): number | undefined;
};
readonly text: {
startsWith(v1: string | undefined, v2: string | undefined): boolean;
endsWith(v1: string | undefined, v2: string | undefined): boolean;
upperCase(v: string | undefined): string | undefined;
lowerCase(v: string | undefined): string | undefined;
concat(v1: string | undefined, v2: string | undefined): string;
contains(v1: string | undefined, v2: string | undefined): boolean;
indexOf(v1: string | undefined, v2: string | undefined): number;
getLength(v: string | undefined): number;
asString(v: unknown): string | undefined;
};
};
export declare function getContainerFunctionKeys(container: FunctionContainer): string[];
/** Gets the name of the given known function container, or undefined if not found. */
export declare function getFunctionContainerName(container: FunctionContainer): keyof typeof functionContainers | undefined;