evaluateBestHand
Best five of 1–7 cards. Default return is HandEvalResult (rank, rankCategory, strength, kickers). Pass { format: 'slim' } for HandEvalResultSlim (no string rank or kickers).
evaluateBestHand(cards: CardInput, options?: { format?: 'full' | 'slim' }): HandEvalResult | HandEvalResultSlim
Import
const poker = require('poker-calculations');
ESM (Node):
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const poker = require('poker-calculations');
When to use
Use when you need the made hand at showdown or on a partial board—hand history tools, showdown validators, or comparing seven-card combinations without Monte Carlo noise.
Use { format: 'slim' } when you only need rankCategory and strength for sorting or filtering.
How to use
const hand = poker.evaluateBestHand(['Ah', 'Ac', 'Kd', 'Ks', 'Qh', 'Jc', '2d']);
console.log(hand.rank); // e.g. twoPair (interned string)
console.log(hand.rankCategory); // e.g. 2
console.log(hand.strength); // same encoding as evaluateHandStrength
console.log(hand.kickers); // length 5 — internal tie-break encoding
const slim = poker.evaluateBestHand(['Ah', 'Ac', 'Kd', 'Ks', 'Qh'], { format: 'slim' });
console.log(slim.rankCategory, slim.strength);
Throws if any card is invalid or duplicated. Accepts packed Uint8Array via CardInput — see Card notation.
See also
compareBestHands · evaluateHandCategory · HandEvalResult · Card notation