feat(errors): add centralized exception handling
This commit is contained in:
+15
-22
@@ -50,7 +50,7 @@ export class SpAsyncUtil {
|
||||
if (value.length === 0) return Result.ok(null);
|
||||
return Result.ok(value);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, value);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ export class SpAsyncUtil {
|
||||
if (typeof value !== "number" || !Number.isFinite(value)) return Result.ok(null);
|
||||
return Result.ok(Math.trunc(value));
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, value);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ export class SpAsyncUtil {
|
||||
if (typeof value !== "number" || !Number.isFinite(value)) return Result.ok(null);
|
||||
return Result.ok(value);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, value);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ export class SpAsyncUtil {
|
||||
if (typeof value !== "boolean") return Result.ok(null);
|
||||
return Result.ok(value);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, value);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ export class SpAsyncUtil {
|
||||
if (!value.every((v) => typeof v === "string")) return Result.ok(null);
|
||||
return Result.ok(value);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, value);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,7 +166,7 @@ export class SpAsyncUtil {
|
||||
const parsed = schema.parse(json);
|
||||
return Result.ok(parsed);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.setItem(key, JSON.stringify(validated));
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.removeItem(key);
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ export class SpAsyncUtil {
|
||||
await SpAsyncUtil._storage.clear();
|
||||
return Result.ok(undefined);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,18 +208,11 @@ export class SpAsyncUtil {
|
||||
const exists = await SpAsyncUtil._storage.hasItem(key);
|
||||
return Result.ok(exists);
|
||||
} catch (e) {
|
||||
return Result.err(toError(e));
|
||||
return Result.err(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// 内部辅助
|
||||
// ============================================================
|
||||
function toError(e: unknown): Error {
|
||||
return e instanceof Error ? e : new Error(String(e));
|
||||
}
|
||||
|
||||
function createDefaultStorage(): Storage {
|
||||
if (typeof window === "undefined") {
|
||||
return createStorage({ driver: memoryDriver() });
|
||||
|
||||
Reference in New Issue
Block a user