UNPKG

@eldev/business-central-api

Version:

A Dynamics 365 Business Central client for TypeScript

39 lines 1.62 kB
import { ApiPage } from "../pages/api-page.js"; import { ApiQuery } from "../pages/api-query.js"; import type { StandardSchemaV1 } from "../validation/standard-schema.js"; export declare const BC_BASE_URL = "https://api.businesscentral.dynamics.com/v2.0"; export declare const DEFAULT_TIMEOUT = 30000; export declare const BC_DEFAULT_SCOPE = "https://api.businesscentral.dynamics.com/.default"; export type BCConfig = { tenantId: string; environment: string; companyId: string; timeout?: number; baseURL?: string; userAgent?: string; }; export type RequestOpts = { method?: "GET" | "POST" | "PATCH" | "DELETE"; params?: URLSearchParams; payload?: unknown; timeout?: number; serverPageSize?: number; }; export interface AuthClient { getToken(scope: string): Promise<string>; } export declare class BCClient { readonly auth: AuthClient; readonly apiPath: string; readonly apiURL: string; readonly scope = "https://api.businesscentral.dynamics.com/.default"; readonly userAgent: string; readonly timeout: number; constructor(config: BCConfig, apiPath: string, authClient: AuthClient); getToken(): Promise<string>; request(endpoint: string, opts?: RequestOpts): Promise<unknown>; requestWithSchema<TSchema extends StandardSchemaV1>(endpoint: string, schema: TSchema, opts?: RequestOpts): Promise<StandardSchemaV1.InferOutput<TSchema>>; for<T>(endpoint: string, schema: StandardSchemaV1<unknown, T>): ApiPage<T>; forQuery<T>(endpoint: string, schema: StandardSchemaV1<unknown, T>): ApiQuery<T>; } //# sourceMappingURL=client.d.ts.map