UNPKG

@spotable/attio-sdk

Version:
44 lines (37 loc) 1.92 kB
import { join } from "node:path"; import { AttioObject } from "../../helpers/fetchAttioSchema"; import { generateAttioClient } from "./attioClient"; import { generateAttributeFetcher } from "./attributeFetcher"; import { generateBaseFetcher } from "./baseFetcher"; import { generateCommentFetcher } from "./commentFetcher"; import { generateListEntryFetcher } from "./listEntryFetcher"; import { generateListFetcher } from "./listFetcher"; import { generateNoteFetcher } from "./noteFetcher"; import { generateObjectFetcher } from "./objectFetcher"; import { generateRecordFetcher } from "./recordFetcher"; import { generateTaskFetcher } from "./taskFetcher"; import { generateWebhookFetcher } from "./webhookFetcher"; import { generateWorkspaceMemberFetcher } from "./workspaceMemberFetcher"; import { ensureDirectoryExists } from "../../helpers/fs"; import { generateIndexFile } from "../indexFile"; const FETCHERS_DIRECTORY = "fetchers"; export function generateClient(outputDir: string, objects: AttioObject[], includeStandardTypes: boolean): void { const fetchersOutputDir = join(outputDir, FETCHERS_DIRECTORY); ensureDirectoryExists(fetchersOutputDir); generateBaseFetcher(fetchersOutputDir); generateAttioClient(outputDir, objects, includeStandardTypes); // The record fetcher is always included as it is used in the attioClient to fetch the given objects generateRecordFetcher(fetchersOutputDir); if (includeStandardTypes) { generateObjectFetcher(fetchersOutputDir); generateAttributeFetcher(fetchersOutputDir); generateListFetcher(fetchersOutputDir); generateListEntryFetcher(fetchersOutputDir); generateNoteFetcher(fetchersOutputDir); generateTaskFetcher(fetchersOutputDir); generateWebhookFetcher(fetchersOutputDir); generateCommentFetcher(fetchersOutputDir); generateWorkspaceMemberFetcher(fetchersOutputDir); } generateIndexFile(fetchersOutputDir); }