import { PluginObject } from 'vue' import * as system from './system' import * as validator from './validator' export function superEach (data: {} | [], callback: (item: T, i: string | number) => void) { if (Array.isArray(data)) { for (let index = 0, length = data.length; index < length; index++ ) { callback.call(data[index], data[index], index) } } else { for (let key in data) { callback.call(data[key], data[key], key) } } return data } export async function superEachAsync (data: {} | [], callback: (item: T, i: string | number) => void) { if (Array.isArray(data)) { for (let index = 0, length = data.length; index < length; index++ ) { await callback.call(data[index], data[index], index) } } else { for (let key in data) { await callback.call(data[key], data[key], key) } } return data } export function parseDate (v: string | Date | number) : Date { if (typeof v === 'string') v = v.replace(/-/g, '/') return new Date(v) } export function parseDayTime (d: number = 1) : number { return d * 24 * 60 * 60 * 1000 } export const utils = { superEach, superEachAsync, parseDate, parseDayTime, } const Utils: PluginObject = { install (Vue) { Vue.prototype.$system = system Vue.prototype.$validator = validator Vue.prototype.$utils = utils } } export default Utils