UNPKG

@textlint/kernel

Version:
72 lines 2.16 kB
// LICENSE : MIT "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TextlintLintableRuleDescriptor = void 0; const rule_creator_helper_1 = require("./rule-creator-helper"); const fast_equals_1 = require("fast-equals"); /** * Textlint Rule Descriptor. * It handle RuleCreator and RuleOption. */ class TextlintLintableRuleDescriptor { constructor(textlintKernelRule) { this.textlintKernelRule = textlintKernelRule; (0, rule_creator_helper_1.assertRuleShape)(textlintKernelRule.rule, textlintKernelRule.ruleId); } get id() { return this.textlintKernelRule.ruleId; } /** * Rule module-self */ get rule() { return this.textlintKernelRule.rule; } /** * Return true if this rule is enabled. */ get enabled() { return this.rawOptions !== false; } /** * Return linter function * You should check hasLiner before call this. */ get linter() { return (0, rule_creator_helper_1.getLinter)(this.rule); } /** * Return normalized rule option object. * If the rule have not options, return `true` by default. */ get normalizedOptions() { // default: { ruleName: true } const DefaultRuleConfigValue = {}; if (typeof this.textlintKernelRule.options === "boolean" || this.textlintKernelRule.options === undefined) { return DefaultRuleConfigValue; } else { return this.textlintKernelRule.options; } } get rawOptions() { return this.textlintKernelRule.options; } /** * Return true if descriptor is same */ equals(descriptor) { return this.rule === descriptor.rule && (0, fast_equals_1.deepEqual)(this.normalizedOptions, descriptor.normalizedOptions); } toKernel() { return this.textlintKernelRule; } toJSON() { return { id: this.id, options: this.normalizedOptions }; } } exports.TextlintLintableRuleDescriptor = TextlintLintableRuleDescriptor; //# sourceMappingURL=TextlintLintableRuleDescriptor.js.map