@shko.online/dataverse-odata
Version:
This package will help parse OData strings (only the Microsoft Dataverse subset). It can be used as a validator, or you can build some javascript library which consumes the output of this library.
29 lines (24 loc) • 1.06 kB
text/typescript
import type { ODataQuery } from './OData.types';
import { getTopFromParser } from './getTopFromParser';
import { getSelectFromParser } from './getSelectFromParser';
import { getExpandFromParser } from './getExpandFromParser';
import { getFetchXmlFromParser } from './getFetchXmlFromParser';
import { getXQueryFromParser } from './getXQueryFromParser';
import { getOrderByFromParser } from './getOrderByFromParser';
/**
* parses the OData query and applies some Dataverse validations
* @param query The OData query
* @returns The parsed OData query
*/
export const parseOData = (query: string) => {
const parser = new URLSearchParams(query);
const result = {} as ODataQuery;
getExpandFromParser(parser, result) &&
getSelectFromParser(parser, result) &&
getTopFromParser(parser, result) &&
getFetchXmlFromParser(parser, result) &&
getXQueryFromParser('savedQuery', parser, result) &&
getXQueryFromParser('userQuery', parser, result) &&
getOrderByFromParser(parser, result);
return result;
};