← Public packages
@kody/salesforce
Salesforce REST helpers for identity, SOQL, multi-org routing, and error investigation.
src/list-sobjects.ts
49 lines · 1.5 KB · TypeScriptimport { salesforceJson } from './request.ts'
import type { JsonRecord } from './types.ts'
import { optionalString, requireRecord } from './types.ts'
export type ListSObjectsInput = {
instanceUrl?: string
apiVersion?: string
/** Saved OAuth integration name. Defaults to `salesforce`. */
integrationName?: string
}
export type ListSObjectsResult = {
encoding: string
maxBatchSize: number
sobjects: JsonRecord[]
[key: string]: unknown
}
/**
* List sObjects available to the connected Salesforce user.
* @param input - Optional integrationName / instanceUrl overrides.
* @returns Catalog of available sObjects.
* @example
* import listSObjects from 'kody:@kody/salesforce/list-sobjects'
* const catalog = await listSObjects()
*/
export async function listSObjects(
input: ListSObjectsInput = {},
): Promise<ListSObjectsResult> {
return salesforceJson<ListSObjectsResult>({
path: 'sobjects',
method: 'GET',
instanceUrl: optionalString(input.instanceUrl, 'instanceUrl'),
apiVersion: optionalString(input.apiVersion, 'apiVersion'),
integrationName: optionalString(input.integrationName, 'integrationName'),
})
}
/**
* List sObjects available to the connected Salesforce user.
* @example
* import listSObjects from 'kody:@kody/salesforce/list-sobjects'
* const catalog = await listSObjects()
*/
export default async function listSObjectsEntrypoint(
params: Partial<ListSObjectsInput> & Record<string, unknown> = {},
) {
return listSObjects(requireRecord(params, 'list-sobjects') as ListSObjectsInput)
}