"use strict"; var _definerule = require("../utils/define-rule"); var url = "https://nextjs.org/docs/messages/no-sync-scripts"; module.exports = (0, _definerule.defineRule)({ meta: { docs: { description: "Prevent synchronous scripts.", recommended: true, url: url }, type: "problem", schema: [] }, create: function create(context) { return { JSXOpeningElement: function JSXOpeningElement(node) { if (node.name.name !== "script") { return; } if (node.attributes.length === 0) { return; } var attributeNames = node.attributes.filter(function(attr) { return attr.type === "JSXAttribute"; }).map(function(attr) { return attr.name.name; }); if (attributeNames.includes("src") && !attributeNames.includes("async") && !attributeNames.includes("defer")) { context.report({ node: node, message: "Synchronous scripts should not be used. See: ".concat(url) }); } } }; } });