minofrk / msf-io-ts

Type utilities with io-ts for MSF format.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@minofrk/msf-io-ts

NPM Version License Build Status codecov

MSF 形式を TypeScript で取り扱う上で有用そうな型を io-ts のコーデックとして用意しています。

import { Move } from '@minofrk/msf-io-ts';

// ...

const something = JSON.parse(json);

if (!Move.is(something)) {
    throw new TypeError();
}

const move: Move = something;

その他、有用そうな型エイリアスと関数も用意されています(下記参照)

Install

npm install @minofrk/msf-io-ts

加えて io-tsfp-ts もインストールします(既にあれば不要です)

npm install io-ts fp-ts

Codecs

局面、指し手、棋譜

  • State
  • Move
    • LeimMove
    • OkkeMove
    • KorMove
    • EvMove
    • SedMove
  • MSFType

  • Arxe
  • Sorn
  • Piece
  • Teems
  • TurnablePiece

その他

  • FalaType ... 0 以上 2147483647 以下の整数
  • DateTimeString ... RFC 3339 に準拠した文字列
  • Player
  • Coordinate ... 0 以上 6 以下の整数
  • Position
  • FromTo

Type aliases

上述したコーデックはそのまま型エイリアスとしても使用できます。

加えて以下の型が用意されています。

  • ReadonlyState
  • ReadonlyMove
    • ReadonlyLeimMove
    • ReadonlyOkkeMove
    • ReadonlyKorMove
    • ReadonlyEvMove
    • ReadonlySedMove
  • ReadonlyMSFType
  • ReadonlyPosition
  • ReadonlyFromTo

Strict validators

仕様への準拠を完全に検査するための関数です。指し手の検査は Move.is() で既に完全なので isSpecCompliantMove() はありません。

  • isSpecCompliantState()
  • isSpecCompliantMSFType()

License

See LICENSE

About

Type utilities with io-ts for MSF format.

License:MIT License


Languages

Language:TypeScript 98.5%Language:JavaScript 1.5%