MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / getFilterFieldByURLSearch

Function getFilterFieldByURLSearch

web/packages/shared/util/route.ts:96–132  ·  view source on GitHub ↗
(filterFields: FilterField[] = [], pager = { limit: 10, offset: 0 })

Source from the content-addressed store, hash-verified

94 * @param filterFields 允许filter的字段
95 */
96export const getFilterFieldByURLSearch = (filterFields: FilterField[] = [], pager = { limit: 10, offset: 0 }) => {
97 // 解析路由参数,设置pager默认值
98 const search = Object.assign({}, pager, getURLSearch());
99 // 获取fitterFields的name:type
100 const filterFieldKV: { [name: string]: FilterFieldType } = {};
101 [...DEFAULT_FILTER_FIELDS, ...filterFields].forEach((field) => {
102 filterFieldKV[field.name] = field.type;
103 });
104 // 仅选取必要的筛选字段,并进行类型转换
105 const filter: Filter = {};
106 Object.keys(search).forEach((key) => {
107 const value = search[key];
108 switch (filterFieldKV[key]) {
109 case 'string':
110 filter[key] = value;
111 break;
112 case 'boolean':
113 filter[key] = isTrue(value);
114 break;
115 case 'number':
116 filter[key] = toNumber(value);
117 break;
118 case 'array_number':
119 filter[key] = value.split(',').map(item => toNumber(item));
120 break;
121 case 'array_string':
122 filter[key] = value.split(',');
123 break;
124 case 'time':
125 filter[key] = value;
126 break;
127 default:
128 break;
129 }
130 });
131 return filter;
132};
133
134
135/**

Callers 1

getURLParamsFunction · 0.90

Calls 2

isTrueFunction · 0.90
getURLSearchFunction · 0.85

Tested by

no test coverage detected