{"version":3,"file":"index.cjs","names":["exports"],"sources":["../src/index.ts"],"sourcesContent":["import type { Plugin } from 'rolldown'\n\nconst generateEntry = (name: string, exports: string[]): [string, string] => {\n  const entryPointFunctions = exports.map((exp) => `function ${exp}() {}`).join('\\n')\n  const globalAssignments = exports.map((exp) => `this.${exp} = ${name}.${exp};`).join('\\n')\n  return [entryPointFunctions, globalAssignments]\n}\n\nconst plugin = (): Plugin => {\n  return {\n    name: 'rolldown-gas-plugin',\n    outputOptions: (outputOptions) => {\n      // 出力フォーマットがIIFEでない場合は何もしない\n      if (!outputOptions.format || outputOptions.format !== 'iife') {\n        return\n      }\n      // 名前が指定されていない場合はデフォルトで '_' を設定\n      if (!outputOptions.name) {\n        outputOptions.name = '_'\n      }\n      return outputOptions\n    },\n    generateBundle(outputOptions, bundle) {\n      // 出力フォーマットがIIFEでない場合は何もしない\n      if (!outputOptions.format || outputOptions.format !== 'iife') {\n        return\n      }\n      const name = outputOptions.name\n      if (!name) {\n        throw new Error('Output name is required for IIFE format.')\n      }\n\n      Object.values(bundle)\n        .filter((file) => file.type === 'chunk')\n        .forEach((chunk) => {\n          const code = chunk.code\n          const [entryPointFunctions, globalAssignments] = generateEntry(name, chunk.exports || [])\n          chunk.code = `${entryPointFunctions}\\n${code}\\n${globalAssignments}`\n        })\n    },\n  }\n}\n\nexport default plugin\n"],"mappings":";;;AAEA,MAAM,iBAAiB,MAAc,cAAwC;AAG3E,QAAO,CAFqBA,UAAQ,KAAK,QAAQ,YAAY,IAAI,OAAO,CAAC,KAAK,KAAK,EACzDA,UAAQ,KAAK,QAAQ,QAAQ,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,CAC3C;;AAGjD,MAAM,eAAuB;AAC3B,QAAO;EACL,MAAM;EACN,gBAAgB,kBAAkB;AAEhC,OAAI,CAAC,cAAc,UAAU,cAAc,WAAW,OACpD;AAGF,OAAI,CAAC,cAAc,KACjB,eAAc,OAAO;AAEvB,UAAO;;EAET,eAAe,eAAe,QAAQ;AAEpC,OAAI,CAAC,cAAc,UAAU,cAAc,WAAW,OACpD;GAEF,MAAM,OAAO,cAAc;AAC3B,OAAI,CAAC,KACH,OAAM,IAAI,MAAM,2CAA2C;AAG7D,UAAO,OAAO,OAAO,CAClB,QAAQ,SAAS,KAAK,SAAS,QAAQ,CACvC,SAAS,UAAU;IAClB,MAAM,OAAO,MAAM;IACnB,MAAM,CAAC,qBAAqB,qBAAqB,cAAc,MAAM,MAAM,WAAW,EAAE,CAAC;AACzF,UAAM,OAAO,GAAG,oBAAoB,IAAI,KAAK,IAAI;KACjD;;EAEP;;AAGH,kBAAe"}