@hso/d365-cli
Version:
Dynamics 365 Command Line Interface for TypeScript projects for Dataverse
48 lines (41 loc) • 2.28 kB
text/typescript
interface Expand {
attribute: string;
select: string[];
}
interface SystemQueryOptions {
select: string[];
expands?: Expand[];
}
type Order = 'asc' | 'desc';
interface OrderBy {
attribute: string;
order?: Order;
}
// https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/tomorrow?view=dynamics-ce-odata-9
type QueryFunction = 'Above' | 'AboveOrEqual' | 'Between' | 'Contains' | 'ContainValues' | 'DoesNotContainValues' | 'EqualBusinessId' | 'EqualUserId' |
'EqualUserLanguage' | 'EqualUserOrUserHierarchy' | 'EqualUserOrHierarchyAndTeams' | 'EqualUserOrUserTeams' | 'EqualUserTeams' | 'In' | 'InFiscalPeriod' |
'InFiscalPeriodAndYear' | 'InFiscalYear' | 'InOrAfterFiscalPeriodAndYear' | 'InOrBeforeFiscalPeriodAndYear' | 'Last7Days' | 'LastFiscalPeriod' | 'LastFiscalYear' |
'LastMonth' | 'LastWeek' | 'LastXDays' | 'LastXFiscalPeriods' | 'LastXFiscalYears' | 'LastXHours' | 'LastXMonths' | 'LastXWeeks' | 'LastXYears' | 'LastYear' |
'Next7Days' | 'NextFiscalPeriod' | 'NextFiscalYear' | 'NextMonth' | 'NextWeek' | 'NextXDays' | 'NextXFiscalPeriods' | 'NextXFiscalYears' | 'NextXHours' |
'NextXMonths' | 'NextXWeeks' | 'NextXYears' | 'NextYear' | 'NotBetween' | 'NotEqualBusinessId' | 'NotEqualUserId' | 'NotIn' | 'NotUnder' | 'OlderThanXDays' |
'OlderThanXHours' | 'OlderThanXMinutes' | 'OlderThanXMonths' | 'OlderThanXWeeks' | 'OlderThanXYears' | 'On' | 'OnOrAfter' | 'OnOrBefore' | 'ThisFiscalPerios' |
'ThisFiscalYear' | 'ThisMonth' | 'ThisWeek' | 'ThisYear' | 'Today' | 'Tomorrow' | 'Under' | 'UnderOrEqual' | 'Yesterday';
type FilterCondition = 'eq' | 'ne'| 'gt'| 'ge'| 'lt'| 'le'; // typeof filterConditions[number]; See WebApi const filterConditions
/* eslint-disable @typescript-eslint/no-explicit-any */
interface Condition {
attribute: string;
operator?: FilterCondition | QueryFunction;
value?: any;
}
/* eslint-enable @typescript-eslint/no-explicit-any */
type FilterType = 'and' | 'or' | 'not';
interface Filter {
type?: FilterType;
conditions: Condition[];
filters?: Filter[];
}
interface MultipleSystemQueryOptions extends SystemQueryOptions {
filters?: Filter[];
orders?: OrderBy[];
top?: number;
}