44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
|
# 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 :
|
||
|
|
||
|
```
|
||
|
<script src="/path/to/unit.js"></script>
|
||
|
```
|
||
|
|
||
|
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.
|