UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

41 lines (40 loc) 1.45 kB
"use strict"; // 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; }