{"version":3,"sources":["../../src/lib/query.ts"],"names":["by","prefix","value","v"],"mappings":"AAAA,yQAAe,IAoBTA,CAAAA,CAAK,CAACC,CAAAA,CAAgBC,CAAAA,CAAAA,EACrBA,CAAAA,CAAAA,CACG,KAAA,CAAM,OAAA,CAAQA,CAAK,CAAA,CAAIA,CAAAA,CAAQ,CAACA,CAAK,CAAA,CAAA,CAAG,GAAA,CAAKC,CAAAA,EAAM,CAAA,EAAA","file":"/home/renatorib/p/publissue/packages/api/dist/__chunks/SQMRCU4S.cjs","sourcesContent":["import cn from \"classnames\";\nimport { Publissue } from \"../publissue\";\n\nexport type SortDescAsc = \"interactions\" | \"reactions\" | \"author-date\" | \"created\" | \"updated\";\nexport type SortReaction = \"reactions-+1\" | \"reactions--1\" | \"reactions-smile\" | \"reactions-tada\" | \"reactions-heart\";\nexport type Sort = SortDescAsc | `${SortDescAsc}-asc` | `${SortDescAsc}-desc` | SortReaction;\n\nexport type QueryParams = {\n  state?: \"published\" | \"draft\";\n\n  author?: string | string[];\n  notAuthor?: string | string[];\n\n  label?: string | string[];\n  notLabel?: string | string[];\n\n  sort?: Sort;\n  search?: string;\n};\n\nconst by = (prefix: string, value: string | string[] | undefined) => {\n  if (!value) return null;\n  return (Array.isArray(value) ? value : [value]).map((v) => `${prefix}:${v}`);\n};\n\nexport function buildQuery(this: Publissue, args: QueryParams = {}) {\n  const publishedLabel = this.options.config?.publishedLabel || \"state:published\";\n  const draftLabel = this.options.config?.publishedLabel || \"state:draft\";\n\n  return cn(\n    `repo:${this.options.repo}`,\n    `type:issue`,\n    `is:open`,\n    `label:${args.state === \"draft\" ? draftLabel : publishedLabel}`,\n    by(\"label\", args.label),\n    by(\"-label\", args.notLabel),\n    by(\"author\", args.author),\n    by(\"-author\", args.notAuthor),\n    by(\"sort\", args.sort ?? \"created\"),\n    args.search,\n  );\n}\n"]}