Skip to content

dump Method

The dump() method outputs the contents of the collection to the console. Unlike debug(), it only logs the collection items without additional metadata and doesn't return the collection.

Basic Syntax

typescript
collect(items).dump(): void

Examples

Basic Usage

typescript
import { collect } from 'ts-collect'

// Simple dump
const numbers = collect([1, 2, 3, 4])
numbers.dump()  // Logs: [1, 2, 3, 4]

// Dump after transformation
collect([1, 2, 3])
  .map(n => n * 2)
  .dump()  // Logs: [2, 4, 6]

Working with Objects

typescript
interface Product {
  id: string
  name: string
  price: number
}

const products = collect<Product>([
  { id: '1', name: 'Widget', price: 100 },
  { id: '2', name: 'Gadget', price: 200 }
])

// Inspect products
products.dump()
// Logs:
// [
//   { id: '1', name: 'Widget', price: 100 },
//   { id: '2', name: 'Gadget', price: 200 }
// ]

Real-world Examples

Order Processing Inspection

typescript
interface Order {
  id: string
  items: Array<{ productId: string; quantity: number }>
  total: number
  status: 'pending' | 'processing' | 'completed'
}

class OrderInspector {
  inspectOrderProcessing(orders: Collection<Order>): void {
    // Inspect initial orders
    console.log('Initial Orders:')
    orders.dump()

    // Filter pending orders
    console.log('\nPending Orders:')
    orders
      .filter(order => order.status === 'pending')
      .dump()

    // Check high-value orders
    console.log('\nHigh Value Orders:')
    orders
      .filter(order => order.total > 1000)
      .dump()

    // Inspect items count
    console.log('\nOrders by Item Count:')
    orders
      .map(order => ({
        id: order.id,
        itemCount: order.items.length
      }))
      .dump()
  }
}

Inventory Checker

typescript
interface StockItem {
  sku: string
  quantity: number
  location: string
  reorderPoint: number
}

class StockChecker {
  checkInventoryLevels(inventory: Collection<StockItem>): void {
    // Check low stock items
    console.log('Low Stock Items:')
    inventory
      .filter(item => item.quantity <= item.reorderPoint)
      .dump()

    // Check by location
    console.log('\nWarehouse A Stock:')
    inventory
      .where('location', 'Warehouse A')
      .dump()

    // Check critical items
    console.log('\nOut of Stock Items:')
    inventory
      .filter(item => item.quantity === 0)
      .dump()

    // Check reorder quantities
    console.log('\nReorder Quantities:')
    inventory
      .map(item => ({
        sku: item.sku,
        reorderQuantity: Math.max(0, item.reorderPoint - item.quantity)
      }))
      .filter(item => item.reorderQuantity > 0)
      .dump()
  }
}

Advanced Usage

Price Update Verification

typescript
interface PriceUpdate {
  productId: string
  oldPrice: number
  newPrice: number
  effective: Date
}

class PriceUpdateVerifier {
  verifyUpdates(updates: Collection<PriceUpdate>): void {
    // Check significant price increases
    console.log('Significant Price Increases:')
    updates
      .filter(update =>
        (update.newPrice - update.oldPrice) / update.oldPrice > 0.2
      )
      .dump()

    // Check price decreases
    console.log('\nPrice Decreases:')
    updates
      .filter(update => update.newPrice < update.oldPrice)
      .dump()

    // Check updates by date
    console.log('\nUpcoming Updates:')
    updates
      .filter(update => update.effective > new Date())
      .dump()

    // Check average change
    console.log('\nPrice Change Summary:')
    updates
      .map(update => ({
        productId: update.productId,
        changePercent: ((update.newPrice - update.oldPrice) / update.oldPrice) * 100
      }))
      .dump()
  }
}

Type Safety

typescript
interface TypedItem {
  id: number
  value: string
}

const items = collect<TypedItem>([
  { id: 1, value: 'A' },
  { id: 2, value: 'B' }
])

// Simple dump of typed collection
items.dump()

// Dump after transformation
items
  .map(item => ({
    ...item,
    value: item.value.toLowerCase()
  }))
  .dump()

Return Value

  • Returns void (no return value)
  • Logs collection contents to console
  • Does not modify the collection
  • Can be used in method chains
  • Shows raw data without formatting
  • Useful for quick inspections

Common Use Cases

1. Development

  • Quick inspection
  • Value verification
  • State checking
  • Data validation
  • Type confirmation

2. Debugging

  • Value checking
  • Transform verification
  • Filter validation
  • Process inspection
  • Error investigation

3. Data Inspection

  • Content review
  • Format checking
  • Structure validation
  • Value verification
  • Type confirmation

4. Process Validation

  • State inspection
  • Flow checking
  • Transform verification
  • Filter validation
  • Result confirmation

5. Testing Support

  • Value verification
  • Output validation
  • State inspection
  • Result checking
  • Error detection

6. Data Monitoring

  • Value tracking
  • Change inspection
  • Update verification
  • State monitoring
  • Result validation

7. Quality Control

  • Data validation
  • Format checking
  • Structure verification
  • Content inspection
  • Type confirmation

8. Development Flow

  • Quick checks
  • Process verification
  • State inspection
  • Result validation
  • Error detection

9. Troubleshooting

  • Value inspection
  • State checking
  • Process verification
  • Error investigation
  • Result validation

10. Data Verification

  • Content checking
  • Structure validation
  • Format inspection
  • Value verification
  • Type confirmation

Released under the MIT License.