shMonifactory/kubejs/dx/eslint-plugin/custom-plugin.mjs
2025-09-14 20:52:18 +03:00

33 lines
911 B
JavaScript

/**
* Custom ESLint plugin for Monifactory's KubeJS
*/
import commentHeader from "./comment-header.mjs"
import recipeSpacing from "./recipe-spacing.mjs"
import multiblockDeclaration from "./multiblock-declaration.mjs"
import callChains from "./call-chains.mjs"
/**
* Creates a custom ESLint plugin
* @param {string} name Plugin name
* @param {Record<string, *>} rules Plugin rules
*/
function customPluginWithAllRulesError(name, rules) {
return {
plugins: {
[name]: { rules }
},
rules: Object.fromEntries(
Object.entries(rules).map(([rule]) =>
[`${name}/${rule}`, "error"]
)
)
}
}
export const MoniLabs = customPluginWithAllRulesError("moni-labs", {
"comment-header": commentHeader,
"recipe-spacing": recipeSpacing,
"multiblock-declaration": multiblockDeclaration,
"call-chains": callChains
})