Skip to content

Commit 715f3d3

Browse files
committed
chore: update dependencies - apollo-server3, mongoose6
1 parent cb7ba25 commit 715f3d3

File tree

14 files changed

+1349
-1348
lines changed

14 files changed

+1349
-1348
lines changed

examples/mongooseDiscriminators/__tests__/queriesFromIndex-test.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,14 @@ import { MongoMemoryServer } from 'mongodb-memory-server';
55
import seed from '../data/seed';
66
import meta from '../index';
77

8-
let mongoServer;
8+
let mongoServer: MongoMemoryServer;
99
let con;
1010
let db;
1111
beforeAll(async () => {
12-
mongoServer = new MongoMemoryServer({ instance: { dbName: 'user' } });
13-
const mongoUri = await mongoServer.getConnectionString();
14-
mongoose.set('useCreateIndex', true);
15-
const opts = { useNewUrlParser: true, useUnifiedTopology: true };
16-
mongoose.connect(mongoUri, opts);
17-
con = await MongoClient.connect(mongoUri, opts);
12+
mongoServer = await MongoMemoryServer.create({ instance: { dbName: 'user' } });
13+
const mongoUri = mongoServer.getUri('user');
14+
mongoose.connect(mongoUri);
15+
con = await MongoClient.connect(mongoUri);
1816
db = con.db('user');
1917
await seed(db);
2018
// take time to mongo create indexes if needed

examples/mongooseDiscriminators/data/seed.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import fs from 'fs';
2-
import { ObjectID } from 'mongodb';
2+
import { ObjectId } from 'mongodb';
33

44
const collectionPrefix = 'md_';
55

@@ -14,7 +14,7 @@ export default async function seed(db: any) {
1414
const colName = `${collectionPrefix || ''}${file}`;
1515
const data = JSON.parse(fs.readFileSync(`${__dirname}/${file}.json`, 'utf8'));
1616
data.forEach((_, i) => {
17-
data[i]._id = ObjectID.createFromHexString(data[i]._id);
17+
data[i]._id = ObjectId.createFromHexString(data[i]._id);
1818
});
1919
if (collectionNames.indexOf(colName) > -1) {
2020
console.log(` '${colName}' dropped`);

examples/northwind/__tests__/queriesFromIndex-test.ts

+11-8
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,25 @@ import { MongoMemoryServer } from 'mongodb-memory-server';
55
import seed from '../data/seed';
66
import meta from '../index';
77

8-
let mongoServer;
8+
let mongoServer: MongoMemoryServer;
99
let con;
1010
let db;
1111
beforeAll(async () => {
12-
mongoServer = new MongoMemoryServer({ instance: { dbName: 'northwind' } });
13-
const mongoUri = await mongoServer.getConnectionString();
14-
const opts = { useNewUrlParser: true, useUnifiedTopology: true };
15-
mongoose.connect(mongoUri, opts);
12+
mongoServer = await MongoMemoryServer.create({
13+
instance: { dbName: 'user', storageEngine: 'wiredTiger' },
14+
});
15+
const mongoUri = mongoServer.getUri('northwind');
16+
mongoose.connect(mongoUri, { autoIndex: false });
17+
con = await MongoClient.connect(mongoUri);
1618
mongoose.connection.once('disconnected', () => {
1719
console.log('MongoDB disconnected!');
1820
});
19-
con = await MongoClient.connect(mongoUri, opts);
21+
con = await MongoClient.connect(mongoUri);
2022
db = con.db('northwind');
2123
await seed(db);
22-
// take time to mongo create indexes if needed
23-
await new Promise((resolve) => setTimeout(resolve, 3000));
24+
await Promise.all(
25+
mongoose.modelNames().map((m) => mongoose.models[m].ensureIndexes({ background: false }))
26+
);
2427
});
2528

2629
afterAll(async () => {

examples/northwind/queryCostPlugin.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ export function initQueryComplexityPlugin(opts: {
1212
maxComplexity?: number;
1313
}): ApolloServerPlugin {
1414
return {
15-
requestDidStart: () => {
15+
async requestDidStart() {
1616
let complexity = 0;
1717
const maxComplexity = opts.maxComplexity || 10000;
1818
return {
19-
didResolveOperation({ request, document }) {
19+
async didResolveOperation({ request, document }) {
2020
/**
2121
* This provides GraphQL query analysis to be able to react on complex queries to your GraphQL server.
2222
* This can be used to protect your GraphQL servers against resource exhaustion and DoS attacks.
@@ -58,7 +58,7 @@ export function initQueryComplexityPlugin(opts: {
5858
);
5959
}
6060
},
61-
willSendResponse({ response }) {
61+
async willSendResponse({ response }) {
6262
response.extensions = response.extensions || {};
6363
response.extensions.complexity = complexity;
6464
response.extensions.maxComplexity = maxComplexity;

examples/northwind/schema.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// import { SchemaComposer } from 'graphql-compose';
66
// const schemaComposer = new SchemaComposer();
77

8-
import { PubSub } from 'apollo-server-express';
8+
import { PubSub } from 'graphql-subscriptions';
99
import { schemaComposer } from './schemaComposer';
1010
import { categoryFindManyResolver, categoryFindOneResolver } from './models/category';
1111
import {

examples/user/__tests__/__snapshots__/queriesFromIndex-test.ts.snap

+9-9
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Object {
55
"age": 24,
66
"contacts": Object {
77
"email": "[email protected]",
8-
"phones": CoreMongooseArray [
8+
"phones": Array [
99
"111-222-333-444",
1010
"444-555-666-777",
1111
],
@@ -69,7 +69,7 @@ Object {
6969
"email": "[email protected]",
7070
},
7171
"gender": "female",
72-
"languages": CoreDocumentArray [
72+
"languages": Array [
7373
Object {
7474
"language": "en",
7575
"skill": "fluent",
@@ -92,7 +92,7 @@ Object {
9292
"email": "[email protected]",
9393
},
9494
"gender": "male",
95-
"languages": CoreDocumentArray [
95+
"languages": Array [
9696
Object {
9797
"language": "en",
9898
"skill": "fluent",
@@ -111,7 +111,7 @@ Object {
111111
"email": "[email protected]",
112112
},
113113
"gender": "male",
114-
"languages": CoreDocumentArray [
114+
"languages": Array [
115115
Object {
116116
"language": "ru",
117117
"skill": "fluent",
@@ -126,7 +126,7 @@ Object {
126126
"email": "[email protected]",
127127
},
128128
"gender": "male",
129-
"languages": CoreDocumentArray [
129+
"languages": Array [
130130
Object {
131131
"language": "fr",
132132
"skill": "basic",
@@ -145,7 +145,7 @@ Object {
145145
"email": "[email protected]",
146146
},
147147
"gender": "male",
148-
"languages": CoreDocumentArray [
148+
"languages": Array [
149149
Object {
150150
"language": "es",
151151
"skill": "fluent",
@@ -168,7 +168,7 @@ Object {
168168
"email": "[email protected]",
169169
},
170170
"gender": "male",
171-
"languages": CoreDocumentArray [
171+
"languages": Array [
172172
Object {
173173
"language": "ru",
174174
"skill": "fluent",
@@ -193,7 +193,7 @@ Object {
193193
"email": "[email protected]",
194194
},
195195
"gender": "male",
196-
"languages": CoreDocumentArray [
196+
"languages": Array [
197197
Object {
198198
"language": "fr",
199199
"skill": "basic",
@@ -212,7 +212,7 @@ Object {
212212
"email": "[email protected]",
213213
},
214214
"gender": "male",
215-
"languages": CoreDocumentArray [
215+
"languages": Array [
216216
Object {
217217
"language": "es",
218218
"skill": "fluent",

examples/user/__tests__/queriesFromIndex-test.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,19 @@ import { MongoMemoryServer } from 'mongodb-memory-server';
55
import seed from '../data/seed';
66
import meta from '../index';
77

8-
let mongoServer;
8+
let mongoServer: MongoMemoryServer;
99
let con;
1010
let db;
1111
beforeAll(async () => {
12-
mongoServer = new MongoMemoryServer({ instance: { dbName: 'user' } });
13-
const mongoUri = await mongoServer.getConnectionString();
14-
mongoose.set('useCreateIndex', true);
15-
const opts = { useNewUrlParser: true, useUnifiedTopology: true };
16-
mongoose.connect(mongoUri, opts);
17-
con = await MongoClient.connect(mongoUri, opts);
12+
mongoServer = await MongoMemoryServer.create({ instance: { dbName: 'user' } });
13+
const mongoUri = mongoServer.getUri('user');
14+
mongoose.connect(mongoUri, { autoIndex: false });
15+
con = await MongoClient.connect(mongoUri);
1816
db = con.db('user');
1917
await seed(db);
20-
// take time to mongo create indexes if needed
21-
await new Promise((resolve) => setTimeout(resolve, 1000));
18+
await Promise.all(
19+
mongoose.modelNames().map((m) => mongoose.models[m].ensureIndexes({ background: false }))
20+
);
2221
});
2322

2423
afterAll(async () => {

examples/user/data/seed.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import fs from 'fs';
2-
import { ObjectID, Decimal128 } from 'mongodb';
2+
import { ObjectId, Decimal128 } from 'mongodb';
33

44
const collectionPrefix = 'user_';
55

@@ -14,7 +14,7 @@ export default async function seed(db: any) {
1414
const colName = `${collectionPrefix || ''}${file}`;
1515
const data = JSON.parse(fs.readFileSync(`${__dirname}/${file}.json`, 'utf8'));
1616
data.forEach((_, i) => {
17-
data[i]._id = ObjectID.createFromHexString(data[i]._id);
17+
data[i]._id = ObjectId.createFromHexString(data[i]._id);
1818
data[i].salaryDecimal = Decimal128.fromString(data[i].salaryDecimal);
1919
});
2020
if (collectionNames.indexOf(colName) > -1) {

examples/user/models/user.ts

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ export class UserDoc /* :: extends Mongoose$Document */ {
8585
};
8686

8787
gender: 'male' | 'female';
88+
89+
address?: any;
90+
someMixed?: any;
91+
salaryDecimal?: any;
8892
}
8993

9094
UserSchema.index({ gender: 1, age: -1 });

index.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import express from 'express';
33
import cors from 'cors';
44
import { ApolloServer } from 'apollo-server-express';
5+
import { ApolloServerPluginLandingPageGraphQLPlayground } from 'apollo-server-core';
56
import { altairExpress } from 'altair-express-middleware';
67
import { express as voyagerMiddleware } from 'graphql-voyager/middleware';
78
import http from 'http';
@@ -57,17 +58,21 @@ httpServer.listen(PORT, () => {
5758
);
5859
});
5960

60-
function addExample(example, uri) {
61+
async function addExample(example, uri) {
6162
example.uri = `/${uri}`;
6263

6364
const server = new ApolloServer({
6465
schema: example.schema,
6566
introspection: true,
66-
playground: {
67-
subscriptionEndpoint: process.env.SUBSCRIPTION_ENDPOINT || `ws://localhost:${PORT}/northwind`,
68-
},
69-
plugins: example.plugins,
67+
plugins: [
68+
ApolloServerPluginLandingPageGraphQLPlayground({
69+
subscriptionEndpoint:
70+
process.env.SUBSCRIPTION_ENDPOINT || `ws://localhost:${PORT}/northwind`,
71+
}),
72+
...(example.plugins || []),
73+
],
7074
});
75+
await server.start();
7176
server.applyMiddleware({ app: app as any, path: example.uri });
7277

7378
app.use(

mongooseConnection.ts

+2-12
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
import mongoose from 'mongoose';
22
import { MONGODB_URI } from './config';
33

4-
mongoose.Promise = Promise;
5-
6-
const opts = {
7-
useNewUrlParser: true,
8-
useCreateIndex: true,
9-
useFindAndModify: false,
10-
useUnifiedTopology: true,
11-
};
12-
13-
mongoose.connect(MONGODB_URI, opts);
14-
4+
mongoose.connect(MONGODB_URI);
155
export const { connection } = mongoose;
166
connection.on('error', (e) => {
177
if (e.message.code === 'ETIMEDOUT') {
188
console.log(e);
19-
mongoose.connect(MONGODB_URI, opts);
9+
mongoose.connect(MONGODB_URI);
2010
}
2111
console.log(e);
2212
});

package.json

+28-28
Original file line numberDiff line numberDiff line change
@@ -27,48 +27,48 @@
2727
},
2828
"homepage": "https://github.com/nodkz/graphql-compose-examples",
2929
"dependencies": {
30-
"@apollo/federation": "0.25.2",
31-
"altair-express-middleware": "4.0.6",
32-
"apollo-server-express": "2.25.2",
33-
"aws-sdk": "2.935.0",
34-
"concurrently": "^6.2.0",
30+
"@apollo/federation": "0.32.0",
31+
"altair-express-middleware": "4.0.9",
32+
"apollo-server-express": "3.3.0",
33+
"aws-sdk": "2.987.0",
34+
"concurrently": "6.2.1",
3535
"cors": "2.8.5",
3636
"dedent": "0.7.0",
3737
"elasticsearch": "16.7.2",
3838
"express": "4.17.1",
39-
"graphql": "15.5.1",
40-
"graphql-compose": "9.0.1",
39+
"graphql": "15.5.3",
40+
"graphql-compose": "9.0.3",
4141
"graphql-compose-aws": "5.2.1",
42-
"graphql-compose-connection": "8.2.0",
42+
"graphql-compose-connection": "8.2.1",
4343
"graphql-compose-elasticsearch": "5.0.0",
44-
"graphql-compose-mongoose": "9.4.2",
45-
"graphql-compose-pagination": "8.2.0",
46-
"graphql-query-complexity": "0.8.1",
44+
"graphql-compose-mongoose": "9.6.0",
45+
"graphql-compose-pagination": "8.3.0",
46+
"graphql-query-complexity": "0.9.0",
47+
"graphql-subscriptions": "^1.2.1",
4748
"graphql-voyager": "1.0.0-rc.31",
48-
"mongoose": "5.12.15",
49-
"subscriptions-transport-ws": "0.9.19",
50-
"ts-node": "^10.0.0",
51-
"typescript": "4.3.4"
49+
"mongoose": "6.0.5",
50+
"ts-node": "10.2.1",
51+
"typescript": "4.4.3"
5252
},
5353
"devDependencies": {
54-
"@types/jest": "26.0.23",
55-
"@types/lodash": "^4.14.168",
56-
"@typescript-eslint/eslint-plugin": "4.28.0",
57-
"@typescript-eslint/parser": "4.28.0",
54+
"@types/jest": "27.0.1",
55+
"@types/lodash": "4.14.172",
56+
"@typescript-eslint/eslint-plugin": "4.31.0",
57+
"@typescript-eslint/parser": "4.31.0",
5858
"cz-conventional-changelog": "3.3.0",
59-
"eslint": "7.29.0",
59+
"eslint": "7.32.0",
6060
"eslint-config-airbnb-base": "14.2.1",
6161
"eslint-config-prettier": "8.3.0",
62-
"eslint-plugin-import": "2.23.4",
63-
"eslint-plugin-prettier": "3.4.0",
64-
"jest": "27.0.5",
62+
"eslint-plugin-import": "2.24.2",
63+
"eslint-plugin-prettier": "4.0.0",
64+
"jest": "27.1.1",
6565
"jest-junit": "12.2.0",
66-
"mongodb-memory-server": "6.9.6",
67-
"nodemon": "2.0.7",
68-
"prettier": "2.3.2",
66+
"mongodb-memory-server": "7.4.0",
67+
"nodemon": "2.0.12",
68+
"prettier": "2.4.0",
6969
"rimraf": "3.0.2",
70-
"ts-jest": "27.0.3",
71-
"ts-node-dev": "^1.1.6"
70+
"ts-jest": "27.0.5",
71+
"ts-node-dev": "1.1.8"
7272
},
7373
"scripts": {
7474
"seed": "./node_modules/.bin/ts-node ./scripts/seed.ts",

scripts/seedHelpers.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ function getDBName(uri: string) {
1414
export async function mongoConnect(): Promise<Db & { con?: MongoClient }> {
1515
let db: Db & { con?: MongoClient };
1616
if (!db) {
17-
const con = await MongoClient.connect(MONGODB_URI, {
18-
useNewUrlParser: true,
19-
useUnifiedTopology: true,
20-
});
17+
const con = await MongoClient.connect(MONGODB_URI);
2118
db = con.db(getDBName(MONGODB_URI));
2219
db.con = con;
2320
}

0 commit comments

Comments
 (0)