UNPKG

eslint-plugin-sitecore-jss

Version:

An ESLint plugin to enforce correct usage of Sitecore JSS components

60 lines 2.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const enforce_text_component_1 = __importDefault(require("./enforce-text-component")); const enforce_richtext_component_1 = __importDefault(require("./enforce-richtext-component")); const enforce_image_component_1 = __importDefault(require("./enforce-image-component")); const enforce_link_component_1 = __importDefault(require("./enforce-link-component")); const enforce_file_component_1 = __importDefault(require("./enforce-file-component")); exports.default = { defaultOptions: [], meta: { type: "problem", docs: { description: "Ensures correct usage of all Sitecore JSS components.", recommended: "recommended", }, fixable: "code", schema: [], messages: { ...enforce_text_component_1.default.meta.messages, ...enforce_richtext_component_1.default.meta.messages, ...enforce_image_component_1.default.meta.messages, ...enforce_link_component_1.default.meta.messages, ...enforce_file_component_1.default.meta.messages, }, }, create(context) { // Collect all rule listeners const listeners = [ enforce_text_component_1.default.create(context), enforce_richtext_component_1.default.create(context), enforce_image_component_1.default.create(context), enforce_link_component_1.default.create(context), enforce_file_component_1.default.create(context), ]; // Merge all event listeners into one object const mergedListeners = {}; listeners.forEach((listener) => { Object.keys(listener).forEach((event) => { if (!mergedListeners[event]) { mergedListeners[event] = []; } const handler = listener[event]; if (typeof handler === "function") { mergedListeners[event].push(handler); } }); }); // Wrap each event handler so all handlers execute return Object.fromEntries(Object.entries(mergedListeners).map(([event, handlers]) => [ event, function (node) { handlers.forEach((handler) => handler(node)); }, ])); }, }; //# sourceMappingURL=enforce-all-components.js.map