executeQuery.js 796 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const LOG_RESULT = false
  2. export default async function executeQuery({
  3. callback,
  4. // user,
  5. // resource,
  6. // permissions,
  7. id,
  8. data,
  9. idValidator = _identity,
  10. validator = _identity,
  11. mutator = _identity,
  12. query = _noop
  13. }) {
  14. try {
  15. // if (permissions) {
  16. // await authorize(user, resource, permissions)
  17. // }
  18. let validId, validData
  19. if (id) {
  20. validId = idValidator(id)
  21. }
  22. if (data) {
  23. validData = validator(data)
  24. }
  25. const rawResult = await query({ id: validId, data: validData })
  26. const result = mutator(rawResult)
  27. if (LOG_RESULT) {
  28. console.log("[executeQuery]")
  29. console.dir(result)
  30. }
  31. callback({ data: result })
  32. return result
  33. } catch (error) {
  34. console.error(error)
  35. callback({ error })
  36. }
  37. }