feat(connection): categorize database types

This commit is contained in:
二丫讲梵 authored and GitHub committed 2026-07-22 23:25:22 +08:00
1 parent 7ca5e76c14
commit 7961004a2c
10 files changed
+264 -47

No files matched your search

@@ -0,0 +1,16 @@
export function assertCompleteDatabaseCategories(optionValues: readonly string[], categoryOptionValues: readonly (readonly string[])[]) {
const available = new Set(optionValues);
const categorized = categoryOptionValues.flat();
const categorizedSet = new Set(categorized);
const duplicates = categorized.filter((value, index) => categorized.indexOf(value) !== index);
const missing = optionValues.filter((value) => !categorizedSet.has(value));
const unknown = categorized.filter((value) => !available.has(value));
if (duplicates.length || missing.length || unknown.length) {
throw new Error(`Invalid database categories: duplicates=${[...new Set(duplicates)].join(",")}; missing=${missing.join(",")}; unknown=${[...new Set(unknown)].join(",")}`);
}
}
export function databaseSelectionForCategory(currentValue: string, categoryOptionValues: readonly string[]): string | undefined {
return categoryOptionValues.includes(currentValue) ? currentValue : categoryOptionValues[0];
}