mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-07 19:26:36 +00:00
Filter out duplicates
This commit is contained in:
@@ -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
|
||||||
? {
|
? {
|
||||||
|
|||||||
Reference in New Issue
Block a user