{"version":3,"names":["_helperPluginUtils","require","PIPELINE_PROPOSALS","TOPIC_TOKENS","documentationURL","_default","exports","default","declare","api","proposal","topicToken","assertVersion","includes","proposalList","map","p","join","Error","topicTokenList","t","name","manipulateOptions","opts","parserOpts","plugins","push","generatorOpts"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nconst PIPELINE_PROPOSALS = process.env.BABEL_8_BREAKING\n ? ([\"fsharp\", \"hack\"] as const)\n : ([\"minimal\", \"fsharp\", \"hack\", \"smart\"] as const);\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"] as const;\nconst documentationURL =\n \"https://babeljs.io/docs/en/babel-plugin-proposal-pipeline-operator\";\n\nexport interface Options {\n proposal: (typeof PIPELINE_PROPOSALS)[number];\n topicToken?: (typeof TOPIC_TOKENS)[number];\n}\n\nexport default declare((api, { proposal, topicToken }: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n if (\n typeof proposal !== \"string\" ||\n // @ts-ignore(Babel 7 vs Babel 8) due to the different contents of PIPELINE_PROPOSALS\n !PIPELINE_PROPOSALS.includes(proposal)\n ) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(\n `The pipeline plugin requires a \"proposal\" option. \"proposal\" must be one of: ${proposalList}. See <${documentationURL}>.`,\n );\n }\n\n if (proposal === \"hack\" && !TOPIC_TOKENS.includes(topicToken)) {\n const topicTokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n throw new Error(\n `The pipeline plugin in \"proposal\": \"hack\" mode also requires a \"topicToken\" option. \"topicToken\" must be one of: ${topicTokenList}. See <${documentationURL}>.`,\n );\n }\n\n return {\n name: \"syntax-pipeline-operator\",\n\n manipulateOptions(opts, parserOpts) {\n // Add parser options.\n // @ts-expect-error Babel 7 compatibility\n parserOpts.plugins.push([\"pipelineOperator\", { proposal, topicToken }]);\n\n // Add generator options.\n opts.generatorOpts.topicToken = topicToken;\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,kBAAkB,GAEnB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAW;AACrD,MAAMC,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU;AACzD,MAAMC,gBAAgB,GACpB,oEAAoE;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAOxD,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC,QAAQ;EAAEC;AAAoB,CAAC,KAAK;EACjEF,GAAG,CAACG,aAAa,CAAkB,CAAE,CAAC;EAEtC,IACE,OAAOF,QAAQ,KAAK,QAAQ,IAE5B,CAACR,kBAAkB,CAACW,QAAQ,CAACH,QAAQ,CAAC,EACtC;IACA,MAAMI,YAAY,GAAGZ,kBAAkB,CAACa,GAAG,CAACC,CAAC,IAAI,IAAIA,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;IACrE,MAAM,IAAIC,KAAK,CACb,gFAAgFJ,YAAY,UAAUV,gBAAgB,IACxH,CAAC;EACH;EAEA,IAAIM,QAAQ,KAAK,MAAM,IAAI,CAACP,YAAY,CAACU,QAAQ,CAACF,UAAU,CAAC,EAAE;IAC7D,MAAMQ,cAAc,GAAGhB,YAAY,CAACY,GAAG,CAACK,CAAC,IAAI,IAAIA,CAAC,GAAG,CAAC,CAACH,IAAI,CAAC,IAAI,CAAC;IACjE,MAAM,IAAIC,KAAK,CACb,oHAAoHC,cAAc,UAAUf,gBAAgB,IAC9J,CAAC;EACH;EAEA,OAAO;IACLiB,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAGlCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,CAAC,kBAAkB,EAAE;QAAEhB,QAAQ;QAAEC;MAAW,CAAC,CAAC,CAAC;MAGvEY,IAAI,CAACI,aAAa,CAAChB,UAAU,GAAGA,UAAU;IAC5C;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}