• Stars
    star
    112
  • Rank 312,240 (Top 7 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created about 10 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

JavaScriptで動く将棋の棋譜再生盤とそのブックマークレット `kifu-for-js`、JSON棋譜フォーマット(JKF)の定義とKIF, KI2, CSAからの変換ライブラリ `json-kifu-format`、将棋のモデル`shogi.js`を含むmonorepo

Kifu for JS monorepo Build Status License: MIT

Kifu for JSと関連ライブラリのmonorepoです。個々のパッケージのREADMEは各パッケージのディレクトリにあります。

  • kifu-for-js: Kifu for JS 将棋再生盤とブックマークレット
  • json-kifu-format: JSON棋譜フォーマットと関連ライブラリ
  • shogi.js: 将棋の盤駒を扱うライブラリ

開発

このリポジトリは、npm packagesとlernaによるmonorepo環境です。

パッケージ依存関係

  • shogi.js <- json-kifu-format <- kifu-for-js
  • shogi.js <- kifu-for-js

準備

  1. nvm i && nvm use としてnpmを用意します。(nvm が必要です。)
  2. ルートディレクトリでnpm installを実行すると、各パッケージの依存関係がインストールされます。

開発ワークフロー

  1. ルートディレクトリで npm run dev を実行すると、各パッケージがビルドされ、変更があると自動的にビルドが再実行されます。
  2. パッケージの開発を行います。都度ブラウザで動作を確認します。
  3. テストを書きます。 npm run test でテストを一括実行します。また、個々のパッケージで変更を監視しながらテストを実行するには、個々のパッケージに移動して(例:cd /packages/Kifu-for-JSnpm run test:watch を実行します。
  4. npm run lint:fix として、修正可能なものは修正しつつLintを実行します。
  5. プルリクエストを作成します。ブランチでビルドが走り、テストがパスすることを確認します。

新たなライブラリをインストールする

  • 全てのパッケージに対してインストールする場合は、ルートディレクトリで npm install (ライブラリ名) を実行します。
  • 個々のパッケージに対してインストールする場合は、ルートディレクトリで npm install (ライブラリ名) -w (インストール先パッケージ名) を実行します。

npmスクリプト

npm run ... 説明
lint すべてのパッケージのlintを行う
lint:fix すべてのパッケージのlintを行い、修正可能なものは修正する
test すべてのパッケージのテストを行う
build すべてのパッケージをビルドする
dev すべてのパッケージをビルドしてexampleページを起動し、変更を監視する
cy:open exampleページに対して統合テストを行う

リリースワークフロー (na2hiro向け)

  1. bump GitHub Actions でパッケージのバージョンを上げる
  2. リリースページからリリースを生成
  3. publish GitHub Actions がリリースをビルド・公開する

More Repositories

1

json-kifu-format

JSON棋譜フォーマット(JKF)の定義とKIF, KI2, CSAからの変換ライブラリ
TypeScript
83
star
2

Shogi.js

A simple shogi library for JavaScript / TypeScript
TypeScript
51
star
3

remix-auth-twitter

Remix Auth plugin for Twitter OAuth 2.0 & 1.0a
TypeScript
17
star
4

namespaced-fieldset

A tiny React utils which gives uncontrolled `<input>` elements a power of namespaces, and allows constructing complex objects
TypeScript
13
star
5

shogitter-lib

Core logic of shogi variant rules which you can play at shogitter.com
TypeScript
5
star
6

quantum-shogi

量子将棋合法性チェッカ
Haskell
5
star
7

Shogitter.hs

Legal move generator and simple AI for tons of combinations of Shogi (Japanese chess) variants
Haskell
4
star
8

uploader

D&Dで投げ込むレジューム付アップローダ
JavaScript
3
star
9

TaPL-implementation

Haskell implementation of the "Types and Programming Languages"
Haskell
3
star
10

rust-tsumeshogi

Rust
3
star
11

ship-fee

メルカリ送料最安計算
TypeScript
3
star
12

webrtc-distribution

P2P file distribution using WebRTC
JavaScript
3
star
13

prototype-json-kifu

A prototype of JSON Kifu project
JavaScript
2
star
14

toolbox.shogitter.com

https://toolbox.shogitter.com/
TypeScript
2
star
15

fund-manager

TypeScript
2
star
16

S.js

S-expression parser by JavaScript / TypeScript
JavaScript
2
star
17

na2hiro.81.la

https://na2hiro.81.la
TypeScript
1
star
18

immediate-converters

Converter tools with immediate feedback
TypeScript
1
star
19

tter

Better shogitter without shogi
TypeScript
1
star
20

SENKYO-IKE

選挙行け
HTML
1
star
21

masao

TypeScript
1
star
22

remix-auth-twitter-example

Example of remix-auth-twitter library
TypeScript
1
star
23

dekadeka

Make banners for your mobile screens
TypeScript
1
star
24

na2hiro.github.io

HTML
1
star
25

81chat

PHP
1
star
26

shogitter-react

UI for shogitter-ts Shogi logic
TypeScript
1
star
27

kifu-abbrev-input

(moved) 棋譜略記入力(仮)
HTML
1
star
28

namespaced-fieldset-example

Example of https://github.com/na2hiro/namespaced-fieldset
TypeScript
1
star
29

auto-furigana

Automatically put furigana as you type and generate text with furigana
HTML
1
star
30

monadianity

The website of Monadianity
HTML
1
star
31

event-timeliner

Visualize events on timeline
TypeScript
1
star
32

junisen-react

Listing up and visualize all possible combinations of results in Junisen-style league
TypeScript
1
star