function arkTry<T extends (...args: unknown[]) => unknown>(fn: T) {
return (...args: Parameters<T>): ReturnType<T> | ArkError => {
try {
return fn(...args) as ReturnType<T>;
} catch (e) {
return e as ArkError;
}
};
}
function arkValidOrThrow<T>(x: T): Exclude<T, ArkErrors | ArkError> | never {
if (x instanceof ArkErrors || x instanceof ArkError) {
throw new Error(x.message);
}
return x as Exclude<T, ArkErrors | ArkError>;
}
function arkTry<T extends (...args: unknown[]) => unknown>(fn: T) {
return (...args: Parameters<T>): ReturnType<T> | ArkError => {
try {
return fn(...args) as ReturnType<T>;
} catch (e) {
return e as ArkError;
}
};
}
function arkValidOrThrow<T>(x: T): Exclude<T, ArkErrors | ArkError> | never {
if (x instanceof ArkErrors || x instanceof ArkError) {
throw new Error(x.message);
}
return x as Exclude<T, ArkErrors | ArkError>;
}