index.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const typeWrapper = type => {
  2. const wrapper = function() {
  3. return {
  4. __type: type,
  5. __args: Array.from(arguments)
  6. }
  7. }
  8. wrapper.__type = type
  9. return wrapper
  10. }
  11. const Sequelize = {
  12. 'ABSTRACT': typeWrapper('ABSTRACT'),
  13. 'STRING': typeWrapper('STRING'),
  14. 'CHAR': typeWrapper('CHAR'),
  15. 'TEXT': typeWrapper('TEXT'),
  16. 'NUMBER': typeWrapper('NUMBER'),
  17. 'TINYINT': typeWrapper('TINYINT'),
  18. 'SMALLINT': typeWrapper('SMALLINT'),
  19. 'MEDIUMINT': typeWrapper('MEDIUMINT'),
  20. 'INTEGER': typeWrapper('INTEGER'),
  21. 'BIGINT': typeWrapper('BIGINT'),
  22. 'FLOAT': typeWrapper('FLOAT'),
  23. 'TIME': typeWrapper('TIME'),
  24. 'DATE': typeWrapper('DATE'),
  25. 'DATEONLY': typeWrapper('DATEONLY'),
  26. 'BOOLEAN': typeWrapper('BOOLEAN'),
  27. 'NOW': typeWrapper('NOW'),
  28. 'BLOB': typeWrapper('BLOB'),
  29. 'DECIMAL': typeWrapper('DECIMAL'),
  30. 'NUMERIC': typeWrapper('NUMERIC'),
  31. 'UUID': typeWrapper('UUID'),
  32. 'UUIDV1': typeWrapper('UUIDV1'),
  33. 'UUIDV4': typeWrapper('UUIDV4'),
  34. 'HSTORE': typeWrapper('HSTORE'),
  35. 'JSON': typeWrapper('JSON'),
  36. 'JSONB': typeWrapper('JSONB'),
  37. 'VIRTUAL': typeWrapper('VIRTUAL'),
  38. 'ARRAY': typeWrapper('ARRAY'),
  39. 'NONE': typeWrapper('NONE'),
  40. 'ENUM': typeWrapper('ENUM'),
  41. 'RANGE': typeWrapper('RANGE'),
  42. 'REAL': typeWrapper('REAL'),
  43. 'DOUBLE': typeWrapper('DOUBLE'),
  44. 'DOUBLE PRECISION': typeWrapper('DOUBLE PRECISION'),
  45. 'GEOMETRY': typeWrapper('GEOMETRY'),
  46. 'GEOGRAPHY': typeWrapper('GEOGRAPHY'),
  47. }
  48. let tooLate = false
  49. const cruds = []
  50. const register = (opts) => {
  51. if (tooLate) throw new Error('Crud registered too late.')
  52. cruds.push(opts)
  53. }
  54. const _getCruds = () => {
  55. if (tooLate) throw new Error('_getCruds called twice.')
  56. tooLate = true
  57. return cruds
  58. }
  59. module.exports = {
  60. Sequelize,
  61. register,
  62. _getCruds
  63. }