module.exports = function (context) { return { JSXOpeningElement(node) { if (node.name.name !== 'script') { return } if (node.attributes.length === 0) { return } const attributeNames = node.attributes .filter((attr) => attr.type === 'JSXAttribute') .map((attr) => attr.name.name) if ( attributeNames.includes('src') && !attributeNames.includes('async') && !attributeNames.includes('defer') ) { context.report({ node, message: 'External synchronous scripts are forbidden. See: https://nextjs.org/docs/messages/no-sync-scripts', }) } }, } } module.exports.schema = []