@jawis/javi

JavaScript View is tool for running test cases and scripts. Everything is presented in the browser

Usage no npm install needed!

<script type="module">
  import jawisJavi from 'https://cdn.skypack.dev/@jawis/javi';
</script>

README

Jawis

Jawis is a multirepo for several npm packages, for instance:

  • Javi. A GUI for running tests and scripts, with out of the box support for TypeScript.

Development

Clone

git clone https://github.com/wistoft/jawis.git

cd jawis

yarn

Now it's possible to use the commands below.

Run tests

Start javi

yarn start

Open in browser, and run all tests.

localhost:3003/all

Serve dev site

Jawis repo is setup to use javi to run tests and the dev server. Webpack will serve the dev client.

  • yarn start
    Serve using published version of javi.
  • yarn alpha:start
    Serve using local alpha build of javi.

Type error

To get type errors during development run the vscode task: watch. To automatically start this task install the extentions: AutoLaunch

Build

  • yarn alpha:build
    Build a version, that can run locally without publishing to npm.
  • yarn build
    Build a version, that is ready for publishing to npm.

Publish to npm

  • Run all tests
  • Commit working tree to git
  • yarn lint:fix
    • Running the vscode tasks makes the errors available in vscode.
    • Review, because there's a bug, that removes comments after imports
  • yarn pretty:fix
  • Clean up git history.
  • yarn bump
    • Bumps package versions according to conventional commits
    • Generates changelogs for each package
  • yarn build
  • yarn release
    • Publishes to npm

Packages

  • dev contains code useful just for development of jawis.
  • misc has where things that don't fit anywhere, fit in.
  • javi contains the 'mounts' for production/released javi.

Naming conventions

  • jago and jate have 3 parts: server, view and common. They are separated into their packages, denoted by the postfix chars. E.g. s in jagos.
  • Packages prefixed jab have general usefulness outside jawis. Their postfix indicate what they are utilities for. E.g. jab-express contains utilities for express framework. Another way to think of it, is that the postfix indicate which dependencies the package have.
  • Packages prefixed util contain utilities useful specifically for jawis.

Known issues

  • Web socket in development sites reconnect too eager, and the browser is obliged to block further connections for a while. There's no feadback from the browser, that this happens.
  • vscode tasks are configured to use powershell.exe. Hence only work on Windows.
  • There is a problem with ambiant types in builded d.ts files.
  • Minimal node version is 12.11.0.

Licence

MIT