@loaders.gl/xml
Version:
Framework-independent loaders for the XML (eXtensible Markup Language) format
30 lines (29 loc) • 795 B
JavaScript
// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
/**
* Uncapitalize first letter of a string
* @param str
* @returns
*/
export function uncapitalize(str) {
return typeof str === 'string' ? str.charAt(0).toLowerCase() + str.slice(1) : str;
}
/**
* Recursively uncapitalize all keys in a nested object
* @param object
* @returns
*/
export function uncapitalizeKeys(object) {
if (Array.isArray(object)) {
return object.map((element) => uncapitalizeKeys(element));
}
if (object && typeof object === 'object') {
const newObject = {};
for (const [key, value] of Object.entries(object)) {
newObject[uncapitalize(key)] = uncapitalizeKeys(value);
}
return newObject;
}
return object;
}