@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.
26 lines (23 loc) • 747 B
text/typescript
import type { ODataQuery, ODataSavedQuery, ODataUserQuery } from './OData.types';
import { isGuid } from './validators/isGuid';
import { recognizedGuid } from './validators/recognizedGuid';
/**
* Parses the {@link ODataSavedQuery.savedQuery savedQuery} or
* {@link ODataUserQuery.userQuery userQuery} query
* @returns Returns `false` when the parse has an error
*/
export const getXQueryFromParser = (
X: 'savedQuery' | 'userQuery',
parser: URLSearchParams,
result: ODataQuery,
): boolean => {
const value = parser.getAll(X);
if (value.length === 0) {
return true;
}
if (!recognizedGuid(value, result) || !isGuid(value, result)) {
return false;
}
result[X] = value[0];
return true;
};