chore(docs): contributing (#1311)

* chore(server): linting

* chore: contributing pr checklist
This commit is contained in:
Jason Rasmussen 2023-01-12 09:44:11 -05:00 committed by GitHub
parent 131caa20eb
commit 67c52c3764
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 97 additions and 36 deletions

View file

@ -0,0 +1,43 @@
---
sidebar_position: 3
---
# Contributing
Contributions are welcome!
## PR Checklist
When contributing code through a pull request, please check the following:
### Web Checks
- [ ] `npm run lint` (linting via ESLint)
- [ ] `npm run format` (formatting via Prettier)
- [ ] `npm run check` (Type checking via SvelteKit)
- [ ] `npm test` (Tests via Jest)
:::tip
Run all web checks with `npm run check:all`
:::
### Server Checks
- [ ] `npm run lint` (linting via ESLint)
- [ ] `npm run format` (formatting via Prettier)
- [ ] `npm run check` (Type checking via `tsc`)
- [ ] `npm test` (Tests via Jest)
:::tip
Run all server checks with `npm run check:all`
:::
### Open API
The Open API client libraries need to be regenerated whenever there are changes to the `immich-openapi-specs.json` file.
- [ ] `npm run api:generate`
:::tip
This can also be run via `make api` from the project root directory (not in the `server` folder)
:::

View file

@ -6,10 +6,7 @@ module.exports = {
tsconfigRootDir: __dirname,
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
extends: ['plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
root: true,
env: {
node: true,

18
server/.prettierignore Normal file
View file

@ -0,0 +1,18 @@
.DS_Store
node_modules
/build
/package
.env
.env.*
!.env.example
src/api/open-api
*.md
*.json
coverage
dist
**/migrations/**
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

View file

@ -1,5 +1,5 @@
import {ApiProperty} from "@nestjs/swagger";
import {AlbumResponseDto} from "./album-response.dto";
import { ApiProperty } from '@nestjs/swagger';
import { AlbumResponseDto } from './album-response.dto';
export class AddAssetsResponseDto {
@ApiProperty({ type: 'integer' })

View file

@ -4,4 +4,3 @@ export class CheckExistingAssetsResponseDto {
}
existingIds: string[];
}

View file

@ -5,7 +5,7 @@ import { UpdateTagDto } from './dto/update-tag.dto';
import { Authenticated } from '../../decorators/authenticated.decorator';
import { ApiTags } from '@nestjs/swagger';
import { AuthUserDto, GetAuthUser } from '../../decorators/auth-user.decorator';
import { mapTag, TagResponseDto } from "./response-dto/tag-response.dto";
import { mapTag, TagResponseDto } from './response-dto/tag-response.dto';
@Authenticated()
@ApiTags('Tag')
@ -14,7 +14,10 @@ export class TagController {
constructor(private readonly tagService: TagService) {}
@Post()
create(@GetAuthUser() authUser: AuthUserDto, @Body(ValidationPipe) createTagDto: CreateTagDto): Promise<TagResponseDto> {
create(
@GetAuthUser() authUser: AuthUserDto,
@Body(ValidationPipe) createTagDto: CreateTagDto,
): Promise<TagResponseDto> {
return this.tagService.create(authUser, createTagDto);
}

View file

@ -15,8 +15,7 @@ export function asHumanReadable(bytes: number, precision = 1): string {
if (magnitude + 1 < units.length) {
magnitude++;
remainder /= 1024;
}
else {
} else {
break;
}
}

View file

@ -11,7 +11,8 @@
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build immich && nest build microservices && nest build cli",
"format": "prettier --write \"apps/**/*.ts\" \"libs/**/*.ts\"",
"format": "prettier --check .",
"format:fix": "prettier --write .",
"start": "nest start",
"nest": "nest",
"start:dev": "nest start --watch",
@ -19,8 +20,9 @@
"start:prod": "node dist/main",
"lint": "eslint \"{apps,libs}/**/*.ts\" --max-warnings 0",
"lint:fix": "npm run lint -- --fix",
"check:types": "tsc --noEmit",
"check:all": "npm run lint && npm run check:types && npm run test",
"check": "tsc --noEmit",
"check:code": "npm run format && npm run lint && npm run check",
"check:all": "npm run check:code && npm run test",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",