eslint-plugin-sitecore-jss
Version:
An ESLint plugin to enforce correct usage of Sitecore JSS components
60 lines • 2.57 kB
JavaScript
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
;