@launchmenu/core
Version:
An environment for visual keyboard controlled applets
35 lines • 2.59 kB
JavaScript
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==
;