54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
![Renai](resources/logo.png 'Renai')
|
|
|
|
# レンアイ - Hentai Library Thingy
|
|
|
|
## Development
|
|
|
|
### Quickstart
|
|
|
|
- `npm install`, the postinstall runs
|
|
- `npm run rebuild`
|
|
- might need to install some build tools depending on your platform
|
|
- `npm run watch` for code transpilation (starts watchers)
|
|
- `npm run start`
|
|
|
|
### Git Commits
|
|
|
|
This project uses [Conventional Commits](https://www.conventionalcommits.or) with the following types:
|
|
|
|
- `feat`: features, if any part of your commit implements a new functionality or changes an existing one, use this
|
|
- `remove`: removal of existing code/functionality
|
|
- `fix`: bugfixes
|
|
- `refactor`: code refactoring
|
|
- `test`: any of the above, but with tests
|
|
- `update`: updating dependencies and associated code changes
|
|
- `config`: changing configuration (linters, build process)
|
|
- `doc`: documentation, including comments
|
|
- `reformat`: fixing code formatting
|
|
|
|
Always try to split up your changes into coherent commits, a single commit should do a single thing. If your commit needs to do more than one thing it should be labeled with the type coming first in this list.
|
|
|
|
### Database Migrations
|
|
|
|
Migrations are stored in [src/main/migrations](src/main/migrations) and handled by typeorm. Migrations are run on app start inside [database.ts](src/main/services/database.ts).
|
|
|
|
To auto-generate a migration:
|
|
`node_modules/.bin/typeorm migration:generate -n <migration name> -c <connection name>`
|
|
|
|
To create an empty creation which can be filled with custom migration code:
|
|
`node_modules/.bin/typeorm migration:create -n <migration name> -c <connection name>`
|
|
|
|
To run migrations:
|
|
`node_modules/.bin/typeorm migration:run -c <connection name>`
|
|
This is also pre-defined in the npm script `typeorm:migrate`.
|
|
|
|
### Testing
|
|
|
|
The testing framework of choice is [Mocha](https://mochajs.org/). Call `npm run test` to run all tests. Tests are written in typescript and need to be transpiled before testing.
|
|
|
|
#### Tagging
|
|
|
|
Mocha does [not have a seperate tagging feature](https://github.com/mochajs/mocha/wiki/Tagging), but it can filter via title. Us the following tags in your test titles:
|
|
|
|
- `@slow` when the test is particularly slow
|