@spotable/attio-sdk
Version:
Client for Attio REST API
98 lines (89 loc) • 1.75 kB
text/typescript
import { writeGeneratedFile } from "../../helpers/fs";
import logger from "../../helpers/logger";
import { generateFileHeader } from "./fileHeader";
const FILE_NAME = "attribute.ts";
export function generateAttributeTypes(outputDir: string): void {
logger.debug(`Generating attribute types file: ${FILE_NAME}`);
const attributeContent = `
${generateFileHeader(FILE_NAME)}
export interface AttioAttribute {
id: {
workspace_id: string;
object_id: string;
attribute_id: string;
};
title: string;
description: string | null;
api_slug: string;
type: string;
is_system_attribute: boolean;
is_writable: boolean;
is_required: boolean;
is_unique: boolean;
is_multiselect: boolean;
is_default_value_enabled: boolean;
is_archived: boolean;
default_value: any;
relationship: any;
config: Record<string, any>;
created_at: string;
}
export type CurrencyCode =
| "AUD"
| "BRL"
| "BEL"
| "CAD"
| "CNY"
| "COP"
| "CZK"
| "DKK"
| "EUR"
| "HKD"
| "ISK"
| "INR"
| "ILS"
| "JPY"
| "KRW"
| "MYR"
| "MXN"
| "NTD"
| "NZD"
| "NGN"
| "NOK"
| "XPF"
| "PEN"
| "PHP"
| "PLN"
| "GBP"
| "SAR"
| "SGD"
| "ZAR"
| "SEK"
| "CHF"
| "AED"
| "USD";
export interface AttioSelectOption {
id: {
workspace_id: string;
object_id: string;
attribute_id: string;
option_id: string;
};
title: string;
is_archived: boolean;
}
export interface AttioStatus {
id: {
workspace_id: string;
object_id: string;
attribute_id: string;
status_id: string;
};
title: string;
is_archived: boolean;
celebration_enabled: boolean;
target_time_in_status: string | null;
}
`;
writeGeneratedFile(outputDir, FILE_NAME, attributeContent);
}