@jackstenglein/chess
TypeScript icon, indicating that this package has built-in type declarations

2.1.5 • Public • Published

@jackstenglein/chess

@jackstenglein/chess is a TypeScript chess library based on chess.js and cm-chess. It provides PGN/FEN loading; move generation/validation; variations, including reordering and promoting; tracking the current move and seeking through a PGN; PGN header values; NAGs; comments; check/checkmate/stalemate detection; null moves; and more.

This library is used to power the ChessDojo annotation editor and tactics tests.

Installation

Run the following command to install the most recent version from NPM:

npm install @jackstenglein/chess

Importing

import { Chess } from '@jackstenglein/chess';

Example Code

The code below plays a random game of chess:

import { Chess } from '@jackstenglein/chess';

const chess = new Chess();

while (!chess.isGameOver()) {
    const moves = chess.moves();
    const move = moves[Math.floor(Math.random() * moves.length)];
    chess.move(move);
}

console.log(chess.renderPgn());

Also see the tests for further examples.

User Interface

This is a headless library and does not include user interface elements. ChessDojo has successfully integrated this library with Lichess Chessground.

Features

It has a similar API to chess.js and provides much of the same functionality. However, it also offers additional features:

  • Handles variations in addition to the mainline PGN
  • Handles Chessbase-style null moves (Z0)
  • Handles NAGs and comments
  • Keeps track of the "current move" and allows seeking/traversing through the PGN
  • Allows fetching/setting known PGN headers, as well as arbitrary PGN headers
  • Allows fetching/setting known PGN commands, as well as arbitrary PGN commands
  • Allows subscribing to specific events and receiving notifications in a callback

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.1.5
    92
    • latest

Version History

Package Sidebar

Install

npm i @jackstenglein/chess

Weekly Downloads

505

Version

2.1.5

License

MIT

Unpacked Size

188 kB

Total Files

30

Last publish

Collaborators

  • jackstenglein