website refactor
This commit is contained in:
@@ -42,7 +42,10 @@ export interface ParsedWizardParams {
|
||||
}
|
||||
|
||||
export class SearchParamParser {
|
||||
private static getParam(params: URLSearchParams | Record<string, string | string[] | undefined>, key: string): string | null {
|
||||
private static getParam(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null, key: string): string | null {
|
||||
if (!params) {
|
||||
return null;
|
||||
}
|
||||
if (params instanceof URLSearchParams) {
|
||||
return params.get(key);
|
||||
}
|
||||
@@ -54,7 +57,7 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse auth parameters
|
||||
static parseAuth(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedAuthParams, string> {
|
||||
static parseAuth(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedAuthParams, string> {
|
||||
const errors: string[] = [];
|
||||
|
||||
const returnTo = this.getParam(params, 'returnTo');
|
||||
@@ -95,7 +98,7 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse sponsor parameters
|
||||
static parseSponsor(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedSponsorParams, string> {
|
||||
static parseSponsor(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedSponsorParams, string> {
|
||||
const errors: string[] = [];
|
||||
|
||||
const type = this.getParam(params, 'type');
|
||||
@@ -117,7 +120,7 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse pagination parameters
|
||||
static parsePagination(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedPaginationParams, string> {
|
||||
static parsePagination(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedPaginationParams, string> {
|
||||
const result: ParsedPaginationParams = {};
|
||||
const errors: string[] = [];
|
||||
|
||||
@@ -157,7 +160,7 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse sorting parameters
|
||||
static parseSorting(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedSortingParams, string> {
|
||||
static parseSorting(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedSortingParams, string> {
|
||||
const errors: string[] = [];
|
||||
|
||||
const order = this.getParam(params, 'order');
|
||||
@@ -179,7 +182,7 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse filter parameters
|
||||
static parseFilters(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedFilterParams, string> {
|
||||
static parseFilters(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedFilterParams, string> {
|
||||
return Result.ok({
|
||||
status: this.getParam(params, 'status'),
|
||||
role: this.getParam(params, 'role'),
|
||||
@@ -188,14 +191,14 @@ export class SearchParamParser {
|
||||
}
|
||||
|
||||
// Parse wizard parameters
|
||||
static parseWizard(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<ParsedWizardParams, string> {
|
||||
static parseWizard(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<ParsedWizardParams, string> {
|
||||
return Result.ok({
|
||||
step: this.getParam(params, 'step'),
|
||||
});
|
||||
}
|
||||
|
||||
// Parse all parameters at once
|
||||
static parseAll(params: URLSearchParams | Record<string, string | string[] | undefined>): Result<
|
||||
static parseAll(params: URLSearchParams | Record<string, string | string[] | undefined> | undefined | null): Result<
|
||||
{
|
||||
auth: ParsedAuthParams;
|
||||
sponsor: ParsedSponsorParams;
|
||||
|
||||
Reference in New Issue
Block a user