import { Dragdropdo, D3APIError, D3ValidationError } from "dragdropdo-sdk";
async function processFile() {
const client = new Dragdropdo({
apiKey: process.env.D3_API_KEY!,
baseURL: "https://api.dragdropdo.com",
});
try {
// 1. Upload
const uploadResult = await client.uploadFile({
file: "./document.pdf",
fileName: "document.pdf",
});
// 2. Check support
const supported = await client.checkSupportedOperation({
ext: "pdf",
action: "convert",
parameters: { convert_to: "png" },
});
if (!supported.supported)
throw new Error("Convert to PNG is not supported");
// 3. Create operation
const operation = await client.convert([uploadResult.fileKey], "png", {
userId: "user-123",
source: "api",
});
// 4. Poll
const status = await client.pollStatus({
mainTaskId: operation.mainTaskId,
interval: 2000,
});
if (status.operationStatus === "completed") {
status.filesData.forEach((file) => {
console.log(`Download: ${file.downloadLink}`);
});
}
} catch (error) {
if (error instanceof D3APIError) {
console.error(`API Error (${error.statusCode}):`, error.message);
} else if (error instanceof D3ValidationError) {
console.error("Validation Error:", error.message);
} else {
console.error("Error:", error);
}
}
}