@spotable/attio-sdk
Version:
Client for Attio REST API
44 lines (38 loc) • 1.32 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateBaseTypes = generateBaseTypes;
const fs_1 = require("../../helpers/fs");
const logger_1 = require("../../helpers/logger");
const fileHeader_1 = require("./fileHeader");
const FILE_NAME = "base.ts";
function generateBaseTypes(outputDir) {
logger_1.default.debug(`Generating base types file: ${FILE_NAME}`);
const baseContent = `
${(0, fileHeader_1.generateFileHeader)(FILE_NAME)}
export interface WebhookPayload<T> {
event_id: string;
event_type: 'created' | 'updated' | 'deleted' | 'merged';
entity_type: string;
entity: T;
timestamp: string;
workspace_id: string;
}
export type WebhookHandler<T> = (payload: T) => Promise<void> | void;
export type EntityCreatedHandler<T> = (entity: T) => Promise<void> | void;
export type EntityUpdatedHandler<T> = (
entity: T,
updateInfo: {
event: any;
attributeId?: string;
actor?: {
type: string;
id: string;
}
}
) => Promise<void> | void;
export type EntityDeletedHandler<T> = (entity: T | null, event: any) => Promise<void> | void;
export type EntityMergedHandler<T> = (entity: T, event: any) => Promise<void> | void;
`;
(0, fs_1.writeGeneratedFile)(outputDir, FILE_NAME, baseContent);
}
//# sourceMappingURL=baseTypes.js.map