{"version":3,"file":"no_window_negation.mjs","sources":["../../src/rules/no_window_negation.ts"],"sourcesContent":["/**\n * @module @nhtio/eslint-config/rules/no_window_negation\n */\n\nimport { createRule } from './common'\n\n/**\n * ESLint rule to disallow negation of `window` and suggest using `typeof window === \"undefined\"` instead.\n */\nconst noWindowNegation = createRule({\n  name: 'noWindowNegation',\n  meta: {\n    type: 'suggestion',\n    docs: {\n      description: 'disallow negation of `window` and suggest `typeof window === \"undefined\"`',\n    },\n    fixable: 'code',\n    schema: [],\n    messages: {\n      unexpectedNegation: 'Avoid using `!window`. Use `typeof window === \"undefined\"` instead.',\n    },\n  },\n  create(context) {\n    return {\n      UnaryExpression(node) {\n        if (\n          node.operator === '!' &&\n          node.argument.type === 'Identifier' &&\n          node.argument.name === 'window'\n        ) {\n          context.report({\n            node,\n            messageId: 'unexpectedNegation',\n            fix(fixer) {\n              return fixer.replaceText(node, 'typeof window === \"undefined\"')\n            },\n          })\n        }\n      },\n    }\n  },\n  defaultOptions: [],\n})\nexport default noWindowNegation\n"],"names":["noWindowNegation","createRule","context","node","fixer"],"mappings":";AASA,MAAMA,IAAmBC,EAAW;AAAA,EAClC,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,aAAa;AAAA,IAAA;AAAA,IAEf,SAAS;AAAA,IACT,QAAQ,CAAA;AAAA,IACR,UAAU;AAAA,MACR,oBAAoB;AAAA,IAAA;AAAA,EACtB;AAAA,EAEF,OAAOC,GAAS;AACd,WAAO;AAAA,MACL,gBAAgBC,GAAM;AACpB,QACEA,EAAK,aAAa,OAClBA,EAAK,SAAS,SAAS,gBACvBA,EAAK,SAAS,SAAS,YAEvBD,EAAQ,OAAO;AAAA,UACb,MAAAC;AAAA,UACA,WAAW;AAAA,UACX,IAAIC,GAAO;AACT,mBAAOA,EAAM,YAAYD,GAAM,+BAA+B;AAAA,UAChE;AAAA,QAAA,CACD;AAAA,MAEL;AAAA,IAAA;AAAA,EAEJ;AAAA,EACA,gBAAgB,CAAA;AAClB,CAAC;"}