{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["\nimport { type Plugin, type UserConfig, version } from 'vite'\nimport vitePluginBabel from 'vite-plugin-babel'\nimport rolldownPluginBabel from '@rolldown/plugin-babel'\n\n// constants ==================================================================\n\nexport const PROJECT_NAME = '@open-xchange/vite-plugin-es-decorators'\n\nconst VITE_VERSION = parseInt(version.split('.')[0], 10)\n\n// plugin =====================================================================\n\n/**\n * Vite plugin that adds support for native ES decorators in JS source files.\n *\n * @returns\n *  The Vite plugin object.\n */\nexport default async function vitePluginEsDecorators(): Promise<Plugin> {\n\n  const plugin: Plugin = { name: PROJECT_NAME }\n  const babelPlugins = [['@babel/plugin-proposal-decorators', { version: '2023-11' }]]\n\n  if (VITE_VERSION >= 8) {\n    Object.assign(plugin, await rolldownPluginBabel({\n      presets: [{\n        preset: () => ({ plugins: babelPlugins }),\n        // only for source files with decorators\n        rolldown: { filter: { code: '@' } },\n      }],\n    }))\n  } else {\n    const babelPlugin = vitePluginBabel({\n      babelConfig: { babelrc: false, configFile: false, plugins: babelPlugins },\n    })\n    const config = babelPlugin.config as () => UserConfig\n    Object.assign(plugin, babelPlugin, {\n      config: () => Object.assign(config(), { esbuild: { target: 'es2022' } }),\n    })\n  }\n\n  return plugin\n}\n"],"mappings":";;;;AAOA,MAAa,eAAe;AAE5B,MAAM,eAAe,SAAS,QAAQ,MAAM,IAAI,CAAC,IAAI,GAAG;;;;;;;AAUxD,eAA8B,yBAA0C;CAEtE,MAAM,SAAiB,EAAE,MAAM,cAAc;CAC7C,MAAM,eAAe,CAAC,CAAC,qCAAqC,EAAE,SAAS,WAAW,CAAC,CAAC;AAEpF,KAAI,gBAAgB,EAClB,QAAO,OAAO,QAAQ,MAAM,oBAAoB,EAC9C,SAAS,CAAC;EACR,eAAe,EAAE,SAAS,cAAc;EAExC,UAAU,EAAE,QAAQ,EAAE,MAAM,KAAK,EAAE;EACpC,CAAC,EACH,CAAC,CAAC;MACE;EACL,MAAM,cAAc,gBAAgB,EAClC,aAAa;GAAE,SAAS;GAAO,YAAY;GAAO,SAAS;GAAc,EAC1E,CAAC;EACF,MAAM,SAAS,YAAY;AAC3B,SAAO,OAAO,QAAQ,aAAa,EACjC,cAAc,OAAO,OAAO,QAAQ,EAAE,EAAE,SAAS,EAAE,QAAQ,UAAU,EAAE,CAAC,EACzE,CAAC;;AAGJ,QAAO"}