Filter out duplicates

This commit is contained in:
Owen
2025-09-15 21:50:21 -07:00
parent 426d8684bf
commit e97642a790

View File

@@ -148,10 +148,7 @@ export async function getTraefikConfig(
and( and(
eq(targets.enabled, true), eq(targets.enabled, true),
eq(resources.enabled, true), eq(resources.enabled, true),
or( or(eq(sites.exitNodeId, exitNodeId), isNull(sites.exitNodeId)),
eq(sites.exitNodeId, exitNodeId),
isNull(sites.exitNodeId)
),
inArray(sites.type, siteTypes), inArray(sites.type, siteTypes),
config.getRawConfig().traefik.allow_raw_resources config.getRawConfig().traefik.allow_raw_resources
? isNotNull(resources.http) // ignore the http check if allow_raw_resources is true ? isNotNull(resources.http) // ignore the http check if allow_raw_resources is true
@@ -212,10 +209,11 @@ export async function getTraefikConfig(
}); });
}); });
// convert the map to an object for printing // convert the map to an object for printing
logger.debug(`Resources: ${JSON.stringify(Object.fromEntries(resourcesMap), null, 2)}`); logger.debug(
`Resources: ${JSON.stringify(Object.fromEntries(resourcesMap), null, 2)}`
);
// make sure we have at least one resource // make sure we have at least one resource
if (resourcesMap.size === 0) { if (resourcesMap.size === 0) {
@@ -399,7 +397,8 @@ export async function getTraefikConfig(
targets as TargetWithSite[] targets as TargetWithSite[]
).some((target: TargetWithSite) => target.site.online); ).some((target: TargetWithSite) => target.site.online);
return (targets as TargetWithSite[]) return (
(targets as TargetWithSite[])
.filter((target: TargetWithSite) => { .filter((target: TargetWithSite) => {
if (!target.enabled) { if (!target.enabled) {
return false; return false;
@@ -447,7 +446,15 @@ export async function getTraefikConfig(
url: `${target.method}://${ip}:${target.internalPort}` url: `${target.method}://${ip}:${target.internalPort}`
}; };
} }
}); })
// filter out duplicates
.filter(
(v, i, a) =>
a.findIndex(
(t) => t && v && t.url === v.url
) === i
)
);
})(), })(),
...(resource.stickySession ...(resource.stickySession
? { ? {