Monorepo containing core modules of Zeichen.
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

37 řádky
916 B

  1. import * as Sequelize from 'sequelize'
  2. type ModelAttribute = {
  3. allowNull?: boolean,
  4. primaryKey?: boolean,
  5. type: Sequelize.DataType,
  6. }
  7. type Model = {
  8. tableName?: string,
  9. modelName?: string,
  10. options?: {
  11. timestamps?: boolean,
  12. paranoid?: boolean,
  13. createdAt?: string | boolean,
  14. updatedAt?: string | boolean,
  15. deletedAt?: string | boolean,
  16. },
  17. rawAttributes: Record<string, ModelAttribute>,
  18. }
  19. type InferType<V extends Sequelize.DataType> = (
  20. V extends typeof Sequelize.STRING ? string :
  21. V extends typeof Sequelize.TEXT ? string :
  22. V extends ReturnType<typeof Sequelize.TEXT> ? string :
  23. V extends typeof Sequelize.DATE ? Date :
  24. V extends typeof Sequelize.DATEONLY ? Date :
  25. V extends typeof Sequelize.UUIDV4 ? string :
  26. unknown
  27. )
  28. type InferProps<M extends Model> = {
  29. [K in keyof M['rawAttributes']]-?: InferType<M['rawAttributes'][K]['type']>
  30. }
  31. export default InferProps