service-model
Version:
An object oriented web service framework inspired by Windows Communication Foundation.
35 lines (34 loc) • 1.27 kB
JavaScript
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var semver_1 = require("semver");
var messageFilter_1 = require("./messageFilter");
/**
* @hidden
*/
var VersionMessageFilter = (function (_super) {
__extends(VersionMessageFilter, _super);
function VersionMessageFilter(version) {
_super.call(this);
this._cache = new Map();
if (!version) {
throw new Error("Missing required argument 'version'.");
}
this._version = version;
}
VersionMessageFilter.prototype.match = function (message) {
var acceptVersion = message.headers.get("Accept-Version");
if (!acceptVersion)
return true;
var satisfies = this._cache.get(acceptVersion);
if (satisfies === undefined) {
satisfies = semver_1.satisfies(this._version, acceptVersion);
this._cache.set(acceptVersion, satisfies);
}
return satisfies;
};
return VersionMessageFilter;
})(messageFilter_1.MessageFilter);
exports.VersionMessageFilter = VersionMessageFilter;