@deep-foundation/deeplinks
Version:
[](https://www.npmjs.com/package/@deep-foundation/deeplinks) [](https://gitpod.io/#https://github.com/deep-fo
211 lines (210 loc) • 5.86 kB
TypeScript
import { Id } from "./minilinks";
export type Query = BoolExpLink | number;
export type LinkToLinksRelations = 'from' | 'to' | 'type' | 'in' | 'out' | 'typed';
export interface QueryLink extends BoolExpLink {
limit?: number;
order_by?: {
[key: string]: 'asc' | 'desc';
};
offset?: number;
distinct_on?: [string];
return?: {
[key: string]: ReturnBoolExp;
};
}
export interface QueryLinkReturn extends QueryLink {
relation: LinkToLinksRelations;
}
export interface BoolExp<T> {
_and?: T[];
_or?: T[];
_not?: T;
'return'?: {
[key: string]: ReturnBoolExp;
};
}
export interface ReturnBoolExp<T = any> extends BoolExp<T> {
_and?: T[];
_or?: T[];
_not?: T;
'return'?: {
[key: string]: ReturnBoolExp;
};
relation: string;
'table'?: string;
[key: string]: any;
}
export interface BoolExpLink extends BoolExp<BoolExpLink> {
id?: ComparasionType<Id>;
from_id?: ComparasionType<Id>;
to_id?: ComparasionType<Id>;
type_id?: ComparasionType<Id>;
_id?: ComparasionType<Id>;
_from_id?: ComparasionType<Id>;
_to_id?: ComparasionType<Id>;
_type_id?: ComparasionType<Id>;
from?: BoolExpLink | Id;
to?: BoolExpLink | Id;
type?: BoolExpLink | Id;
in?: BoolExpLink | BoolExpLink[];
out?: BoolExpLink | BoolExpLink[];
typed?: BoolExpLink | BoolExpLink[];
selected?: BoolExpSelector | BoolExpSelector[];
selectors?: BoolExpSelector | BoolExpSelector[];
number?: BoolExpValue<number>;
string?: BoolExpValue<string>;
object?: BoolExpValue<object>;
value?: BoolExpValue<any>;
can_rule?: BoolExpCan;
can_action?: BoolExpCan;
can_object?: BoolExpCan;
can_subject?: BoolExpCan;
down?: BoolExpTree;
up?: BoolExpTree;
tree?: BoolExpTree;
root?: BoolExpTree;
}
export interface BoolExpValue<T> extends BoolExp<BoolExpValue<T>> {
id?: ComparasionType<Id>;
link_id?: ComparasionType<Id>;
link?: BoolExpLink | Id;
value?: ComparasionType<T>;
}
export interface BoolExpCan extends BoolExp<BoolExpCan> {
rule_id?: ComparasionType<Id>;
action_id?: ComparasionType<Id>;
object_id?: ComparasionType<Id>;
subject_id?: ComparasionType<Id>;
rule?: BoolExpLink | Id;
action?: BoolExpLink | Id;
object?: BoolExpLink | Id;
subject?: BoolExpLink | Id;
}
export interface BoolExpSelector extends BoolExp<BoolExpCan> {
item_id?: ComparasionType<Id>;
item?: BoolExpLink | Id;
selector_id?: ComparasionType<Id>;
selector?: BoolExpLink | Id;
query_id?: ComparasionType<Id>;
query?: BoolExpLink | Id;
selector_include_id?: ComparasionType<Id>;
}
export interface BoolExpTree extends BoolExp<BoolExpCan> {
id?: ComparasionType<Id>;
link_id?: ComparasionType<Id>;
tree_id?: ComparasionType<Id>;
root_id?: ComparasionType<Id>;
parent_id?: ComparasionType<Id>;
depth?: ComparasionType<string>;
position_id?: ComparasionType<string>;
link?: BoolExpLink | Id;
tree?: BoolExpLink | Id;
root?: BoolExpLink | Id;
parent?: BoolExpLink | Id;
by_link?: BoolExpTree;
by_tree?: BoolExpTree;
by_root?: BoolExpTree;
by_parent?: BoolExpTree;
by_position?: BoolExpTree;
}
export interface BoolExpHandler extends BoolExp<BoolExpCan> {
dist_id?: ComparasionType<Id>;
dist?: BoolExpLink;
src_id?: ComparasionType<Id>;
src?: BoolExpLink;
execution_provider_id?: ComparasionType<Id>;
execution_provider?: BoolExpLink | Id;
isolation_provider_id?: ComparasionType<Id>;
isolation_provider?: BoolExpLink | Id;
handler_id?: ComparasionType<Id>;
handler?: BoolExpLink | Id;
}
export type ComparasionType<T> = ComparasionExp<T> | T;
export interface ComparasionExp<T> {
_eq?: T;
_neq?: T;
_gt?: T;
_gte?: T;
_lt?: T;
_lte?: T;
_is_null?: boolean;
_in?: T[];
_nin?: T[];
_type_of?: T;
_id?: [any, ...any[]];
_like?: string;
_ilike?: string;
_nlike?: string;
_nilike?: string;
_regex?: string;
_nregex?: string;
_iregex?: string;
_niregex?: string;
}
export interface MutationInput {
}
export interface MutationInputLinkPlain {
id?: Id;
from_id?: Id;
to_id?: Id;
type_id?: Id;
from?: {
data: MutationInputLink;
} | MutationInputLink;
to?: {
data: MutationInputLink;
} | MutationInputLink;
out?: {
data: MutationInputLink | MutationInputLink[];
} | MutationInputLink | MutationInputLink[];
in?: {
data: MutationInputLink | MutationInputLink[];
} | MutationInputLink | MutationInputLink[];
number?: {
data: MutationInputValue<number>;
} | number;
string?: {
data: MutationInputValue<string>;
} | string;
object?: {
data: MutationInputValue<any>;
} | any;
typed?: {
data: MutationInputLink | MutationInputLink[];
};
}
export interface MutationInputLink extends MutationInputLinkPlain {
from?: {
data: MutationInputLink;
} | MutationInputLink;
to?: {
data: MutationInputLink;
} | MutationInputLink;
out?: {
data: MutationInputLink | MutationInputLink[];
} | MutationInputLink | MutationInputLink[];
in?: {
data: MutationInputLink | MutationInputLink[];
} | MutationInputLink | MutationInputLink[];
number?: {
data: MutationInputValue<number>;
} | number;
string?: {
data: MutationInputValue<string>;
} | string;
object?: {
data: MutationInputValue<any>;
} | any;
typed?: {
data: MutationInputLink | MutationInputLink[];
};
containerId?: Id;
name?: string;
}
export interface MutationInputValue<T> {
link_id?: Id;
link?: {
data: MutationInputLink;
};
value?: T;
}