corewar.io
corewar.io copied to clipboard
Corewar.io monorepo

Corewar
Typescript / Javascript implementation of the classic game corewar
Currently this project contains a corewar IDE, redcode parser and core simulator.
In future we hope to include local and remote hills and benchmarks and possibly to begin extending corewar itself.
This is the monorepo for the corewar.io project and contains the following packages:
- corewar - npm package providing parser and simulator
- corewar-ui - corewar.io user interface implemented as a spa
- corewar-api - corewar.io api implemented in graphql
Documentation for the project along with guidance on corewar and the redcode language can be found on Read the Docs
Scripts
This project uses lerna and yarn workspaces in order to manage the monorepo.
Node 12+ is required.
Prepare development environment
npm install --global lerna yarn
yarn bootstrap
Currently
lerna boostrapcommand is not building thecorewarlibrary. Documentation says it should automatically executeprepublishon all bootstrapped libraries but doesn't. In order to successfully bootstrap this application it is necessary to manually executelerna run prepublishfollowing bootstrap. I don't know why. If anyone knows, please let me know!
Start API and UI
yarn start
Build UI and Core library
yarn build
Lint and test all packages
Linting and testing are performed by eslint and jest.
yarn lint
yarn test
Automatically fix linting errors with
yarn lint:fix
Produce code coverage report with
yarn coverage