UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

30 lines 1.26 kB
import semver from 'semver'; import BadDataError from '../error/bad-data-error.js'; import { mustParseStrictSemVer, parseStrictSemVer } from '../util/semver.js'; export class ClientSpecService { constructor(config) { this.clientSpecHeader = 'Unleash-Client-Spec'; this.clientSpecFeatures = { segments: mustParseStrictSemVer('4.2.0'), deltaApi: mustParseStrictSemVer('5.2.0'), }; this.logger = config.getLogger('services/capability-service.ts'); } requestSupportsSpec(request, feature) { return this.versionSupportsSpec(feature, request.header(this.clientSpecHeader)); } versionSupportsSpec(feature, version) { if (!version) { return false; } const parsedVersion = parseStrictSemVer(version); if (!parsedVersion && !/^\d/.test(version)) { throw new BadDataError(`Invalid prefix in the ${this.clientSpecHeader} header: "${version}".`); } if (!parsedVersion) { throw new BadDataError(`Invalid SemVer in the ${this.clientSpecHeader} header: "${version}".`); } return semver.gte(parsedVersion, this.clientSpecFeatures[feature]); } } //# sourceMappingURL=client-spec-service.js.map