diffusion
Version:
Diffusion JavaScript client
40 lines (39 loc) • 1.22 kB
JavaScript
;
/**
* @module Topics
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractTopicSelector = void 0;
var util = require("./../topics/topic-path-utils");
/**
* An abstract implementation of {@link TopicSelector}
*/
var AbstractTopicSelector = /** @class */ (function () {
/**
* Create a new AbstractTopicSelector
*
* @param type the type of this selector
* @param prefix the maximum topic path prefix from this selector
* @param expression the original expression of this selector
*/
function AbstractTopicSelector(type, prefix, expression) {
this.type = type;
this.prefix = prefix;
this.expression = expression;
}
/**
* @inheritdoc
*/
AbstractTopicSelector.prototype.selects = function (topicPath) {
var canonical = util.canonicalise(topicPath);
return canonical.indexOf(this.prefix) === 0 && this.doSelects(canonical);
};
/**
* @inheritdoc
*/
AbstractTopicSelector.prototype.toString = function () {
return this.expression;
};
return AbstractTopicSelector;
}());
exports.AbstractTopicSelector = AbstractTopicSelector;