Add: Success / Error object utils

This commit is contained in:
Donatas Kirda 2024-05-20 12:14:39 +03:00
parent 7238d057b5
commit 25324d17a8
Signed by: bloodwiing
GPG Key ID: 63020D8D3F4A164F

58
src/lib/util.server.js Normal file
View File

@ -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);
}
}