Skip to main content
Version: 11.13.0

Query Params

This module provides utility functions for extracting and parsing query parameters from URLs, especially for search and filter operations. It is useful for handling URL-based navigation and state in search-driven applications.

Types

QueryParams

Extends the base Query type with additional properties for path, filters, document id, and query name.

export type QueryParams = Query & {
path?: string;
filters?: LegacyFilter[];
id?: string;
queryName?: string;
}

Functions

getQueryParamsFromUrl()

Parses a URL string and returns a QueryParams object.

function getQueryParamsFromUrl(url: string | undefined): QueryParams | undefined

Example

import { getQueryParamsFromUrl } from '@sinequa/atomic';

const url = 'https://example.com/search?q=test&f=%5B%7B%22field%22%3A%22type%22%2C%22value%22%3A%22document%22%7D%5D&id=abc123&n=main';
const params = getQueryParamsFromUrl(url);
/*
params: {
path: '/search',
text: 'test',
filters: [{ field: 'type', value: 'document' }],
name: 'main'
}
*/

getUrlParamsFromQueryParams()

Converts a QueryParams object to a URL query string.

function getUrlParamsFromQueryParams(queryParams: QueryParams | undefined): string

Example

import { getUrlParamsFromQueryParams, QueryParams } from '@sinequa/atomic';

const queryParams: QueryParams = {
path: "/search/all",
text: "example",
filters: [{ field: "type", value: "document" }],
page: 1,
sort: "relevance",
tab: "results",
name: "John Doe",
basket: "12345",
};

const urlParams = getUrlParamsFromQueryParams(queryParams);
// urlParams: "q=example&f=%5B%7B%22field%22%3A%22type%22%2C%22value%22%3A%22document%22%7D%5D&p=1&s=relevance&t=results&n=John%20Doe&b=12345"

getFiltersFromUrl()

Extracts an array of LegacyFilter objects from a URL string.

function getFiltersFromUrl(url: string | undefined): LegacyFilter[]

getFiltersFromURI()

Parses a URI-encoded string and returns an array of LegacyFilter objects.

function getFiltersFromURI(uri: string): LegacyFilter[]

queryParamsFromUrl()

Returns an object of query parameters from the given URL.

function queryParamsFromUrl(url: string): Record<string, string>

Example

import { getQueryParamsFromUrl, getFiltersFromUrl } from '@sinequa/atomic';

const url = 'https://example.com/search?q=hello&f=%5B%7B%22field%22%3A%22type%22%2C%22value%22%3A%22document%22%7D%5D';
const params = getQueryParamsFromUrl(url);
// params: { path: '/search', text: 'hello', filters: [{ field: 'type', value: 'document' }], ... }

const filters = getFiltersFromUrl(url);
// filters: [{ field: 'type', value: 'document' }]

Notes

  • All functions expect valid URL or URI-encoded strings.
  • The utilities are designed to work with Sinequa's query and filter types.