Merge pull request #5 from IT4Change/eslint-typescript-strict

fix(backend): eslint typescript strict
This commit is contained in:
Ulf Gebhardt 2023-12-12 09:09:15 +01:00 committed by GitHub
commit 73f4ab6f37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 58 additions and 5 deletions

4
.eslintignore Normal file
View File

@ -0,0 +1,4 @@
node_modules/
build/
coverage/
.vuepress/

View File

@ -118,6 +118,28 @@
"promise/no-multiple-resolved": "error"
},
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"tsconfigRootDir": ".",
"project": ["./tsconfig.json", "**/tsconfig.json"],
"ecmaVersion": "latest",
"parser": "@typescript-eslint/parser",
"sourceType": "module"
},
"plugins": ["@typescript-eslint"],
"extends": [
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@typescript-eslint/strict"
],
"rules": {
// allow explicitly defined dangling promises
"@typescript-eslint/no-floating-promises": ["error", { "ignoreVoid": true }],
"no-void": ["error", { "allowAsStatement": true }]
}
},
{
"files": ["!*.json"],
"plugins": ["prettier"],

View File

@ -76,6 +76,31 @@ The following endpoints are provided given the right command is executed or all
| [http://localhost:4000/graphql](http://localhost:4000/graphql) | GraphQL API |
| [http://localhost:4000/playground](http://localhost:4000/playground) | GraphQL Playground |
## How to use as part of a project
If you want to use this as part of a larger project, e.g. in conjunction with a frontend also utilizing a boilerplate you cannot use the template mechanic provided by github for this repository.
You can use the following commands to include the whole git history of the boilerplate and be able to update according to changes to this repo using another remote.
```bash
git remote add xxx_boilerplate_backend git@github.com:IT4Change/boilerplate-backend.git
git fetch xxx_boilerplate_backend
git merge -s ours --no-commit --allow-unrelated-histories xxx_boilerplate_backend/master
git read-tree --prefix=xxx/ -u xxx_boilerplate_backend/master
git commit -m "Imported boilerplate_backend as a subtree under xxx/."
```
To update the subtree you can use
```bash
git subtree pull -P xxx/ xxx_boilerplate_backend master
git commit -m "Updated boilerplate_backend in subtree under xxx/."
```
Where `xxx` refers to the folder and product part you want to use the boilerplate in. This assumes that you might need several copies of the frontend boilerplate for you product.
This mechanic was taken from this [source](https://stackoverflow.com/questions/1683531/how-to-import-existing-git-repository-into-another/8396318#8396318)
## Database setup
The project is set up for a `sqlite` database.

View File

@ -22,7 +22,7 @@
"db:reset": "TZ=UTC npx prisma migrate reset --force",
"db:seed": "TZ=UTC npx prisma db seed",
"test:lint": "npm run test:lint:eslint && npm run test:lint:remark",
"test:lint:eslint": "eslint --ext .ts,.tsx,.js,.jsx,.json,.yml,.yaml --max-warnings 0 --ignore-path .gitignore .",
"test:lint:eslint": "eslint --ext .ts,.tsx,.js,.jsx,.json,.yml,.yaml --max-warnings 0 .",
"test:lint:remark": "remark . --quiet --frail",
"test:unit": "TZ=UTC jest --runInBand --forceExit --detectOpenHandles",
"test": "npm run test:lint && npm run test:unit",

View File

@ -16,6 +16,6 @@ main()
console.error(e)
throw e
})
.finally(async () => {
await prisma.$disconnect()
.finally(() => {
void prisma.$disconnect()
})

View File

@ -3,7 +3,9 @@ import { startStandaloneServer } from '@apollo/server/standalone'
import { listen } from './server'
jest.mock('@apollo/server/standalone', () => {
const originalModule = jest.requireActual('@apollo/server/standalone')
const originalModule = jest.requireActual<typeof import('@apollo/server/standalone')>(
'@apollo/server/standalone',
)
return {
__esModule: true,
...originalModule,

View File

@ -5,5 +5,5 @@ export const deleteAll = async () => {
}
export const disconnect = async () => {
prisma.$disconnect()
await prisma.$disconnect()
}