Skip to content

Commit a95bfb4

Browse files
authored
feat: Upgrade mongodb to v6.0.0 (#569)
BREAKING CHANGE: `mongodb` minimum version is now v6.* BREAKING CHANGE: `node` minimum version is now v16.20.1
1 parent 9462ac6 commit a95bfb4

File tree

9 files changed

+41
-56
lines changed

9 files changed

+41
-56
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
],
1717
"license": "MIT",
1818
"engines": {
19-
"node": ">=16.0.0"
19+
"node": ">=16.20.1"
2020
},
2121
"type": "module",
2222
"types": "./esm/index.d.ts",
@@ -77,7 +77,7 @@
7777
"jsdoc-api": "8.0.0",
7878
"jsdoc-parse": "6.2.0",
7979
"lint-staged": "14.0.0",
80-
"mongodb": "5.8.0",
80+
"mongodb": "6.0.0",
8181
"mongodb-memory-server": "8.15.1",
8282
"mongoose": "6.3.5",
8383
"pinst": "3.0.0",
@@ -88,7 +88,7 @@
8888
"typescript": "5.2.2"
8989
},
9090
"peerDependencies": {
91-
"mongodb": "^5.0.0"
91+
"mongodb": "^6.0.0"
9292
},
9393
"commitlint": {
9494
"extends": [

pnpm-lock.yaml

Lines changed: 19 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/__tests__/model.test.ts

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,9 @@ describe('model', () => {
150150
// @ts-expect-error Ignore mock function
151151
findOne: jest.fn().mockResolvedValue(doc),
152152
// @ts-expect-error Ignore mock function
153-
findOneAndDelete: jest.fn().mockResolvedValue({
154-
ok: 1,
155-
value: doc,
156-
}),
153+
findOneAndDelete: jest.fn().mockResolvedValue(doc),
157154
// @ts-expect-error Ignore mock function
158-
findOneAndUpdate: jest.fn().mockResolvedValue({
159-
ok: 1,
160-
value: doc,
161-
}),
155+
findOneAndUpdate: jest.fn().mockResolvedValue(doc),
162156
// @ts-expect-error Ignore mock function
163157
insertMany: jest.fn().mockResolvedValue({
164158
acknowledged: true,
@@ -1235,11 +1229,9 @@ describe('model', () => {
12351229
});
12361230

12371231
test('throws error on failure', async () => {
1238-
(collection.findOneAndDelete as jest.Mocked<Collection['findOneAndDelete']>)
1239-
// @ts-expect-error Ignore mock value
1240-
.mockResolvedValue({
1241-
ok: 0,
1242-
});
1232+
(
1233+
collection.findOneAndDelete as jest.Mocked<Collection['findOneAndDelete']>
1234+
).mockRejectedValueOnce(new Error('findOneAndDelete failed'));
12431235

12441236
await expect(simpleModel.findOneAndDelete({ foo: 'bar' })).rejects.toThrow(
12451237
'findOneAndDelete failed'
@@ -1288,9 +1280,9 @@ describe('model', () => {
12881280
});
12891281

12901282
test('throws error on failure', async () => {
1291-
(collection.findOneAndUpdate as jest.Mocked<Collection['findOneAndUpdate']>)
1292-
// @ts-expect-error Ignore mock value
1293-
.mockResolvedValue({ ok: 0 });
1283+
(
1284+
collection.findOneAndUpdate as jest.Mocked<Collection['findOneAndUpdate']>
1285+
).mockRejectedValueOnce(new Error('findOneAndUpdate failed'));
12941286

12951287
await expect(
12961288
simpleModel.findOneAndUpdate({ foo: 'bar' }, { $set: { bar: 123 } })
@@ -2515,9 +2507,9 @@ describe('model', () => {
25152507
});
25162508

25172509
test('throws error on failure', async () => {
2518-
(collection.findOneAndUpdate as jest.Mocked<Collection['findOneAndUpdate']>)
2519-
// @ts-expect-error Ignore mock function
2520-
.mockResolvedValue({ ok: false });
2510+
(
2511+
collection.findOneAndUpdate as jest.Mocked<Collection['findOneAndUpdate']>
2512+
).mockRejectedValueOnce(new Error('findOneAndUpdate failed'));
25212513

25222514
await expect(simpleModel.upsert({ foo: 'foo' }, { $set: { bar: 123 } })).rejects.toThrow(
25232515
'findOneAndUpdate failed'

src/__tests__/mongodbTypes.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ describe('mongodb types', () => {
9595
});
9696

9797
// all BSON types can be used as query values
98-
expectType<PaprFilter<TestDocument>>({ binary: new Binary('', 2) });
98+
expectType<PaprFilter<TestDocument>>({ binary: new Binary([], 2) });
9999
expectType<PaprFilter<TestDocument>>({ bsonSymbol: new BSONSymbol('hi') });
100100
expectType<PaprFilter<TestDocument>>({ code: new Code(() => true) });
101101
expectType<PaprFilter<TestDocument>>({ double: new Double(123.45) });
@@ -509,7 +509,7 @@ describe('mongodb types', () => {
509509
});
510510

511511
// all BSON types can be used as update values
512-
expectType<PaprUpdateFilter<TestDocument>>({ $set: { binary: new Binary('', 2) } });
512+
expectType<PaprUpdateFilter<TestDocument>>({ $set: { binary: new Binary([], 2) } });
513513
expectType<PaprUpdateFilter<TestDocument>>({
514514
$set: { bsonSymbol: new BSONSymbol('hi') },
515515
});

src/model.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -779,11 +779,7 @@ export function build<TSchema extends BaseSchema, TOptions extends SchemaOptions
779779
} as FindOneAndDeleteOptions
780780
);
781781

782-
if (result.ok === 1) {
783-
return result.value as ProjectionType<TSchema, TProjection>;
784-
}
785-
786-
throw new Error('findOneAndDelete failed');
782+
return result as ProjectionType<TSchema, TProjection>;
787783
});
788784

789785
/**
@@ -848,11 +844,7 @@ export function build<TSchema extends BaseSchema, TOptions extends SchemaOptions
848844
} as FindOneAndUpdateOptions
849845
);
850846

851-
if (result.ok === 1) {
852-
return result.value as ProjectionType<TSchema, TProjection>;
853-
}
854-
855-
throw new Error('findOneAndUpdate failed');
847+
return result as ProjectionType<TSchema, TProjection>;
856848
});
857849

858850
/**

tests/cjs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"type": "commonjs",
33
"dependencies": {
44
"papr": "file:../../build/package",
5-
"mongodb": "5.1.0"
5+
"mongodb": "6.0.0"
66
}
77
}

tests/esm/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
"type": "module",
33
"dependencies": {
44
"papr": "file:../../build/package",
5-
"mongodb": "5.1.0"
5+
"mongodb": "6.0.0"
66
}
77
}

tests/ts-nodenext/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"type": "module",
33
"dependencies": {
44
"papr": "file:../../build/package",
5-
"mongodb": "5.1.0",
5+
"mongodb": "6.0.0",
66
"ts-expect": "1.3.0",
77
"typescript": "5.0.4"
88
}

tests/ts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"type": "module",
33
"dependencies": {
44
"papr": "file:../../build/package",
5-
"mongodb": "5.1.0",
5+
"mongodb": "6.0.0",
66
"ts-expect": "1.3.0",
77
"typescript": "5.0.4"
88
}

0 commit comments

Comments
 (0)