Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import { LANGUAGE_COLORS } from "#lib/components/repo/languageColors.ts";import { SORT_OPTIONS, SORT_VALUES, type QueryDialect } from "#lib/ticketQuery.ts";
export const POPULAR_LANGUAGES = [ "Go", "JavaScript", "TypeScript", "Python", "Rust", "OCaml", "Haskell", "C", "C++", "Ruby", "Swift"];
const LANGUAGE_OPTIONS = [ ...POPULAR_LANGUAGES, ...Object.keys(LANGUAGE_COLORS) .filter((name) => !POPULAR_LANGUAGES.includes(name)) .sort((a, b) => a.localeCompare(b))].map((value) => ({ value }));
type RepoKey = "language" | "author" | "sort";
const repoDialect = (qualifiers: readonly RepoKey[]): QueryDialect<RepoKey> => ({ qualifiers, hints: { language: "primary language", author: "handle or did", sort: "order" }, values: (key) => { switch (key) { case "language": return LANGUAGE_OPTIONS; case "sort": return SORT_OPTIONS; case "author": return []; } }, problem: (key, value) => { const v = value.trim().toLowerCase(); if (v === "") return `\`${key}:\` needs a value`; if (key === "sort" && !SORT_VALUES.has(v)) return `\`${key}:${value}\` is not valid`; return null; }});
export const REPO_DIALECT = repoDialect(["language", "author", "sort"]);
export const OWNED_REPO_DIALECT = repoDialect(["language", "sort"]);