"use strict"; var _definerule = require("../utils/define-rule"); var url = 'https://nextjs.org/docs/messages/no-script-component-in-head'; module.exports = (0, _definerule.defineRule)({ meta: { docs: { description: 'Prevent usage of `next/script` in `next/head` component.', recommended: true, url: url }, type: 'problem', schema: [] }, create: function create(context) { var isNextHead = null; return { ImportDeclaration: function ImportDeclaration(node) { if (node.source.value === 'next/head') { isNextHead = node.source.value; } if (node.source.value !== 'next/script') { return; } }, JSXElement: function JSXElement(node) { if (!isNextHead) { return; } if (node.openingElement && node.openingElement.name && node.openingElement.name.name !== 'Head') { return; } var scriptTag = node.children.find(function(child) { return child.openingElement && child.openingElement.name && child.openingElement.name.name === 'Script'; }); if (scriptTag) { context.report({ node: node, message: "`next/script` should not be used in `next/head` component. Move `