Skip to content

Commit

Permalink
fix: update mongoose
Browse files Browse the repository at this point in the history
  • Loading branch information
Rupert Redington committed Sep 12, 2021
1 parent 09e5199 commit 4ae9152
Show file tree
Hide file tree
Showing 8 changed files with 73 additions and 122 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
"leaflet": "1.7.1",
"lodash": "4.17.21",
"micro": "9.3.4",
"mongoose": "5.12.14",
"mongoose": "6.0.5",
"mongoose-paginate": "5.0.3",
"next": "11.1.3-canary.15",
"prop-types": "15.7.2",
Expand Down
39 changes: 32 additions & 7 deletions src/api/db/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,39 @@ const Report = require('./report');
const Area = require('./area');
const MapGeo = require('./mapgeo');

const MONGODB_URI = process.env.MONGODB_URI;

if (!MONGODB_URI) {
throw new Error('Please provide the MONGODB_URI environment variable');
}

/**
* Global is used here to maintain a cached connection across hot reloads
* in development. This prevents connections growing exponentially
* during API Route usage.
*/
let cached = global.mongoose;

if (!cached) {
cached = global.mongoose = { conn: null, promise: null };
}

async function dbConnect() {
if (cached.conn) {
return cached.conn;
}

if (!cached.promise) {
cached.promise = mongoose.connect(MONGODB_URI).then((mongoose) => {
return mongoose;
});
}
cached.conn = await cached.promise;
return cached.conn;
}

module.exports = {
connect: function connect(url) {
mongoose.set('useCreateIndex', true);
mongoose.set('useNewUrlParser', true);
mongoose.set('useUnifiedTopology', true);
mongoose.set('useFindAndModify', false);
mongoose.connect(url);
},
dbConnect,
Loo,
Report,
Area,
Expand Down
4 changes: 2 additions & 2 deletions src/api/db/manage/areaToDatabase/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const config = require('./config.json');
const fs = require('fs');
const http = require('http');
const https = require('https');
const { connect, Area, Loo, MapGeo } = require('../../../db/');
const { dbConnect, Area, Loo, MapGeo } = require('../../../db/');
const cliProgress = require('cli-progress');
const topojson = require('topojson-server');
const toposimplify = require('topojson-simplify');
Expand Down Expand Up @@ -336,7 +336,7 @@ async function run() {
}

if (!dryrun) {
connect(process.env.MONGODB_URI);
await dbConnect();
}

let count = config.datasets.length;
Expand Down
6 changes: 3 additions & 3 deletions src/api/db/manage/generate/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const { Report, connect } = require('../../index.js');
const { Report, dbConnect } = require('../../index.js');
const mongoose = require('mongoose');
const cliProgress = require('cli-progress');

// use a main function so we can have await niceties
async function main() {
await connect(process.env.MONGODB_URI);
await dbConnect();
try {
// check they're serious
if (!process.argv.slice(2).includes('--confirm')) {
Expand Down Expand Up @@ -42,7 +42,7 @@ async function main() {
let root = report;
// Traverse each linked report list to find the root report.
while (root.next) {
await root.populate('next').execPopulate();
await root.populate('next');
root = root.next;
}
// Generate a loo from each root report and save it.
Expand Down
2 changes: 1 addition & 1 deletion src/api/db/report.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ const ReportSchema = new mongoose.Schema(

if (this.previous) {
// generate a loo from previous reports
await this.populate('previous').execPopulate();
await this.populate('previous');
const looBefore = await this.previous.generateLoo();
this.depopulate('previous');

Expand Down
6 changes: 3 additions & 3 deletions src/api/resolvers.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const looInfoResolver = (property) => {

const resolvers = {
Query: {
loo: (parent, args) => Loo.findById(args.id),
loo: async (parent, args) => await Loo.findById(args.id),
loos: async (parent, args, context) => {
const REQUIRED_PERMISSION = 'VIEW_CONTRIBUTOR_INFO';

Expand Down Expand Up @@ -100,8 +100,8 @@ const resolvers = {
page: res.page,
};
},
loosByProximity: (parent, args) =>
Loo.findNear(args.from.lng, args.from.lat, args.from.maxDistance),
loosByProximity: async (parent, args) =>
await Loo.findNear(args.from.lng, args.from.lat, args.from.maxDistance),
areas: async (parent, args) => {
const data = await Area.find({}, { name: 1, type: 1 }).exec();

Expand Down
5 changes: 3 additions & 2 deletions src/pages/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ const client = jwksClient({
jwksUri: `${process.env.AUTH0_ISSUER_BASE_URL}/.well-known/jwks.json`,
});

const { connect } = require('../../api/db');
connect(process.env.MONGODB_URI);
const { dbConnect } = require('../../api/db');

function getKey(header, cb) {
client.getSigningKey(header.kid, function (err, key) {
Expand Down Expand Up @@ -98,6 +97,8 @@ export const config = {
const startServer = server.start();

export default async function handler(req, res) {
// We'll need a mongodb connection
await dbConnect();
await startServer;
await server.createHandler({
path: '/api',
Expand Down
131 changes: 28 additions & 103 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1865,13 +1865,6 @@
"@types/connect" "*"
"@types/node" "*"

"@types/bson@*":
version "4.2.0"
resolved "https://registry.npmjs.org/@types/bson/-/bson-4.2.0.tgz"
integrity sha512-ELCPqAdroMdcuxqwMgUpifQyRoTpyYCNr1V9xKyF40VsBobsj+BbWNRvwGchMgBPGqkw655ypkjj2MEF5ywVwg==
dependencies:
bson "*"

"@types/cacheable-request@^6.0.1":
version "6.0.2"
resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz"
Expand Down Expand Up @@ -2019,14 +2012,6 @@
resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz"
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==

"@types/mongodb@^3.5.27":
version "3.6.20"
resolved "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz"
integrity sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==
dependencies:
"@types/bson" "*"
"@types/node" "*"

"@types/node@*":
version "16.7.10"
resolved "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz"
Expand Down Expand Up @@ -2705,24 +2690,11 @@ binary-extensions@^2.0.0:
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==

bl@^2.2.1:
version "2.2.1"
resolved "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz"
integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==
dependencies:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"

bluebird@3.0.5:
version "3.0.5"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.0.5.tgz"
integrity sha1-L/nQfJs+2ynW0oD+B1KDZefs05I=

bluebird@3.5.1:
version "3.5.1"
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz"
integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==

bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
Expand Down Expand Up @@ -2848,18 +2820,13 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"

bson@*, bson@^4.5.1:
bson@^4.2.2, bson@^4.5.1:
version "4.5.1"
resolved "https://registry.npmjs.org/bson/-/bson-4.5.1.tgz"
integrity sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==
dependencies:
buffer "^5.6.0"

bson@^1.1.4:
version "1.1.6"
resolved "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz"
integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==

buffer-equal-constant-time@1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
Expand Down Expand Up @@ -3741,14 +3708,7 @@ debug@2, debug@^2.6.9:
dependencies:
ms "2.0.0"

debug@3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz"
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
dependencies:
ms "2.0.0"

debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
debug@4, debug@4.x, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
version "4.3.2"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
Expand Down Expand Up @@ -3836,7 +3796,7 @@ delegate@^3.1.2:
resolved "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz"
integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==

denque@^1.4.1, denque@^1.5.0:
denque@^1.5.0:
version "1.5.1"
resolved "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz"
integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
Expand Down Expand Up @@ -6397,20 +6357,7 @@ mongodb-connection-string-url@^2.0.0:
"@types/whatwg-url" "^8.2.1"
whatwg-url "^9.1.0"

mongodb@3.6.8:
version "3.6.8"
resolved "https://registry.npmjs.org/mongodb/-/mongodb-3.6.8.tgz"
integrity sha512-sDjJvI73WjON1vapcbyBD3Ao9/VN3TKYY8/QX9EPbs22KaCSrQ5rXo5ZZd44tWJ3wl3FlnrFZ+KyUtNH6+1ZPQ==
dependencies:
bl "^2.2.1"
bson "^1.1.4"
denque "^1.4.1"
optional-require "^1.0.3"
safe-buffer "^5.1.2"
optionalDependencies:
saslprep "^1.0.0"

mongodb@^4.0.1:
mongodb@4.1.1, mongodb@^4.0.1:
version "4.1.1"
resolved "https://registry.npmjs.org/mongodb/-/mongodb-4.1.1.tgz"
integrity sha512-fbACrWEyvr6yl0sSiCGV0sqEiBwTtDJ8iSojmkDjAfw9JnOZSAkUyv9seFSPYhPPKwxp1PDtyjvBNfMDz0WBLQ==
Expand All @@ -6421,50 +6368,40 @@ mongodb@^4.0.1:
optionalDependencies:
saslprep "^1.0.0"

mongoose-legacy-pluralize@1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz"
integrity sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==

mongoose-paginate@5.0.3:
version "5.0.3"
resolved "https://registry.npmjs.org/mongoose-paginate/-/mongoose-paginate-5.0.3.tgz"
integrity sha1-165J7Vv2Tx9692IOqGW2cFjFU3E=
dependencies:
bluebird "3.0.5"

mongoose@5.12.14:
version "5.12.14"
resolved "https://registry.npmjs.org/mongoose/-/mongoose-5.12.14.tgz"
integrity sha512-1lMRY8cfGYFWHqe5DLnVgNQDyD0fEbSoWIQe9Mllt/ZtayZ5XUFQt+o5VKrB44vsT5cLNzgwEFO0NvwTwqLluQ==
mongoose@6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.0.5.tgz#42648005d13b49261c757607d1f23761b59a610d"
integrity sha512-1MoG52oosjEK8z45DHQVbakP6DJG1sbQI/ZASBW8sZRV+rCaG/pC3L3wWjrsiped/2+uhvanWM9C89F2n6bQ3w==
dependencies:
"@types/mongodb" "^3.5.27"
bson "^1.1.4"
bson "^4.2.2"
kareem "2.3.2"
mongodb "3.6.8"
mongoose-legacy-pluralize "1.0.2"
mpath "0.8.3"
mquery "3.2.5"
mongodb "4.1.1"
mpath "0.8.4"
mquery "4.0.0"
ms "2.1.2"
regexp-clone "1.0.0"
safe-buffer "5.2.1"
sift "13.5.2"
sliced "1.0.1"

mpath@0.8.3:
version "0.8.3"
resolved "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz"
integrity sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==
mpath@0.8.4:
version "0.8.4"
resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.4.tgz#6b566d9581621d9e931dd3b142ed3618e7599313"
integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==

mquery@3.2.5:
version "3.2.5"
resolved "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz"
integrity sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==
mquery@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.0.tgz#6c62160ad25289e99e0840907757cdfd62bde775"
integrity sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==
dependencies:
bluebird "3.5.1"
debug "3.1.0"
debug "4.x"
regexp-clone "^1.0.0"
safe-buffer "5.1.2"
sliced "1.0.1"

ms@2.0.0:
Expand Down Expand Up @@ -6813,13 +6750,6 @@ optimism@^0.16.1:
"@wry/context" "^0.6.0"
"@wry/trie" "^0.3.0"

optional-require@^1.0.3:
version "1.1.7"
resolved "https://registry.npmjs.org/optional-require/-/optional-require-1.1.7.tgz"
integrity sha512-cIeRZocXsZnZYn+SevbtSqNlLbeoS4mLzuNn4fvXRMDRNhTGg0sxuKXl0FnZCtnew85LorNxIbZp5OeliILhMw==
dependencies:
require-at "^1.0.6"

optionator@^0.9.1:
version "0.9.1"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
Expand Down Expand Up @@ -7524,7 +7454,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.5.0, readable-stre
string_decoder "^1.1.1"
util-deprecate "^1.0.1"

readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6:
readable-stream@^2.0.2, readable-stream@^2.3.3, readable-stream@^2.3.6:
version "2.3.7"
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
Expand Down Expand Up @@ -7660,11 +7590,6 @@ replaceall@^0.1.6:
resolved "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz"
integrity sha1-gdgax663LX9cSUKt8ml6MiBojY4=

require-at@^1.0.6:
version "1.0.6"
resolved "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz"
integrity sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==

require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
Expand Down Expand Up @@ -7797,16 +7722,16 @@ rxjs@^6.3.3, rxjs@^6.6.0, rxjs@^6.6.7:
dependencies:
tslib "^1.9.0"

safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==

safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==

safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==

"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
Expand Down

0 comments on commit 4ae9152

Please sign in to comment.