feat(monorepo): migrate to typescript monorepo

This commit is contained in:
2025-11-07 17:09:29 +02:00
committed by BernardNganduDev
parent 3e09956f05
commit 075a388ccb
745 changed files with 2341 additions and 5082 deletions
+44
View File
@@ -0,0 +1,44 @@
import logger from "@basango/logger";
import { config, FetchCrawlerConfig } from "@/config";
import { JsonlPersistor, Persistor } from "@/process/persistence";
import { AnySourceConfig } from "@/schema";
import { createDateRange, createPageRange } from "@/utils";
export interface CrawlingOptions {
sourceId: string;
pageRange?: string | undefined;
dateRange?: string | undefined;
category?: string | undefined;
}
export const resolveCrawlerConfig = (
source: AnySourceConfig,
options: CrawlingOptions,
): FetchCrawlerConfig => {
return {
...config.fetch.crawler,
category: options.category,
dateRange: createDateRange(options.dateRange),
pageRange: createPageRange(options.pageRange),
source,
};
};
export const createPersistors = (source: AnySourceConfig): Persistor[] => {
return [
new JsonlPersistor({
directory: config.paths.data,
sourceId: source.sourceId,
}),
];
};
export const closePersistors = async (persistors: Persistor[]): Promise<void> => {
for (const persistor of persistors) {
try {
await persistor.close();
} catch (error) {
logger.warn({ error }, "Failed to close persistor");
}
}
};