diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7f89fa5 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +node_modules/ +build/ +coverage/ +.vuepress/ diff --git a/.eslintrc.json b/.eslintrc.json index f72f654..3e95956 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -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"], diff --git a/README.md b/README.md index 3e2c967..b89cb3a 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/package.json b/package.json index 2876e8e..f8c4319 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/index.ts b/src/index.ts index 111642c..62c3242 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,6 +16,6 @@ main() console.error(e) throw e }) - .finally(async () => { - await prisma.$disconnect() + .finally(() => { + void prisma.$disconnect() }) diff --git a/src/server/server.test.ts b/src/server/server.test.ts index eda8885..852bc27 100644 --- a/src/server/server.test.ts +++ b/src/server/server.test.ts @@ -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( + '@apollo/server/standalone', + ) return { __esModule: true, ...originalModule, diff --git a/test/helpers.ts b/test/helpers.ts index d2250e1..2275860 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -5,5 +5,5 @@ export const deleteAll = async () => { } export const disconnect = async () => { - prisma.$disconnect() + await prisma.$disconnect() }