Skip to main content
Module

x/vue3_reactivity/shared/toDisplayString.ts

vue3_reactivity is forck by @vue/reactivity for deno.
Latest
File
// deno-lint-ignore-file no-explicit-anyimport { isArray, isMap, isObject, isFunction, isPlainObject, isSet, objectToString, isString} from './index.ts'
/** * For converting {{ interpolation }} values to displayed strings. * @private */export const toDisplayString = (val: unknown): string => { return isString(val) ? val : val == null ? '' : isArray(val) || (isObject(val) && (val.toString === objectToString || !isFunction(val.toString))) ? JSON.stringify(val, replacer, 2) : String(val)}
const replacer = (_key: string, val: any): any => { // can't use isRef here since @vue/shared has no deps if (val && val.__v_isRef) { return replacer(_key, val.value) } else if (isMap(val)) { return { [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val]) => { (entries as any)[`${key} =>`] = val return entries }, {}) } } else if (isSet(val)) { return { [`Set(${val.size})`]: [...val.values()] } } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { return String(val) } return val}