UNPKG

@minofrk/msf-io-ts

Version:

Type utilities with io-ts for MSF format.

101 lines (72 loc) 2.85 kB
@minofrk/msf-io-ts =============================================================================== [![NPM Version](https://img.shields.io/npm/v/@minofrk/msf-io-ts.svg?style=flat-square)](https://www.npmjs.com/package/@minofrk/msf-io-ts) [![License](https://img.shields.io/github/license/minofrk/msf-io-ts.svg?style=flat-square)](LICENSE) [![Build Status](https://img.shields.io/travis/com/minofrk/msf-io-ts/master.svg?style=flat-square)](https://travis-ci.com/minofrk/msf-io-ts) [![codecov](https://img.shields.io/codecov/c/github/minofrk/msf-io-ts.svg?style=flat-square)](https://codecov.io/gh/minofrk/msf-io-ts) [MSF 形式](https://github.com/minofrk/mino-seslax-format)を TypeScript で取り扱う上で有用そうな型を [io-ts](https://github.com/gcanti/io-ts) のコーデックとして用意しています。 ```typescript 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-ts](https://github.com/gcanti/io-ts) と [fp-ts](https://github.com/gcanti/fp-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](LICENSE)