|
@@ -21,6 +21,16 @@ function normalizeProviderName(value) {
|
|
|
.toLowerCase();
|
|
.toLowerCase();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function normalizeLower(value, fallback) {
|
|
|
|
|
+ const raw = String(value ?? "").trim();
|
|
|
|
|
+ return raw ? raw.toLowerCase() : fallback;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+function normalizeTrim(value, fallback) {
|
|
|
|
|
+ const raw = String(value ?? "").trim();
|
|
|
|
|
+ return raw ? raw : fallback;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
export function getSearchProvider() {
|
|
export function getSearchProvider() {
|
|
|
if (cachedProvider) return cachedProvider;
|
|
if (cachedProvider) return cachedProvider;
|
|
|
|
|
|
|
@@ -34,13 +44,19 @@ export function getSearchProvider() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (providerName === "qsirch") {
|
|
if (providerName === "qsirch") {
|
|
|
|
|
+ // Important: normalize runtime env values so behavior matches validateEnv().
|
|
|
|
|
+ // - validateEnv() accepts values case-insensitively.
|
|
|
|
|
+ // - runtime must not accidentally pass "Modified"/"ASYNC" etc. to the provider.
|
|
|
cachedProvider = createQsirchProvider({
|
|
cachedProvider = createQsirchProvider({
|
|
|
baseUrl: process.env.QSIRCH_BASE_URL,
|
|
baseUrl: process.env.QSIRCH_BASE_URL,
|
|
|
account: process.env.QSIRCH_ACCOUNT,
|
|
account: process.env.QSIRCH_ACCOUNT,
|
|
|
password: process.env.QSIRCH_PASSWORD,
|
|
password: process.env.QSIRCH_PASSWORD,
|
|
|
- pathPrefix: process.env.QSIRCH_PATH_PREFIX || "/Niederlassungen",
|
|
|
|
|
- dateField: (process.env.QSIRCH_DATE_FIELD || "modified").trim(),
|
|
|
|
|
- mode: (process.env.QSIRCH_MODE || "sync").trim(),
|
|
|
|
|
|
|
+ pathPrefix: normalizeTrim(
|
|
|
|
|
+ process.env.QSIRCH_PATH_PREFIX,
|
|
|
|
|
+ "/Niederlassungen"
|
|
|
|
|
+ ),
|
|
|
|
|
+ dateField: normalizeLower(process.env.QSIRCH_DATE_FIELD, "modified"),
|
|
|
|
|
+ mode: normalizeLower(process.env.QSIRCH_MODE, "sync"),
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
return cachedProvider;
|
|
return cachedProvider;
|