import { listObjects, type ListObjectsInput } from './objects.ts' import { optionalBoolean, optionalString, optionalStringArray, requireRecord, requireString } from './types.ts' import { requireAuthMode } from './auth.ts' /** * List HubSpot CRM records for any object type, including custom objects. * @example * import listObjects from 'kody:@kody/hubspot/list-objects' * const { items } = await listObjects({ objectType: 'contacts', limit: 10 }) */ export { listObjects } /** * List HubSpot CRM records for any object type, including custom objects. * @example * import listObjects from 'kody:@kody/hubspot/list-objects' * const result = await listObjects({ objectType: 'p_listings', limit: 10 }) */ export default async function listObjectsEntrypoint( params: Partial & Record = {}, ) { const input = requireRecord(params, 'list-objects') return listObjects({ objectType: requireString(input.objectType, 'objectType'), limit: input.limit as number | undefined, after: optionalString(input.after, 'after'), properties: optionalStringArray(input.properties, 'properties'), archived: optionalBoolean(input.archived, 'archived'), associations: optionalStringArray(input.associations, 'associations'), integrationName: optionalString(input.integrationName, 'integrationName'), integration: optionalString(input.integration, 'integration'), account: optionalString(input.account, 'account'), secretName: optionalString(input.secretName, 'secretName'), auth: requireAuthMode(input.auth), }) }