angular-odata 0.99.2 → 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.
Files changed (43) hide show
  1. package/esm2020/lib/cache/cache.mjs +2 -2
  2. package/esm2020/lib/client.mjs +3 -3
  3. package/esm2020/lib/models/collection.mjs +33 -44
  4. package/esm2020/lib/models/model.mjs +33 -37
  5. package/esm2020/lib/models/options.mjs +11 -1
  6. package/esm2020/lib/module.mjs +4 -4
  7. package/esm2020/lib/resources/query/builder.mjs +2 -1
  8. package/esm2020/lib/resources/query/expressions/base.mjs +1 -1
  9. package/esm2020/lib/resources/query/expressions/compute.mjs +13 -6
  10. package/esm2020/lib/resources/query/expressions/expand.mjs +77 -13
  11. package/esm2020/lib/resources/query/expressions/filter.mjs +11 -5
  12. package/esm2020/lib/resources/query/expressions/orderby.mjs +11 -3
  13. package/esm2020/lib/resources/query/expressions/search.mjs +15 -3
  14. package/esm2020/lib/resources/query/expressions/select.mjs +10 -5
  15. package/esm2020/lib/resources/query/expressions/syntax.mjs +42 -9
  16. package/esm2020/lib/resources/query/handlers.mjs +13 -13
  17. package/esm2020/lib/resources/query/options.mjs +33 -36
  18. package/esm2020/lib/resources/types/entity.mjs +3 -3
  19. package/esm2020/lib/schema/enum-type.mjs +9 -1
  20. package/esm2020/lib/services/entity-set.mjs +6 -6
  21. package/esm2020/lib/services/factory.mjs +3 -3
  22. package/esm2020/lib/types.mjs +2 -1
  23. package/esm2020/lib/utils/objects.mjs +5 -1
  24. package/fesm2015/angular-odata.mjs +337 -199
  25. package/fesm2015/angular-odata.mjs.map +1 -1
  26. package/fesm2020/angular-odata.mjs +337 -203
  27. package/fesm2020/angular-odata.mjs.map +1 -1
  28. package/lib/models/collection.d.ts +4 -2
  29. package/lib/models/options.d.ts +9 -7
  30. package/lib/resources/query/builder.d.ts +1 -0
  31. package/lib/resources/query/expressions/base.d.ts +1 -0
  32. package/lib/resources/query/expressions/compute.d.ts +3 -2
  33. package/lib/resources/query/expressions/expand.d.ts +40 -12
  34. package/lib/resources/query/expressions/filter.d.ts +22 -21
  35. package/lib/resources/query/expressions/orderby.d.ts +4 -2
  36. package/lib/resources/query/expressions/search.d.ts +5 -2
  37. package/lib/resources/query/expressions/select.d.ts +3 -2
  38. package/lib/resources/query/expressions/syntax.d.ts +12 -2
  39. package/lib/resources/query/handlers.d.ts +12 -12
  40. package/lib/resources/query/options.d.ts +10 -8
  41. package/lib/schema/enum-type.d.ts +6 -0
  42. package/lib/types.d.ts +1 -0
  43. package/package.json +1 -1
@@ -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: (m: M, index: number) => boolean): M[];
114
- find(predicate: (m: M, index: number) => boolean): M | undefined;
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;
@@ -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: {
@@ -32,6 +32,7 @@ export declare type ExpandOptions<T> = {
32
32
  filter?: Filter<T>;
33
33
  orderBy?: OrderBy<T>;
34
34
  top?: number;
35
+ skip?: number;
35
36
  levels?: number | 'max';
36
37
  count?: boolean | Filter<T>;
37
38
  expand?: Expand<T>;
@@ -11,6 +11,7 @@ export declare abstract class Expression<T> implements Renderable {
11
11
  escape?: boolean | undefined;
12
12
  prefix?: string | undefined;
13
13
  }): string;
14
+ abstract clone(): Expression<T>;
14
15
  children(): Renderable[];
15
16
  length(): number;
16
17
  toJSON(): {
@@ -9,15 +9,16 @@ export declare class ComputeExpression<T> extends Expression<T> {
9
9
  });
10
10
  static e<T>(): ComputeExpression<T>;
11
11
  static s<T extends object>(): T;
12
- static compute<T extends object>(opts: (e: {
12
+ static compute<T extends object>(opts: (builder: {
13
13
  s: T;
14
14
  e: () => ComputeExpression<T>;
15
- }) => ComputeExpression<T>): ComputeExpression<T>;
15
+ }, current?: ComputeExpression<T>) => ComputeExpression<T>, current?: ComputeExpression<T>): ComputeExpression<T>;
16
16
  render({ aliases, escape, prefix, }?: {
17
17
  aliases?: QueryCustomType[] | undefined;
18
18
  escape?: boolean | undefined;
19
19
  prefix?: string | undefined;
20
20
  }): string;
21
+ clone(): ComputeExpression<unknown>;
21
22
  private _add;
22
23
  field<T extends object>(name: string, opts: (e: {
23
24
  o: ODataOperators<T>;
@@ -1,9 +1,16 @@
1
1
  import type { QueryCustomType } from '../builder';
2
2
  import { Expression } from './base';
3
- import { Renderable } from './syntax';
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';
4
8
  export declare class ExpandField<T> implements Renderable {
5
- protected field: Renderable;
6
- constructor(field: Renderable);
9
+ protected field: any;
10
+ private values;
11
+ constructor(field: any, values?: {
12
+ [name: string]: any;
13
+ });
7
14
  get [Symbol.toStringTag](): string;
8
15
  toJSON(): {
9
16
  field: any;
@@ -13,12 +20,32 @@ export declare class ExpandField<T> implements Renderable {
13
20
  escape?: boolean;
14
21
  prefix?: string;
15
22
  }): string;
16
- select(): void;
17
- filter(): void;
18
- levels(): void;
19
- orderBy(): void;
20
- top(): void;
21
- skip(): void;
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;
22
49
  }
23
50
  export declare class ExpandExpression<T> extends Expression<T> {
24
51
  constructor({ children, }?: {
@@ -26,15 +53,16 @@ export declare class ExpandExpression<T> extends Expression<T> {
26
53
  });
27
54
  static e<T>(): ExpandExpression<T>;
28
55
  static s<T extends object>(): T;
29
- static expand<T extends object>(opts: (e: {
56
+ static expand<T extends object>(opts: (builder: {
30
57
  s: T;
31
58
  e: () => ExpandExpression<T>;
32
- }) => ExpandExpression<T>): ExpandExpression<T>;
59
+ }, current?: ExpandExpression<T>) => ExpandExpression<T>, current?: ExpandExpression<T>): ExpandExpression<T>;
33
60
  render({ aliases, escape, prefix, }?: {
34
61
  aliases?: QueryCustomType[] | undefined;
35
62
  escape?: boolean | undefined;
36
63
  prefix?: string | undefined;
37
64
  }): string;
65
+ clone(): ExpandExpression<unknown>;
38
66
  private _add;
39
- field<T extends object>(field: any, opts?: (e: ExpandField<keyof T>) => void): ExpandExpression<T>;
67
+ field<F>(field: F, opts?: (e: ExpandField<F>) => void): ExpandExpression<F>;
40
68
  }
@@ -2,7 +2,7 @@ import type { QueryCustomType } from '../builder';
2
2
  import { Expression } from './base';
3
3
  import { ODataFunctions, ODataOperators, Renderable } from './syntax';
4
4
  export declare type FilterConnector = 'and' | 'or';
5
- export declare class FilterExpression<T> extends Expression<T> {
5
+ export declare class FilterExpression<F> extends Expression<F> {
6
6
  private _connector;
7
7
  private _negated;
8
8
  constructor({ children, connector, negated, }?: {
@@ -12,12 +12,12 @@ export declare class FilterExpression<T> extends Expression<T> {
12
12
  });
13
13
  static s<T extends object>(): T;
14
14
  static e<T>(connector?: FilterConnector): FilterExpression<T>;
15
- static filter<T extends object>(opts: (e: {
15
+ static filter<T extends object>(opts: (builder: {
16
16
  s: T;
17
17
  e: (connector?: FilterConnector) => FilterExpression<T>;
18
18
  o: ODataOperators<T>;
19
19
  f: ODataFunctions<T>;
20
- }) => FilterExpression<T>): FilterExpression<T>;
20
+ }, current?: FilterExpression<T>) => FilterExpression<T>, current?: FilterExpression<T>): FilterExpression<T>;
21
21
  toJSON(): {
22
22
  children: any[];
23
23
  connector: FilterConnector;
@@ -30,29 +30,30 @@ export declare class FilterExpression<T> extends Expression<T> {
30
30
  escape?: boolean;
31
31
  prefix?: string;
32
32
  }): string;
33
+ clone(): FilterExpression<unknown>;
33
34
  private _add;
34
- or(exp: FilterExpression<T>): FilterExpression<T>;
35
- and(exp: FilterExpression<T>): FilterExpression<T>;
36
- not(exp: FilterExpression<T>): FilterExpression<T>;
37
- eq(left: any, right: any, normalize?: boolean): FilterExpression<T>;
38
- ne(left: any, right: any, normalize?: boolean): FilterExpression<T>;
39
- gt(left: any, right: any, normalize?: boolean): FilterExpression<T>;
40
- ge(left: any, right: any, normalize?: boolean): FilterExpression<T>;
41
- lt(left: any, right: any, normalize?: boolean): FilterExpression<T>;
42
- le(left: any, right: any, normalize?: boolean): FilterExpression<T>;
43
- has(left: any, right: any, normalize?: boolean): FilterExpression<T>;
44
- in(left: any, right: any, normalize?: boolean): FilterExpression<T>;
45
- contains(left: any, right: any, normalize?: boolean): FilterExpression<T>;
46
- startsWith(left: any, right: any, normalize?: boolean): FilterExpression<T>;
47
- endsWith(left: any, right: any, normalize?: boolean): FilterExpression<T>;
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>;
48
49
  any<N extends object>(left: N[], opts: (e: {
49
50
  s: N;
50
51
  e: (connector?: FilterConnector) => FilterExpression<N>;
51
- }) => FilterExpression<N>, alias?: string): FilterExpression<T>;
52
+ }) => FilterExpression<N>, alias?: string): FilterExpression<F>;
52
53
  all<N extends object>(left: N[], opts: (e: {
53
54
  s: N;
54
55
  e: (connector?: FilterConnector) => FilterExpression<N>;
55
- }) => FilterExpression<N>, alias?: string): FilterExpression<T>;
56
- isof(type: string): FilterExpression<T>;
57
- isof(left: T, type: string): FilterExpression<T>;
56
+ }) => FilterExpression<N>, alias?: string): FilterExpression<F>;
57
+ isof(type: string): FilterExpression<F>;
58
+ isof(left: F, type: string): FilterExpression<F>;
58
59
  }
@@ -15,6 +15,7 @@ export declare class OrderByField implements Renderable {
15
15
  escape?: boolean;
16
16
  prefix?: string;
17
17
  }): string;
18
+ clone(): OrderByField;
18
19
  }
19
20
  export declare class OrderByExpression<T> extends Expression<T> {
20
21
  constructor({ children, }?: {
@@ -22,16 +23,17 @@ export declare class OrderByExpression<T> extends Expression<T> {
22
23
  });
23
24
  static e<T>(): OrderByExpression<T>;
24
25
  static s<T extends object>(): T;
25
- static orderBy<T extends object>(opts: (e: {
26
+ static orderBy<T extends object>(opts: (builder: {
26
27
  s: T;
27
28
  e: () => OrderByExpression<T>;
28
- }) => OrderByExpression<T>): OrderByExpression<T>;
29
+ }, current?: OrderByExpression<T>) => OrderByExpression<T>, current?: OrderByExpression<T>): OrderByExpression<T>;
29
30
  private _add;
30
31
  render({ aliases, escape, prefix, }?: {
31
32
  aliases?: QueryCustomType[] | undefined;
32
33
  escape?: boolean | undefined;
33
34
  prefix?: string | undefined;
34
35
  }): string;
36
+ clone(): OrderByExpression<unknown>;
35
37
  ascending(field: any): OrderByExpression<T>;
36
38
  descending(field: any): OrderByExpression<T>;
37
39
  }
@@ -7,6 +7,7 @@ export declare class SearchTerm implements Renderable {
7
7
  constructor(value: string);
8
8
  get [Symbol.toStringTag](): string;
9
9
  toJSON(): {
10
+ $type: string;
10
11
  value: string;
11
12
  };
12
13
  render({ aliases, escape, prefix, }: {
@@ -14,6 +15,7 @@ export declare class SearchTerm implements Renderable {
14
15
  escape?: boolean;
15
16
  prefix?: string;
16
17
  }): string;
18
+ clone(): SearchTerm;
17
19
  }
18
20
  export declare class SearchExpression<T> extends Expression<T> {
19
21
  private _connector;
@@ -24,15 +26,16 @@ export declare class SearchExpression<T> extends Expression<T> {
24
26
  negated?: boolean;
25
27
  });
26
28
  static e<T>(connector?: SearchConnector): SearchExpression<T>;
27
- static search<T extends object>(opts: (e: {
29
+ static search<T extends object>(opts: (builder: {
28
30
  e: (connector?: SearchConnector) => SearchExpression<T>;
29
- }) => SearchExpression<T>): SearchExpression<T>;
31
+ }, current?: SearchExpression<T>) => SearchExpression<T>, current?: SearchExpression<T>): SearchExpression<T>;
30
32
  private _add;
31
33
  render({ aliases, escape, prefix, }?: {
32
34
  aliases?: QueryCustomType[] | undefined;
33
35
  escape?: boolean | undefined;
34
36
  prefix?: string | undefined;
35
37
  }): string;
38
+ clone(): SearchExpression<unknown>;
36
39
  toJSON(): {
37
40
  children: any[];
38
41
  connector: SearchConnector;
@@ -7,15 +7,16 @@ export declare class SelectExpression<T> extends Expression<T> {
7
7
  });
8
8
  static e<T>(): SelectExpression<T>;
9
9
  static s<T extends object>(): T;
10
- static select<T extends object>(opts: (e: {
10
+ static select<T extends object>(builder: (b: {
11
11
  s: T;
12
12
  e: () => SelectExpression<T>;
13
- }) => SelectExpression<T>): SelectExpression<T>;
13
+ }, c?: SelectExpression<T>) => SelectExpression<T>, current?: SelectExpression<T>): SelectExpression<T>;
14
14
  render({ aliases, escape, prefix, }?: {
15
15
  aliases?: QueryCustomType[] | undefined;
16
16
  escape?: boolean | undefined;
17
17
  prefix?: string | undefined;
18
18
  }): string;
19
+ clone(): SelectExpression<unknown>;
19
20
  private _add;
20
21
  field(field: any): SelectExpression<T>;
21
22
  }
@@ -7,12 +7,14 @@ export interface Renderable {
7
7
  }): string;
8
8
  toString(): string;
9
9
  toJSON(): any;
10
+ clone(): any;
10
11
  }
11
12
  export declare class Field<T extends object> implements ProxyHandler<T> {
12
13
  name: string;
13
14
  constructor(name?: string);
14
- static factory<T extends object>(): T;
15
- get(target: T, p: string | symbol): any;
15
+ static factory<T extends object>(name?: string): T;
16
+ get(target: T, key: string | symbol): any;
17
+ has(target: T, key: string): any;
16
18
  }
17
19
  export declare function render(value: any, { aliases, normalize, escape, prefix, }?: {
18
20
  aliases?: QueryCustomType[];
@@ -28,6 +30,7 @@ export declare class Function<T> implements Renderable {
28
30
  constructor(name: string, values: any[], normalize?: boolean, escape?: boolean);
29
31
  get [Symbol.toStringTag](): string;
30
32
  toJSON(): {
33
+ $type: string;
31
34
  name: string;
32
35
  values: any[];
33
36
  normalize: boolean;
@@ -37,6 +40,7 @@ export declare class Function<T> implements Renderable {
37
40
  escape?: boolean;
38
41
  prefix?: string;
39
42
  }): string;
43
+ clone(): Function<T>;
40
44
  }
41
45
  export declare class StringAndCollectionFunctions<T> {
42
46
  concat(field: any, value: any, normalize?: boolean): Function<T>;
@@ -97,6 +101,7 @@ export declare class Operator<T> implements Renderable {
97
101
  constructor(op: string, values: any[], normalize?: boolean);
98
102
  get [Symbol.toStringTag](): string;
99
103
  toJSON(): {
104
+ $type: string;
100
105
  op: string;
101
106
  values: any[];
102
107
  normalize: boolean;
@@ -106,6 +111,7 @@ export declare class Operator<T> implements Renderable {
106
111
  escape?: boolean;
107
112
  prefix?: string;
108
113
  }): string;
114
+ clone(): Operator<unknown>;
109
115
  }
110
116
  export declare class LogicalOperators<T> {
111
117
  eq(left: any, right: any, normalize?: boolean): Operator<unknown>;
@@ -131,6 +137,7 @@ export declare class Grouping<T> implements Renderable {
131
137
  constructor(group: Renderable);
132
138
  get [Symbol.toStringTag](): string;
133
139
  toJSON(): {
140
+ $type: string;
134
141
  group: any;
135
142
  };
136
143
  render({ aliases, escape, prefix, }: {
@@ -138,6 +145,7 @@ export declare class Grouping<T> implements Renderable {
138
145
  escape?: boolean;
139
146
  prefix?: string;
140
147
  }): string;
148
+ clone(): Grouping<unknown>;
141
149
  }
142
150
  export declare class Lambda<T> implements Renderable {
143
151
  protected op: string;
@@ -146,6 +154,7 @@ export declare class Lambda<T> implements Renderable {
146
154
  constructor(op: string, values: any[], alias?: string | undefined);
147
155
  get [Symbol.toStringTag](): string;
148
156
  toJSON(): {
157
+ $type: string;
149
158
  op: string;
150
159
  values: any[];
151
160
  alias: string | undefined;
@@ -155,6 +164,7 @@ export declare class Lambda<T> implements Renderable {
155
164
  escape?: boolean;
156
165
  prefix?: string;
157
166
  }): string;
167
+ clone(): Lambda<unknown>;
158
168
  }
159
169
  export declare class LambdaOperators<T> {
160
170
  any(field: T, value: any, alias?: string): Lambda<unknown>;
@@ -39,27 +39,27 @@ export declare class ODataQueryOptionsHandler<T> {
39
39
  * @returns The alias
40
40
  */
41
41
  alias(value: any, name?: string): import("./builder").QueryCustomType;
42
- select(opts: (e: {
42
+ select(opts: (builder: {
43
43
  s: T;
44
44
  e: () => SelectExpression<T>;
45
- }) => SelectExpression<T>): SelectExpression<T>;
45
+ }, current?: SelectExpression<T>) => SelectExpression<T>): SelectExpression<T>;
46
46
  select(opts: Select<T>): ODataQueryOptionHandler<T>;
47
47
  select(): ODataQueryOptionHandler<T>;
48
- expand(opts: (e: {
48
+ expand(opts: (builder: {
49
49
  s: T;
50
50
  e: () => ExpandExpression<T>;
51
- }) => ExpandExpression<T>): ExpandExpression<T>;
51
+ }, current?: ExpandExpression<T>) => ExpandExpression<T>): ExpandExpression<T>;
52
52
  expand(opts: Expand<T>): ODataQueryOptionHandler<T>;
53
53
  expand(): ODataQueryOptionHandler<T>;
54
54
  /**
55
55
  * @link https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_SystemQueryOptioncompute
56
56
  */
57
- compute(opts: (e: {
57
+ compute(opts: (builder: {
58
58
  s: T;
59
59
  e: () => ComputeExpression<T>;
60
60
  o: ODataOperators<T>;
61
61
  f: ODataFunctions<T>;
62
- }) => ComputeExpression<T>): ComputeExpression<T>;
62
+ }, current?: ComputeExpression<T>) => ComputeExpression<T>): ComputeExpression<T>;
63
63
  compute(opts: string): ODataQueryOptionHandler<T>;
64
64
  compute(): ODataQueryOptionHandler<T>;
65
65
  /**
@@ -69,23 +69,23 @@ export declare class ODataQueryOptionsHandler<T> {
69
69
  format(): ODataQueryOptionHandler<T>;
70
70
  transform(opts: Transform<T>): ODataQueryOptionHandler<T>;
71
71
  transform(): ODataQueryOptionHandler<T>;
72
- search(opts: (e: {
72
+ search(opts: (builder: {
73
73
  e: (connector: SearchConnector) => SearchExpression<T>;
74
- }) => SearchExpression<T>): SearchExpression<T>;
74
+ }, current?: SearchExpression<T>) => SearchExpression<T>): SearchExpression<T>;
75
75
  search(opts: string): ODataQueryOptionHandler<T>;
76
76
  search(): ODataQueryOptionHandler<T>;
77
- filter(opts: (e: {
77
+ filter(opts: (builder: {
78
78
  s: T;
79
79
  e: (connector?: FilterConnector) => FilterExpression<T>;
80
80
  o: ODataOperators<T>;
81
81
  f: ODataFunctions<T>;
82
- }) => FilterExpression<T>): FilterExpression<T>;
82
+ }, current?: FilterExpression<T>) => FilterExpression<T>): FilterExpression<T>;
83
83
  filter(opts: Filter<T>): ODataQueryOptionHandler<T>;
84
84
  filter(): ODataQueryOptionHandler<T>;
85
- orderBy(opts: (e: {
85
+ orderBy(opts: (builder: {
86
86
  s: T;
87
87
  e: () => OrderByExpression<T>;
88
- }) => OrderByExpression<T>): OrderByExpression<T>;
88
+ }, current?: OrderByExpression<T>) => OrderByExpression<T>): OrderByExpression<T>;
89
89
  orderBy(opts: OrderBy<T>): ODataQueryOptionHandler<T>;
90
90
  orderBy(): ODataQueryOptionHandler<T>;
91
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
- options: {
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: Expression<T>): Expression<T>;
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;
@@ -28,6 +28,12 @@ export declare class ODataEnumType<E> extends ODataSchemaElement {
28
28
  * @returns The field with the given value
29
29
  */
30
30
  findFieldByValue(value: number): ODataEnumTypeFieldParser | undefined;
31
+ /**
32
+ * Find a fields by flag.
33
+ * @param value The value of the field
34
+ * @returns The fields with the given flag
35
+ */
36
+ findFieldsByValue(value: number): ODataEnumTypeFieldParser[];
31
37
  /**
32
38
  * Map the fields of the enum type.
33
39
  * @param mapper Function that maps the value to the new value
package/lib/types.d.ts CHANGED
@@ -30,6 +30,7 @@ export declare enum QueryOptionNames {
30
30
  skip = "skip",
31
31
  skiptoken = "skiptoken",
32
32
  format = "format",
33
+ levels = "levels",
33
34
  count = "count"
34
35
  }
35
36
  export interface Options {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "angular-odata",
3
- "version": "0.99.2",
3
+ "version": "0.99.5",
4
4
  "license": "MIT",
5
5
  "description": "Client side OData typescript library for Angular",
6
6
  "repository": {