mirror of
https://github.com/element-plus/element-plus.git
synced 2025-08-14 10:00:58 +08:00

* perf: change to import-x * feat: add rules * chore: fix rule * chore: fix * chore: fix * chore: fix * style: `pnpm lint:fix` * Revert "style: `pnpm lint:fix`" This reverts commit db0116a288299c507e3cfc4d7a22e2207265d920. * Revert "chore: fix" This reverts commit 69c82a90c01525e38180be4c21e8ef5602512318. * chore: fix * style: `pnpm lint:fix` * fix: lint * chore: `pnpm format`
26 lines
612 B
TypeScript
26 lines
612 B
TypeScript
import { get, set } from 'lodash-unified'
|
|
|
|
import type { Entries } from 'type-fest'
|
|
import type { Arrayable } from '.'
|
|
|
|
export const keysOf = <T extends object>(arr: T) =>
|
|
Object.keys(arr) as Array<keyof T>
|
|
export const entriesOf = <T extends object>(arr: T) =>
|
|
Object.entries(arr) as Entries<T>
|
|
export { hasOwn } from '@vue/shared'
|
|
|
|
export const getProp = <T = any>(
|
|
obj: Record<string, any>,
|
|
path: Arrayable<string>,
|
|
defaultValue?: any
|
|
): { value: T } => {
|
|
return {
|
|
get value() {
|
|
return get(obj, path, defaultValue)
|
|
},
|
|
set value(val: any) {
|
|
set(obj, path, val)
|
|
},
|
|
}
|
|
}
|