34 lines
970 B
TypeScript

import type { EnrichedKeyword } from "./helpers";
export type KeywordSource = "related" | "suggestions" | "ideas";
export type KeywordMode = "auto" | KeywordSource;
/**
* Where research rows actually came from. "google_ads" is not requestable as
* a mode; it's the automatic source for countries Labs doesn't support.
*/
export type ResearchSource = KeywordSource | "google_ads";
export const AUTO_KEYWORD_SOURCES: KeywordSource[] = [
"related",
"suggestions",
"ideas",
];
export const MIN_NON_SEED_FOR_AUTO = 5;
export function countNonSeedKeywords(
rows: EnrichedKeyword[],
seedKeyword: string,
): number {
const normalizedSeed = seedKeyword.trim().toLowerCase();
return rows.filter((row) => row.keyword !== normalizedSeed).length;
}
export function hasSufficientCoverage(
rows: EnrichedKeyword[],
seedKeyword: string,
threshold: number = MIN_NON_SEED_FOR_AUTO,
): boolean {
return countNonSeedKeywords(rows, seedKeyword) >= threshold;
}