UNPKG

@astro-utils/forms

Version:

Server component for Astro (call server functions from client side with validation and state management)

34 lines (33 loc) 840 B
export function diffProps(object1, object2, skipKeys = []) { const diff = {}; for (const [key, value] of Object.entries(object2)) { if (skipKeys.includes(key)) continue; if (JSON.stringify(object1[key]) !== JSON.stringify(value)) { diff[key] = value; } } return diff; } export function getSomeProps(object, props) { if (props === true) { return object; } const result = {}; for (const prop of props) { result[prop] = object[prop]; } return result; } export function omitProps(object, props) { if (props === true) { return {}; } const result = { ...object }; for (const prop in object) { if (props.includes(prop) || prop[0] === '_') { delete result[prop]; } } return result; }