@sparted/shared-library 1.7.91 → 1.7.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SearchObject } from '../types';
|
|
1
|
+
import { SearchObject, SearchQueryValue } from '../types';
|
|
2
2
|
export type EncodingConfig = {
|
|
3
3
|
keyValueDelimiter: string;
|
|
4
4
|
pairDelimiter: string;
|
|
5
5
|
};
|
|
6
|
-
export declare const encodeSearchValue: <T extends Record<string,
|
|
6
|
+
export declare const encodeSearchValue: <T extends Record<string, SearchQueryValue>>(searchValue: T, config?: EncodingConfig) => string;
|
|
7
7
|
export declare const encodeSearchObject: (searchObject: SearchObject) => string;
|
|
@@ -9,7 +9,10 @@ const defaultEncodingConfig = {
|
|
|
9
9
|
const encodeSearchValue = (searchValue, config = defaultEncodingConfig) => {
|
|
10
10
|
const { pairDelimiter, keyValueDelimiter } = config;
|
|
11
11
|
return Object.entries(searchValue)
|
|
12
|
-
.map(([key, value]) =>
|
|
12
|
+
.map(([key, value]) => {
|
|
13
|
+
const stringValue = Array.isArray(value) ? value.join(',') : value;
|
|
14
|
+
return `${key}${keyValueDelimiter}${encodeURI(stringValue)}`;
|
|
15
|
+
})
|
|
13
16
|
.join(pairDelimiter);
|
|
14
17
|
};
|
|
15
18
|
const encodeSearchObject = (searchObject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string;\n pairDelimiter: string;\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string,
|
|
1
|
+
{"version":3,"file":"encode-search-object.js","sources":["../../src/http/encode-search-object.ts"],"sourcesContent":["import { SearchObject, SearchQueryValue } from '../types';\n\nexport type EncodingConfig = {\n keyValueDelimiter: string;\n pairDelimiter: string;\n};\n\nconst defaultEncodingConfig: EncodingConfig = {\n keyValueDelimiter: ':',\n pairDelimiter: '+',\n};\n\nexport const encodeSearchValue = <T extends Record<string, SearchQueryValue>>(\n searchValue: T,\n config: EncodingConfig = defaultEncodingConfig,\n) => {\n const { pairDelimiter, keyValueDelimiter } = config;\n\n return Object.entries(searchValue)\n .map(([key, value]) => {\n const stringValue = Array.isArray(value) ? value.join(',') : value;\n return `${key}${keyValueDelimiter}${encodeURI(stringValue)}`;\n })\n .join(pairDelimiter);\n};\n\nexport const encodeSearchObject = (searchObject: SearchObject): string => {\n const { sort, query, offset, limit } = searchObject;\n\n const sortEncoded = sort ? encodeSearchValue(sort) : null;\n const queryEncoded = query ? encodeSearchValue(query) : null;\n\n const urlParams = new URLSearchParams({\n ...(offset !== undefined ? { offset: offset.toString() } : undefined),\n ...(limit !== undefined ? { limit: limit.toString() } : undefined),\n });\n\n if (sortEncoded) urlParams.append('sort', sortEncoded);\n if (queryEncoded) urlParams.append('query', queryEncoded);\n\n return urlParams.toString();\n};\n"],"names":[],"mappings":";;;;AAOA,MAAM,qBAAqB,GAAmB;AAC5C,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,MAAA,iBAAiB,GAAG,CAC/B,WAAc,EACd,MAAA,GAAyB,qBAAqB,KAC5C;AACF,IAAA,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;AAEpD,IAAA,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;QACpB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnE,OAAO,CAAA,EAAG,GAAG,CAAA,EAAG,iBAAiB,CAAA,EAAG,SAAS,CAAC,WAAW,CAAC,CAAA,CAAE,CAAC;AAC/D,KAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAC;AACzB,EAAE;AAEW,MAAA,kBAAkB,GAAG,CAAC,YAA0B,KAAY;IACvE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;AAEpD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC1D,IAAA,MAAM,YAAY,GAAG,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,eAAe,kCAC/B,MAAM,KAAK,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,GACjE,KAAK,KAAK,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAC,CAClE,CAAC;AAEH,IAAA,IAAI,WAAW;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACvD,IAAA,IAAI,YAAY;AAAE,QAAA,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B;;;;;"}
|
package/package.json
CHANGED
package/types/search.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type SearchSort = {
|
|
|
4
4
|
[by: SearchSortBy]: SearchSortOrder;
|
|
5
5
|
};
|
|
6
6
|
export type SearchQueryProperty = string;
|
|
7
|
-
export type SearchQueryValue = string;
|
|
7
|
+
export type SearchQueryValue = string | string[];
|
|
8
8
|
export type SearchQuery = {
|
|
9
9
|
[property: SearchQueryProperty]: SearchQueryValue;
|
|
10
10
|
};
|