{"version":3,"file":"Fetch-D8okBWf9.js","sources":["../../../app/javascript/plugins/Fetch.js"],"sourcesContent":["// This exports a Vue plugin and vanilla fetch functions\n\nconst fetcher = async (method, url, body) => {\n try {\n let opts = {\n method: method,\n headers: {\n Accept: 'application/json',\n 'X-CSRF-Token': `${window.CSRF_TOKEN}`,\n },\n };\n if (body) {\n if (body instanceof FormData) {\n opts.body = body;\n } else {\n opts.body = JSON.stringify(body);\n opts.headers['Content-Type'] = 'application/json';\n }\n }\n const request = await fetch(url, opts);\n return await request.json();\n } catch (error) {\n return { errors: error.message };\n }\n};\n\nconst fetchHtml = async (url) => {\n try {\n let opts = {\n method: 'GET',\n headers: {\n Accept: 'text/html',\n 'Content-Type': 'text/html',\n 'X-CSRF-Token': `${window.CSRF_TOKEN}`,\n },\n };\n const request = await fetch(url, opts);\n return await request.text();\n } catch (error) {\n return { errors: error.message };\n }\n};\n\nconst $GET_HTML = (url) => {\n return fetchHtml(url);\n};\n\nconst $GET = (url) => {\n return fetcher('GET', url);\n};\nconst $POST = (url, body) => {\n return fetcher('POST', url, body);\n};\nconst $PATCH = (url, body) => {\n return fetcher('PATCH', url, body);\n};\nconst $DELETE = (url, body) => {\n return fetcher('DELETE', url, body);\n};\n\nconst VueFetch = {\n install(Vue) {\n Vue.prototype.$GET = (url, params) => {\n if (params) {\n const urlWithParams = `${url}?${new URLSearchParams(\n params\n ).toString()}`;\n return $GET(urlWithParams);\n }\n return $GET(url);\n };\n Vue.prototype.$POST = (url, body) => {\n return $POST(url, body);\n };\n Vue.prototype.$PATCH = (url, body) => {\n return $PATCH(url, body);\n };\n Vue.prototype.$DELETE = (url, body) => {\n return $DELETE(url, body);\n };\n },\n};\n\nexport { $GET_HTML, $GET, $POST, $PATCH, $DELETE, VueFetch };\n"],"names":["fetcher","method","url","body","opts","error","fetchHtml","$GET_HTML","$GET","$POST","$PATCH","$DELETE","VueFetch","Vue","params","urlWithParams"],"mappings":"AAEA,MAAMA,EAAU,MAAOC,EAAQC,EAAKC,IAAS,CAC3C,GAAI,CACF,IAAIC,EAAO,CACT,OAAQH,EACR,QAAS,CACP,OAAQ,mBACR,eAAgB,GAAG,OAAO,UAAU,EACrC,CACF,EACD,OAAIE,IACEA,aAAgB,SAClBC,EAAK,KAAOD,GAEZC,EAAK,KAAO,KAAK,UAAUD,CAAI,EAC/BC,EAAK,QAAQ,cAAc,EAAI,qBAI5B,MADS,MAAM,MAAMF,EAAKE,CAAI,GAChB,KAAM,CAC5B,OAAQC,EAAO,CACd,MAAO,CAAE,OAAQA,EAAM,OAAS,CACpC,CACA,EAEMC,EAAY,MAAOJ,GAAQ,CAC/B,GAAI,CACF,IAAIE,EAAO,CACT,OAAQ,MACR,QAAS,CACP,OAAQ,YACR,eAAgB,YAChB,eAAgB,GAAG,OAAO,UAAU,EACrC,CACF,EAED,OAAO,MADS,MAAM,MAAMF,EAAKE,CAAI,GAChB,KAAM,CAC5B,OAAQC,EAAO,CACd,MAAO,CAAE,OAAQA,EAAM,OAAS,CACpC,CACA,EAEME,EAAaL,GACVI,EAAUJ,CAAG,EAGhBM,EAAQN,GACLF,EAAQ,MAAOE,CAAG,EAErBO,EAAQ,CAACP,EAAKC,IACXH,EAAQ,OAAQE,EAAKC,CAAI,EAE5BO,EAAS,CAACR,EAAKC,IACZH,EAAQ,QAASE,EAAKC,CAAI,EAE7BQ,EAAU,CAACT,EAAKC,IACbH,EAAQ,SAAUE,EAAKC,CAAI,EAG9BS,EAAW,CACf,QAAQC,EAAK,CACXA,EAAI,UAAU,KAAO,CAACX,EAAKY,IAAW,CACpC,GAAIA,EAAQ,CACV,MAAMC,EAAgB,GAAGb,CAAG,IAAI,IAAI,gBAClCY,CACV,EAAU,SAAU,CAAA,GACZ,OAAON,EAAKO,CAAa,CACjC,CACM,OAAOP,EAAKN,CAAG,CAChB,EACDW,EAAI,UAAU,MAAQ,CAACX,EAAKC,IACnBM,EAAMP,EAAKC,CAAI,EAExBU,EAAI,UAAU,OAAS,CAACX,EAAKC,IACpBO,EAAOR,EAAKC,CAAI,EAEzBU,EAAI,UAAU,QAAU,CAACX,EAAKC,IACrBQ,EAAQT,EAAKC,CAAI,CAE3B,CACH"}