Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@jackstenglein/chess

Package Overview
Dependencies
Maintainers
0
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jackstenglein/chess

Built on top of chess.js and can handle variations (tree-structured move history)

  • 2.2.7
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
192
decreased by-27.27%
Maintainers
0
Weekly downloads
 
Created
Source

@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

Keywords

FAQs

Package last updated on 22 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc