import { createArticlePost, requireRecord, requireStringField } from './client.ts' import type { CreateArticlePostInput } from './client.ts' /** * Create or dry-run a personal-profile LinkedIn article link post. * @param params.url - Article URL to share. * @param params.title - Explicit link-card title; LinkedIn does not scrape Open Graph metadata. * @param params.description - Explicit link-card description. * @param params.thumbnailUrl - HTTPS image fetched and uploaded through LinkedIn's Images API. * @returns Dry-run preview or published post metadata when `confirm: true`. * @example * import createArticlePost from 'kody:@kody/linkedin/create-article-post' * const result = await createArticlePost({ * text: 'Read this', * url: 'https://example.com', * title: 'Example article', * description: 'A useful article.', * thumbnailUrl: 'https://example.com/thumbnail.jpg', * dryRun: true, * }) * // => { dryRun: true, body: { ... } } */ export default async function createArticlePostEntrypoint(params: Partial & Record = {}) { const input = requireRecord(params, 'create-article-post') requireStringField(input, 'text', 'create-article-post') requireStringField(input, 'url', 'create-article-post') requireStringField(input, 'title', 'create-article-post') requireStringField(input, 'description', 'create-article-post') return createArticlePost(input) }