db.ts 1020 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import Decimal from 'decimal.js'
  2. export const stringArrayConverter = {
  3. consume: (value) => {
  4. if (!value) return null
  5. if (typeof value === 'string') return value.split(',')
  6. return value
  7. },
  8. prepare: (value) => {
  9. if (value) return value.join(',')
  10. return null
  11. }
  12. }
  13. export const jsonConverter = {
  14. consume: (value) => {
  15. if (value === null || value === undefined) return null
  16. try {
  17. return JSON.parse(value)
  18. } catch (error) {}
  19. return null
  20. },
  21. prepare: (value) => {
  22. if (value === null || value === undefined) return null
  23. return JSON.stringify(value)
  24. }
  25. }
  26. export const decimalConverter = {
  27. consume: (value) => {
  28. if (value === null || value === undefined) return null
  29. try {
  30. return new Decimal(value)
  31. } catch (e) {}
  32. return null
  33. },
  34. prepare: (value) => {
  35. if (value instanceof Decimal) return value.toString()
  36. return value
  37. }
  38. }