UNPKG

@apideck/node

Version:
85 lines (75 loc) 2.37 kB
import fetch from 'node-fetch-commonjs' import { AccountingApi, AtsApi, ConnectorApi, CrmApi, EcommerceApi, FileStorageApi, HrisApi, IssueTrackingApi, LeadApi, PosApi, SmsApi, VaultApi, WebhookApi } from './gen/' import { Configuration } from './gen/runtime' import { Utils } from './utils' const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null export type ApideckConfiguration = { basePath?: string apiKey: string appId: string consumerId?: string serviceId?: string } export class Apideck { readonly accounting: AccountingApi readonly ats: AtsApi readonly connector: ConnectorApi readonly crm: CrmApi readonly ecommerce: EcommerceApi readonly fileStorage: FileStorageApi readonly hris: HrisApi readonly issueTracking: IssueTrackingApi readonly lead: LeadApi readonly pos: PosApi readonly sms: SmsApi readonly vault: VaultApi readonly webhook: WebhookApi readonly utils: Utils constructor(readonly config: ApideckConfiguration) { if (!isNode) { console.warn( "THIS IS A SERVERSIDE (Node.JS) LIBRARY AND SHOULDN'T BE USED IN THE BROWSER AS YOU RISK LEAKING YOUR API KEYS." ) } const configuration = new Configuration({ fetchApi: (url, options) => (fetch as any)(url, { highWaterMark: 10000000, ...options }), basePath: config.basePath, apiKey: `Bearer ${config.apiKey}`, headers: { 'x-apideck-app-id': config.appId, 'x-apideck-consumer-id': config.consumerId || '', 'x-apideck-service-id': config?.serviceId || '', 'user-agent': 'Apideck-node-sdk/3.8.0 Unify-spec/10.13.0' } }) this.accounting = new AccountingApi(configuration) this.ats = new AtsApi(configuration) this.connector = new ConnectorApi(configuration) this.crm = new CrmApi(configuration) this.ecommerce = new EcommerceApi(configuration) this.fileStorage = new FileStorageApi(configuration) this.hris = new HrisApi(configuration) this.issueTracking = new IssueTrackingApi(configuration) this.lead = new LeadApi(configuration) this.pos = new PosApi(configuration) this.sms = new SmsApi(configuration) this.vault = new VaultApi(configuration) this.webhook = new WebhookApi(configuration) this.utils = new Utils(this) } }