UNPKG

bootstrap-vue-3

Version:

Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript

35 lines (29 loc) 1.04 kB
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import type {TableField, TableFieldObject, TableItem} from '@/types' import {isObject, isString} from '@/utils/inspect' import {startCase} from '@/utils/stringUtils' const useItemHelper = () => { const normaliseFields = (origFields: TableField[], items: TableItem[]): TableFieldObject[] => { const fields: TableFieldObject[] = [] if (!origFields?.length && items?.length) { Object.keys(items[0]).forEach((k) => fields.push({key: k, label: startCase(k)})) return fields } if (Array.isArray(origFields)) { origFields.forEach((f) => { if (typeof f === 'string') { fields.push({key: f, label: startCase(f)}) } else if (isObject(f) && f.key && isString(f.key)) { fields.push({...f}) } // todo handle Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' } }) return fields } return fields } return { normaliseFields, } } export default useItemHelper