url-operator 0.3.2 → 0.3.4
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.
- package/README.md +4 -1
- package/lib/append-pathname.js +6 -11
- package/lib/append-pathname.js.map +1 -1
- package/lib/set-search-params.d.ts +1 -1
- package/lib/set-search-params.js +3 -1
- package/lib/set-search-params.js.map +1 -1
- package/package.json +1 -1
- package/src/append-pathname.ts +5 -16
- package/src/set-search-params.ts +4 -2
package/README.md
CHANGED
|
@@ -63,7 +63,10 @@ function setSearchParam(url: URL, name: string, value: string | number): URL
|
|
|
63
63
|
|
|
64
64
|
### setSearchParams
|
|
65
65
|
```ts
|
|
66
|
-
function setSearchParams(
|
|
66
|
+
function setSearchParams(
|
|
67
|
+
url: URL
|
|
68
|
+
, searchParams: Record<string, string | number | undefined>
|
|
69
|
+
): URL
|
|
67
70
|
```
|
|
68
71
|
|
|
69
72
|
### appendSearchParam
|
package/lib/append-pathname.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import { go } from '@blackglory/prelude';
|
|
2
1
|
export function appendPathname(url, pathname) {
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
const newURL = new URL(pathname.replace(/^\/*/, ''), baseURL);
|
|
11
|
-
newURL.search = baseURL.search;
|
|
12
|
-
newURL.hash = baseURL.hash;
|
|
2
|
+
const newURL = new URL(url);
|
|
3
|
+
if (!newURL.pathname.endsWith('/'))
|
|
4
|
+
newURL.pathname += '/';
|
|
5
|
+
const relativePathname = pathname.replace(/^\/+/, '');
|
|
6
|
+
const newPathname = new URL(relativePathname, newURL).pathname.replace(/\/+$/, '');
|
|
7
|
+
newURL.pathname = newPathname;
|
|
13
8
|
return newURL;
|
|
14
9
|
}
|
|
15
10
|
//# sourceMappingURL=append-pathname.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append-pathname.js","sourceRoot":"","sources":["../src/append-pathname.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"append-pathname.js","sourceRoot":"","sources":["../src/append-pathname.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,GAAQ,EAAE,QAAgB;IACvD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAA;IAE1D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACrD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAClF,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAA;IAE7B,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function setSearchParams(url: URL, searchParams: Record<string, string | number>): URL;
|
|
1
|
+
export declare function setSearchParams(url: URL, searchParams: Record<string, string | number | undefined>): URL;
|
package/lib/set-search-params.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { isntUndefined } from '@blackglory/prelude';
|
|
1
2
|
export function setSearchParams(url, searchParams) {
|
|
2
3
|
const newURL = new URL(url);
|
|
3
4
|
const newSearchParams = new URLSearchParams(newURL.searchParams);
|
|
4
5
|
for (const [name, value] of Object.entries(searchParams)) {
|
|
5
|
-
|
|
6
|
+
if (isntUndefined(value))
|
|
7
|
+
newSearchParams.set(name, value.toString());
|
|
6
8
|
}
|
|
7
9
|
newURL.search = newSearchParams.toString();
|
|
8
10
|
return newURL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-search-params.js","sourceRoot":"","sources":["../src/set-search-params.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAC7B,GAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"set-search-params.js","sourceRoot":"","sources":["../src/set-search-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,UAAU,eAAe,CAC7B,GAAQ,EACR,YAAyD;IAEzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IAE3B,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAChE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACxD,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;KACtE;IACD,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAA;IAE1C,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/append-pathname.ts
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import { go } from '@blackglory/prelude'
|
|
2
|
-
|
|
3
1
|
export function appendPathname(url: URL, pathname: string): URL {
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
if (!baseURL.pathname.endsWith('/')) {
|
|
7
|
-
baseURL.pathname = `${baseURL.pathname}/`
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
return baseURL
|
|
11
|
-
})
|
|
2
|
+
const newURL = new URL(url)
|
|
3
|
+
if (!newURL.pathname.endsWith('/')) newURL.pathname += '/'
|
|
12
4
|
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
)
|
|
17
|
-
newURL.search = baseURL.search
|
|
18
|
-
newURL.hash = baseURL.hash
|
|
5
|
+
const relativePathname = pathname.replace(/^\/+/, '')
|
|
6
|
+
const newPathname = new URL(relativePathname, newURL).pathname.replace(/\/+$/, '')
|
|
7
|
+
newURL.pathname = newPathname
|
|
19
8
|
|
|
20
9
|
return newURL
|
|
21
10
|
}
|
package/src/set-search-params.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { isntUndefined } from '@blackglory/prelude'
|
|
2
|
+
|
|
1
3
|
export function setSearchParams(
|
|
2
4
|
url: URL
|
|
3
|
-
, searchParams: Record<string, string | number>
|
|
5
|
+
, searchParams: Record<string, string | number | undefined>
|
|
4
6
|
): URL {
|
|
5
7
|
const newURL = new URL(url)
|
|
6
8
|
|
|
7
9
|
const newSearchParams = new URLSearchParams(newURL.searchParams)
|
|
8
10
|
for (const [name, value] of Object.entries(searchParams)) {
|
|
9
|
-
newSearchParams.set(name, value.toString())
|
|
11
|
+
if (isntUndefined(value)) newSearchParams.set(name, value.toString())
|
|
10
12
|
}
|
|
11
13
|
newURL.search = newSearchParams.toString()
|
|
12
14
|
|