Second frontend, written in Next.JS + Typescript.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
9.8 KiB

4 years ago
  1. {"ast":null,"code":"import { gql } from \"../client/graphql\";\nexport async function listLogs(gql, filter) {\n return (await gql.post(LOGS_DOC, {\n filter\n }, \"ListLogs\")).logs;\n}\n\nfunction logFilterToQueryString(filter) {\n const parts = [];\n\n if (filter.characters != null && filter.characters.length > 0) {\n parts.push({\n k: \"characters\",\n v: filter.characters.join(\",\")\n });\n }\n\n if (filter.channels != null && filter.channels.length > 0) {\n parts.push({\n k: \"channels\",\n v: filter.channels.join(\",\")\n });\n }\n\n if (filter.events != null && filter.events.length > 0) {\n parts.push({\n k: \"events\",\n v: filter.events.join(\",\")\n });\n }\n\n if (filter.search != null && filter.search !== \"\") {\n parts.push({\n k: \"search\",\n v: filter.search\n });\n }\n\n if (filter.open != null) {\n parts.push({\n k: \"open\",\n v: filter.open ? \"true\" : \"false\"\n });\n }\n\n if (filter.limit != null) {\n parts.push({\n k: \"limit\",\n v: filter.limit.toFixed(0)\n });\n }\n\n if (parts.length === 0) {\n return \"\";\n }\n\n return \"?\" + parts.map(p => `${p.k}=${encodeURIComponent(p.v)}`);\n}\n\nfunction logFilterFromQueryString(qs) {\n const filter = {};\n const qsParts = (qs.startsWith(\"?\") ? qs.slice(1) : qs).split(\"&\").map(t => t.split(\"=\")).map(kv => ({\n k: kv[0],\n v: decodeURIComponent(kv[1])\n }));\n\n for (const part of qsParts) {\n switch (part.k) {\n case \"characters\":\n {\n filter.characters = part.v.split(\",\");\n break;\n }\n\n case \"channels\":\n {\n filter.channels = part.v.split(\",\");\n break;\n }\n\n case \"events\":\n {\n filter.events = part.v.split(\",\");\n break;\n }\n\n case \"search\":\n {\n filter.search = part.v;\n break;\n }\n\n case \"open\":\n {\n filter.open = part.v === \"open\";\n break;\n }\n\n case \"limit\":\n {\n filter.limit = parseInt(part.v) || 0;\n break;\n }\n }\n }\n\n return filter;\n}\n\nconst LOGS_DOC = gql`\nquery ListLogs($filter: LogsFilter) {\n logs(filter: $filter) {\n ...LogMeta\n ...LogMetaCharacters\n }\n}\n\nquery FindLog($id: String!) {\n log(id: $id) {\n ...LogMeta\n ...LogData\n }\n}\n\nfragment LogMeta on Log {\n id\n shortId\n date\n channelName\n title\n eventName\n description\n}\n\nfragment LogMetaCharacters on Log {\n characters {\n id\n name\n shortName\n author\n }\n}\n\nfragment LogData on Log {\n open\n channel {\n name\n logged\n hub\n eventName\n locationName\n }\n characters {\n id\n nicks\n author\n name\n shortName\n description\n }\n posts {\n id\n time\n kind\n nick\n text\n position\n }\n}\n`;","map":{"version":3,"sources":["/home/gisle/projects/react/rpdata-frontend2/lib/rpdata/logs.ts"],"names":["gql","listLogs","filter","post","LOGS_DOC","logs","logFilterToQueryString","parts","characters","length","push","k","v","join","channels","events","search","open","limit","toFixed","map","p","encodeURIComponent","logFilterFromQueryString","qs","qsParts","startsWith","slice","split","t","kv","decodeURIComponent","part","parseInt"],"mappings":"AAAA,SAAoBA,GAApB,QAA+B,mBAA/B;AAEA,OAAO,eAAeC,QAAf,CAAwBD,GAAxB,EAAwCE,MAAxC,EAAkF;AACvF,SAAO,CAAC,MAAMF,GAAG,CAACG,IAAJ,CAASC,QAAT,EAAmB;AAACF,IAAAA;AAAD,GAAnB,EAA6B,UAA7B,CAAP,EAAiDG,IAAxD;AACD;;AAED,SAASC,sBAAT,CAAgCJ,MAAhC,EAA2D;AACzD,QAAMK,KAA6B,GAAG,EAAtC;;AAEA,MAAIL,MAAM,CAACM,UAAP,IAAqB,IAArB,IAA6BN,MAAM,CAACM,UAAP,CAAkBC,MAAlB,GAA2B,CAA5D,EAA+D;AAC7DF,IAAAA,KAAK,CAACG,IAAN,CAAW;AAACC,MAAAA,CAAC,EAAC,YAAH;AAAiBC,MAAAA,CAAC,EAACV,MAAM,CAACM,UAAP,CAAkBK,IAAlB,CAAuB,GAAvB;AAAnB,KAAX;AACD;;AACD,MAAIX,MAAM,CAACY,QAAP,IAAmB,IAAnB,IAA2BZ,MAAM,CAACY,QAAP,CAAgBL,MAAhB,GAAyB,CAAxD,EAA2D;AACzDF,IAAAA,KAAK,CAACG,IAAN,CAAW;AAACC,MAAAA,C