UNPKG

@launchmenu/core

Version:

An environment for visual keyboard controlled applets

35 lines 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mapProps = void 0; /** * Maps the given props to other props * @param props The props to map * @param mapper The mapper definitions for each of the properties * @param context The context to pass to the mapper definitions * @param output An optional output object to add the properties to * @returns The resulting object after mapping */ function mapProps(props, mapper, context, output = {}) { Object.keys(props).forEach(propName => { // Ignore any props that aren't specified in the mapper if (mapper[propName]) { const inpValue = props[propName]; if (inpValue === undefined) return; // Skip undefined keys (as if they aren't there) const value = mapper[propName](inpValue, context); // IF the value is an object 'expand' it into the result if (value instanceof Object && !(value instanceof Function)) { Object.keys(value).forEach(resPropName => { output[resPropName] = value[resPropName]; }); } // Otherwise just assign it directly else { output[propName] = value; } } }); return output; } exports.mapProps = mapProps; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwUHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3R5bGluZy9ib3gvcHJvcFJldHJpZXZlcnMvbWFwUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUE7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFFBQVEsQ0FLcEIsS0FBUSxFQUNSLE1BQVMsRUFDVCxPQUFVLEVBQ1YsU0FBK0IsRUFBRTtJQUVqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyx1REFBdUQ7UUFDdkQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksUUFBUSxLQUFLLFNBQVM7Z0JBQUUsT0FBTyxDQUFDLGdEQUFnRDtZQUNwRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWxELHdEQUF3RDtZQUN4RCxJQUFJLEtBQUssWUFBWSxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssWUFBWSxRQUFRLENBQUMsRUFBRTtnQkFDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxvQ0FBb0M7aUJBQy9CO2dCQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDNUI7U0FDSjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFhLENBQUM7QUFDekIsQ0FBQztBQS9CRCw0QkErQkMifQ==