{"version":3,"names":["convertTemplateType","tokens","tt","curlyBrace","templateTokens","result","addTemplateType","start","end","length","value","reduce","token","type","template","label","push","loc","forEach","backQuote","dollarBraceL","braceR","eof","_export","setters","execute"],"sources":["convertTemplateType.js"],"sourcesContent":["export function convertTemplateType(tokens, tt) {\n  let curlyBrace = null;\n  let templateTokens = [];\n  const result = [];\n\n  function addTemplateType() {\n    const start = templateTokens[0];\n    const end = templateTokens[templateTokens.length - 1];\n\n    const value = templateTokens.reduce((result, token) => {\n      if (token.value) {\n        result += token.value;\n      } else if (token.type !== tt.template) {\n        result += token.type.label;\n      }\n\n      return result;\n    }, \"\");\n\n    result.push({\n      type: \"Template\",\n      value: value,\n      start: start.start,\n      end: end.end,\n      loc: {\n        start: start.loc.start,\n        end: end.loc.end,\n      },\n    });\n\n    templateTokens = [];\n  }\n\n  tokens.forEach(token => {\n    switch (token.type) {\n      case tt.backQuote:\n        if (curlyBrace) {\n          result.push(curlyBrace);\n          curlyBrace = null;\n        }\n\n        templateTokens.push(token);\n\n        if (templateTokens.length > 1) {\n          addTemplateType();\n        }\n\n        break;\n\n      case tt.dollarBraceL:\n        templateTokens.push(token);\n        addTemplateType();\n        break;\n\n      case tt.braceR:\n        if (curlyBrace) {\n          result.push(curlyBrace);\n        }\n\n        curlyBrace = token;\n        break;\n\n      case tt.template:\n        if (curlyBrace) {\n          templateTokens.push(curlyBrace);\n          curlyBrace = null;\n        }\n\n        templateTokens.push(token);\n        break;\n\n      case tt.eof:\n        if (curlyBrace) {\n          result.push(curlyBrace);\n        }\n\n        break;\n\n      default:\n        if (curlyBrace) {\n          result.push(curlyBrace);\n          curlyBrace = null;\n        }\n\n        result.push(token);\n    }\n  });\n\n  return result;\n}\n"],"mappings":";;;EAAO,SAASA,mBAAmBA,CAACC,MAAM,EAAEC,EAAE,EAAE;IAC9C,IAAIC,UAAU,GAAG,IAAI;IACrB,IAAIC,cAAc,GAAG,EAAE;IACvB,MAAMC,MAAM,GAAG,EAAE;IAEjB,SAASC,eAAeA,CAAA,EAAG;MACzB,MAAMC,KAAK,GAAGH,cAAc,CAAC,CAAC,CAAC;MAC/B,MAAMI,GAAG,GAAGJ,cAAc,CAACA,cAAc,CAACK,MAAM,GAAG,CAAC,CAAC;MAErD,MAAMC,KAAK,GAAGN,cAAc,CAACO,MAAM,CAAC,CAACN,MAAM,EAAEO,KAAK,KAAK;QACrD,IAAIA,KAAK,CAACF,KAAK,EAAE;UACfL,MAAM,IAAIO,KAAK,CAACF,KAAK;QACvB,CAAC,MAAM,IAAIE,KAAK,CAACC,IAAI,KAAKX,EAAE,CAACY,QAAQ,EAAE;UACrCT,MAAM,IAAIO,KAAK,CAACC,IAAI,CAACE,KAAK;QAC5B;QAEA,OAAOV,MAAM;MACf,CAAC,EAAE,EAAE,CAAC;MAENA,MAAM,CAACW,IAAI,CAAC;QACVH,IAAI,EAAE,UAAU;QAChBH,KAAK,EAAEA,KAAK;QACZH,KAAK,EAAEA,KAAK,CAACA,KAAK;QAClBC,GAAG,EAAEA,GAAG,CAACA,GAAG;QACZS,GAAG,EAAE;UACHV,KAAK,EAAEA,KAAK,CAACU,GAAG,CAACV,KAAK;UACtBC,GAAG,EAAEA,GAAG,CAACS,GAAG,CAACT;QACf;MACF,CAAC,CAAC;MAEFJ,cAAc,GAAG,EAAE;IACrB;IAEAH,MAAM,CAACiB,OAAO,CAACN,KAAK,IAAI;MACtB,QAAQA,KAAK,CAACC,IAAI;QAChB,KAAKX,EAAE,CAACiB,SAAS;UACf,IAAIhB,UAAU,EAAE;YACdE,MAAM,CAACW,IAAI,CAACb,UAAU,CAAC;YACvBA,UAAU,GAAG,IAAI;UACnB;UAEAC,cAAc,CAACY,IAAI,CAACJ,KAAK,CAAC;UAE1B,IAAIR,cAAc,CAACK,MAAM,GAAG,CAAC,EAAE;YAC7BH,eAAe,CAAC,CAAC;UACnB;UAEA;QAEF,KAAKJ,EAAE,CAACkB,YAAY;UAClBhB,cAAc,CAACY,IAAI,CAACJ,KAAK,CAAC;UAC1BN,eAAe,CAAC,CAAC;UACjB;QAEF,KAAKJ,EAAE,CAACmB,MAAM;UACZ,IAAIlB,UAAU,EAAE;YACdE,MAAM,CAACW,IAAI,CAACb,UAAU,CAAC;UACzB;UAEAA,UAAU,GAAGS,KAAK;UAClB;QAEF,KAAKV,EAAE,CAACY,QAAQ;UACd,IAAIX,UAAU,EAAE;YACdC,cAAc,CAACY,IAAI,CAACb,UAAU,CAAC;YAC/BA,UAAU,GAAG,IAAI;UACnB;UAEAC,cAAc,CAACY,IAAI,CAACJ,KAAK,CAAC;UAC1B;QAEF,KAAKV,EAAE,CAACoB,GAAG;UACT,IAAInB,UAAU,EAAE;YACdE,MAAM,CAACW,IAAI,CAACb,UAAU,CAAC;UACzB;UAEA;QAEF;UACE,IAAIA,UAAU,EAAE;YACdE,MAAM,CAACW,IAAI,CAACb,UAAU,CAAC;YACvBA,UAAU,GAAG,IAAI;UACnB;UAEAE,MAAM,CAACW,IAAI,CAACJ,KAAK,CAAC;MACtB;IACF,CAAC,CAAC;IAEF,OAAOP,MAAM;EACf;EAACkB,OAAA,wBAzFevB,mBAAmB;EAAA;IAAAwB,OAAA;IAAAC,OAAA,WAAAA,CAAA;EAAA;AAAA"}