import { notionRequest, type JsonRecord } from './request.ts' import { inputRecord, optionalString, requiredString } from './validation.ts' type DataSourceResponse = { id?: string title?: unknown[] properties?: JsonRecord parent?: JsonRecord database_parent?: JsonRecord [key: string]: unknown } /** * Read a Notion data source (schema/properties) by data source id. * * Databases are containers; the schema lives on their data sources. Get a data * source id from get-database, then call this helper. */ export default async function getDataSource(params: Record) { const input = inputRecord(params) const dataSourceId = requiredString(input, 'dataSourceId') const result = await notionRequest( '/data_sources/' + encodeURIComponent(dataSourceId), { account: optionalString(input, 'account'), integration: optionalString(input, 'integration'), }, ) return { id: result.id ?? null, title: result.title ?? [], properties: result.properties ?? {}, parent: result.parent ?? null, databaseParent: result.database_parent ?? null, } }