Skip to content

Commit 205a7c3

Browse files
committed
fix(NODE-5197): make mdoe enum
1 parent cb3bb53 commit 205a7c3

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

src/connection_string.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import {
2929
} from './mongo_logger';
3030
import { ReadConcern, type ReadConcernLevel } from './read_concern';
3131
import { ReadPreference, type ReadPreferenceMode } from './read_preference';
32-
import { ServerMonitoringModes } from './sdam/monitor';
32+
import { ServerMonitoringMode } from './sdam/monitor';
3333
import type { TagSet } from './sdam/server_description';
3434
import {
3535
DEFAULT_PK_FACTORY,
@@ -1059,7 +1059,7 @@ export const OPTIONS = {
10591059
serverMonitoringMode: {
10601060
default: 'auto',
10611061
transform({ values: [value] }) {
1062-
if (!ServerMonitoringModes.includes(value as string)) {
1062+
if (!Object.values(ServerMonitoringMode).includes(value as any)) {
10631063
throw new MongoParseError(
10641064
'serverMonitoringMode must be one of `auto`, `poll`, or `stream`'
10651065
);

src/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -490,8 +490,7 @@ export type {
490490
MonitorPrivate,
491491
RTTPinger,
492492
RTTPingerOptions,
493-
ServerMonitoringMode,
494-
ServerMonitoringModes
493+
ServerMonitoringMode
495494
} from './sdam/monitor';
496495
export type { Server, ServerEvents, ServerOptions, ServerPrivate } from './sdam/server';
497496
export type {

src/sdam/monitor.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,14 @@ function isInCloseState(monitor: Monitor) {
4646
}
4747

4848
/** @public */
49-
export const ServerMonitoringModes = ['auto', 'poll', 'stream'];
49+
export const ServerMonitoringMode = Object.freeze({
50+
auto: 'auto',
51+
poll: 'poll',
52+
stream: 'stream'
53+
} as const);
54+
5055
/** @public */
51-
export type ServerMonitoringMode = (typeof ServerMonitoringModes)[number];
56+
export type ServerMonitoringMode = (typeof ServerMonitoringMode)[keyof typeof ServerMonitoringMode];
5257

5358
/** @internal */
5459
export interface MonitorPrivate {
@@ -230,8 +235,8 @@ function useStreamingProtocol(monitor: Monitor, topologyVersion: TopologyVersion
230235
if (topologyVersion == null) return false;
231236

232237
const serverMonitoringMode = monitor.options.serverMonitoringMode;
233-
if (serverMonitoringMode === 'poll') return false;
234-
if (serverMonitoringMode === 'stream') return true;
238+
if (serverMonitoringMode === ServerMonitoringMode.poll) return false;
239+
if (serverMonitoringMode === ServerMonitoringMode.stream) return true;
235240

236241
// If we are in auto mode, we need to figure out if we're in a FaaS
237242
// environment or not and choose the appropriate mode.

0 commit comments

Comments
 (0)