// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors /** A single element of an array is not represented as an array in XML */ export function getXMLArray(xmlValue: any): any[] { // Already an array, return as is if (Array.isArray(xmlValue)) { return xmlValue; } // Single value, wrap in array if (xmlValue) { return [xmlValue]; } // nullish, return empty array return []; } /** Get a list of strings from XML */ export function getXMLStringArray(xmlValue: any): string[] { const xmlArray = getXMLArray(xmlValue); if (xmlArray.length > 0 && xmlArray.every((_) => typeof _ === 'string')) { return xmlArray; } // TODO - error handling? return []; } /** Get XML float */ export function getXMLFloat(xmlValue: any, defaultValue = undefined): number | undefined { switch (typeof xmlValue) { case 'number': return xmlValue; case 'string': return parseFloat(xmlValue); default: return undefined; } } /** Get XML integer */ export function getXMLInteger(xmlValue: any, defaultValue = undefined): number | undefined { switch (typeof xmlValue) { case 'number': return xmlValue; case 'string': return parseInt(xmlValue, 10); default: return undefined; } } /** Somewhat arbitrary boolean parsing */ export function getXMLBoolean(xmlValue: any): boolean { switch (xmlValue) { case 'true': return true; case 'false': return false; case '1': return true; case '0': return false; default: return false; } }