textlint
Version:
The pluggable linting tool for text and markdown.
45 lines • 1.59 kB
JavaScript
import { loadConfig } from "@textlint/config-loader";
import { TextlintKernelDescriptor } from "@textlint/kernel";
import path from "node:path";
import textPlugin from "@textlint/textlint-plugin-text";
import markdownPlugin from "@textlint/textlint-plugin-markdown";
import debug_ from "debug";
const debug = debug_("textlint:loader:TextlintrcLoader");
// Built-in plugins should be loaded from same directory with `textlint` package
export const builtInPlugins = [
{
pluginId: "@textlint/textlint-plugin-text",
plugin: textPlugin,
options: true
},
{
pluginId: "@textlint/textlint-plugin-markdown",
plugin: markdownPlugin,
options: true
}
];
export const loadBuiltinPlugins = async () => {
return new TextlintKernelDescriptor({
rules: [],
filterRules: [],
plugins: builtInPlugins
});
};
export const loadTextlintrc = async (options) => {
const result = await loadConfig({
configFilePath: options === null || options === void 0 ? void 0 : options.configFilePath,
node_modulesDir: options === null || options === void 0 ? void 0 : options.node_modulesDir
});
if (!result.ok) {
debug("loadTextlintrc failed: %o", result);
return loadBuiltinPlugins();
}
const { rules, plugins, filterRules } = result.config;
return new TextlintKernelDescriptor({
rules,
plugins: [...builtInPlugins, ...plugins],
filterRules,
configBaseDir: path.dirname(result.configFilePath)
});
};
//# sourceMappingURL=TextlintrcLoader.js.map