1 | import BigNumber from 'bignumber.js';
|
2 | import moment from 'moment';
|
3 | import { EdmTypeShared } from '../edm-types';
|
4 | import { Entity } from '../entity';
|
5 | import { Filter } from '../filter';
|
6 | import { Time } from '../time';
|
7 | import { ConstructorOrField } from './constructor-or-field';
|
8 | import { Field, FieldOptions, FieldType } from './field';
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | declare type NullableFieldType<FieldT extends FieldType, NullableT extends boolean> = NullableT extends true ? FieldT | null : FieldT;
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | declare type NonNullableFieldTypeByEdmType<EdmOrFieldT extends EdmTypeShared<'any'> | FieldType> = EdmOrFieldT extends 'Edm.String' ? string : EdmOrFieldT extends 'Edm.Boolean' ? boolean : EdmOrFieldT extends 'Edm.Decimal' ? BigNumber : EdmOrFieldT extends 'Edm.Double' ? number : EdmOrFieldT extends 'Edm.Single' ? number : EdmOrFieldT extends 'Edm.Float' ? number : EdmOrFieldT extends 'Edm.Int16' ? number : EdmOrFieldT extends 'Edm.Int32' ? number : EdmOrFieldT extends 'Edm.Int64' ? BigNumber : EdmOrFieldT extends 'Edm.SByte' ? number : EdmOrFieldT extends 'Edm.Binary' ? string : EdmOrFieldT extends 'Edm.Guid' ? string : EdmOrFieldT extends 'Edm.Byte' ? number : EdmOrFieldT extends 'Edm.DateTime' ? moment.Moment : EdmOrFieldT extends 'Edm.DateTimeOffset' ? moment.Moment : EdmOrFieldT extends 'Edm.Time' ? Time : EdmOrFieldT extends 'Edm.Date' ? moment.Moment : EdmOrFieldT extends 'Edm.Duration' ? moment.Duration : EdmOrFieldT extends 'Edm.TimeOfDay' ? Time : EdmOrFieldT extends 'Edm.Enum' ? string : EdmOrFieldT extends 'Edm.Any' ? any : EdmOrFieldT extends FieldType ? EdmOrFieldT : never;
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | export declare type FieldTypeByEdmType<EdmOrFieldT extends EdmTypeShared<'any'> | FieldType, NullableT extends boolean> = NullableFieldType<EdmOrFieldT extends EdmTypeShared<'any'> ? NonNullableFieldTypeByEdmType<EdmOrFieldT> : EdmOrFieldT, NullableT>;
|
27 |
|
28 |
|
29 |
|
30 |
|
31 | export declare type EdmTypeForEdmOrFieldType<EdmOrFieldT extends EdmTypeShared<'any'> | FieldType> = EdmOrFieldT extends EdmTypeShared<'any'> ? EdmOrFieldT : EdmTypeShared<'any'>;
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | export declare class EdmTypeField<EntityT extends Entity, EdmOrFieldT extends EdmTypeShared<'any'> | FieldType, NullableT extends boolean = false, SelectableT extends boolean = false> extends Field<EntityT, NullableT, SelectableT> {
|
48 | readonly _fieldOf: ConstructorOrField<EntityT>;
|
49 | readonly edmType: EdmTypeForEdmOrFieldType<EdmOrFieldT>;
|
50 | |
51 |
|
52 |
|
53 |
|
54 |
|
55 |
|
56 |
|
57 | constructor(fieldName: string, _fieldOf: ConstructorOrField<EntityT>, edmType: EdmTypeForEdmOrFieldType<EdmOrFieldT>, fieldOptions?: FieldOptions<NullableT, SelectableT>);
|
58 | /**
|
59 | * Creates an instance of Filter for this field and the given value using the operator 'eq', i.e. `==`.
|
60 | * @param value - Value to be used in the filter
|
61 | * @returns The resulting filter
|
62 | */
|
63 | equals(value: FieldTypeByEdmType<EdmOrFieldT, NullableT>): Filter<EntityT, FieldTypeByEdmType<EdmOrFieldT, NullableT>>;
|
64 | /**
|
65 | * Creates an instance of Filter for this field and the given value using the operator 'ne', i.e. `!=`.
|
66 | * @param value - Value to be used in the filter
|
67 | * @returns The resulting filter
|
68 | */
|
69 | notEquals(value: FieldTypeByEdmType<EdmOrFieldT, NullableT>): Filter<EntityT, FieldTypeByEdmType<EdmOrFieldT, NullableT>>;
|
70 | /**
|
71 | * Path to the field to be used in filter and order by queries.
|
72 | * @returns Path to the field to be used in filter and order by queries.
|
73 | */
|
74 | fieldPath(): string;
|
75 | }
|
76 | export {};
|
77 |
|
\ | No newline at end of file |