flora-exception
Version:
An exception system for FQL.
62 lines (61 loc) • 1.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Reraise = exports.Raise = exports._Raise = exports.AddExceptionToStack = void 0;
const Flora_1 = require("./Flora");
const faunadb_1 = require("faunadb");
const { Let, Merge, ToObject, Do, Update, Append, Select, Var } = faunadb_1.query;
/**
*
*/
const AddExceptionToStack = (Exception) => {
return Do(Update((0, Flora_1.GetFloraDocumentRef)(), {
data: {
stack: Append([Exception], (0, Flora_1.GetStack)())
}
}), (0, Flora_1.GetStack)());
};
exports.AddExceptionToStack = AddExceptionToStack;
/**
* Raises a Flora Exception then returns it.
* @param floraException
* @returns
*/
const _Raise = (floraException) => {
return Do((0, exports.AddExceptionToStack)(floraException), floraException);
};
exports._Raise = _Raise;
const raise = "raise";
const Raise = (floraException) => {
return floraException;
/*return Let(
{
[raise] : _Raise(floraException)
},
Var(raise)
) as unknown as FloraExceptionI*/
};
exports.Raise = Raise;
/**
* Reraises an Exception if one is encountered.
* @param prevException
* @param newException
* @returns
*/
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*/
};
exports.Reraise = Reraise;