UNPKG

unstructured-client

Version:

<h3 align="center"> <img src="https://raw.githubusercontent.com/Unstructured-IO/unstructured/main/img/unstructured_logo.png" height="200" > </h3>

142 lines 6.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStartingPageNumber = exports.getSplitPdfAllowFailed = exports.getSplitPdfConcurrencyLevel = exports.getSplitPdfPageRange = void 0; const common_js_1 = require("../common.js"); /** * Retrieves an integer parameter from the given form data. * If the parameter is not found or is not a valid integer, the default value is returned. * * @param formData - The form data object. * @param parameterName - The name of the parameter to retrieve. * @param defaultValue - The default value to use if the parameter is not found or is not * a valid integer. * @returns The integer value of the parameter. */ function getIntegerParameter(formData, parameterName, defaultValue) { let numberParameter = defaultValue; const formDataParameter = formData.get(parameterName); if (formDataParameter === null) { return numberParameter; } const formDataNumberParameter = parseInt(formDataParameter); if (isNaN(formDataNumberParameter)) { console.warn(`'${parameterName}' is not a valid integer. Using default value '${defaultValue}'.`); } else { numberParameter = formDataNumberParameter; } return numberParameter; } /** * Retrieves a boolean parameter from the given form data. * If the parameter is not found or does not have true/false value, the default value is returned. * * @param formData - The form data object. * @param parameterName - The name of the parameter to retrieve. * @param defaultValue - The default value to use if the parameter is not found or is not * a true/false string. * @returns The boolean value of the parameter. */ function getBooleanParameter(formData, parameterName, defaultValue) { let booleanParameter = defaultValue; const formDataParameter = formData.get(parameterName); if (formDataParameter === null) { return booleanParameter; } const formDataBooleanParameterString = formDataParameter; if (formDataBooleanParameterString.toLowerCase() === "true") { booleanParameter = true; } else if (formDataBooleanParameterString.toLowerCase() === "false") { booleanParameter = false; } else { console.warn(`'${parameterName}' is not a valid boolean. Using default value '${defaultValue}'.`); } return booleanParameter; } /** * Retrieves and validates a page range from FormData, ensuring that the start and end values are defined and within bounds. * * @param formData - The FormData object containing the page range parameter. * @param maxPages - The maximum number of pages in the document. * @returns {[number, number]} - A tuple containing the validated start and end page numbers. * * @throws Will throw an error if the page range is invalid or out of bounds. */ function getSplitPdfPageRange(formData, maxPages) { const formDataParameter = formData.get(common_js_1.PARTITION_FORM_SPLIT_PDF_PAGE_RANGE_KEY); const pageRange = String(formDataParameter).split(",").map(Number); const start = pageRange[0] || 1; const end = pageRange[1] || maxPages; if (!(start > 0 && start <= maxPages) || !(end > 0 && end <= maxPages) || !(start <= end)) { const msg = `Page range (${start} to ${end}) is out of bounds. Values should be between 1 and ${maxPages}.`; console.error(msg); throw new Error(msg); } return [start, end]; } exports.getSplitPdfPageRange = getSplitPdfPageRange; /** * Gets the number of maximum requests that can be made when splitting PDF. * - The number of maximum requests is determined by the value of the request parameter * `split_pdf_thread`. * - If the parameter is not set or has an invalid value, the default number of * parallel requests (5) is used. * - If the number of maximum requests is greater than the maximum allowed (15), it is * clipped to the maximum value. * - If the number of maximum requests is less than 1, the default number of parallel * requests (5) is used. * * @returns The number of maximum requests to use when calling the API to split a PDF. */ function getSplitPdfConcurrencyLevel(formData) { let splitPdfConcurrencyLevel = getIntegerParameter(formData, common_js_1.PARTITION_FORM_SPLIT_PDF_CONCURRENCY_LEVEL, common_js_1.DEFAULT_NUMBER_OF_PARALLEL_REQUESTS); if (splitPdfConcurrencyLevel > common_js_1.MAX_NUMBER_OF_PARALLEL_REQUESTS) { console.warn(`Clipping '${common_js_1.PARTITION_FORM_SPLIT_PDF_CONCURRENCY_LEVEL}' to ${common_js_1.MAX_NUMBER_OF_PARALLEL_REQUESTS}.`); splitPdfConcurrencyLevel = common_js_1.MAX_NUMBER_OF_PARALLEL_REQUESTS; } else if (splitPdfConcurrencyLevel < 1) { console.warn(`'${common_js_1.PARTITION_FORM_SPLIT_PDF_CONCURRENCY_LEVEL}' is less than 1.`); splitPdfConcurrencyLevel = common_js_1.DEFAULT_NUMBER_OF_PARALLEL_REQUESTS; } return splitPdfConcurrencyLevel; } exports.getSplitPdfConcurrencyLevel = getSplitPdfConcurrencyLevel; /** * Gets the allowFailed parameter which decides whether the partial requests can fail or not * when using splitPdfPage parameter. * - The number of maximum requests is determined by the value of the request parameter * `split_pdf_thread`. * - If the parameter is not set or has an invalid value, the default number of * parallel requests (5) is used. * - If the number of maximum requests is greater than the maximum allowed (15), it is * clipped to the maximum value. * - If the number of maximum requests is less than 1, the default number of parallel * requests (5) is used. * * @returns The number of maximum requests to use when calling the API to split a PDF. */ function getSplitPdfAllowFailed(formData) { const splitPdfAllowFailed = getBooleanParameter(formData, common_js_1.PARTITION_FORM_SPLIT_PDF_ALLOW_FAILED_KEY, common_js_1.DEFAULT_SPLIT_PDF_ALLOW_FAILED_KEY); return splitPdfAllowFailed; } exports.getSplitPdfAllowFailed = getSplitPdfAllowFailed; /** * Retrieves the starting page number from the provided form data. * If the starting page number is not a valid integer or less than 1, * it will use the default value `1`. * * @param formData - Request form data. * @returns The starting page number. */ function getStartingPageNumber(formData) { let startingPageNumber = getIntegerParameter(formData, common_js_1.PARTITION_FORM_STARTING_PAGE_NUMBER_KEY, common_js_1.DEFAULT_STARTING_PAGE_NUMBER); if (startingPageNumber < 1) { console.warn(`'${common_js_1.PARTITION_FORM_STARTING_PAGE_NUMBER_KEY}' is less than 1. Using default value '${common_js_1.DEFAULT_STARTING_PAGE_NUMBER}'.`); startingPageNumber = common_js_1.DEFAULT_STARTING_PAGE_NUMBER; } return startingPageNumber; } exports.getStartingPageNumber = getStartingPageNumber; //# sourceMappingURL=form.js.map