SDK de NodeVista previa

Cliente para Node 20 y TypeScript.

Terminal
npm install @tinkay/sdk

Uso

TypeScript
import { Tinkay } from "@tinkay/sdk";const tinkay = new Tinkay({ apiKey: process.env.TINKAY_API_KEY! });const contact = await tinkay.contacts.create({  name: "Camila Rodríguez",  email: "[email protected]",  company: "Kipu Pagos",});await tinkay.tickets.create({  subject: "Error 500 al exportar",  description: "Reportado desde el panel interno.",  contact_id: contact.id,  priority: "high",});for await (const c of tinkay.contacts.list()) {  console.log(c.email);}

Sin SDK

Mientras el paquete está en vista previa, un wrapper de veinte líneas alcanza.

tinkay.ts
const BASE = "https://api.tinkay.app/v1";async function request<T>(path: string, init: RequestInit = {}): Promise<T> {  const res = await fetch(BASE + path, {    ...init,    headers: {      Authorization: `Bearer ${process.env.TINKAY_API_KEY}`,      "Content-Type": "application/json",      ...init.headers,    },  });  if (!res.ok) {    const { error } = await res.json().catch(() => ({ error: { message: res.statusText } }));    throw new Error(`Tinkay ${res.status}: ${error.message}`);  }  return res.json() as Promise<T>;}export const tinkay = {  createContact: (body: { name: string; email: string; company?: string }) =>    request<{ data: { id: string } }>("/contacts", { method: "POST", body: JSON.stringify(body) }),  createTicket: (body: { subject: string; description: string; contact_id: string; priority?: string }) =>    request<{ data: { id: string; number: number } }>("/tickets", { method: "POST", body: JSON.stringify(body) }),};