imports are not working

This commit is contained in:
Moriz Wahl 2023-12-01 17:06:11 +01:00
parent 15d30d2f56
commit 881158c11e
5 changed files with 65 additions and 41 deletions

67
package-lock.json generated
View File

@ -11,6 +11,7 @@
"dependencies": {
"apollo-server-express": "^3.13.0",
"graphql": "^15.3.0",
"reflect-metadata": "^0.1.13",
"type-graphql": "^1.1.1"
},
"devDependencies": {
@ -40,6 +41,7 @@
"ts-node": "^10.9.1",
"tsc": "^2.0.4",
"tsc-watch": "^6.0.4",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.3.2"
}
},
@ -2961,6 +2963,18 @@
"node": ">=0.10.0"
}
},
"node_modules/eslint-plugin-import/node_modules/json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
},
"bin": {
"json5": "lib/cli.js"
}
},
"node_modules/eslint-plugin-import/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@ -2976,6 +2990,18 @@
"semver": "bin/semver.js"
}
},
"node_modules/eslint-plugin-import/node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
"dev": true,
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
"minimist": "^1.2.6",
"strip-bom": "^3.0.0"
}
},
"node_modules/eslint-plugin-json": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-3.1.0.tgz",
@ -4473,15 +4499,15 @@
"dev": true
},
"node_modules/json5": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"dependencies": {
"minimist": "^1.2.0"
},
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/jsonc-parser": {
@ -6950,6 +6976,11 @@
"node": ">=8.10.0"
}
},
"node_modules/reflect-metadata": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
"node_modules/regexp-tree": {
"version": "0.1.27",
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
@ -12756,15 +12787,17 @@
}
},
"node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
"integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
"integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
"dev": true,
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.2",
"json5": "^2.2.2",
"minimist": "^1.2.6",
"strip-bom": "^3.0.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/tslib": {
@ -13009,18 +13042,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/unified-args/node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true,
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/unified-args/node_modules/strip-ansi": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",

View File

@ -2,7 +2,7 @@
"name": "boilerplate-backend",
"version": "1.0.0",
"description": "The IT4C Boilerplate for backends",
"main": "build/index.ts",
"main": "build/index.js",
"type": "module",
"repository": {
"type": "git",
@ -25,6 +25,7 @@
"dependencies": {
"apollo-server-express": "^3.13.0",
"graphql": "^15.3.0",
"reflect-metadata": "^0.1.13",
"type-graphql": "^1.1.1"
},
"devDependencies": {
@ -54,6 +55,7 @@
"ts-node": "^10.9.1",
"tsc": "^2.0.4",
"tsc-watch": "^6.0.4",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.3.2"
},
"imports": {

View File

@ -1,11 +1,15 @@
import path from 'path'
import { fileURLToPath } from 'url'
import { GraphQLSchema } from 'graphql'
import { buildSchema } from 'type-graphql'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
export const schema = async (): Promise<GraphQLSchema> => {
return buildSchema({
resolvers: [path.join(__dirname, 'resolvers', `!(*.spec).{ts}`)],
resolvers: [path.join(__dirname, 'resolvers', `!(*.spec).{ts,js}`)],
validate: {
validationError: { target: false },
skipMissingProperties: true,

View File

@ -1,25 +1,17 @@
import { ApolloServer, gql } from 'apollo-server-express'
// eslint-disable-next-line import/no-unassigned-import
import 'reflect-metadata'
import { ApolloServer } from 'apollo-server-express'
import express from 'express'
const typeDefs = gql`
type Query {
hello: String
}
`
const resolvers = {
Query: {
hello: () => 'Hello world!',
},
}
import { schema } from './graphql/schema'
async function listen(port: number) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const app: any = express()
const server = new ApolloServer({
typeDefs,
resolvers,
schema: await schema(),
})
await server.start()

View File

@ -1,10 +1,12 @@
{
"compilerOptions": {
"target": "es2021",
"target": "ESNext",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "ES2020",
"module": "ESNext",
"moduleResolution": "node",
"baseUrl": ".",
"lib": ["ESNext"],
"paths": {
"#types/*": ["./src/graphql/types/*"]
},
@ -12,5 +14,8 @@
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true
},
"ts-node": {
"experimentalSpecifierResolution": "node"
}
}