UNPKG

@arturwojnar/hermes-mongodb

Version:

Production-Ready TypeScript Outbox Pattern for MongoDB

34 lines 1.11 kB
import { NotSupportedMongoVersionError, parseSemVer } from '@arturwojnar/hermes'; import { SupportedMajorMongoVersions } from './consts.js'; export const generateVersionPolicies = async (db) => { const buildInfo = (await db.admin().buildInfo()); const semver = parseSemVer(buildInfo.version); const major = semver.major || 0; const throwNotSupportedError = () => { throw new NotSupportedMongoVersionError({ currentVersion: buildInfo.version, supportedVersions: SupportedMajorMongoVersions, }); }; const supportedVersionCheckPolicy = () => { if (major < 5) { throwNotSupportedError(); } }; const changeStreamFullDocumentValuePolicy = (() => { if (major >= 6) { return 'whenAvailable'; } else if (major === 5) { return 'updateLookup'; } else { throwNotSupportedError(); } }); return { supportedVersionCheckPolicy, changeStreamFullDocumentValuePolicy, }; }; //# sourceMappingURL=versionPolicies.js.map