_matrix.ts•1.06 kB
import { defineMatrix } from '../../_utils/defineMatrix'
import { Providers } from '../../_utils/providers'
const maxPrecisionByProvider = {
  sqlserver: 38,
  mysql: 65,
}
export default defineMatrix(
  () => [
    [
      {
        provider: Providers.POSTGRESQL,
      },
      {
        provider: Providers.MYSQL,
      },
      {
        provider: Providers.COCKROACHDB,
      },
      {
        provider: Providers.SQLSERVER,
      },
    ],
    [
      {
        precision: '10',
        scale: '0',
      },
      {
        precision: '20',
        scale: '10',
      },
      {
        // max for sql server
        precision: '38',
        scale: '30',
      },
      {
        // max for mysql
        precision: '65',
        scale: '30',
      },
      {
        precision: '1000',
        scale: '500',
      },
    ],
  ],
  {
    exclude: ({ provider, precision }) => {
      const max = maxPrecisionByProvider[provider]
      if (typeof max === 'undefined') {
        return false
      }
      return Number(precision) > max
    },
  },
)