blob: 024395b23b1ffc15b7478832ceba440a957d2566 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# (WIP) Fixgen - Language agnostic fixture generator
- Zero dependencies
- Language agnostic
This tool allows you to very easily generate fixtures.
You simply define a fixgen file, for example sample.fixgen
```
user (2): id uuidv4, name name
purchase (10): id uuidv4, buyer user.id, amount int<1,40>
```
And then run it
```
$ fixgen sample.fixgen -f csv -o fixtures
```
And it generates two files: fixtures/purchase.csv, fixtures/user.csv. Bam! Simple as that.
You can then import it into your SQL server with simple copy from commands
```
COPY users FROM '/fixtures/user.csv' CSV HEADER;
COPY purchases FROM '/fixtures/purchase.csv' CSV HEADER;
```
Or maybe export as json instead to import into your NoSQL DB.
## Development - Prerequisites
- [Nix](https://nixos.org/manual/nix/stable/installation/installing-binary)
- [Direnv](https://direnv.net/docs/installation.html)
After installation, you will need to run direnv allow
```
direnv allow
```
And it will set up the development environment for you with the correct git hooks.
### VSCode
You'll need OCaml platform and direnv extension. Once you have those, you will need to start the project from the terminal. First, ensure you have setup code terminal command:
https://code.visualstudio.com/docs/setup/mac
Once in place, cd to the project and run
```
code .
```
And VSCode should launch correctly with LSP installed.
### Running development
```
./scripts/run-watch.sh
```
Run tests
```
./scripts/run-test-watch.sh
```
You can also run them manually:
```
dune runtests
```
### Building
```
dune build
```
|