diff --git a/README.md b/README.md new file mode 100644 index 0000000..8866567 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# UnitJS + +UnitJS is a tiny Javascript framework to write web applications. It provides four essential modules to deal with asynchronous functions (technically, it's a monad obtained by currifying the CPS functions of Javascript like `setTimeout`), value caching, DOM manipulation and basic functional needs like composition or object projections. + +## Usage + +### With [SJW](https://git.marvid.fr/Tissevert/SJW) + +UnitJS comes as a SJW package. You can install it by copying the `src/` directory of this repository to your package database by issuing the following command from the current directory : + +``` +$ cp -r src/ ~/.sjw/unitJS +``` + +Then, using unitJS in your projects is as simple as writing : + +``` +import * as Async from UnitJS.Async; +``` + +in any module if you want to use the `Async` module for instance and compile your code using the `--include` option of `sjw` with package `unitJS` : + +``` +sjw -I unitJS your/code/src -o your/code/main.js +``` + +Note that all modules have their path prefixed by a common `UnitJS` component and that SJW will only include the modules actually used in your code, not all of UnitJS. + +### As a standalone JS script + +If you don't want to or can't use SJW, it's still possible to use UnitJS by generating a single script that can then be loaded from your web page like this : + +``` + +``` + +The file `unit.js` can be easily generated with `make`, which actually just calls the `unit.js.tpl` script. Note that you can still generate custom «partial» versions of `unit.js` if you don't use all of it by overriding the `SRC` variable of the `Makefile` like so : + +``` +make SRC="src/UnitJS/Dom.js src/UnitJS/Cache.js" +``` + +or by manually calling `./unit.js.tpl` with the files you want, like the `Makefile` does.