@textlint/kernel
Version:
textlint kernel is core logic by pure JavaScript.
64 lines • 1.86 kB
JavaScript
import { filterDuplicateDescriptor } from "./DescriptorUtil";
/**
* Collection class of TextlintPluginDescriptor
*/
export class TextlintPluginDescriptors {
constructor(pluginDescriptorList = []) {
this.pluginDescriptorList = pluginDescriptorList;
}
/**
* Return enabled descriptors
*/
get descriptors() {
return this.pluginDescriptorList.filter((descriptor) => {
return descriptor.enabled;
});
}
/**
* Return all descriptors that include disabled descriptors
*/
get allDescriptors() {
return this.pluginDescriptorList;
}
/**
* Return available extensions
* It is not includes disabled plugin's extensions.
*/
get availableExtensions() {
return this.descriptors.reduce((extensions, descriptor) => {
return extensions.concat(descriptor.availableExtensions);
}, []);
}
/**
* find PluginDescriptor with extension.
* This is forward match.
*/
findPluginDescriptorWithExt(ext) {
return this.descriptors.find((descriptor) => {
return descriptor.availableExtensions.includes(ext);
});
}
/**
* filter duplicated descriptors
*/
withoutDuplicated() {
const newDescriptorList = filterDuplicateDescriptor(this.pluginDescriptorList);
return new TextlintPluginDescriptors(newDescriptorList);
}
/**
* Convert this to TextlintKernel rules format
* @returns {Array}
*/
toKernelPluginsFormat() {
return this.descriptors.map((descriptor) => {
return descriptor.toKernel();
});
}
toJSON() {
return this.descriptors.map((descriptor) => {
return descriptor.toJSON();
});
}
}
//# sourceMappingURL=TextlintPluginDescriptors.js.map
;