Skip to content

ResourcefulBigintType

The ResourcefulBigintType class provides 64-bit signed integer validation for large numeric values. It supports the same validation options as ResourcefulIntegerType but with bigint constraints for values beyond 32-bit limits.

For complete API reference, see ResourcefulBigintType.

Basic Usage

typescript
import { ResourcefulBigintType } from '@nhtio/lucid-resourceful/definitions'

const bigNumberType = ResourcefulBigintType({
  minimum: 0n,
  maximum: 9223372036854775807n, // Max 64-bit signed int
  exclusiveMinimum: false,
  exclusiveMaximum: false,
  multipleOf: 1n
})

Configuration

All options use bigint values:

  • minimum: bigint
  • maximum: bigint
  • exclusiveMinimum: boolean
  • exclusiveMaximum: boolean
  • multipleOf: bigint

Common Patterns

typescript
class Analytics extends compose(BaseModel, withResourceful({ name: 'Analytics' })) {
  // Large user IDs
  @resourcefulColumn.bigint({
    type: ResourcefulBigintType({
      minimum: 1n,
      maximum: 9223372036854775807n,
      exclusiveMinimum: false,
      exclusiveMaximum: false,
      multipleOf: 1n,
      readOnly: true
    })
  })
  declare userId: bigint

  // View counts
  @resourcefulColumn.bigint({
    type: ResourcefulBigintType({
      minimum: 0n,
      maximum: 9223372036854775807n,
      exclusiveMinimum: false,
      exclusiveMaximum: false,
      multipleOf: 1n
    })
  })
  declare viewCount: bigint
}

OpenAPI Schema

Generates "type": "integer", "format": "int64" in OpenAPI schemas.

Best Practices

  • Use for values that exceed 32-bit integer limits
  • Handle bigint conversion in JavaScript properly
  • Consider database column types (BIGINT)
  • Use ResourcefulIntegerType for smaller values