@apideck/node
Version:
Apideck Node.js SDK
85 lines (75 loc) • 2.37 kB
text/typescript
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)
}
}