30 lines
971 B
TypeScript
30 lines
971 B
TypeScript
import type { InternalIntegration } from "@trigger.dev/integration-sdk";
|
|
import { getIntegrations as getInternalIntegrations } from "integration-catalog";
|
|
import invariant from "tiny-invariant";
|
|
|
|
export function getIntegrations(showAdminOnly: boolean) {
|
|
return getInternalIntegrations(showAdminOnly);
|
|
}
|
|
|
|
export function getIntegrationMetadatas(showAdminOnly: boolean) {
|
|
return getInternalIntegrations(showAdminOnly).map((i) => i.metadata);
|
|
}
|
|
|
|
export function getIntegrationMetadata(
|
|
integrations: Array<InternalIntegration>,
|
|
name: string
|
|
) {
|
|
const integration = integrations.find((i) => i.metadata.slug === name);
|
|
return integration ? integration.metadata : undefined;
|
|
}
|
|
|
|
export function getIntegrationMetadataByService(service: string) {
|
|
const integrations = getIntegrationMetadatas(true);
|
|
|
|
const metadata = integrations.find((i) => i.slug.includes(service));
|
|
|
|
invariant(metadata, `Integration not found for service ${service}`);
|
|
|
|
return metadata;
|
|
}
|