UNPKG

mindee

Version:

Mindee Client Library for Node.js

56 lines (55 loc) 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsyncPredictResponse = exports.Job = void 0; exports.datetimeWithTimezone = datetimeWithTimezone; const apiResponse_1 = require("./apiResponse"); const document_1 = require("./document"); /** Wrapper for asynchronous request queues. Holds information regarding a job (queue). * * @category API Response * @category Asynchronous */ 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(); } } } exports.Job = Job; // Hideous thing to make sure dates sent back by the server are parsed correctly in UTC. 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 */ class AsyncPredictResponse extends apiResponse_1.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_1.Document(inferenceClass, serverResponse["document"]) : undefined; } } exports.AsyncPredictResponse = AsyncPredictResponse;