UNPKG

flora-exception

Version:

An exception system for FQL.

55 lines (54 loc) 1.4 kB
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*/ };