Add: Success / Error object utils
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { fail } from "@sveltejs/kit";
|
||||
|
||||
/**
|
||||
* @param {import("$types/status").Error} error
|
||||
* @returns {import("@sveltejs/kit").ActionFailure<import("$types/status").Error>}
|
||||
*/
|
||||
export function errorToFail(error) {
|
||||
if (error.expected) {
|
||||
return fail(400, error);
|
||||
}
|
||||
return fail(500, error);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} result
|
||||
* @returns {import("$types/status").Error | null}
|
||||
*/
|
||||
export function getError(result) {
|
||||
if ('error' in result) {
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {any} result
|
||||
* @returns {import("$types/status").Success | null}
|
||||
*/
|
||||
export function getSuccess(result) {
|
||||
if ('success' in result) {
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @param {any} result
|
||||
* @param {function(import("$types/status").Error): T} callback
|
||||
* @returns {T | undefined}
|
||||
*/
|
||||
export function runIfError(result, callback) {
|
||||
if ('error' in result) {
|
||||
return callback(result);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @param {any} result
|
||||
* @param {function(import("$types/status").Success): T} callback
|
||||
* @returns {T | undefined}
|
||||
*/
|
||||
export function runIfSuccess(result, callback) {
|
||||
if ('success' in result) {
|
||||
return callback(result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user