@robinpath/url 0.1.0
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 +97 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/url.d.ts +191 -0
- package/dist/url.d.ts.map +1 -0
- package/dist/url.js +399 -0
- package/dist/url.js.map +1 -0
- package/package.json +31 -0
package/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# @robinpath/url
|
|
2
|
+
|
|
3
|
+
> URL parsing, formatting, and query parameter manipulation utilities using the built-in URL API
|
|
4
|
+
|
|
5
|
+
   
|
|
6
|
+
|
|
7
|
+
## Why use this module?
|
|
8
|
+
|
|
9
|
+
The `url` module lets you:
|
|
10
|
+
|
|
11
|
+
- Parse a URL string into its component parts
|
|
12
|
+
- Format URL component parts into a URL string
|
|
13
|
+
- Resolve a relative URL against a base URL
|
|
14
|
+
- Get the value of a single query parameter from a URL
|
|
15
|
+
- Remove a query parameter from a URL
|
|
16
|
+
|
|
17
|
+
All functions are callable directly from RobinPath scripts with a simple, consistent API.
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @robinpath/url
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
No credentials needed — start using it right away:
|
|
28
|
+
|
|
29
|
+
```robinpath
|
|
30
|
+
url.format { protocol: "https:", hostname: "example.com", pathname: "/path" }
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Available Functions
|
|
34
|
+
|
|
35
|
+
| Function | Description |
|
|
36
|
+
|----------|-------------|
|
|
37
|
+
| `url.parse` | Parse a URL string into its component parts |
|
|
38
|
+
| `url.format` | Format URL component parts into a URL string |
|
|
39
|
+
| `url.resolve` | Resolve a relative URL against a base URL |
|
|
40
|
+
| `url.getParam` | Get the value of a single query parameter from a URL |
|
|
41
|
+
| `url.setParam` | Set a query parameter on a URL, replacing any existing value |
|
|
42
|
+
| `url.removeParam` | Remove a query parameter from a URL |
|
|
43
|
+
| `url.getParams` | Get all query parameters from a URL as a plain object |
|
|
44
|
+
| `url.setParams` | Set multiple query parameters on a URL at once |
|
|
45
|
+
| `url.getHostname` | Extract the hostname from a URL |
|
|
46
|
+
| `url.getPathname` | Extract the pathname from a URL |
|
|
47
|
+
| `url.getProtocol` | Extract the protocol from a URL |
|
|
48
|
+
| `url.isValid` | Check whether a string is a valid URL |
|
|
49
|
+
| `url.encode` | Encode a string for safe use in a URL component |
|
|
50
|
+
| `url.decode` | Decode a URI-encoded string |
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
### Format URL component parts into a URL string
|
|
55
|
+
|
|
56
|
+
```robinpath
|
|
57
|
+
url.format { protocol: "https:", hostname: "example.com", pathname: "/path" }
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Resolve a relative URL against a base URL
|
|
61
|
+
|
|
62
|
+
```robinpath
|
|
63
|
+
url.resolve "https://example.com/a/b" "../c"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Get the value of a single query parameter from a URL
|
|
67
|
+
|
|
68
|
+
```robinpath
|
|
69
|
+
url.getParam "https://example.com?foo=bar" "foo"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Integration with RobinPath
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
import { RobinPath } from "@wiredwp/robinpath";
|
|
76
|
+
import Module from "@robinpath/url";
|
|
77
|
+
|
|
78
|
+
const rp = new RobinPath();
|
|
79
|
+
rp.registerModule(Module.name, Module.functions);
|
|
80
|
+
rp.registerModuleMeta(Module.name, Module.functionMetadata);
|
|
81
|
+
|
|
82
|
+
const result = await rp.executeScript(`
|
|
83
|
+
url.format { protocol: "https:", hostname: "example.com", pathname: "/path" }
|
|
84
|
+
`);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Full API Reference
|
|
88
|
+
|
|
89
|
+
See [MODULE.md](./MODULE.md) for complete documentation including all parameters, return types, error handling, and advanced examples.
|
|
90
|
+
|
|
91
|
+
## Related Modules
|
|
92
|
+
|
|
93
|
+
- [`@robinpath/json`](../json) — JSON module for complementary functionality
|
|
94
|
+
|
|
95
|
+
## License
|
|
96
|
+
|
|
97
|
+
MIT
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ModuleAdapter } from "@wiredwp/robinpath";
|
|
2
|
+
declare const UrlModule: ModuleAdapter;
|
|
3
|
+
export default UrlModule;
|
|
4
|
+
export { UrlModule };
|
|
5
|
+
export { UrlFunctions, UrlFunctionMetadata, UrlModuleMetadata } from "./url.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,SAAS,EAAE,aAMhB,CAAC;AAEF,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UrlFunctions, UrlFunctionMetadata, UrlModuleMetadata } from "./url.js";
|
|
2
|
+
const UrlModule = {
|
|
3
|
+
name: "url",
|
|
4
|
+
functions: UrlFunctions,
|
|
5
|
+
functionMetadata: UrlFunctionMetadata,
|
|
6
|
+
moduleMetadata: UrlModuleMetadata,
|
|
7
|
+
global: false,
|
|
8
|
+
}; // as ModuleAdapter
|
|
9
|
+
export default UrlModule;
|
|
10
|
+
export { UrlModule };
|
|
11
|
+
export { UrlFunctions, UrlFunctionMetadata, UrlModuleMetadata } from "./url.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,SAAS,GAAkB;IAC/B,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,YAAY;IACvB,gBAAgB,EAAE,mBAA0B;IAC5C,cAAc,EAAE,iBAAwB;IACxC,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/url.d.ts
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type { BuiltinHandler } from "@wiredwp/robinpath";
|
|
2
|
+
export declare const UrlFunctions: Record<string, BuiltinHandler>;
|
|
3
|
+
export declare const UrlFunctionMetadata: {
|
|
4
|
+
parse: {
|
|
5
|
+
description: string;
|
|
6
|
+
parameters: {
|
|
7
|
+
name: string;
|
|
8
|
+
dataType: string;
|
|
9
|
+
description: string;
|
|
10
|
+
formInputType: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
}[];
|
|
13
|
+
returnType: string;
|
|
14
|
+
returnDescription: string;
|
|
15
|
+
example: string;
|
|
16
|
+
};
|
|
17
|
+
format: {
|
|
18
|
+
description: string;
|
|
19
|
+
parameters: {
|
|
20
|
+
name: string;
|
|
21
|
+
dataType: string;
|
|
22
|
+
description: string;
|
|
23
|
+
formInputType: string;
|
|
24
|
+
required: boolean;
|
|
25
|
+
}[];
|
|
26
|
+
returnType: string;
|
|
27
|
+
returnDescription: string;
|
|
28
|
+
example: string;
|
|
29
|
+
};
|
|
30
|
+
resolve: {
|
|
31
|
+
description: string;
|
|
32
|
+
parameters: {
|
|
33
|
+
name: string;
|
|
34
|
+
dataType: string;
|
|
35
|
+
description: string;
|
|
36
|
+
formInputType: string;
|
|
37
|
+
required: boolean;
|
|
38
|
+
}[];
|
|
39
|
+
returnType: string;
|
|
40
|
+
returnDescription: string;
|
|
41
|
+
example: string;
|
|
42
|
+
};
|
|
43
|
+
getParam: {
|
|
44
|
+
description: string;
|
|
45
|
+
parameters: {
|
|
46
|
+
name: string;
|
|
47
|
+
dataType: string;
|
|
48
|
+
description: string;
|
|
49
|
+
formInputType: string;
|
|
50
|
+
required: boolean;
|
|
51
|
+
}[];
|
|
52
|
+
returnType: string;
|
|
53
|
+
returnDescription: string;
|
|
54
|
+
example: string;
|
|
55
|
+
};
|
|
56
|
+
setParam: {
|
|
57
|
+
description: string;
|
|
58
|
+
parameters: {
|
|
59
|
+
name: string;
|
|
60
|
+
dataType: string;
|
|
61
|
+
description: string;
|
|
62
|
+
formInputType: string;
|
|
63
|
+
required: boolean;
|
|
64
|
+
}[];
|
|
65
|
+
returnType: string;
|
|
66
|
+
returnDescription: string;
|
|
67
|
+
example: string;
|
|
68
|
+
};
|
|
69
|
+
removeParam: {
|
|
70
|
+
description: string;
|
|
71
|
+
parameters: {
|
|
72
|
+
name: string;
|
|
73
|
+
dataType: string;
|
|
74
|
+
description: string;
|
|
75
|
+
formInputType: string;
|
|
76
|
+
required: boolean;
|
|
77
|
+
}[];
|
|
78
|
+
returnType: string;
|
|
79
|
+
returnDescription: string;
|
|
80
|
+
example: string;
|
|
81
|
+
};
|
|
82
|
+
getParams: {
|
|
83
|
+
description: string;
|
|
84
|
+
parameters: {
|
|
85
|
+
name: string;
|
|
86
|
+
dataType: string;
|
|
87
|
+
description: string;
|
|
88
|
+
formInputType: string;
|
|
89
|
+
required: boolean;
|
|
90
|
+
}[];
|
|
91
|
+
returnType: string;
|
|
92
|
+
returnDescription: string;
|
|
93
|
+
example: string;
|
|
94
|
+
};
|
|
95
|
+
setParams: {
|
|
96
|
+
description: string;
|
|
97
|
+
parameters: {
|
|
98
|
+
name: string;
|
|
99
|
+
dataType: string;
|
|
100
|
+
description: string;
|
|
101
|
+
formInputType: string;
|
|
102
|
+
required: boolean;
|
|
103
|
+
}[];
|
|
104
|
+
returnType: string;
|
|
105
|
+
returnDescription: string;
|
|
106
|
+
example: string;
|
|
107
|
+
};
|
|
108
|
+
getHostname: {
|
|
109
|
+
description: string;
|
|
110
|
+
parameters: {
|
|
111
|
+
name: string;
|
|
112
|
+
dataType: string;
|
|
113
|
+
description: string;
|
|
114
|
+
formInputType: string;
|
|
115
|
+
required: boolean;
|
|
116
|
+
}[];
|
|
117
|
+
returnType: string;
|
|
118
|
+
returnDescription: string;
|
|
119
|
+
example: string;
|
|
120
|
+
};
|
|
121
|
+
getPathname: {
|
|
122
|
+
description: string;
|
|
123
|
+
parameters: {
|
|
124
|
+
name: string;
|
|
125
|
+
dataType: string;
|
|
126
|
+
description: string;
|
|
127
|
+
formInputType: string;
|
|
128
|
+
required: boolean;
|
|
129
|
+
}[];
|
|
130
|
+
returnType: string;
|
|
131
|
+
returnDescription: string;
|
|
132
|
+
example: string;
|
|
133
|
+
};
|
|
134
|
+
getProtocol: {
|
|
135
|
+
description: string;
|
|
136
|
+
parameters: {
|
|
137
|
+
name: string;
|
|
138
|
+
dataType: string;
|
|
139
|
+
description: string;
|
|
140
|
+
formInputType: string;
|
|
141
|
+
required: boolean;
|
|
142
|
+
}[];
|
|
143
|
+
returnType: string;
|
|
144
|
+
returnDescription: string;
|
|
145
|
+
example: string;
|
|
146
|
+
};
|
|
147
|
+
isValid: {
|
|
148
|
+
description: string;
|
|
149
|
+
parameters: {
|
|
150
|
+
name: string;
|
|
151
|
+
dataType: string;
|
|
152
|
+
description: string;
|
|
153
|
+
formInputType: string;
|
|
154
|
+
required: boolean;
|
|
155
|
+
}[];
|
|
156
|
+
returnType: string;
|
|
157
|
+
returnDescription: string;
|
|
158
|
+
example: string;
|
|
159
|
+
};
|
|
160
|
+
encode: {
|
|
161
|
+
description: string;
|
|
162
|
+
parameters: {
|
|
163
|
+
name: string;
|
|
164
|
+
dataType: string;
|
|
165
|
+
description: string;
|
|
166
|
+
formInputType: string;
|
|
167
|
+
required: boolean;
|
|
168
|
+
}[];
|
|
169
|
+
returnType: string;
|
|
170
|
+
returnDescription: string;
|
|
171
|
+
example: string;
|
|
172
|
+
};
|
|
173
|
+
decode: {
|
|
174
|
+
description: string;
|
|
175
|
+
parameters: {
|
|
176
|
+
name: string;
|
|
177
|
+
dataType: string;
|
|
178
|
+
description: string;
|
|
179
|
+
formInputType: string;
|
|
180
|
+
required: boolean;
|
|
181
|
+
}[];
|
|
182
|
+
returnType: string;
|
|
183
|
+
returnDescription: string;
|
|
184
|
+
example: string;
|
|
185
|
+
};
|
|
186
|
+
};
|
|
187
|
+
export declare const UrlModuleMetadata: {
|
|
188
|
+
description: string;
|
|
189
|
+
methods: string[];
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,oBAAoB,CAAC;AAgIlG,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAevD,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6P/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAkB7B,CAAC"}
|
package/dist/url.js
ADDED
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
// ── Function Handlers ──────────────────────────────────────────────
|
|
2
|
+
const parse = (args) => {
|
|
3
|
+
const urlString = String(args[0] ?? "");
|
|
4
|
+
const u = new URL(urlString);
|
|
5
|
+
return {
|
|
6
|
+
protocol: u.protocol,
|
|
7
|
+
hostname: u.hostname,
|
|
8
|
+
port: u.port,
|
|
9
|
+
pathname: u.pathname,
|
|
10
|
+
search: u.search,
|
|
11
|
+
hash: u.hash,
|
|
12
|
+
origin: u.origin,
|
|
13
|
+
href: u.href,
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
const format = (args) => {
|
|
17
|
+
const parts = args[0];
|
|
18
|
+
if (!parts || typeof parts !== "object") {
|
|
19
|
+
throw new Error("format requires an object argument with URL components");
|
|
20
|
+
}
|
|
21
|
+
const protocol = String(parts.protocol ?? "https:");
|
|
22
|
+
const hostname = String(parts.hostname ?? "");
|
|
23
|
+
const port = parts.port != null && parts.port !== "" ? String(parts.port) : "";
|
|
24
|
+
const pathname = String(parts.pathname ?? "/");
|
|
25
|
+
const search = String(parts.search ?? "");
|
|
26
|
+
const hash = String(parts.hash ?? "");
|
|
27
|
+
const normalizedProtocol = protocol.endsWith(":") ? protocol : protocol + ":";
|
|
28
|
+
const host = port ? `${hostname}:${port}` : hostname;
|
|
29
|
+
const normalizedSearch = search && !search.startsWith("?") ? "?" + search : search;
|
|
30
|
+
const normalizedHash = hash && !hash.startsWith("#") ? "#" + hash : hash;
|
|
31
|
+
return `${normalizedProtocol}//${host}${pathname}${normalizedSearch}${normalizedHash}`;
|
|
32
|
+
};
|
|
33
|
+
const resolve = (args) => {
|
|
34
|
+
const base = String(args[0] ?? "");
|
|
35
|
+
const relative = String(args[1] ?? "");
|
|
36
|
+
return new URL(relative, base).href;
|
|
37
|
+
};
|
|
38
|
+
const getParam = (args) => {
|
|
39
|
+
const urlString = String(args[0] ?? "");
|
|
40
|
+
const paramName = String(args[1] ?? "");
|
|
41
|
+
const u = new URL(urlString);
|
|
42
|
+
return u.searchParams.get(paramName);
|
|
43
|
+
};
|
|
44
|
+
const setParam = (args) => {
|
|
45
|
+
const urlString = String(args[0] ?? "");
|
|
46
|
+
const paramName = String(args[1] ?? "");
|
|
47
|
+
const value = String(args[2] ?? "");
|
|
48
|
+
const u = new URL(urlString);
|
|
49
|
+
u.searchParams.set(paramName, value);
|
|
50
|
+
return u.href;
|
|
51
|
+
};
|
|
52
|
+
const removeParam = (args) => {
|
|
53
|
+
const urlString = String(args[0] ?? "");
|
|
54
|
+
const paramName = String(args[1] ?? "");
|
|
55
|
+
const u = new URL(urlString);
|
|
56
|
+
u.searchParams.delete(paramName);
|
|
57
|
+
return u.href;
|
|
58
|
+
};
|
|
59
|
+
const getParams = (args) => {
|
|
60
|
+
const urlString = String(args[0] ?? "");
|
|
61
|
+
const u = new URL(urlString);
|
|
62
|
+
const result = {};
|
|
63
|
+
u.searchParams.forEach((value, key) => {
|
|
64
|
+
result[key] = value;
|
|
65
|
+
});
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
const setParams = (args) => {
|
|
69
|
+
const urlString = String(args[0] ?? "");
|
|
70
|
+
const params = args[1];
|
|
71
|
+
const u = new URL(urlString);
|
|
72
|
+
if (params && typeof params === "object") {
|
|
73
|
+
for (const [key, value] of Object.entries(params)) {
|
|
74
|
+
u.searchParams.set(key, String(value ?? ""));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return u.href;
|
|
78
|
+
};
|
|
79
|
+
const getHostname = (args) => {
|
|
80
|
+
const urlString = String(args[0] ?? "");
|
|
81
|
+
return new URL(urlString).hostname;
|
|
82
|
+
};
|
|
83
|
+
const getPathname = (args) => {
|
|
84
|
+
const urlString = String(args[0] ?? "");
|
|
85
|
+
return new URL(urlString).pathname;
|
|
86
|
+
};
|
|
87
|
+
const getProtocol = (args) => {
|
|
88
|
+
const urlString = String(args[0] ?? "");
|
|
89
|
+
return new URL(urlString).protocol;
|
|
90
|
+
};
|
|
91
|
+
const isValid = (args) => {
|
|
92
|
+
const urlString = String(args[0] ?? "");
|
|
93
|
+
try {
|
|
94
|
+
new URL(urlString);
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const encode = (args) => {
|
|
102
|
+
const str = String(args[0] ?? "");
|
|
103
|
+
return encodeURIComponent(str);
|
|
104
|
+
};
|
|
105
|
+
const decode = (args) => {
|
|
106
|
+
const str = String(args[0] ?? "");
|
|
107
|
+
return decodeURIComponent(str);
|
|
108
|
+
};
|
|
109
|
+
// ── Exports ────────────────────────────────────────────────────────
|
|
110
|
+
export const UrlFunctions = {
|
|
111
|
+
parse,
|
|
112
|
+
format,
|
|
113
|
+
resolve,
|
|
114
|
+
getParam,
|
|
115
|
+
setParam,
|
|
116
|
+
removeParam,
|
|
117
|
+
getParams,
|
|
118
|
+
setParams,
|
|
119
|
+
getHostname,
|
|
120
|
+
getPathname,
|
|
121
|
+
getProtocol,
|
|
122
|
+
isValid,
|
|
123
|
+
encode,
|
|
124
|
+
decode,
|
|
125
|
+
};
|
|
126
|
+
export const UrlFunctionMetadata = {
|
|
127
|
+
parse: {
|
|
128
|
+
description: "Parse a URL string into its component parts",
|
|
129
|
+
parameters: [
|
|
130
|
+
{
|
|
131
|
+
name: "urlString",
|
|
132
|
+
dataType: "string",
|
|
133
|
+
description: "The URL string to parse",
|
|
134
|
+
formInputType: "text",
|
|
135
|
+
required: true,
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
returnType: "object",
|
|
139
|
+
returnDescription: "An object with protocol, hostname, port, pathname, search, hash, origin, and href",
|
|
140
|
+
example: 'url.parse "https://example.com:8080/path?q=1#frag"',
|
|
141
|
+
},
|
|
142
|
+
format: {
|
|
143
|
+
description: "Format URL component parts into a URL string",
|
|
144
|
+
parameters: [
|
|
145
|
+
{
|
|
146
|
+
name: "parts",
|
|
147
|
+
dataType: "object",
|
|
148
|
+
description: "An object with protocol, hostname, port, pathname, search, and hash properties",
|
|
149
|
+
formInputType: "text",
|
|
150
|
+
required: true,
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
returnType: "string",
|
|
154
|
+
returnDescription: "The formatted URL string",
|
|
155
|
+
example: 'url.format { protocol: "https:", hostname: "example.com", pathname: "/path" }',
|
|
156
|
+
},
|
|
157
|
+
resolve: {
|
|
158
|
+
description: "Resolve a relative URL against a base URL",
|
|
159
|
+
parameters: [
|
|
160
|
+
{
|
|
161
|
+
name: "base",
|
|
162
|
+
dataType: "string",
|
|
163
|
+
description: "The base URL",
|
|
164
|
+
formInputType: "text",
|
|
165
|
+
required: true,
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
name: "relative",
|
|
169
|
+
dataType: "string",
|
|
170
|
+
description: "The relative URL to resolve",
|
|
171
|
+
formInputType: "text",
|
|
172
|
+
required: true,
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
returnType: "string",
|
|
176
|
+
returnDescription: "The resolved absolute URL string",
|
|
177
|
+
example: 'url.resolve "https://example.com/a/b" "../c"',
|
|
178
|
+
},
|
|
179
|
+
getParam: {
|
|
180
|
+
description: "Get the value of a single query parameter from a URL",
|
|
181
|
+
parameters: [
|
|
182
|
+
{
|
|
183
|
+
name: "urlString",
|
|
184
|
+
dataType: "string",
|
|
185
|
+
description: "The URL string",
|
|
186
|
+
formInputType: "text",
|
|
187
|
+
required: true,
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
name: "paramName",
|
|
191
|
+
dataType: "string",
|
|
192
|
+
description: "The name of the query parameter to retrieve",
|
|
193
|
+
formInputType: "text",
|
|
194
|
+
required: true,
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
returnType: "string",
|
|
198
|
+
returnDescription: "The value of the query parameter, or null if not found",
|
|
199
|
+
example: 'url.getParam "https://example.com?foo=bar" "foo"',
|
|
200
|
+
},
|
|
201
|
+
setParam: {
|
|
202
|
+
description: "Set a query parameter on a URL, replacing any existing value",
|
|
203
|
+
parameters: [
|
|
204
|
+
{
|
|
205
|
+
name: "urlString",
|
|
206
|
+
dataType: "string",
|
|
207
|
+
description: "The URL string",
|
|
208
|
+
formInputType: "text",
|
|
209
|
+
required: true,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: "paramName",
|
|
213
|
+
dataType: "string",
|
|
214
|
+
description: "The name of the query parameter to set",
|
|
215
|
+
formInputType: "text",
|
|
216
|
+
required: true,
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
name: "value",
|
|
220
|
+
dataType: "string",
|
|
221
|
+
description: "The value to set for the query parameter",
|
|
222
|
+
formInputType: "text",
|
|
223
|
+
required: true,
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
returnType: "string",
|
|
227
|
+
returnDescription: "The URL string with the parameter set",
|
|
228
|
+
example: 'url.setParam "https://example.com" "page" "2"',
|
|
229
|
+
},
|
|
230
|
+
removeParam: {
|
|
231
|
+
description: "Remove a query parameter from a URL",
|
|
232
|
+
parameters: [
|
|
233
|
+
{
|
|
234
|
+
name: "urlString",
|
|
235
|
+
dataType: "string",
|
|
236
|
+
description: "The URL string",
|
|
237
|
+
formInputType: "text",
|
|
238
|
+
required: true,
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
name: "paramName",
|
|
242
|
+
dataType: "string",
|
|
243
|
+
description: "The name of the query parameter to remove",
|
|
244
|
+
formInputType: "text",
|
|
245
|
+
required: true,
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
returnType: "string",
|
|
249
|
+
returnDescription: "The URL string without the specified parameter",
|
|
250
|
+
example: 'url.removeParam "https://example.com?foo=bar&baz=1" "foo"',
|
|
251
|
+
},
|
|
252
|
+
getParams: {
|
|
253
|
+
description: "Get all query parameters from a URL as a plain object",
|
|
254
|
+
parameters: [
|
|
255
|
+
{
|
|
256
|
+
name: "urlString",
|
|
257
|
+
dataType: "string",
|
|
258
|
+
description: "The URL string",
|
|
259
|
+
formInputType: "text",
|
|
260
|
+
required: true,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
returnType: "object",
|
|
264
|
+
returnDescription: "An object containing all query parameter key-value pairs",
|
|
265
|
+
example: 'url.getParams "https://example.com?foo=bar&baz=1"',
|
|
266
|
+
},
|
|
267
|
+
setParams: {
|
|
268
|
+
description: "Set multiple query parameters on a URL at once",
|
|
269
|
+
parameters: [
|
|
270
|
+
{
|
|
271
|
+
name: "urlString",
|
|
272
|
+
dataType: "string",
|
|
273
|
+
description: "The URL string",
|
|
274
|
+
formInputType: "text",
|
|
275
|
+
required: true,
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: "params",
|
|
279
|
+
dataType: "object",
|
|
280
|
+
description: "An object of key-value pairs to set as query parameters",
|
|
281
|
+
formInputType: "text",
|
|
282
|
+
required: true,
|
|
283
|
+
},
|
|
284
|
+
],
|
|
285
|
+
returnType: "string",
|
|
286
|
+
returnDescription: "The URL string with all specified parameters set",
|
|
287
|
+
example: 'url.setParams "https://example.com" { page: "2", limit: "10" }',
|
|
288
|
+
},
|
|
289
|
+
getHostname: {
|
|
290
|
+
description: "Extract the hostname from a URL",
|
|
291
|
+
parameters: [
|
|
292
|
+
{
|
|
293
|
+
name: "urlString",
|
|
294
|
+
dataType: "string",
|
|
295
|
+
description: "The URL string",
|
|
296
|
+
formInputType: "text",
|
|
297
|
+
required: true,
|
|
298
|
+
},
|
|
299
|
+
],
|
|
300
|
+
returnType: "string",
|
|
301
|
+
returnDescription: "The hostname portion of the URL",
|
|
302
|
+
example: 'url.getHostname "https://example.com:8080/path"',
|
|
303
|
+
},
|
|
304
|
+
getPathname: {
|
|
305
|
+
description: "Extract the pathname from a URL",
|
|
306
|
+
parameters: [
|
|
307
|
+
{
|
|
308
|
+
name: "urlString",
|
|
309
|
+
dataType: "string",
|
|
310
|
+
description: "The URL string",
|
|
311
|
+
formInputType: "text",
|
|
312
|
+
required: true,
|
|
313
|
+
},
|
|
314
|
+
],
|
|
315
|
+
returnType: "string",
|
|
316
|
+
returnDescription: "The pathname portion of the URL",
|
|
317
|
+
example: 'url.getPathname "https://example.com/a/b/c"',
|
|
318
|
+
},
|
|
319
|
+
getProtocol: {
|
|
320
|
+
description: "Extract the protocol from a URL",
|
|
321
|
+
parameters: [
|
|
322
|
+
{
|
|
323
|
+
name: "urlString",
|
|
324
|
+
dataType: "string",
|
|
325
|
+
description: "The URL string",
|
|
326
|
+
formInputType: "text",
|
|
327
|
+
required: true,
|
|
328
|
+
},
|
|
329
|
+
],
|
|
330
|
+
returnType: "string",
|
|
331
|
+
returnDescription: "The protocol of the URL including the trailing colon (e.g. \"https:\")",
|
|
332
|
+
example: 'url.getProtocol "https://example.com"',
|
|
333
|
+
},
|
|
334
|
+
isValid: {
|
|
335
|
+
description: "Check whether a string is a valid URL",
|
|
336
|
+
parameters: [
|
|
337
|
+
{
|
|
338
|
+
name: "urlString",
|
|
339
|
+
dataType: "string",
|
|
340
|
+
description: "The string to validate as a URL",
|
|
341
|
+
formInputType: "text",
|
|
342
|
+
required: true,
|
|
343
|
+
},
|
|
344
|
+
],
|
|
345
|
+
returnType: "boolean",
|
|
346
|
+
returnDescription: "True if the string is a valid URL, false otherwise",
|
|
347
|
+
example: 'url.isValid "https://example.com"',
|
|
348
|
+
},
|
|
349
|
+
encode: {
|
|
350
|
+
description: "Encode a string for safe use in a URL component",
|
|
351
|
+
parameters: [
|
|
352
|
+
{
|
|
353
|
+
name: "value",
|
|
354
|
+
dataType: "string",
|
|
355
|
+
description: "The string to encode",
|
|
356
|
+
formInputType: "text",
|
|
357
|
+
required: true,
|
|
358
|
+
},
|
|
359
|
+
],
|
|
360
|
+
returnType: "string",
|
|
361
|
+
returnDescription: "The URI-encoded string",
|
|
362
|
+
example: 'url.encode "hello world&foo=bar"',
|
|
363
|
+
},
|
|
364
|
+
decode: {
|
|
365
|
+
description: "Decode a URI-encoded string",
|
|
366
|
+
parameters: [
|
|
367
|
+
{
|
|
368
|
+
name: "value",
|
|
369
|
+
dataType: "string",
|
|
370
|
+
description: "The URI-encoded string to decode",
|
|
371
|
+
formInputType: "text",
|
|
372
|
+
required: true,
|
|
373
|
+
},
|
|
374
|
+
],
|
|
375
|
+
returnType: "string",
|
|
376
|
+
returnDescription: "The decoded string",
|
|
377
|
+
example: 'url.decode "hello%20world%26foo%3Dbar"',
|
|
378
|
+
},
|
|
379
|
+
};
|
|
380
|
+
export const UrlModuleMetadata = {
|
|
381
|
+
description: "URL parsing, formatting, and query parameter manipulation utilities using the built-in URL API",
|
|
382
|
+
methods: [
|
|
383
|
+
"parse",
|
|
384
|
+
"format",
|
|
385
|
+
"resolve",
|
|
386
|
+
"getParam",
|
|
387
|
+
"setParam",
|
|
388
|
+
"removeParam",
|
|
389
|
+
"getParams",
|
|
390
|
+
"setParams",
|
|
391
|
+
"getHostname",
|
|
392
|
+
"getPathname",
|
|
393
|
+
"getProtocol",
|
|
394
|
+
"isValid",
|
|
395
|
+
"encode",
|
|
396
|
+
"decode",
|
|
397
|
+
],
|
|
398
|
+
};
|
|
399
|
+
//# sourceMappingURL=url.js.map
|
package/dist/url.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../src/url.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@robinpath/url",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"types": "./dist/index.d.ts"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"test": "node --import tsx --test tests/*.test.ts"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@wiredwp/robinpath": ">=0.20.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@wiredwp/robinpath": "^0.30.1",
|
|
28
|
+
"tsx": "^4.19.0",
|
|
29
|
+
"typescript": "^5.6.0"
|
|
30
|
+
}
|
|
31
|
+
}
|