@muban/muban
Version:
Writing components for server-rendered HTML
16 lines (15 loc) • 560 B
JavaScript
/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/naming-convention */
import { unref } from '@vue/reactivity';
export function mapValues(object, fn) {
return Object.fromEntries(Object.entries(object).map(([key, value]) => [key, fn(value, key, object)]));
}
export function recursiveUnref(source) {
const value = unref(source);
if (Array.isArray(value)) {
return value.map(recursiveUnref);
}
if (String(value) === '[object Object]') {
return mapValues(value, recursiveUnref);
}
return value;
}