UNPKG

wsemi

Version:

A support package for web developer.

67 lines (58 loc) 1.58 kB
import each from 'lodash-es/each.js' import haskey from './haskey.mjs' import getFileType from './getFileType.mjs' /** * 取得檔案關聯性資訊 * * Unit Test: {@link https://github.com/yuda-lyu/wsemi/blob/master/test/getFileAccept.test.mjs Github} * @memberOf wsemi * @param {string} [groupBy=''] 輸入群組化關鍵字字串,預設'',可選用'name','group','acp','exec' * @returns {Array} 回傳檔案關聯性資訊陣列,若有給groupBy則自動群組化 * @example * * console.log(getFileAccept()[2]) * // => { name: 'pdf', * // group: 'docums', * // acp: 'application/pdf', * // exec: 'acrobat' } * * console.log(getFileAccept('acp')['text/html']) * // => [ { name: 'htm', * // group: 'docums', * // acp: 'text/html', * // exec: 'browser' }, * // { name: 'html', * // group: 'docums', * // acp: 'text/html', * // exec: 'browser' } ] * */ function getFileAccept(groupBy = '') { //check if ( groupBy !== '' && groupBy !== 'name' && groupBy !== 'group' && groupBy !== 'acp' && groupBy !== 'exec' ) { return [] } //getFileType let data = getFileType() //check if (groupBy === '') { return data } //groupBy let r = {} each(data, function(v) { let k = v[groupBy] if (!haskey(r, k)) { r[k] = [] } r[k].push(v) }) return r } export default getFileAccept