UNPKG

json-p3

Version:

JSONPath, JSON Pointer and JSON Patch

102 lines (101 loc) 3.68 kB
import { JSONPathNodeList } from "./node"; import { JSONPathQuery } from "./path"; import { Token } from "./token"; import { FilterContext, SerializationOptions } from "./types"; /** * Base class for all filter expressions. */ export declare abstract class FilterExpression { readonly token: Token; constructor(token: Token); /** * Evaluate the filter expression in the given context. * @param context - Evaluation context. */ abstract evaluate(context: FilterContext): unknown; /** * Return a string representation of the expression. */ abstract toString(options?: SerializationOptions): string; } /** * Base class for JSONPath ValueType literals. */ export declare abstract class FilterExpressionLiteral extends FilterExpression { } export declare class NullLiteral extends FilterExpressionLiteral { evaluate(): null; toString(): string; } export declare class BooleanLiteral extends FilterExpressionLiteral { readonly token: Token; readonly value: boolean; constructor(token: Token, value: boolean); evaluate(): boolean; toString(): string; } export declare class StringLiteral extends FilterExpressionLiteral { readonly token: Token; readonly value: string; constructor(token: Token, value: string); evaluate(): string; toString(): string; } export declare class NumberLiteral extends FilterExpressionLiteral { readonly token: Token; readonly value: number; constructor(token: Token, value: number); evaluate(): number; toString(): string; } export declare class PrefixExpression extends FilterExpression { readonly token: Token; readonly operator: string; readonly right: FilterExpression; constructor(token: Token, operator: string, right: FilterExpression); evaluate(context: FilterContext): boolean; toString(options?: SerializationOptions): string; } export declare class InfixExpression extends FilterExpression { readonly token: Token; readonly left: FilterExpression; readonly operator: string; readonly right: FilterExpression; readonly logical: boolean; constructor(token: Token, left: FilterExpression, operator: string, right: FilterExpression); evaluate(context: FilterContext): boolean; toString(options?: SerializationOptions): string; } export declare class LogicalExpression extends FilterExpression { readonly token: Token; readonly expression: FilterExpression; constructor(token: Token, expression: FilterExpression); evaluate(context: FilterContext): boolean; toString(options?: SerializationOptions): string; } /** * Base class for relative and absolute JSONPath query expressions. */ export declare abstract class FilterQuery extends FilterExpression { readonly token: Token; readonly path: JSONPathQuery; constructor(token: Token, path: JSONPathQuery); } export declare class RelativeQuery extends FilterQuery { evaluate(context: FilterContext): JSONPathNodeList; toString(options?: SerializationOptions): string; } export declare class RootQuery extends FilterQuery { evaluate(context: FilterContext): JSONPathNodeList; toString(options?: SerializationOptions): string; } export declare class FunctionExtension extends FilterExpression { readonly token: Token; readonly name: string; readonly args: FilterExpression[]; constructor(token: Token, name: string, args: FilterExpression[]); evaluate(context: FilterContext): unknown; toString(options?: SerializationOptions): string; private unpack_node_list; } export declare function compare(left: unknown, operator: string, right: unknown): boolean;