flora-exception
Version:
An exception system for FQL.
55 lines (54 loc) • 1.4 kB
JavaScript
import { GetFloraDocumentRef, GetStack } from "./Flora";
import { query } from "faunadb";
const { Let, Merge, ToObject, Do, Update, Append, Select, Var } = query;
/**
*
*/
export const AddExceptionToStack = (Exception) => {
return Do(Update(GetFloraDocumentRef(), {
data: {
stack: Append([Exception], GetStack())
}
}), GetStack());
};
/**
* Raises a Flora Exception then returns it.
* @param floraException
* @returns
*/
export const _Raise = (floraException) => {
return Do(AddExceptionToStack(floraException), floraException);
};
const raise = "raise";
export const Raise = (floraException) => {
return floraException;
/*return Let(
{
[raise] : _Raise(floraException)
},
Var(raise)
) as unknown as FloraExceptionI*/
};
/**
* Reraises an Exception if one is encountered.
* @param prevException
* @param newException
* @returns
*/
export const Reraise = (prevExceptions, newException) => {
return newException;
/*return Let(
{
[raise] : Merge(
newException,
ToObject([
["at", prevExceptions]
])
)
},
Do(
AddExceptionToStack(Var(raise) as unknown as FloraExceptionI),
Var(raise)
)
) as unknown as FloraExceptionI*/
};