TypeScript SDK
@revieve/sdk — a thin, typed client for analyzeImage. Source lives in sdks/typescript/ in this repo.
Install
Section titled “Install”npm install @revieve/sdkRequires Node 20+ or any modern browser. Uses the global fetch.
Quick start
Section titled “Quick start”import { readFile } from "node:fs/promises";import { SkinAnalysisClient } from "@revieve/sdk";
const revieve = new SkinAnalysisClient({ partnerId: "jmlv6b2qtS" });const image = await readFile("./selfie.jpg");
const result = await revieve.analyzeImage({ image, components: ["wrinkles", "redness", "skin_age"],});
console.log(result.message, result.results);import { SkinAnalysisClient } from "@revieve/sdk";
const revieve = new SkinAnalysisClient({ partnerId: "jmlv6b2qtS" });
document.getElementById("file").addEventListener("change", async (e) => { const result = await revieve.analyzeImage({ image: (e.target as HTMLInputElement).files![0], components: ["wrinkles", "redness", "skin_age"], }); console.log(result);});Errors
Section titled “Errors”import { SkinAnalysisClient, RevieveAnalysisError } from "@revieve/sdk";
try { await revieve.analyzeImage({ image });} catch (err) { if (err instanceof RevieveAnalysisError) { console.log(err.firstErrorIdx, err.message); } else { throw err; }}Test fixture injection
Section titled “Test fixture injection”Pass a custom fetch to the constructor — useful for unit tests or for environments with custom transport requirements:
const revieve = new SkinAnalysisClient({ partnerId: "test", fetch: async (url, init) => new Response(JSON.stringify(fixtureResponse)),});