UNPKG

mindee

Version:

Mindee Client Library for Node.js

50 lines (49 loc) 1.7 kB
import { ApiResponse } from "./apiResponse.js"; import { Document } from "./document.js"; /** Wrapper for asynchronous request queues. Holds information regarding a job (queue). * * @category API Response * @category Asynchronous */ export class Job { constructor(jsonResponse) { this.issuedAt = datetimeWithTimezone(jsonResponse["issued_at"]); if (jsonResponse["available_at"] !== undefined && jsonResponse["available_at"] !== null) { this.availableAt = datetimeWithTimezone(jsonResponse["available_at"]); } this.id = jsonResponse["id"]; this.status = jsonResponse["status"]; if (this.availableAt !== undefined) { this.milliSecsTaken = this.availableAt.getTime() - this.issuedAt.getTime(); } } } // Hideous thing to make sure dates sent back by the server are parsed correctly in UTC. export function datetimeWithTimezone(date) { if (date.search(/\+[0-9]{2}:[0-9]{2}$/) === -1) { date += "+00:00"; } return new Date(date); } /** Wrapper for asynchronous jobs and parsing results. * * @category API Response * @category Asynchronous */ export class AsyncPredictResponse extends ApiResponse { /** * * @param inferenceClass constructor signature for an inference. * @param serverResponse raw http response. */ constructor(inferenceClass, serverResponse) { super(serverResponse); this.job = new Job(serverResponse["job"]); this.document = serverResponse["document"] !== undefined ? new Document(inferenceClass, serverResponse["document"]) : undefined; } }