0.5.0 • Published 2 years ago

@exportsdk/client v0.5.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

exportsdk-js

A JavaScript/TypeScript API client for ExportSDK.

Table of contents

Obtain an API key

Visit the ExportSDK dashboard, select the appropriate organization and grab an existing API key or generate a new one.

Install package

npm install @exportsdk/client

Basic Usage

Import the client class and instantiate it with an API key. Both the ES module syntax and CommonJS module syntax are supported.

// ES Module
import { ExportSdkClient } from '@exportsdk/client';

// CommonJS module
const { ExportSdkClient } = require('@exportsdk/client');

const client = new ExportSdkClient(process.env.EXPORTSDK_API_KEY);

Begin rendering PDFs by providing a template ID (obtained from the ExportSDK dashboard) and the data required for that template. PDFs can be generated as NodeJS readable streams (convenient for sending as HTTP responses) or binary data.

const templateId = 'eea2644c-9110-453f-a558-b0541664fb52';
const templateData = {
  firstName: 'Jon',
  middleName: 'Bon',
  lastName: 'Jovi',
};

const binary = await client.renderPdf(templateId, templateData);
const stream = await client.renderPdfToStream(templateId, templateData);

Example Application

An example Express.js application demonstrating the use of ExportSdkClient can be found here.

ExportSdkClient API reference

The following sections document the public properties, methods and types of the ExportSdkClient object.

Properties

get apiKey: string

Returns the API key that was used to initialize the client object, or that was last used to call ExportSdkClient.prototype.setApiKey.

Methods

ExportSdkClient.prototype.renderPdf

renderPdf<TemplateData extends Record<string, unknown>>(
  templateId: string,
  templateData?: TemplateData,
  partialOptions: Partial<RenderPdfOptions> = {}
) : Promise<Response<Uint8Array>>

Renders the template associated with the provided template ID using the provided data. Returns the rendered template to binary data.

ExportSdkClient.prototype.renderPdfToStream

renderPdfToStream<TemplateData extends Record<string, unknown>>(
  templateId: string,
  templateData?: TemplateData,
  partialOptions: Partial<RenderPdfToStreamOptions> = {}
): Promise<Response<NodeJS.ReadableStream>>

Renders the template associated with the provided template ID using the provided data. Returns the rendered template as a NodeJS ReadableStream, which is convenient for returning the PDF file as an HTTP response.

ExportSdkClient.prototype.setApiKey

setApiKey(apiKey: string): void

Sets the API key used to authenticate the HTTP requests to the ExportSDK REST API.

Types

CommonPdfOptions

interface CommonPdfOptions {
  debug?: boolean;
  filename?: string;
}

PdfEncoding

type PdfEncoding = 
  | 'ascii'
  | 'utf8'
  | 'utf16le'
  | 'ucs2'
  | 'base64'
  | 'latin1'
  | 'binary'
  | 'hex';

RenderPdfOptions

interface RenderPdfOptions extends CommonPdfOptions {
  encoding: PdfEncoding;
}

RenderPdfToStreamOptions

type RenderPdfToStreamOptions = CommonPdfOptions;

Response<DataType>

interface Response<DataType> {
  data: DataType;
  status: number;
}
0.5.0

2 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.4.0

3 years ago

0.1.0

3 years ago