bytario
v1.0.0
Published
Official Node.js SDK for the Bytario file-utility API. Image, PDF, QR, barcode, data, text, color, and render operations.
Maintainers
Readme
bytario
Official Node.js SDK for the Bytario API — image, PDF, QR, barcode, data, text, color, and render operations.
Install
npm install bytarioQuick start
import { Bytario } from 'bytario';
import { readFileSync, writeFileSync } from 'fs';
const b = new Bytario('sk_live_...');
// Convert HEIC to WebP
const webp = await b.image.convert(readFileSync('photo.heic'), { to: 'webp', quality: 85 });
writeFileSync('photo.webp', webp);
// Merge PDFs
const merged = await b.pdf.merge([readFileSync('a.pdf'), readFileSync('b.pdf')]);
writeFileSync('merged.pdf', merged);
// Generate QR code
const qr = await b.qr.generate({ text: 'https://bytario.com', format: 'png' });
writeFileSync('qr.png', qr);
// Check usage
const usage = await b.usage();
console.log(`${usage.remaining} requests remaining`);API
Every method maps 1:1 to a REST endpoint. See full docs.
Image
b.image.convert(image, { to, quality? }) // → Buffer
b.image.resize(image, { width?, height?, fit? }) // → Buffer
b.image.compress(image, { quality }) // → Buffer
b.image.stripMetadata(image) // → Buffer
b.image.readMetadata(image) // → ImageMetadata
b.image.faviconSet(image) // → FaviconSetResult
b.image.crop(image, { x, y, width, height }) // → Buffer
b.image.rotate(image, { degrees }) // → Buffer
b.image.flip(image, { direction }) // → Bufferb.pdf.merge(files[]) // → Buffer
b.pdf.split(pdf, { ranges }) // → { pdfs: string[] }
b.pdf.rotate(pdf, { degrees, pages? }) // → Buffer
b.pdf.watermark(pdf, { text, opacity?, rotation? })// → Buffer
b.pdf.info(pdf) // → PdfInfo
b.pdf.extractText(pdf, { pages? }) // → PdfTextResult
b.pdf.renderPage(pdf, { pages?, format?, dpi? }) // → PdfRenderPageResult
b.pdf.fillForm({ pdf, fields, flatten? }) // → Buffer
b.pdf.flatten(pdf) // → Buffer
b.pdf.compress(pdf, { stripMetadata? }) // → PdfCompressResult
b.pdf.protect(pdf, { userPassword?, ownerPassword? }) // → BufferQR & Barcode
b.qr.generate({ text, format?, size?, errorCorrection? }) // → Buffer
b.qr.read(image) // → QrReadResult
b.barcode.generate({ text, format }) // → Buffer
b.barcode.read(image) // → BarcodeReadResultData
b.data.base64Encode(data) // → string
b.data.base64Decode(base64) // → Buffer
b.data.urlEncode(text) // → string
b.data.urlDecode(text) // → string
b.data.jsonFormat(json) // → string
b.data.jsonMinify(json) // → string
b.data.csvToJson(csv) // → object[]
b.data.jsonToCsv(json) // → stringFile, Text, Color, Render
b.file.hash(data, { algorithm? }) // → FileHashResult
b.file.detect(data) // → FileDetectResult
b.text.wordCount(text) // → WordCountResult
b.text.diff({ a, b }) // → diff result
b.text.markdownToHtml(markdown) // → string
b.color.convert({ color }) // → ColorConvertResult
b.render.svgToPng(svg, { scale?, width? }) // → BufferSelf-service
b.usage() // → UsageResultError handling
import { Bytario, BytarioError } from 'bytario';
try {
await b.image.convert(file, { to: 'webp' });
} catch (e) {
if (e instanceof BytarioError) {
console.log(e.status); // 429
console.log(e.code); // 'quota_exceeded'
console.log(e.message);// 'Monthly quota exhausted'
}
}