Skip to content

Commit 8603a5a

Browse files
authored
feat(dep): up broken dependencies (#412)
1 parent 80707e4 commit 8603a5a

37 files changed

+1324
-596
lines changed

jest.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ module.exports = {
88
testEnvironment: '<rootDir>/test/environment/mongodb',
99
testPathIgnorePatterns: ['/node_modules/', './dist'],
1010
coverageReporters: ['lcov', 'html'],
11-
setupFiles: ['<rootDir>/test/setupFiles.js'],
1211
setupFilesAfterEnv: ['<rootDir>/test/setupTestFramework.js'],
1312
resetModules: false,
1413
reporters: ['default', 'jest-junit'],

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,22 @@
77
"@koa/cors": "^4.0.0",
88
"@koa/router": "12.0.0",
99
"@types/jest": "^27.5.1",
10+
"@types/supertest": "^2.0.12",
1011
"babel-node": "^0.0.1-security",
1112
"dataloader": "^2.2.2",
1213
"dotenv": "^16.0.3",
1314
"dotenv-safe": "^8.2.0",
1415
"esbuild": "^0.17.12",
1516
"get-graphql-schema": "^2.1.2",
16-
"graphql": "^15.5.0",
17+
"graphql": "^16.6.0",
18+
"graphql-helix": "^1.13.0",
1719
"graphql-playground-middleware-koa": "^1.6.22",
18-
"graphql-relay": "^0.9.0",
20+
"graphql-relay": "^ 0.10.0",
1921
"koa": "^2.14.1",
2022
"koa-bodyparser": "^4.4.0",
21-
"koa-graphql": "^0.8.0",
2223
"koa-router": "^12.0.0",
2324
"mongodb-client-encryption": "^2.6.0",
24-
"mongoose": "^5.12.12",
25+
"mongoose": "^7.0.2",
2526
"prettier": "^2.8.4",
2627
"react-dom": "^18.2.0",
2728
"supertest": "6.3.3"
@@ -46,20 +47,19 @@
4647
"@types/koa": "2.13.5",
4748
"@types/koa-bodyparser": "^4.3.10",
4849
"@types/koa-convert": "^1.2.4",
49-
"@types/koa-cors": "^0.0.2",
50-
"@types/koa-graphql": "^0.8.4",
51-
"@types/koa-router": "7.4.4",
50+
"@types/koa__cors": "^4.0.0",
51+
"@types/koa__router": "^12.0.0",
5252
"@types/webpack-dev-server": "4.7.2",
5353
"@types/webpack-node-externals": "3.0.0",
5454
"babel-jest": "^29.5.0",
5555
"babel-loader": "9.1.2",
5656
"clean-webpack-plugin": "4.0.0",
5757
"coveralls": "^3.1.1",
58+
"eslint": "^8.35.0",
5859
"jest": "^27.4.7",
5960
"jest-junit": "15.0.0",
60-
"eslint": "^8.35.0",
61+
"mongodb-memory-server": "8.10.0",
6162
"prettier": "^2.8.4",
62-
"mongodb-memory-server-global": "6.9.3",
6363
"reload-server-webpack-plugin": "1.0.1",
6464
"webpack": "5.76.2",
6565
"webpack-cli": "5.0.1",

src/__tests__/__snapshots__/app.spec.ts.snap

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,7 @@ exports[`should return 200 1`] = `
44
Object {
55
"data": Object {
66
"events": Object {
7-
"edges": Array [
8-
Object {
9-
"node": Object {
10-
"allDay": true,
11-
"end": "2019-01-01T23:59:59.000Z",
12-
"name": "event",
13-
"start": "2019-01-01T00:00:00.000Z",
14-
},
15-
},
16-
],
7+
"edges": Array [],
178
},
189
},
1910
}

src/__tests__/app.spec.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import {
55
disconnectMongoose,
66
} from '../../test';
77
import app from '../app';
8-
import { createEvent } from '../modules/event/fixture/createEvent';
98

109
beforeAll(connectMongoose);
1110

@@ -14,13 +13,6 @@ beforeEach(clearDbAndRestartCounters);
1413
afterAll(disconnectMongoose);
1514

1615
it('should return 200', async () => {
17-
const event = await createEvent({
18-
name: 'event',
19-
start: '2019-01-01T00:00:00.000Z',
20-
end: '2019-01-01T23:59:59.000Z',
21-
allDay: true,
22-
});
23-
2416
// language=GraphQL
2517
const query = `
2618
query Q {

src/app.ts

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,76 @@
1-
import { getDataloaders } from './graphql/loaderRegister';
2-
3-
import Koa from 'koa';
4-
import GraphQLHTTP from 'koa-graphql';
5-
import Router from 'koa-router';
61
import cors from '@koa/cors';
2+
import Router from '@koa/router';
3+
import Koa from 'koa';
74
import bodyParser from 'koa-bodyparser';
85

96
import { schema } from './schema/schema';
107

8+
import {
9+
getGraphQLParameters,
10+
processRequest,
11+
renderGraphiQL,
12+
sendResult,
13+
shouldRenderGraphiQL,
14+
} from 'graphql-helix';
15+
1116
import koaPlayground from 'graphql-playground-middleware-koa';
1217

18+
import { getContext } from './context';
19+
1320
const app = new Koa();
1421
const router = new Router();
1522

16-
const graphqlSettingsPerReq = async (req, ctx, koaContext) => {
17-
const { event } = koaContext;
18-
const dataloaders = getDataloaders();
19-
20-
return {
21-
graphiql: true,
22-
schema,
23-
context: {
24-
event,
25-
req,
26-
dataloaders,
27-
},
28-
formatError: (error) => {
29-
console.log(error.message);
30-
console.log(error.locations);
31-
console.log(error.stack);
32-
33-
return {
34-
message: error.message,
35-
locations: error.locations,
36-
stack: error.stack,
37-
};
38-
},
39-
};
40-
};
23+
app.use(bodyParser());
4124

42-
const graphqlServer = GraphQLHTTP(graphqlSettingsPerReq);
25+
app.on('error', (err) => {
26+
console.log('app error: ', err);
27+
});
28+
29+
app.use(cors());
4330

4431
router.get('/', async (ctx) => {
4532
ctx.body = 'Welcome koa server (~˘▾˘)~';
4633
});
4734

48-
router.all('/graphql', graphqlServer);
49-
5035
router.all(
5136
'/playground',
5237
koaPlayground({
5338
endpoint: '/graphql',
5439
})
5540
);
5641

57-
app.use(bodyParser());
58-
app.use(cors());
42+
router.all('/graphql', async (ctx) => {
43+
//const { user } = await getUser(ctx.header.authorization); soon :)
44+
const request = {
45+
body: ctx.request.body,
46+
headers: ctx.req.headers,
47+
method: ctx.request.method,
48+
query: ctx.request.query,
49+
};
50+
51+
if (shouldRenderGraphiQL(request)) {
52+
ctx.body = renderGraphiQL({});
53+
} else {
54+
const { operationName, query, variables } = getGraphQLParameters(request);
55+
56+
const result = await processRequest({
57+
operationName,
58+
query,
59+
variables,
60+
request,
61+
schema,
62+
contextFactory: () => {
63+
return getContext({
64+
req: request,
65+
});
66+
},
67+
});
68+
69+
ctx.respond = false;
70+
sendResult(result, ctx.res);
71+
}
72+
});
73+
5974
app.use(router.routes()).use(router.allowedMethods());
6075

6176
export default app;

src/context.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { Context, Request } from 'koa';
2+
3+
import { GraphQLContext } from './graphql/types';
4+
import { getDataloaders } from './modules/loader/loaderRegister';
5+
6+
type ContextVars = {
7+
//user?: IUser | null;
8+
req?: Request;
9+
koaContext: Context;
10+
//setCookie: (cookieName: string, token: string) => void;
11+
};
12+
13+
export const getContext = async (ctx: ContextVars) => {
14+
const dataloaders = getDataloaders();
15+
16+
return {
17+
req: ctx.req,
18+
dataloaders,
19+
//user: ctx.user,
20+
koaContext: ctx.koaContext,
21+
//setCookie: ctx.setCookie,
22+
} as GraphQLContext;
23+
};

src/database/database.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { config } from '../config';
44
export const connectDB = () => {
55
mongoose.connect(config.MONGO_URI, {
66
useNewUrlParser: true,
7-
useCreateIndex: true,
7+
//useCreateIndex: true,
88
useUnifiedTopology: true,
99
});
1010

1111
const db = mongoose.connection;
12-
db.on('error', console.error.bind(console, 'connection error:'));
12+
db.on('error', console.error.bind(console, 'connection error:'));
1313
db.once('open', () => console.log('Database connected ✅'));
1414
};
File renamed without changes.

0 commit comments

Comments
 (0)