angular-odata 0.95.0 → 0.99.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -25
- package/esm2020/lib/cache/cache.mjs +2 -2
- package/esm2020/lib/client.mjs +3 -3
- package/esm2020/lib/models/collection.mjs +53 -48
- package/esm2020/lib/models/model.mjs +33 -37
- package/esm2020/lib/models/options.mjs +35 -14
- package/esm2020/lib/module.mjs +4 -4
- package/esm2020/lib/resources/query/builder.mjs +2 -1
- package/esm2020/lib/resources/query/expressions/base.mjs +20 -0
- package/esm2020/lib/resources/query/expressions/compute.mjs +45 -0
- package/esm2020/lib/resources/query/expressions/expand.mjs +121 -0
- package/esm2020/lib/resources/query/expressions/filter.mjs +160 -0
- package/esm2020/lib/resources/query/expressions/index.mjs +7 -0
- package/esm2020/lib/resources/query/expressions/orderby.mjs +62 -0
- package/esm2020/lib/resources/query/expressions/search.mjs +125 -0
- package/esm2020/lib/resources/query/expressions/select.mjs +37 -0
- package/esm2020/lib/resources/query/expressions/syntax.mjs +404 -0
- package/esm2020/lib/resources/query/handlers.mjs +22 -20
- package/esm2020/lib/resources/query/options.mjs +34 -37
- package/esm2020/lib/resources/resource.mjs +6 -14
- package/esm2020/lib/resources/types/action.mjs +4 -1
- package/esm2020/lib/resources/types/batch.mjs +36 -10
- package/esm2020/lib/resources/types/count.mjs +4 -1
- package/esm2020/lib/resources/types/entity-set.mjs +4 -1
- package/esm2020/lib/resources/types/entity.mjs +6 -3
- package/esm2020/lib/resources/types/function.mjs +4 -1
- package/esm2020/lib/resources/types/media.mjs +4 -1
- package/esm2020/lib/resources/types/metadata.mjs +4 -1
- package/esm2020/lib/resources/types/navigation-property.mjs +4 -1
- package/esm2020/lib/resources/types/property.mjs +4 -1
- package/esm2020/lib/resources/types/reference.mjs +4 -1
- package/esm2020/lib/resources/types/singleton.mjs +4 -1
- package/esm2020/lib/resources/types/value.mjs +4 -1
- package/esm2020/lib/schema/element.mjs +12 -2
- package/esm2020/lib/schema/enum-type.mjs +9 -1
- package/esm2020/lib/schema/structured-type.mjs +11 -2
- package/esm2020/lib/services/entity-set.mjs +6 -6
- package/esm2020/lib/services/factory.mjs +3 -3
- package/esm2020/lib/types.mjs +2 -1
- package/esm2020/lib/utils/objects.mjs +5 -1
- package/fesm2015/angular-odata.mjs +751 -297
- package/fesm2015/angular-odata.mjs.map +1 -1
- package/fesm2020/angular-odata.mjs +750 -301
- package/fesm2020/angular-odata.mjs.map +1 -1
- package/lib/models/collection.d.ts +4 -2
- package/lib/models/model.d.ts +1 -1
- package/lib/models/options.d.ts +12 -10
- package/lib/resources/query/builder.d.ts +1 -0
- package/lib/resources/query/expressions/base.d.ts +20 -0
- package/lib/resources/query/expressions/compute.d.ts +27 -0
- package/lib/resources/query/expressions/expand.d.ts +68 -0
- package/lib/resources/query/expressions/filter.d.ts +59 -0
- package/lib/resources/query/expressions/index.d.ts +6 -0
- package/lib/resources/query/expressions/orderby.d.ts +39 -0
- package/lib/resources/query/expressions/search.d.ts +50 -0
- package/lib/resources/query/expressions/select.d.ts +22 -0
- package/lib/resources/query/{syntax.d.ts → expressions/syntax.d.ts} +21 -9
- package/lib/resources/query/handlers.d.ts +27 -12
- package/lib/resources/query/options.d.ts +10 -8
- package/lib/resources/resource.d.ts +2 -1
- package/lib/resources/types/action.d.ts +1 -0
- package/lib/resources/types/batch.d.ts +10 -0
- package/lib/resources/types/count.d.ts +1 -0
- package/lib/resources/types/entity-set.d.ts +1 -0
- package/lib/resources/types/entity.d.ts +1 -0
- package/lib/resources/types/function.d.ts +1 -0
- package/lib/resources/types/media.d.ts +1 -0
- package/lib/resources/types/metadata.d.ts +1 -0
- package/lib/resources/types/navigation-property.d.ts +1 -0
- package/lib/resources/types/property.d.ts +1 -0
- package/lib/resources/types/reference.d.ts +1 -0
- package/lib/resources/types/singleton.d.ts +1 -0
- package/lib/resources/types/value.d.ts +1 -0
- package/lib/schema/element.d.ts +7 -1
- package/lib/schema/enum-type.d.ts +6 -0
- package/lib/schema/structured-type.d.ts +7 -1
- package/lib/types.d.ts +1 -0
- package/package.json +1 -1
- package/esm2020/lib/resources/query/expressions.mjs +0 -207
- package/esm2020/lib/resources/query/syntax.mjs +0 -406
- package/lib/resources/query/expressions.d.ts +0 -63
|
@@ -110,8 +110,10 @@ export declare class ODataCollection<T, M extends ODataModel<T>> implements Iter
|
|
|
110
110
|
[Symbol.iterator](): {
|
|
111
111
|
next(): IteratorResult<M>;
|
|
112
112
|
};
|
|
113
|
-
filter(predicate: (
|
|
114
|
-
|
|
113
|
+
filter(predicate: (value: M, index: number, array: M[]) => unknown, thisArg?: any): M[];
|
|
114
|
+
map<U>(callbackfn: (value: M, index: number, array: M[]) => U, thisArg?: any): U[];
|
|
115
|
+
find(predicate: (value: M, index: number, obj: M[]) => unknown, thisArg?: any): M | undefined;
|
|
116
|
+
reduce<U>(callbackfn: (previousValue: U, currentValue: M, currentIndex: number, array: M[]) => U, initialValue: U): U;
|
|
115
117
|
first(): M | undefined;
|
|
116
118
|
last(): M | undefined;
|
|
117
119
|
next(model: M): M | undefined;
|
package/lib/models/model.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export declare class ODataModel<T> {
|
|
|
45
45
|
resource(): ODataEntityResource<T> | ODataNavigationPropertyResource<T> | ODataPropertyResource<T> | ODataSingletonResource<T>;
|
|
46
46
|
navigationProperty<N>(name: keyof T | string): ODataNavigationPropertyResource<N>;
|
|
47
47
|
property<N>(name: string): ODataPropertyResource<N>;
|
|
48
|
-
attach(resource: ODataEntityResource<
|
|
48
|
+
attach<R>(resource: ODataEntityResource<R> | ODataNavigationPropertyResource<R> | ODataPropertyResource<R> | ODataSingletonResource<R>): void;
|
|
49
49
|
schema(): ODataStructuredType<T>;
|
|
50
50
|
annots(): ODataEntityAnnotations;
|
|
51
51
|
key({ field_mapping, resolve, }?: {
|
package/lib/models/options.d.ts
CHANGED
|
@@ -7,13 +7,6 @@ import type { ODataModel } from './model';
|
|
|
7
7
|
export declare type ODataModelEventType = 'change' | 'reset' | 'update' | 'destroy' | 'add' | 'remove' | 'invalid' | 'request' | 'sync' | 'attach';
|
|
8
8
|
export declare class ODataModelEvent<T> {
|
|
9
9
|
name: ODataModelEventType;
|
|
10
|
-
bubbling: boolean;
|
|
11
|
-
model?: ODataModel<T>;
|
|
12
|
-
collection?: ODataCollection<T, ODataModel<T>>;
|
|
13
|
-
chain: [
|
|
14
|
-
ODataModel<any> | ODataCollection<any, ODataModel<any>>,
|
|
15
|
-
string | number | null
|
|
16
|
-
][];
|
|
17
10
|
value?: any;
|
|
18
11
|
previous?: any;
|
|
19
12
|
options?: any;
|
|
@@ -25,10 +18,19 @@ export declare class ODataModelEvent<T> {
|
|
|
25
18
|
value?: any;
|
|
26
19
|
options?: any;
|
|
27
20
|
});
|
|
21
|
+
bubbling: boolean;
|
|
28
22
|
stopPropagation(): void;
|
|
23
|
+
chain: [
|
|
24
|
+
ODataModel<any> | ODataCollection<any, ODataModel<any>>,
|
|
25
|
+
string | number | null
|
|
26
|
+
][];
|
|
29
27
|
push(model: ODataModel<any> | ODataCollection<any, ODataModel<any>>, track: string | number): void;
|
|
30
28
|
visited(model: ODataModel<any> | ODataCollection<any, ODataModel<any>>): boolean;
|
|
31
29
|
get path(): string;
|
|
30
|
+
model?: ODataModel<T>;
|
|
31
|
+
get currentModel(): ODataModel<any> | undefined;
|
|
32
|
+
collection?: ODataCollection<T, ODataModel<T>>;
|
|
33
|
+
get currentCollection(): ODataCollection<any, ODataModel<any>> | undefined;
|
|
32
34
|
}
|
|
33
35
|
export declare const BUBBLING: string[];
|
|
34
36
|
export declare const INCLUDE_SHALLOW: {
|
|
@@ -170,13 +172,13 @@ export declare class ODataModelOptions<T> {
|
|
|
170
172
|
include_parents?: boolean;
|
|
171
173
|
include_navigation?: boolean;
|
|
172
174
|
}): ODataModelField<any>[];
|
|
173
|
-
field<F>(name: keyof T | string): ODataModelField<
|
|
174
|
-
attach(self: ODataModel<T>, resource: ODataEntityResource<
|
|
175
|
+
field<F>(name: keyof T | string): ODataModelField<F>;
|
|
176
|
+
attach<R>(self: ODataModel<T>, resource: ODataEntityResource<R> | ODataNavigationPropertyResource<R> | ODataPropertyResource<R> | ODataSingletonResource<R>): void;
|
|
175
177
|
static chain(child: ODataModel<any> | ODataCollection<any, ODataModel<any>>): [
|
|
176
178
|
ODataModel<any> | ODataCollection<any, ODataModel<any>>,
|
|
177
179
|
ODataModelField<any> | null
|
|
178
180
|
][];
|
|
179
|
-
static resource<T>(child: ODataModel<T> | ODataCollection<T, ODataModel<T>>): ODataResource<T
|
|
181
|
+
static resource<T>(child: ODataModel<T> | ODataCollection<T, ODataModel<T>>): ODataResource<T>;
|
|
180
182
|
collectionResourceFactory(query?: ODataQueryOptions<T>): ODataEntitySetResource<T> | ODataNavigationPropertyResource<T> | ODataPropertyResource<T> | undefined;
|
|
181
183
|
modelResourceFactory(query?: ODataQueryOptions<T>): ODataEntityResource<T> | ODataNavigationPropertyResource<T> | ODataPropertyResource<T> | ODataSingletonResource<T> | undefined;
|
|
182
184
|
entityResource(self: ODataModel<T>): ODataResource<T>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Renderable } from './syntax';
|
|
3
|
+
export declare abstract class Expression<T> implements Renderable {
|
|
4
|
+
protected _children: Renderable[];
|
|
5
|
+
constructor({ children, }?: {
|
|
6
|
+
children?: Renderable[];
|
|
7
|
+
});
|
|
8
|
+
get [Symbol.toStringTag](): string;
|
|
9
|
+
abstract render({ aliases, escape, prefix, }: {
|
|
10
|
+
aliases?: QueryCustomType[] | undefined;
|
|
11
|
+
escape?: boolean | undefined;
|
|
12
|
+
prefix?: string | undefined;
|
|
13
|
+
}): string;
|
|
14
|
+
abstract clone(): Expression<T>;
|
|
15
|
+
children(): Renderable[];
|
|
16
|
+
length(): number;
|
|
17
|
+
toJSON(): {
|
|
18
|
+
children: any[];
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { ODataFunctions, ODataOperators, Renderable } from './syntax';
|
|
4
|
+
export declare class ComputeExpression<T> extends Expression<T> {
|
|
5
|
+
names: string[];
|
|
6
|
+
constructor({ children, names, }?: {
|
|
7
|
+
children?: Renderable[];
|
|
8
|
+
names?: string[];
|
|
9
|
+
});
|
|
10
|
+
static e<T>(): ComputeExpression<T>;
|
|
11
|
+
static s<T extends object>(): T;
|
|
12
|
+
static compute<T extends object>(opts: (builder: {
|
|
13
|
+
s: T;
|
|
14
|
+
e: () => ComputeExpression<T>;
|
|
15
|
+
}, current?: ComputeExpression<T>) => ComputeExpression<T>, current?: ComputeExpression<T>): ComputeExpression<T>;
|
|
16
|
+
render({ aliases, escape, prefix, }?: {
|
|
17
|
+
aliases?: QueryCustomType[] | undefined;
|
|
18
|
+
escape?: boolean | undefined;
|
|
19
|
+
prefix?: string | undefined;
|
|
20
|
+
}): string;
|
|
21
|
+
clone(): ComputeExpression<unknown>;
|
|
22
|
+
private _add;
|
|
23
|
+
field<T extends object>(name: string, opts: (e: {
|
|
24
|
+
o: ODataOperators<T>;
|
|
25
|
+
f: ODataFunctions<T>;
|
|
26
|
+
}) => Renderable): ComputeExpression<T>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { FilterConnector, FilterExpression } from './filter';
|
|
4
|
+
import { OrderByExpression } from './orderby';
|
|
5
|
+
import { SearchConnector, SearchExpression } from './search';
|
|
6
|
+
import { SelectExpression } from './select';
|
|
7
|
+
import { ODataFunctions, ODataOperators, Renderable } from './syntax';
|
|
8
|
+
export declare class ExpandField<T> implements Renderable {
|
|
9
|
+
protected field: any;
|
|
10
|
+
private values;
|
|
11
|
+
constructor(field: any, values?: {
|
|
12
|
+
[name: string]: any;
|
|
13
|
+
});
|
|
14
|
+
get [Symbol.toStringTag](): string;
|
|
15
|
+
toJSON(): {
|
|
16
|
+
field: any;
|
|
17
|
+
};
|
|
18
|
+
render({ aliases, escape, prefix, }: {
|
|
19
|
+
aliases?: QueryCustomType[];
|
|
20
|
+
escape?: boolean;
|
|
21
|
+
prefix?: string;
|
|
22
|
+
}): string;
|
|
23
|
+
clone(): ExpandField<unknown>;
|
|
24
|
+
select<T extends object>(opts: (builder: {
|
|
25
|
+
s: T;
|
|
26
|
+
e: () => SelectExpression<T>;
|
|
27
|
+
}, current?: SelectExpression<T>) => SelectExpression<T>): SelectExpression<T>;
|
|
28
|
+
expand<T extends object>(opts: (builder: {
|
|
29
|
+
s: T;
|
|
30
|
+
e: () => ExpandExpression<T>;
|
|
31
|
+
}, current?: ExpandExpression<T>) => ExpandExpression<T>): any;
|
|
32
|
+
filter<T extends object>(opts: (builder: {
|
|
33
|
+
s: T;
|
|
34
|
+
e: (connector?: FilterConnector) => FilterExpression<T>;
|
|
35
|
+
o: ODataOperators<T>;
|
|
36
|
+
f: ODataFunctions<T>;
|
|
37
|
+
}, current?: FilterExpression<T>) => FilterExpression<T>): any;
|
|
38
|
+
search<T extends object>(opts: (builder: {
|
|
39
|
+
e: (connector?: SearchConnector) => SearchExpression<T>;
|
|
40
|
+
}) => SearchExpression<T>): any;
|
|
41
|
+
orderBy<T extends object>(opts: (builder: {
|
|
42
|
+
s: T;
|
|
43
|
+
e: () => OrderByExpression<T>;
|
|
44
|
+
}, current?: OrderByExpression<T>) => OrderByExpression<T>): any;
|
|
45
|
+
skip(n: number): any;
|
|
46
|
+
top(n: number): any;
|
|
47
|
+
levels(n: number | 'max'): any;
|
|
48
|
+
private option;
|
|
49
|
+
}
|
|
50
|
+
export declare class ExpandExpression<T> extends Expression<T> {
|
|
51
|
+
constructor({ children, }?: {
|
|
52
|
+
children?: Renderable[];
|
|
53
|
+
});
|
|
54
|
+
static e<T>(): ExpandExpression<T>;
|
|
55
|
+
static s<T extends object>(): T;
|
|
56
|
+
static expand<T extends object>(opts: (builder: {
|
|
57
|
+
s: T;
|
|
58
|
+
e: () => ExpandExpression<T>;
|
|
59
|
+
}, current?: ExpandExpression<T>) => ExpandExpression<T>, current?: ExpandExpression<T>): ExpandExpression<T>;
|
|
60
|
+
render({ aliases, escape, prefix, }?: {
|
|
61
|
+
aliases?: QueryCustomType[] | undefined;
|
|
62
|
+
escape?: boolean | undefined;
|
|
63
|
+
prefix?: string | undefined;
|
|
64
|
+
}): string;
|
|
65
|
+
clone(): ExpandExpression<unknown>;
|
|
66
|
+
private _add;
|
|
67
|
+
field<F>(field: F, opts?: (e: ExpandField<F>) => void): ExpandExpression<F>;
|
|
68
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { ODataFunctions, ODataOperators, Renderable } from './syntax';
|
|
4
|
+
export declare type FilterConnector = 'and' | 'or';
|
|
5
|
+
export declare class FilterExpression<F> extends Expression<F> {
|
|
6
|
+
private _connector;
|
|
7
|
+
private _negated;
|
|
8
|
+
constructor({ children, connector, negated, }?: {
|
|
9
|
+
children?: Renderable[];
|
|
10
|
+
connector?: FilterConnector;
|
|
11
|
+
negated?: boolean;
|
|
12
|
+
});
|
|
13
|
+
static s<T extends object>(): T;
|
|
14
|
+
static e<T>(connector?: FilterConnector): FilterExpression<T>;
|
|
15
|
+
static filter<T extends object>(opts: (builder: {
|
|
16
|
+
s: T;
|
|
17
|
+
e: (connector?: FilterConnector) => FilterExpression<T>;
|
|
18
|
+
o: ODataOperators<T>;
|
|
19
|
+
f: ODataFunctions<T>;
|
|
20
|
+
}, current?: FilterExpression<T>) => FilterExpression<T>, current?: FilterExpression<T>): FilterExpression<T>;
|
|
21
|
+
toJSON(): {
|
|
22
|
+
children: any[];
|
|
23
|
+
connector: FilterConnector;
|
|
24
|
+
negated: boolean;
|
|
25
|
+
};
|
|
26
|
+
connector(): FilterConnector;
|
|
27
|
+
negated(): boolean;
|
|
28
|
+
render({ aliases, escape, prefix, }?: {
|
|
29
|
+
aliases?: QueryCustomType[];
|
|
30
|
+
escape?: boolean;
|
|
31
|
+
prefix?: string;
|
|
32
|
+
}): string;
|
|
33
|
+
clone(): FilterExpression<unknown>;
|
|
34
|
+
private _add;
|
|
35
|
+
or(exp: FilterExpression<F>): FilterExpression<F>;
|
|
36
|
+
and(exp: FilterExpression<F>): FilterExpression<F>;
|
|
37
|
+
not(exp: FilterExpression<F>): FilterExpression<F>;
|
|
38
|
+
eq(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
39
|
+
ne(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
40
|
+
gt(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
41
|
+
ge(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
42
|
+
lt(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
43
|
+
le(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
44
|
+
has(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
45
|
+
in(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
46
|
+
contains(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
47
|
+
startsWith(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
48
|
+
endsWith(left: any, right: any, normalize?: boolean): FilterExpression<F>;
|
|
49
|
+
any<N extends object>(left: N[], opts: (e: {
|
|
50
|
+
s: N;
|
|
51
|
+
e: (connector?: FilterConnector) => FilterExpression<N>;
|
|
52
|
+
}) => FilterExpression<N>, alias?: string): FilterExpression<F>;
|
|
53
|
+
all<N extends object>(left: N[], opts: (e: {
|
|
54
|
+
s: N;
|
|
55
|
+
e: (connector?: FilterConnector) => FilterExpression<N>;
|
|
56
|
+
}) => FilterExpression<N>, alias?: string): FilterExpression<F>;
|
|
57
|
+
isof(type: string): FilterExpression<F>;
|
|
58
|
+
isof(left: F, type: string): FilterExpression<F>;
|
|
59
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { Renderable } from './syntax';
|
|
4
|
+
export declare class OrderByField implements Renderable {
|
|
5
|
+
protected field: Renderable;
|
|
6
|
+
protected order: 'asc' | 'desc';
|
|
7
|
+
constructor(field: Renderable, order: 'asc' | 'desc');
|
|
8
|
+
get [Symbol.toStringTag](): string;
|
|
9
|
+
toJSON(): {
|
|
10
|
+
field: any;
|
|
11
|
+
order: "desc" | "asc";
|
|
12
|
+
};
|
|
13
|
+
render({ aliases, escape, prefix, }: {
|
|
14
|
+
aliases?: QueryCustomType[];
|
|
15
|
+
escape?: boolean;
|
|
16
|
+
prefix?: string;
|
|
17
|
+
}): string;
|
|
18
|
+
clone(): OrderByField;
|
|
19
|
+
}
|
|
20
|
+
export declare class OrderByExpression<T> extends Expression<T> {
|
|
21
|
+
constructor({ children, }?: {
|
|
22
|
+
children?: Renderable[];
|
|
23
|
+
});
|
|
24
|
+
static e<T>(): OrderByExpression<T>;
|
|
25
|
+
static s<T extends object>(): T;
|
|
26
|
+
static orderBy<T extends object>(opts: (builder: {
|
|
27
|
+
s: T;
|
|
28
|
+
e: () => OrderByExpression<T>;
|
|
29
|
+
}, current?: OrderByExpression<T>) => OrderByExpression<T>, current?: OrderByExpression<T>): OrderByExpression<T>;
|
|
30
|
+
private _add;
|
|
31
|
+
render({ aliases, escape, prefix, }?: {
|
|
32
|
+
aliases?: QueryCustomType[] | undefined;
|
|
33
|
+
escape?: boolean | undefined;
|
|
34
|
+
prefix?: string | undefined;
|
|
35
|
+
}): string;
|
|
36
|
+
clone(): OrderByExpression<unknown>;
|
|
37
|
+
ascending(field: any): OrderByExpression<T>;
|
|
38
|
+
descending(field: any): OrderByExpression<T>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { Renderable } from './syntax';
|
|
4
|
+
export declare type SearchConnector = 'AND' | 'OR';
|
|
5
|
+
export declare class SearchTerm implements Renderable {
|
|
6
|
+
protected value: string;
|
|
7
|
+
constructor(value: string);
|
|
8
|
+
get [Symbol.toStringTag](): string;
|
|
9
|
+
toJSON(): {
|
|
10
|
+
$type: string;
|
|
11
|
+
value: string;
|
|
12
|
+
};
|
|
13
|
+
render({ aliases, escape, prefix, }: {
|
|
14
|
+
aliases?: QueryCustomType[];
|
|
15
|
+
escape?: boolean;
|
|
16
|
+
prefix?: string;
|
|
17
|
+
}): string;
|
|
18
|
+
clone(): SearchTerm;
|
|
19
|
+
}
|
|
20
|
+
export declare class SearchExpression<T> extends Expression<T> {
|
|
21
|
+
private _connector;
|
|
22
|
+
private _negated;
|
|
23
|
+
constructor({ children, connector, negated, }?: {
|
|
24
|
+
children?: Renderable[];
|
|
25
|
+
connector?: SearchConnector;
|
|
26
|
+
negated?: boolean;
|
|
27
|
+
});
|
|
28
|
+
static e<T>(connector?: SearchConnector): SearchExpression<T>;
|
|
29
|
+
static search<T extends object>(opts: (builder: {
|
|
30
|
+
e: (connector?: SearchConnector) => SearchExpression<T>;
|
|
31
|
+
}, current?: SearchExpression<T>) => SearchExpression<T>, current?: SearchExpression<T>): SearchExpression<T>;
|
|
32
|
+
private _add;
|
|
33
|
+
render({ aliases, escape, prefix, }?: {
|
|
34
|
+
aliases?: QueryCustomType[] | undefined;
|
|
35
|
+
escape?: boolean | undefined;
|
|
36
|
+
prefix?: string | undefined;
|
|
37
|
+
}): string;
|
|
38
|
+
clone(): SearchExpression<unknown>;
|
|
39
|
+
toJSON(): {
|
|
40
|
+
children: any[];
|
|
41
|
+
connector: SearchConnector;
|
|
42
|
+
negated: boolean;
|
|
43
|
+
};
|
|
44
|
+
connector(): SearchConnector;
|
|
45
|
+
negated(): boolean;
|
|
46
|
+
or(exp: SearchExpression<T>): SearchExpression<T>;
|
|
47
|
+
and(exp: SearchExpression<T>): SearchExpression<T>;
|
|
48
|
+
not(exp: SearchExpression<T>): SearchExpression<T>;
|
|
49
|
+
term(value: any): SearchExpression<T>;
|
|
50
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
|
+
import { Expression } from './base';
|
|
3
|
+
import { Renderable } from './syntax';
|
|
4
|
+
export declare class SelectExpression<T> extends Expression<T> {
|
|
5
|
+
constructor({ children, }?: {
|
|
6
|
+
children?: Renderable[];
|
|
7
|
+
});
|
|
8
|
+
static e<T>(): SelectExpression<T>;
|
|
9
|
+
static s<T extends object>(): T;
|
|
10
|
+
static select<T extends object>(builder: (b: {
|
|
11
|
+
s: T;
|
|
12
|
+
e: () => SelectExpression<T>;
|
|
13
|
+
}, c?: SelectExpression<T>) => SelectExpression<T>, current?: SelectExpression<T>): SelectExpression<T>;
|
|
14
|
+
render({ aliases, escape, prefix, }?: {
|
|
15
|
+
aliases?: QueryCustomType[] | undefined;
|
|
16
|
+
escape?: boolean | undefined;
|
|
17
|
+
prefix?: string | undefined;
|
|
18
|
+
}): string;
|
|
19
|
+
clone(): SelectExpression<unknown>;
|
|
20
|
+
private _add;
|
|
21
|
+
field(field: any): SelectExpression<T>;
|
|
22
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { QueryCustomType } from '
|
|
1
|
+
import type { QueryCustomType } from '../builder';
|
|
2
2
|
export interface Renderable {
|
|
3
3
|
render({ aliases, escape, prefix, }: {
|
|
4
4
|
aliases?: QueryCustomType[];
|
|
@@ -7,14 +7,21 @@ export interface Renderable {
|
|
|
7
7
|
}): string;
|
|
8
8
|
toString(): string;
|
|
9
9
|
toJSON(): any;
|
|
10
|
+
clone(): any;
|
|
10
11
|
}
|
|
11
|
-
export declare type Funcs<T> = (x: ODataSyntax<T>) => Function<T> | Operator<T> | Grouping<T>;
|
|
12
12
|
export declare class Field<T extends object> implements ProxyHandler<T> {
|
|
13
13
|
name: string;
|
|
14
14
|
constructor(name?: string);
|
|
15
|
-
static factory<T extends object>(): T;
|
|
16
|
-
get(target: T,
|
|
17
|
-
|
|
15
|
+
static factory<T extends object>(name?: string): T;
|
|
16
|
+
get(target: T, key: string | symbol): any;
|
|
17
|
+
has(target: T, key: string): any;
|
|
18
|
+
}
|
|
19
|
+
export declare function render(value: any, { aliases, normalize, escape, prefix, }?: {
|
|
20
|
+
aliases?: QueryCustomType[];
|
|
21
|
+
normalize?: boolean;
|
|
22
|
+
escape?: boolean;
|
|
23
|
+
prefix?: string;
|
|
24
|
+
}): string | number | boolean | null;
|
|
18
25
|
export declare class Function<T> implements Renderable {
|
|
19
26
|
protected name: string;
|
|
20
27
|
protected values: any[];
|
|
@@ -23,6 +30,7 @@ export declare class Function<T> implements Renderable {
|
|
|
23
30
|
constructor(name: string, values: any[], normalize?: boolean, escape?: boolean);
|
|
24
31
|
get [Symbol.toStringTag](): string;
|
|
25
32
|
toJSON(): {
|
|
33
|
+
$type: string;
|
|
26
34
|
name: string;
|
|
27
35
|
values: any[];
|
|
28
36
|
normalize: boolean;
|
|
@@ -32,6 +40,7 @@ export declare class Function<T> implements Renderable {
|
|
|
32
40
|
escape?: boolean;
|
|
33
41
|
prefix?: string;
|
|
34
42
|
}): string;
|
|
43
|
+
clone(): Function<T>;
|
|
35
44
|
}
|
|
36
45
|
export declare class StringAndCollectionFunctions<T> {
|
|
37
46
|
concat(field: any, value: any, normalize?: boolean): Function<T>;
|
|
@@ -92,6 +101,7 @@ export declare class Operator<T> implements Renderable {
|
|
|
92
101
|
constructor(op: string, values: any[], normalize?: boolean);
|
|
93
102
|
get [Symbol.toStringTag](): string;
|
|
94
103
|
toJSON(): {
|
|
104
|
+
$type: string;
|
|
95
105
|
op: string;
|
|
96
106
|
values: any[];
|
|
97
107
|
normalize: boolean;
|
|
@@ -101,6 +111,7 @@ export declare class Operator<T> implements Renderable {
|
|
|
101
111
|
escape?: boolean;
|
|
102
112
|
prefix?: string;
|
|
103
113
|
}): string;
|
|
114
|
+
clone(): Operator<unknown>;
|
|
104
115
|
}
|
|
105
116
|
export declare class LogicalOperators<T> {
|
|
106
117
|
eq(left: any, right: any, normalize?: boolean): Operator<unknown>;
|
|
@@ -126,6 +137,7 @@ export declare class Grouping<T> implements Renderable {
|
|
|
126
137
|
constructor(group: Renderable);
|
|
127
138
|
get [Symbol.toStringTag](): string;
|
|
128
139
|
toJSON(): {
|
|
140
|
+
$type: string;
|
|
129
141
|
group: any;
|
|
130
142
|
};
|
|
131
143
|
render({ aliases, escape, prefix, }: {
|
|
@@ -133,9 +145,7 @@ export declare class Grouping<T> implements Renderable {
|
|
|
133
145
|
escape?: boolean;
|
|
134
146
|
prefix?: string;
|
|
135
147
|
}): string;
|
|
136
|
-
|
|
137
|
-
export declare class GroupingOperators<T> {
|
|
138
|
-
grouping(value: any): Grouping<unknown>;
|
|
148
|
+
clone(): Grouping<unknown>;
|
|
139
149
|
}
|
|
140
150
|
export declare class Lambda<T> implements Renderable {
|
|
141
151
|
protected op: string;
|
|
@@ -144,6 +154,7 @@ export declare class Lambda<T> implements Renderable {
|
|
|
144
154
|
constructor(op: string, values: any[], alias?: string | undefined);
|
|
145
155
|
get [Symbol.toStringTag](): string;
|
|
146
156
|
toJSON(): {
|
|
157
|
+
$type: string;
|
|
147
158
|
op: string;
|
|
148
159
|
values: any[];
|
|
149
160
|
alias: string | undefined;
|
|
@@ -153,6 +164,7 @@ export declare class Lambda<T> implements Renderable {
|
|
|
153
164
|
escape?: boolean;
|
|
154
165
|
prefix?: string;
|
|
155
166
|
}): string;
|
|
167
|
+
clone(): Lambda<unknown>;
|
|
156
168
|
}
|
|
157
169
|
export declare class LambdaOperators<T> {
|
|
158
170
|
any(field: T, value: any, alias?: string): Lambda<unknown>;
|
|
@@ -160,7 +172,7 @@ export declare class LambdaOperators<T> {
|
|
|
160
172
|
}
|
|
161
173
|
export declare class ODataOperators<T> {
|
|
162
174
|
}
|
|
163
|
-
export interface ODataOperators<T> extends LogicalOperators<T>, ArithmeticOperators<T>,
|
|
175
|
+
export interface ODataOperators<T> extends LogicalOperators<T>, ArithmeticOperators<T>, LambdaOperators<T> {
|
|
164
176
|
}
|
|
165
177
|
export declare const operators: ODataOperators<any>;
|
|
166
178
|
export declare class ODataFunctions<T> {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { QueryOptionNames } from '../../types';
|
|
2
2
|
import { Expand, Filter, OrderBy, Select, Transform } from './builder';
|
|
3
|
-
import {
|
|
3
|
+
import { ComputeExpression, FilterConnector, FilterExpression, OrderByExpression, SearchConnector, SearchExpression, ODataFunctions, ODataOperators } from './expressions';
|
|
4
|
+
import { ExpandExpression } from './expressions/expand';
|
|
5
|
+
import { SelectExpression } from './expressions/select';
|
|
4
6
|
import type { ODataQueryArguments, ODataQueryOptions } from './options';
|
|
5
|
-
import { ODataFunctions, ODataOperators } from './syntax';
|
|
6
7
|
export declare class ODataQueryOptionHandler<T> {
|
|
7
8
|
private o;
|
|
8
9
|
private n;
|
|
@@ -38,16 +39,27 @@ export declare class ODataQueryOptionsHandler<T> {
|
|
|
38
39
|
* @returns The alias
|
|
39
40
|
*/
|
|
40
41
|
alias(value: any, name?: string): import("./builder").QueryCustomType;
|
|
42
|
+
select(opts: (builder: {
|
|
43
|
+
s: T;
|
|
44
|
+
e: () => SelectExpression<T>;
|
|
45
|
+
}, current?: SelectExpression<T>) => SelectExpression<T>): SelectExpression<T>;
|
|
41
46
|
select(opts: Select<T>): ODataQueryOptionHandler<T>;
|
|
42
47
|
select(): ODataQueryOptionHandler<T>;
|
|
48
|
+
expand(opts: (builder: {
|
|
49
|
+
s: T;
|
|
50
|
+
e: () => ExpandExpression<T>;
|
|
51
|
+
}, current?: ExpandExpression<T>) => ExpandExpression<T>): ExpandExpression<T>;
|
|
43
52
|
expand(opts: Expand<T>): ODataQueryOptionHandler<T>;
|
|
44
53
|
expand(): ODataQueryOptionHandler<T>;
|
|
45
54
|
/**
|
|
46
55
|
* @link https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_SystemQueryOptioncompute
|
|
47
56
|
*/
|
|
48
|
-
compute(opts: (
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
compute(opts: (builder: {
|
|
58
|
+
s: T;
|
|
59
|
+
e: () => ComputeExpression<T>;
|
|
60
|
+
o: ODataOperators<T>;
|
|
61
|
+
f: ODataFunctions<T>;
|
|
62
|
+
}, current?: ComputeExpression<T>) => ComputeExpression<T>): ComputeExpression<T>;
|
|
51
63
|
compute(opts: string): ODataQueryOptionHandler<T>;
|
|
52
64
|
compute(): ODataQueryOptionHandler<T>;
|
|
53
65
|
/**
|
|
@@ -57,20 +69,23 @@ export declare class ODataQueryOptionsHandler<T> {
|
|
|
57
69
|
format(): ODataQueryOptionHandler<T>;
|
|
58
70
|
transform(opts: Transform<T>): ODataQueryOptionHandler<T>;
|
|
59
71
|
transform(): ODataQueryOptionHandler<T>;
|
|
72
|
+
search(opts: (builder: {
|
|
73
|
+
e: (connector: SearchConnector) => SearchExpression<T>;
|
|
74
|
+
}, current?: SearchExpression<T>) => SearchExpression<T>): SearchExpression<T>;
|
|
60
75
|
search(opts: string): ODataQueryOptionHandler<T>;
|
|
61
76
|
search(): ODataQueryOptionHandler<T>;
|
|
62
|
-
filter(opts: (
|
|
77
|
+
filter(opts: (builder: {
|
|
63
78
|
s: T;
|
|
64
|
-
e: (connector?:
|
|
79
|
+
e: (connector?: FilterConnector) => FilterExpression<T>;
|
|
65
80
|
o: ODataOperators<T>;
|
|
66
81
|
f: ODataFunctions<T>;
|
|
67
|
-
}) =>
|
|
82
|
+
}, current?: FilterExpression<T>) => FilterExpression<T>): FilterExpression<T>;
|
|
68
83
|
filter(opts: Filter<T>): ODataQueryOptionHandler<T>;
|
|
69
84
|
filter(): ODataQueryOptionHandler<T>;
|
|
70
|
-
orderBy(opts: (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}) =>
|
|
85
|
+
orderBy(opts: (builder: {
|
|
86
|
+
s: T;
|
|
87
|
+
e: () => OrderByExpression<T>;
|
|
88
|
+
}, current?: OrderByExpression<T>) => OrderByExpression<T>): OrderByExpression<T>;
|
|
74
89
|
orderBy(opts: OrderBy<T>): ODataQueryOptionHandler<T>;
|
|
75
90
|
orderBy(): ODataQueryOptionHandler<T>;
|
|
76
91
|
top(opts: number): ODataQueryOptionHandler<T>;
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { QueryOptionNames } from '../../types';
|
|
2
2
|
import { Expand, Filter, OrderBy, Select, Transform } from './builder';
|
|
3
|
-
import { Expression } from './expressions';
|
|
3
|
+
import { Expression, FilterExpression, OrderByExpression, SearchExpression } from './expressions';
|
|
4
|
+
import { ExpandExpression } from './expressions/expand';
|
|
5
|
+
import { SelectExpression } from './expressions/select';
|
|
4
6
|
import { ODataQueryOptionHandler } from './handlers';
|
|
5
7
|
export declare type ODataQueryArguments<T> = {
|
|
6
|
-
[QueryOptionNames.select]?: Select<T>;
|
|
7
|
-
[QueryOptionNames.filter]?: Filter<T>;
|
|
8
|
-
[QueryOptionNames.search]?: string
|
|
8
|
+
[QueryOptionNames.select]?: Select<T> | SelectExpression<T>;
|
|
9
|
+
[QueryOptionNames.filter]?: Filter<T> | FilterExpression<T>;
|
|
10
|
+
[QueryOptionNames.search]?: string | SearchExpression<T>;
|
|
9
11
|
[QueryOptionNames.compute]?: string;
|
|
10
12
|
[QueryOptionNames.transform]?: Transform<T>;
|
|
11
|
-
[QueryOptionNames.orderBy]?: OrderBy<T>;
|
|
13
|
+
[QueryOptionNames.orderBy]?: OrderBy<T> | OrderByExpression<T>;
|
|
12
14
|
[QueryOptionNames.top]?: number;
|
|
13
15
|
[QueryOptionNames.skip]?: number;
|
|
14
16
|
[QueryOptionNames.skiptoken]?: string;
|
|
15
|
-
[QueryOptionNames.expand]?: Expand<T>;
|
|
17
|
+
[QueryOptionNames.expand]?: Expand<T> | ExpandExpression<T>;
|
|
16
18
|
[QueryOptionNames.format]?: string;
|
|
17
19
|
};
|
|
18
20
|
export declare class ODataQueryOptions<T> {
|
|
19
|
-
|
|
21
|
+
values: {
|
|
20
22
|
[name: string]: any;
|
|
21
23
|
};
|
|
22
24
|
constructor(options?: {
|
|
@@ -29,7 +31,7 @@ export declare class ODataQueryOptions<T> {
|
|
|
29
31
|
toJSON(): {};
|
|
30
32
|
toQueryArguments(): ODataQueryArguments<T>;
|
|
31
33
|
clone<O>(): ODataQueryOptions<O>;
|
|
32
|
-
expression(name: QueryOptionNames, exp
|
|
34
|
+
expression(name: QueryOptionNames, exp?: Expression<T>): any;
|
|
33
35
|
option<O>(name: QueryOptionNames, opts?: O): ODataQueryOptionHandler<O>;
|
|
34
36
|
has(name: QueryOptionNames): boolean;
|
|
35
37
|
remove(...names: QueryOptionNames[]): void;
|
|
@@ -51,13 +51,14 @@ export declare class ODataResource<T> {
|
|
|
51
51
|
reset?: boolean;
|
|
52
52
|
}): C;
|
|
53
53
|
isSubtypeOf(other: ODataResource<any>): boolean;
|
|
54
|
+
isSupertypeOf(other: ODataResource<any>): boolean;
|
|
54
55
|
isEqualTo(other: ODataResource<any>, test?: 'path' | 'params'): boolean;
|
|
55
56
|
pathAndParams(escape?: boolean): [string, {
|
|
56
57
|
[name: string]: any;
|
|
57
58
|
}];
|
|
58
59
|
endpointUrl(params?: boolean): string;
|
|
59
60
|
toString(): string;
|
|
60
|
-
clone
|
|
61
|
+
clone(): ODataResource<T>;
|
|
61
62
|
deserialize(value: any, options?: OptionsHelper): any;
|
|
62
63
|
serialize(value: any, options?: OptionsHelper): any;
|
|
63
64
|
encode(value: any, options?: OptionsHelper): any;
|
|
@@ -15,6 +15,7 @@ export declare class ODataActionResource<P, R> extends ODataResource<R> {
|
|
|
15
15
|
query?: ODataQueryOptions<R>;
|
|
16
16
|
}): ODataActionResource<P, R>;
|
|
17
17
|
static fromResource<P, R>(resource: ODataResource<any>, path: string): ODataActionResource<P, R>;
|
|
18
|
+
clone(): ODataActionResource<P, R>;
|
|
18
19
|
returnType(): string | undefined;
|
|
19
20
|
protected post(params: P | null, options?: ODataEntityOptions & ODataEntitiesOptions & ODataPropertyOptions): Observable<any>;
|
|
20
21
|
/**
|
|
@@ -25,6 +25,16 @@ export declare class ODataBatchResource extends ODataResource<any> {
|
|
|
25
25
|
private _requests;
|
|
26
26
|
requests(): ODataRequest<any>[];
|
|
27
27
|
static factory(api: ODataApi): ODataBatchResource;
|
|
28
|
+
clone(): ODataBatchResource;
|
|
29
|
+
private storeRequester;
|
|
30
|
+
private restoreRequester;
|
|
31
|
+
/**
|
|
32
|
+
* Add to batch request
|
|
33
|
+
* @param ctx The context for the request
|
|
34
|
+
* @returns The result of execute the context
|
|
35
|
+
*/
|
|
36
|
+
add<R>(ctx: (batch: this) => Observable<R>): Observable<R>;
|
|
37
|
+
send(options?: ODataOptions): void;
|
|
28
38
|
/**
|
|
29
39
|
* Execute the batch request
|
|
30
40
|
* @param ctx The context for the request
|
|
@@ -9,6 +9,7 @@ export declare class ODataCountResource<T> extends ODataResource<T> {
|
|
|
9
9
|
segments: ODataPathSegments;
|
|
10
10
|
query?: ODataQueryOptions<T>;
|
|
11
11
|
}): ODataCountResource<T>;
|
|
12
|
+
clone(): ODataCountResource<T>;
|
|
12
13
|
protected get(options?: ODataOptions): Observable<number>;
|
|
13
14
|
/**
|
|
14
15
|
* Fetch the count of the set.
|