{"version":3,"file":"brace-style.mjs","names":[],"sources":["../../../src/rules/code-style/brace-style.ts"],"sourcesContent":["import type {Rule} from 'eslint' // @ts-nocheck\nimport {createRequire} from 'node:module' /* eslint-disable ts/no-unsafe-member-access, ts/no-unsafe-assignment, ts/no-unsafe-argument, ts/strict-boolean-expressions */\n\nconst require = createRequire(import.meta.url)\n\nlet originalRule: Rule.RuleModule = {} as Rule.RuleModule\n\ntry {\n  const plugin = require('@stylistic/eslint-plugin')\n  originalRule = plugin.rules['brace-style']\n}\ncatch (e) {\n  console.error('Failed to load @stylistic/eslint-plugin/brace-style', e)\n}\n\nconst rule: Rule.RuleModule = {\n  meta: {\n    ...originalRule?.meta,\n    docs: {\n      ...originalRule?.meta?.docs,\n      description: 'Custom brace style that enforces 1tbs but allows separate lines for try-catch-finally'\n    }\n  },\n  create(context) {\n    if (!originalRule?.create) return {}\n\n    const {sourceCode} = context\n\n    return originalRule.create(Object.create(context, {\n      report: {\n        value: (descriptor: any) => {\n          const {node, loc} = descriptor\n          const startLoc = loc ? loc.start : node ? node.loc.start : null\n\n          if (startLoc) {\n            const index = sourceCode.getIndexFromLoc(startLoc)\n            const token = sourceCode.getTokenByRangeStart(index)\n\n            if (token) {\n              if (token.value === 'catch' || token.value === 'finally') return // If the token is 'catch' or 'finally', suppress\n\n              if (token.value === '}') { // If the token is '}', check if the next token is 'catch' or 'finally'\n                const nextToken = sourceCode.getTokenAfter(token)\n                if (nextToken && (nextToken.value === 'catch' || nextToken.value === 'finally')) return\n              }\n            }\n          }\n\n          context.report(descriptor)\n        },\n        writable: false,\n        configurable: false\n      }\n    }))\n  }\n}\n\nexport default rule\n"],"mappings":";;;AAGA,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,IAAI,eAAgC,EAAE;AAEtC,IAAI;AAEF,gBADe,QAAQ,2BAA2B,CAC5B,MAAM;SAEvB,GAAG;AACR,SAAQ,MAAM,uDAAuD,EAAE;;AAGzE,MAAM,OAAwB;CAC5B,MAAM;EACJ,GAAG,cAAc;EACjB,MAAM;GACJ,GAAG,cAAc,MAAM;GACvB,aAAa;GACd;EACF;CACD,OAAO,SAAS;AACd,MAAI,CAAC,cAAc,OAAQ,QAAO,EAAE;EAEpC,MAAM,EAAC,eAAc;AAErB,SAAO,aAAa,OAAO,OAAO,OAAO,SAAS,EAChD,QAAQ;GACN,QAAQ,eAAoB;IAC1B,MAAM,EAAC,MAAM,QAAO;IACpB,MAAM,WAAW,MAAM,IAAI,QAAQ,OAAO,KAAK,IAAI,QAAQ;AAE3D,QAAI,UAAU;KACZ,MAAM,QAAQ,WAAW,gBAAgB,SAAS;KAClD,MAAM,QAAQ,WAAW,qBAAqB,MAAM;AAEpD,SAAI,OAAO;AACT,UAAI,MAAM,UAAU,WAAW,MAAM,UAAU,UAAW;AAE1D,UAAI,MAAM,UAAU,KAAK;OACvB,MAAM,YAAY,WAAW,cAAc,MAAM;AACjD,WAAI,cAAc,UAAU,UAAU,WAAW,UAAU,UAAU,WAAY;;;;AAKvF,YAAQ,OAAO,WAAW;;GAE5B,UAAU;GACV,cAAc;GACf,EACF,CAAC,CAAC;;CAEN"}