UNPKG

flora-exception

Version:

An exception system for FQL.

62 lines (61 loc) 1.71 kB
"use strict"; 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;