Skip to content

Commit 23be2db

Browse files
authored
Merge pull request #37 from kinde-oss/feat/urlparams
feat: add support for url params
2 parents b1934f4 + fc1fe19 commit 23be2db

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

src/lib/utils/index.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,40 @@ export const omit = (target: Record<string, unknown>, path: string[]) => {
2222
);
2323
};
2424

25+
const rootParams = [
26+
"start_page",
27+
"is_create_org",
28+
"response_type",
29+
"org_name",
30+
"org_code",
31+
"state",
32+
"post_login_redirect_url",
33+
"authUrlParams",
34+
"redirect_url",
35+
];
36+
2537
export const parseSearchParamsToObject = (search: string) => {
2638
const searchParams = new URLSearchParams(search);
27-
const paramsObject: Record<string, string | number> = {};
39+
let paramsObject: Record<string, string | number | Record<string, unknown>> =
40+
{};
2841

2942
for (const param of searchParams.entries()) {
3043
paramsObject[param[0]] = param[1];
3144
}
45+
paramsObject.authUrlParams = { ...paramsObject };
46+
47+
paramsObject = pick(paramsObject, rootParams) as Record<
48+
string,
49+
string | number
50+
>;
51+
paramsObject.authUrlParams = omit(
52+
paramsObject.authUrlParams as Record<string, unknown>,
53+
rootParams,
54+
);
55+
56+
if (Object.keys(paramsObject.authUrlParams).length === 0) {
57+
delete paramsObject.authUrlParams;
58+
}
3259

3360
return paramsObject;
3461
};

src/tests/utils.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ describe("Utils", () => {
66
it("should parse search parameters to an object", () => {
77
const searchParams = "?param1=value1&param2=value2";
88
const expectedOutput = {
9-
param1: "value1",
10-
param2: "value2",
9+
authUrlParams: {
10+
param1: "value1",
11+
param2: "value2",
12+
},
1113
};
1214

1315
const output = parseSearchParamsToObject(searchParams);

0 commit comments

Comments
 (0)