Filter expressions and legacy conditions
Use filter.* to construct the discriminated FilterExpression wire format (op). Legacy root functions such as eq and and construct deprecated Condition objects (operator, value, children, options). They remain public for existing servers and Viewer integration. Do not rename keys or mix the two trees.
| New builder family | Input / wire meaning |
|---|---|
| matchAll(), matchNone() | Explicit all / none; no arguments. |
| id/aggregateId/tenantId/ownerId/spaceId(value) | String metadata values; ids/aggregateIds accept nonempty readonly string arrays. |
| and/or/nor(operands) | Nonempty array, copied to operands; no legacy variadic syntax or empty-all normalization. |
| eq/ne(field, value) | JSON scalar including null; numbers must be finite. |
| gt/gte/lt/lte(field, value) | Non-null comparable scalar. |
| contains/startsWith/endsWith(field, text, comparison?) | Default CASE_SENSITIVE; use StringComparison.CASE_INSENSITIVE explicitly. |
| isIn/notIn/containsAll(field, values) | Nonempty array of non-null comparable scalars; copied. |
| between(field, lowerBound, upperBound) | Validates scalar bounds, not their order or common semantic type. |
| isEmpty/isEmptyString/isNotEmptyString/isNull/isNotNull/exists/notExists(field) | Distinct presence/empty operations; no value argument. |
| deletion(state) | DeletionState.ACTIVE/DELETED/ALL, validated. |
| elementMatch(field, predicate) | Element-relative expression, recursively excludes root metadata/deletion/search. |
| search(query, options?) | Nonblank string, fields defaults [], mode defaults SearchMode.TERMS; PHRASE is explicit. |
| today/tomorrow/yesterday/thisWeek/nextWeek/lastWeek/thisMonth/nextMonth/lastMonth/thisYear/nextYear/lastYear(field, options?) | Relative calendar filters, resolved by the server. |
| beforeToday(field, time, options?) | Local time HH:mm with optional seconds and up to nine fractional digits. |
| recentDays/earlierDays(field, days, options?) | Positive JVM Int, maximum 2147483647. |
QueryField/LogicalField are string type aliases. Builders additionally reject invalid logical paths: segments start with a letter/underscore (optionally @), continue with letters/digits/underscore/hyphen, and allow numeric segments after a dot. RelativeTimeFilterOptions defaults timeUnit to MILLISECONDS, leaves zoneId/datePattern absent; it validates explicit offset zones and Java date-pattern syntax, but does not prove an arbitrary named zone exists on the server. No clock calculation is done in the browser. Invalid values/options throw TypeError before a request. Literal object creation can bypass these runtime builder checks; TypeScript alone is not validation.
Legacy compatibility
Condition's fields are optional and value is any. isValidateCondition is a truthiness check. and(...conditions) removes absent/all children and flattens nested AND; no conditions produces all(). or drops absent entries and returns all() for no valid entries; nor returns all() for an empty argument list and otherwise preserves its children. They are not interchangeable with filter.or/filter.nor. Legacy isIn(field, ...values) is variadic, while ids(values) accepts a string array. active() is the legacy deletion selector; new code uses filter.deletion(DeletionState.ACTIVE). ignoreCaseOptions and dateOptions return undefined when no options were supplied. raw and match are backend-specific legacy escape hatches; no new raw filter builder exists. Operator, LOGICAL_OPERATORS, EMPTY_VALUE_OPERATORS and OperatorLocale serve the legacy UI contract. All builders only produce data; server schema, authorization and storage semantics remain server responsibilities.
Complete example
import {
filter,
StringComparison,
DeletionState,
} from '@ahoo-wang/fetcher-wow';
export const activeUsers = filter.and([
filter.deletion(DeletionState.ACTIVE),
filter.contains('state.name', 'ada', StringComparison.CASE_INSENSITIVE),
filter.between('state.age', 18, 65),
filter.elementMatch('state.roles', filter.eq('name', 'editor')),
]);
console.assert(activeUsers.operands.length === 4);
let rejected = false;
try {
filter.isIn('state.role', []);
} catch {
rejected = true;
}
console.assert(rejected);Public signatures and types
These signatures follow declarations reachable from the current root entry. ? marks optional input; generics/interfaces only constrain compile-time types. Locate inherited and related types through the symbol index. Runtime defaults and failure behavior are described above.
FilterExpression builders and types
filter
Expand all fields and members
declare const filter: {
matchAll(): MatchFilter;
matchNone(): MatchFilter;
id(value: string): MetadataValueFilter;
ids(values: readonly string[]): MetadataValuesFilter;
aggregateId(value: string): MetadataValueFilter;
aggregateIds(values: readonly string[]): MetadataValuesFilter;
tenantId(value: string): MetadataValueFilter;
ownerId(value: string): MetadataValueFilter;
spaceId(value: string): MetadataValueFilter;
and: {
<FIELDS extends string>(
operands: readonly ElementFilterExpression<FIELDS>[],
): ElementLogicalFilter<FIELDS>;
<FIELDS extends string>(
operands: readonly FilterExpression<FIELDS>[],
): LogicalFilter<FIELDS>;
};
or: {
<FIELDS extends string>(
operands: readonly ElementFilterExpression<FIELDS>[],
): ElementLogicalFilter<FIELDS>;
<FIELDS extends string>(
operands: readonly FilterExpression<FIELDS>[],
): LogicalFilter<FIELDS>;
};
nor: {
<FIELDS extends string>(
operands: readonly ElementFilterExpression<FIELDS>[],
): ElementLogicalFilter<FIELDS>;
<FIELDS extends string>(
operands: readonly FilterExpression<FIELDS>[],
): LogicalFilter<FIELDS>;
};
eq<FIELDS extends string>(
field: FIELDS,
value: EqualityFilterValue,
): EqualityFilter<FIELDS>;
ne<FIELDS extends string>(
field: FIELDS,
value: EqualityFilterValue,
): EqualityFilter<FIELDS>;
gt<FIELDS extends string>(
field: FIELDS,
value: ComparableFilterLiteral,
): ComparisonFilter<FIELDS>;
gte<FIELDS extends string>(
field: FIELDS,
value: ComparableFilterLiteral,
): ComparisonFilter<FIELDS>;
lt<FIELDS extends string>(
field: FIELDS,
value: ComparableFilterLiteral,
): ComparisonFilter<FIELDS>;
lte<FIELDS extends string>(
field: FIELDS,
value: ComparableFilterLiteral,
): ComparisonFilter<FIELDS>;
contains<FIELDS extends string>(
field: FIELDS,
value: string,
stringComparison?: StringComparison,
): StringFilter<FIELDS>;
startsWith<FIELDS extends string>(
field: FIELDS,
value: string,
stringComparison?: StringComparison,
): StringFilter<FIELDS>;
endsWith<FIELDS extends string>(
field: FIELDS,
value: string,
stringComparison?: StringComparison,
): StringFilter<FIELDS>;
isIn<FIELDS extends string>(
field: FIELDS,
values: readonly ComparableFilterLiteral[],
): CollectionFilter<FIELDS>;
notIn<FIELDS extends string>(
field: FIELDS,
values: readonly ComparableFilterLiteral[],
): CollectionFilter<FIELDS>;
containsAll<FIELDS extends string>(
field: FIELDS,
values: readonly ComparableFilterLiteral[],
): CollectionFilter<FIELDS>;
between<FIELDS extends string>(
field: FIELDS,
lowerBound: ComparableFilterLiteral,
upperBound: ComparableFilterLiteral,
): BetweenFilter<FIELDS>;
isEmpty<FIELDS extends string>(field: FIELDS): FieldPresenceFilter<FIELDS>;
isEmptyString<FIELDS extends string>(
field: FIELDS,
): FieldPresenceFilter<FIELDS>;
isNotEmptyString<FIELDS extends string>(
field: FIELDS,
): FieldPresenceFilter<FIELDS>;
isNull<FIELDS extends string>(field: FIELDS): FieldPresenceFilter<FIELDS>;
isNotNull<FIELDS extends string>(field: FIELDS): FieldPresenceFilter<FIELDS>;
exists<FIELDS extends string>(field: FIELDS): FieldPresenceFilter<FIELDS>;
notExists<FIELDS extends string>(field: FIELDS): FieldPresenceFilter<FIELDS>;
deletion(state: DeletionState): DeletionFilter;
elementMatch<FIELDS extends string, ELEMENT_FIELDS extends string>(
field: FIELDS,
predicate: ElementFilterExpression<ELEMENT_FIELDS>,
): ElementMatchFilter<FIELDS, ELEMENT_FIELDS>;
search<FIELDS extends string>(
query: string,
options?: SearchFilterOptions<FIELDS>,
): SearchFilter<FIELDS>;
today<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
beforeToday<FIELDS extends string>(
field: FIELDS,
time: string,
options?: RelativeTimeFilterOptions,
): BeforeTodayFilter<FIELDS>;
tomorrow<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
thisWeek<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
nextWeek<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
lastWeek<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
thisMonth<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
lastMonth<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
yesterday<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
nextMonth<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
lastYear<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
thisYear<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
nextYear<FIELDS extends string>(
field: FIELDS,
options?: RelativeTimeFilterOptions,
): CalendarFilter<FIELDS>;
recentDays<FIELDS extends string>(
field: FIELDS,
days: number,
options?: RelativeTimeFilterOptions,
): DaysFilter<FIELDS>;
earlierDays<FIELDS extends string>(
field: FIELDS,
days: number,
options?: RelativeTimeFilterOptions,
): DaysFilter<FIELDS>;
};packages/wow/src/query/filter.ts:580
FilterExpression
export type FilterExpression<FIELDS extends string = string> =
| MatchFilter
| MetadataFilter
| LogicalFilter<FIELDS>
| EqualityFilter<FIELDS>
| ComparisonFilter<FIELDS>
| StringFilter<FIELDS>
| CollectionFilter<FIELDS>
| BetweenFilter<FIELDS>
| FieldPresenceFilter<FIELDS>
| DeletionFilter
| ElementMatchFilter<FIELDS>
| SearchFilter<FIELDS>
| CalendarFilter<FIELDS>
| BeforeTodayFilter<FIELDS>
| DaysFilter<FIELDS>;packages/wow/src/query/filter.ts:494
DeletionState
export enum DeletionState {
ACTIVE = 'ACTIVE',
DELETED = 'DELETED',
ALL = 'ALL',
}packages/wow/src/query/condition.ts:169
QueryField
export type QueryField<FIELDS extends string = string> = FIELDS;packages/wow/src/query/filter.ts:16
LogicalField
export type LogicalField<FIELDS extends string = string> = QueryField<FIELDS>;packages/wow/src/query/filter.ts:18
FilterLiteral
export type FilterLiteral = null | string | number | boolean;packages/wow/src/query/filter.ts:19
EqualityFilterValue
export type EqualityFilterValue = FilterLiteral;packages/wow/src/query/filter.ts:20
ComparableFilterLiteral
export type ComparableFilterLiteral = Exclude<FilterLiteral, null>;packages/wow/src/query/filter.ts:21
FilterOperator
Expand all fields and members
export enum FilterOperator {
MATCH_ALL = 'MATCH_ALL',
MATCH_NONE = 'MATCH_NONE',
ID = 'ID',
IDS = 'IDS',
AGGREGATE_ID = 'AGGREGATE_ID',
AGGREGATE_IDS = 'AGGREGATE_IDS',
TENANT_ID = 'TENANT_ID',
OWNER_ID = 'OWNER_ID',
SPACE_ID = 'SPACE_ID',
AND = 'AND',
OR = 'OR',
NOR = 'NOR',
EQ = 'EQ',
NE = 'NE',
GT = 'GT',
GTE = 'GTE',
LT = 'LT',
LTE = 'LTE',
CONTAINS = 'CONTAINS',
STARTS_WITH = 'STARTS_WITH',
ENDS_WITH = 'ENDS_WITH',
IN = 'IN',
NOT_IN = 'NOT_IN',
BETWEEN = 'BETWEEN',
CONTAINS_ALL = 'CONTAINS_ALL',
IS_EMPTY = 'IS_EMPTY',
IS_EMPTY_STRING = 'IS_EMPTY_STRING',
IS_NOT_EMPTY_STRING = 'IS_NOT_EMPTY_STRING',
IS_NULL = 'IS_NULL',
IS_NOT_NULL = 'IS_NOT_NULL',
EXISTS = 'EXISTS',
NOT_EXISTS = 'NOT_EXISTS',
DELETION = 'DELETION',
ELEMENT_MATCH = 'ELEMENT_MATCH',
SEARCH = 'SEARCH',
TODAY = 'TODAY',
BEFORE_TODAY = 'BEFORE_TODAY',
TOMORROW = 'TOMORROW',
THIS_WEEK = 'THIS_WEEK',
NEXT_WEEK = 'NEXT_WEEK',
LAST_WEEK = 'LAST_WEEK',
THIS_MONTH = 'THIS_MONTH',
LAST_MONTH = 'LAST_MONTH',
YESTERDAY = 'YESTERDAY',
NEXT_MONTH = 'NEXT_MONTH',
LAST_YEAR = 'LAST_YEAR',
THIS_YEAR = 'THIS_YEAR',
NEXT_YEAR = 'NEXT_YEAR',
RECENT_DAYS = 'RECENT_DAYS',
EARLIER_DAYS = 'EARLIER_DAYS',
}packages/wow/src/query/filter.ts:23
StringComparison
export enum StringComparison {
CASE_SENSITIVE = 'CASE_SENSITIVE',
CASE_INSENSITIVE = 'CASE_INSENSITIVE',
}packages/wow/src/query/filter.ts:76
SearchMode
export enum SearchMode {
TERMS = 'TERMS',
PHRASE = 'PHRASE',
}packages/wow/src/query/filter.ts:81
TimeUnit
export enum TimeUnit {
NANOSECONDS = 'NANOSECONDS',
MICROSECONDS = 'MICROSECONDS',
MILLISECONDS = 'MILLISECONDS',
SECONDS = 'SECONDS',
MINUTES = 'MINUTES',
HOURS = 'HOURS',
DAYS = 'DAYS',
}packages/wow/src/query/filter.ts:86
MatchFilter
export type MatchFilter = {
op: FilterOperator.MATCH_ALL | FilterOperator.MATCH_NONE;
};packages/wow/src/query/filter.ts:334
MetadataValueFilter
export type MetadataValueFilter = {
op:
| FilterOperator.ID
| FilterOperator.AGGREGATE_ID
| FilterOperator.TENANT_ID
| FilterOperator.OWNER_ID
| FilterOperator.SPACE_ID;
value: string;
};packages/wow/src/query/filter.ts:338
MetadataValuesFilter
export type MetadataValuesFilter = {
op: FilterOperator.IDS | FilterOperator.AGGREGATE_IDS;
values: string[];
};packages/wow/src/query/filter.ts:348
MetadataFilter
export type MetadataFilter = MetadataValueFilter | MetadataValuesFilter;packages/wow/src/query/filter.ts:353
LogicalFilter
export type LogicalFilter<FIELDS extends string = string> = {
op: FilterOperator.AND | FilterOperator.OR | FilterOperator.NOR;
operands: FilterExpression<FIELDS>[];
};packages/wow/src/query/filter.ts:355
ElementLogicalFilter
export type ElementLogicalFilter<FIELDS extends string = string> = {
op: FilterOperator.AND | FilterOperator.OR | FilterOperator.NOR;
operands: ElementFilterExpression<FIELDS>[];
};packages/wow/src/query/filter.ts:360
EqualityFilter
export type EqualityFilter<FIELDS extends string = string> = {
op: FilterOperator.EQ | FilterOperator.NE;
field: QueryField<FIELDS>;
value: EqualityFilterValue;
};packages/wow/src/query/filter.ts:365
ComparisonFilter
export type ComparisonFilter<FIELDS extends string = string> = {
op:
| FilterOperator.GT
| FilterOperator.GTE
| FilterOperator.LT
| FilterOperator.LTE;
field: QueryField<FIELDS>;
value: ComparableFilterLiteral;
};packages/wow/src/query/filter.ts:371
StringFilter
export type StringFilter<FIELDS extends string = string> = {
op:
| FilterOperator.CONTAINS
| FilterOperator.STARTS_WITH
| FilterOperator.ENDS_WITH;
field: QueryField<FIELDS>;
value: string;
stringComparison?: StringComparison;
};packages/wow/src/query/filter.ts:381
CollectionFilter
export type CollectionFilter<FIELDS extends string = string> = {
op: FilterOperator.IN | FilterOperator.NOT_IN | FilterOperator.CONTAINS_ALL;
field: QueryField<FIELDS>;
values: ComparableFilterLiteral[];
};packages/wow/src/query/filter.ts:391
BetweenFilter
export type BetweenFilter<FIELDS extends string = string> = {
op: FilterOperator.BETWEEN;
field: QueryField<FIELDS>;
lowerBound: ComparableFilterLiteral;
upperBound: ComparableFilterLiteral;
};packages/wow/src/query/filter.ts:397
FieldPresenceFilter
export type FieldPresenceFilter<FIELDS extends string = string> = {
op:
| FilterOperator.IS_EMPTY
| FilterOperator.IS_EMPTY_STRING
| FilterOperator.IS_NOT_EMPTY_STRING
| FilterOperator.IS_NULL
| FilterOperator.IS_NOT_NULL
| FilterOperator.EXISTS
| FilterOperator.NOT_EXISTS;
field: QueryField<FIELDS>;
};packages/wow/src/query/filter.ts:404
DeletionFilter
export type DeletionFilter = {
op: FilterOperator.DELETION;
state: DeletionState;
};packages/wow/src/query/filter.ts:416
ElementMatchFilter
export type ElementMatchFilter<
FIELDS extends string = string,
ELEMENT_FIELDS extends string = string,
> = {
op: FilterOperator.ELEMENT_MATCH;
field: QueryField<FIELDS>;
predicate: ElementFilterExpression<ELEMENT_FIELDS>;
};packages/wow/src/query/filter.ts:421
SearchFilter
export type SearchFilter<FIELDS extends string = string> = {
op: FilterOperator.SEARCH;
query: string;
fields?: QueryField<FIELDS>[];
mode?: SearchMode;
};packages/wow/src/query/filter.ts:430
SearchFilterOptions
export interface SearchFilterOptions<FIELDS extends string = string> {
fields?: readonly QueryField<FIELDS>[];
mode?: SearchMode;
}packages/wow/src/query/filter.ts:437
RelativeTimeFilterOptions
export interface RelativeTimeFilterOptions {
zoneId?: string;
datePattern?: string;
timeUnit?: TimeUnit;
}packages/wow/src/query/filter.ts:442
CalendarFilter
export type CalendarFilter<FIELDS extends string = string> =
RelativeTimeFilterOptions & {
op:
| FilterOperator.TODAY
| FilterOperator.TOMORROW
| FilterOperator.THIS_WEEK
| FilterOperator.NEXT_WEEK
| FilterOperator.LAST_WEEK
| FilterOperator.THIS_MONTH
| FilterOperator.LAST_MONTH
| FilterOperator.YESTERDAY
| FilterOperator.NEXT_MONTH
| FilterOperator.LAST_YEAR
| FilterOperator.THIS_YEAR
| FilterOperator.NEXT_YEAR;
field: QueryField<FIELDS>;
};packages/wow/src/query/filter.ts:448
BeforeTodayFilter
export type BeforeTodayFilter<FIELDS extends string = string> =
RelativeTimeFilterOptions & {
op: FilterOperator.BEFORE_TODAY;
field: QueryField<FIELDS>;
time: string;
};packages/wow/src/query/filter.ts:466
DaysFilter
export type DaysFilter<FIELDS extends string = string> =
RelativeTimeFilterOptions & {
op: FilterOperator.RECENT_DAYS | FilterOperator.EARLIER_DAYS;
field: QueryField<FIELDS>;
days: number;
};packages/wow/src/query/filter.ts:473
ElementFilterExpression
export type ElementFilterExpression<FIELDS extends string = string> =
| MatchFilter
| ElementLogicalFilter<FIELDS>
| EqualityFilter<FIELDS>
| ComparisonFilter<FIELDS>
| StringFilter<FIELDS>
| CollectionFilter<FIELDS>
| BetweenFilter<FIELDS>
| FieldPresenceFilter<FIELDS>
| ElementMatchFilter<FIELDS>
| CalendarFilter<FIELDS>
| BeforeTodayFilter<FIELDS>
| DaysFilter<FIELDS>;packages/wow/src/query/filter.ts:480
FilterCapable
export interface FilterCapable<FIELDS extends string = string> {
filter: FilterExpression<FIELDS>;
}packages/wow/src/query/filter.ts:511
Legacy Condition builders and types
isValidateCondition
export function isValidateCondition(
condition: Condition | undefined | null,
): condition is Condition;packages/wow/src/query/condition.ts:23
ignoreCaseOptions
export function ignoreCaseOptions(
ignoreCase?: boolean,
): ConditionOptions | undefined;packages/wow/src/query/condition.ts:88
dateOptions
export function dateOptions(
datePattern?: string,
zoneId?: string,
): ConditionOptions | undefined;packages/wow/src/query/condition.ts:105
and
export function and<FIELDS extends string = string>(
...conditions: Array<Condition<FIELDS> | undefined | null>
): Condition<FIELDS>;packages/wow/src/query/condition.ts:199
or
export function or<FIELDS extends string = string>(
...conditions: Array<Condition<FIELDS> | undefined | null>
): Condition<FIELDS>;packages/wow/src/query/condition.ts:235
nor
export function nor<FIELDS extends string = string>(
...conditions: Condition<FIELDS>[]
): Condition<FIELDS>;packages/wow/src/query/condition.ts:254
id
export function id<FIELDS extends string = string>(
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:270
ids
export function ids<FIELDS extends string = string>(
value: string[],
): Condition<FIELDS>;packages/wow/src/query/condition.ts:283
aggregateId
export function aggregateId<FIELDS extends string = string>(
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:296
aggregateIds
export function aggregateIds<FIELDS extends string = string>(
value: string[],
): Condition<FIELDS>;packages/wow/src/query/condition.ts:309
tenantId
export function tenantId<FIELDS extends string = string>(
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:322
ownerId
export function ownerId<FIELDS extends string = string>(
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:335
spaceId
export function spaceId<FIELDS extends string = string>(
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:342
deleted
export function deleted<FIELDS extends string = string>(
value: DeletionState,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:355
active
export function active<FIELDS extends string = string>(): Condition<FIELDS>;packages/wow/src/query/condition.ts:367
all
export function all<FIELDS extends string = string>(): Condition<FIELDS>;packages/wow/src/query/condition.ts:377
eq
export function eq<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:391
ne
export function ne<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:406
gt
export function gt<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:421
lt
export function lt<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:436
gte
export function gte<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:451
lte
export function lte<FIELDS extends string = string>(
field: FIELDS,
value: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:466
contains
export function contains<FIELDS extends string = string>(
field: FIELDS,
value: any,
ignoreCase?: boolean,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:482
isIn
export function isIn<FIELDS extends string = string>(
field: FIELDS,
...value: any[]
): Condition<FIELDS>;packages/wow/src/query/condition.ts:500
notIn
export function notIn<FIELDS extends string = string>(
field: FIELDS,
...value: any[]
): Condition<FIELDS>;packages/wow/src/query/condition.ts:515
between
export function between<FIELDS extends string = string>(
field: FIELDS,
start: any,
end: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:531
allIn
export function allIn<FIELDS extends string = string>(
field: FIELDS,
...value: any[]
): Condition<FIELDS>;packages/wow/src/query/condition.ts:547
startsWith
export function startsWith<FIELDS extends string = string>(
field: FIELDS,
value: any,
ignoreCase?: boolean,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:563
match
export function match<FIELDS extends string = string>(
field: FIELDS,
value: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:581
endsWith
export function endsWith<FIELDS extends string = string>(
field: FIELDS,
value: any,
ignoreCase?: boolean,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:597
elemMatch
export function elemMatch<FIELDS extends string = string>(
field: FIELDS,
value: Condition<FIELDS>,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:615
isNull
export function isNull<FIELDS extends string = string>(
field: FIELDS,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:629
notNull
export function notNull<FIELDS extends string = string>(
field: FIELDS,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:642
isTrue
export function isTrue<FIELDS extends string = string>(
field: FIELDS,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:655
isFalse
export function isFalse<FIELDS extends string = string>(
field: FIELDS,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:668
exists
export function exists<FIELDS extends string = string>(
field: FIELDS,
exists?: boolean,
): Condition<FIELDS>;Implementation defaults: exists = true.
packages/wow/src/query/condition.ts:682
today
export function today<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:698
beforeToday
export function beforeToday<FIELDS extends string = string>(
field: FIELDS,
time: any,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:717
tomorrow
export function tomorrow<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:736
thisWeek
export function thisWeek<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:754
nextWeek
export function nextWeek<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:772
lastWeek
export function lastWeek<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:790
thisMonth
export function thisMonth<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:808
lastMonth
export function lastMonth<FIELDS extends string = string>(
field: FIELDS,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:826
recentDays
export function recentDays<FIELDS extends string = string>(
field: FIELDS,
days: number,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:845
earlierDays
export function earlierDays<FIELDS extends string = string>(
field: FIELDS,
days: number,
datePattern?: string,
zoneId?: string,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:865
raw
export function raw<FIELDS extends string = string>(
raw: any,
): Condition<FIELDS>;packages/wow/src/query/condition.ts:882
ConditionOptionKey
export class ConditionOptionKey {
static readonly IGNORE_CASE_OPTION_KEY = 'ignoreCase';
static readonly ZONE_ID_OPTION_KEY = 'zoneId';
static readonly DATE_PATTERN_OPTION_KEY = 'datePattern';
}packages/wow/src/query/condition.ts:35
ConditionOptions
export interface ConditionOptions {
ignoreCase?: boolean;
datePattern?: string;
zoneId?: string;
[key: string]: any;
}packages/wow/src/query/condition.ts:59
Condition
export interface Condition<FIELDS extends string = string> {
field?: FIELDS;
operator?: Operator;
value?: any;
children?: Condition<FIELDS>[];
options?: ConditionOptions;
}packages/wow/src/query/condition.ts:128
ConditionCapable
export interface ConditionCapable<FIELDS extends string = string> {
condition: Condition<FIELDS>;
}packages/wow/src/query/condition.ts:159
Operator
Expand all fields and members
export enum Operator {
AND = 'AND',
OR = 'OR',
NOR = 'NOR',
ID = 'ID',
IDS = 'IDS',
AGGREGATE_ID = 'AGGREGATE_ID',
AGGREGATE_IDS = 'AGGREGATE_IDS',
TENANT_ID = 'TENANT_ID',
OWNER_ID = 'OWNER_ID',
SPACE_ID = 'SPACE_ID',
DELETED = 'DELETED',
ALL = 'ALL',
EQ = 'EQ',
NE = 'NE',
GT = 'GT',
LT = 'LT',
GTE = 'GTE',
LTE = 'LTE',
CONTAINS = 'CONTAINS',
IN = 'IN',
NOT_IN = 'NOT_IN',
BETWEEN = 'BETWEEN',
ALL_IN = 'ALL_IN',
STARTS_WITH = 'STARTS_WITH',
ENDS_WITH = 'ENDS_WITH',
ELEM_MATCH = 'ELEM_MATCH',
NULL = 'NULL',
NOT_NULL = 'NOT_NULL',
TRUE = 'TRUE',
FALSE = 'FALSE',
EXISTS = 'EXISTS',
TODAY = 'TODAY',
BEFORE_TODAY = 'BEFORE_TODAY',
TOMORROW = 'TOMORROW',
THIS_WEEK = 'THIS_WEEK',
NEXT_WEEK = 'NEXT_WEEK',
LAST_WEEK = 'LAST_WEEK',
THIS_MONTH = 'THIS_MONTH',
LAST_MONTH = 'LAST_MONTH',
RECENT_DAYS = 'RECENT_DAYS',
EARLIER_DAYS = 'EARLIER_DAYS',
MATCH = 'MATCH',
RAW = 'RAW',
}packages/wow/src/query/operator.ts:15
LOGICAL_OPERATORS
declare const LOGICAL_OPERATORS: Set<Operator>;packages/wow/src/query/operator.ts:254
EMPTY_VALUE_OPERATORS
declare const EMPTY_VALUE_OPERATORS: Set<Operator>;packages/wow/src/query/operator.ts:261
OperatorLocale
export type OperatorLocale = {
[K in Operator]: string;
};packages/wow/src/query/locale/operatorLocale.ts:17
Related topics
Client configuration and metadata · Commands and wait results · Snapshot queries · Projection, sorting and pagination · Cursor queries · Aggregation builders · Events and historical state · Identity and resource attribution
