Files
tiptap/packages/core/src/utilities/mergeAttributes.ts
Philipp Kühn e07a5b625d refactor: Use named exports instead of default exports (#2238)
* use named exports instead of default exports

* fix tests

Co-authored-by: Philipp Kühn <philippkuehn@MacBook-Pro-von-Philipp.local>
2021-12-06 12:00:09 +01:00

28 lines
744 B
TypeScript

export function mergeAttributes(...objects: Record<string, any>[]): Record<string, any> {
return objects
.filter(item => !!item)
.reduce((items, item) => {
const mergedAttributes = { ...items }
Object.entries(item).forEach(([key, value]) => {
const exists = mergedAttributes[key]
if (!exists) {
mergedAttributes[key] = value
return
}
if (key === 'class') {
mergedAttributes[key] = [mergedAttributes[key], value].join(' ')
} else if (key === 'style') {
mergedAttributes[key] = [mergedAttributes[key], value].join('; ')
} else {
mergedAttributes[key] = value
}
})
return mergedAttributes
}, {})
}