aboutsummaryrefslogtreecommitdiff
path: root/README.md
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
```