@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
41 lines (40 loc) • 1.45 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.findMissingProperty = findMissingProperty;
exports.allMissingProperties = allMissingProperties;
exports.notEmpty = notEmpty;
exports.convertKeysToCamelCase = convertKeysToCamelCase;
/*
search in given object for property names, returns first property name not found, or undefined if nothing found
*/
function findMissingProperty(obj, keys) {
return keys.find((key) => !obj[key]);
}
/*
search in given object for property names, returns all property names not found
*/
function allMissingProperties(obj, keys) {
return keys.filter((key) => !obj[key]);
}
/*
return true if the given value is truthey, while asserting the type
can be used in filters etc to remove nulls in a way the compiler accepts
*/
function notEmpty(value) {
return !!value;
}
function toCamelCase(str) {
return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
}
//modifies an object such that its property names are converted from snake_case to camelCase
function convertKeysToCamelCase(obj) {
if (Array.isArray(obj)) {
return obj.map(convertKeysToCamelCase);
}
else if (obj !== null && typeof obj === "object") {
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [toCamelCase(key), convertKeysToCamelCase(value)]));
}
return obj;
}