UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

46 lines 4.72 kB
/** * 将basic的conditions转换为advanced形式 * 如: * [ * { * condition: 'category1', * operator: '=', * values: ['con1', 'con2'] * }, * { * condition: 'category2', * operator: '!=', * values: ['con11'] * }, * { * condition: '!custom' * } * ] * 将会转化为: * '[category1 = (con1,con2)],[category2 != (con11)],[!custom]' */ export function MultiSearchAdvanced(conditions) { return conditions ?.map(condition => condition.condition ? condition.operator ? `[${condition.condition} ${condition.operator || ''} (${condition.values?.join(',')})]` : `[${condition.condition}]` : '') ?.filter(Boolean) ?.join(','); } // 上述函数的反解析 export function MultiSearchBasic(advancedConditions) { const reg = /\[(?:(?<condition>[^,]+?)\s(?<operator>[\s\S]+?)\s\((?<values>[^\]]*?)\)|(?<customCondition>[^,]+?))\](?:,|$)/g; const matches = Array.from(advancedConditions?.matchAll(reg) || []); return matches.map(match => { const { groups } = match; const condition = groups.condition || groups.customCondition; return { condition, operator: groups.operator, values: groups.values?.split(','), }; }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUE2QjtJQUMvRCxPQUFPLFVBQVU7UUFDZixFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNoQixTQUFTLENBQUMsU0FBUztRQUNqQixDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDbEIsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsSUFDckIsU0FBUyxDQUFDLFFBQVEsSUFBSSxFQUN4QixLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEdBQUc7UUFDOUIsQ0FBQyxDQUFDLEVBQUUsQ0FDUDtRQUNELEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNqQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRUQsV0FBVztBQUNYLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsa0JBQTBCO0lBRTFCLE1BQU0sR0FBRyxHQUNQLGdIQUFnSCxDQUFDO0lBRW5ILE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUU3RCxPQUFPO1lBQ0wsU0FBUztZQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtZQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ2xDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hDb25kaXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiDlsIZiYXNpY+eahGNvbmRpdGlvbnPovazmjaLkuLphZHZhbmNlZOW9ouW8j1xuICog5aaC77yaXG4gKiBbXG4gKiAge1xuICogICAgY29uZGl0aW9uOiAnY2F0ZWdvcnkxJyxcbiAqICAgIG9wZXJhdG9yOiAnPScsXG4gKiAgICB2YWx1ZXM6IFsnY29uMScsICdjb24yJ11cbiAqICB9LFxuICogIHtcbiAqICAgIGNvbmRpdGlvbjogJ2NhdGVnb3J5MicsXG4gKiAgICBvcGVyYXRvcjogJyE9JyxcbiAqICAgIHZhbHVlczogWydjb24xMSddXG4gKiAgfSxcbiAqICB7XG4gKiAgICBjb25kaXRpb246ICchY3VzdG9tJ1xuICogIH1cbiAqIF1cbiAqIOWwhuS8mui9rOWMluS4uu+8mlxuICogJ1tjYXRlZ29yeTEgPSAoY29uMSxjb24yKV0sW2NhdGVnb3J5MiAhPSAoY29uMTEpXSxbIWN1c3RvbV0nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNdWx0aVNlYXJjaEFkdmFuY2VkKGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbltdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbmRpdGlvbnNcbiAgICA/Lm1hcChjb25kaXRpb24gPT5cbiAgICAgIGNvbmRpdGlvbi5jb25kaXRpb25cbiAgICAgICAgPyBjb25kaXRpb24ub3BlcmF0b3JcbiAgICAgICAgICA/IGBbJHtjb25kaXRpb24uY29uZGl0aW9ufSAke1xuICAgICAgICAgICAgICBjb25kaXRpb24ub3BlcmF0b3IgfHwgJydcbiAgICAgICAgICAgIH0gKCR7Y29uZGl0aW9uLnZhbHVlcz8uam9pbignLCcpfSldYFxuICAgICAgICAgIDogYFske2NvbmRpdGlvbi5jb25kaXRpb259XWBcbiAgICAgICAgOiAnJyxcbiAgICApXG4gICAgPy5maWx0ZXIoQm9vbGVhbilcbiAgICA/LmpvaW4oJywnKTtcbn1cblxuLy8g5LiK6L+w5Ye95pWw55qE5Y+N6Kej5p6QXG5leHBvcnQgZnVuY3Rpb24gTXVsdGlTZWFyY2hCYXNpYyhcbiAgYWR2YW5jZWRDb25kaXRpb25zOiBzdHJpbmcsXG4pOiBTZWFyY2hDb25kaXRpb25bXSB7XG4gIGNvbnN0IHJlZyA9XG4gICAgL1xcWyg/Oig/PGNvbmRpdGlvbj5bXixdKz8pXFxzKD88b3BlcmF0b3I+W1xcc1xcU10rPylcXHNcXCgoPzx2YWx1ZXM+W15cXF1dKj8pXFwpfCg/PGN1c3RvbUNvbmRpdGlvbj5bXixdKz8pKVxcXSg/Oix8JCkvZztcblxuICBjb25zdCBtYXRjaGVzID0gQXJyYXkuZnJvbShhZHZhbmNlZENvbmRpdGlvbnM/Lm1hdGNoQWxsKHJlZykgfHwgW10pO1xuICByZXR1cm4gbWF0Y2hlcy5tYXAobWF0Y2ggPT4ge1xuICAgIGNvbnN0IHsgZ3JvdXBzIH0gPSBtYXRjaDtcbiAgICBjb25zdCBjb25kaXRpb24gPSBncm91cHMuY29uZGl0aW9uIHx8IGdyb3Vwcy5jdXN0b21Db25kaXRpb247XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29uZGl0aW9uLFxuICAgICAgb3BlcmF0b3I6IGdyb3Vwcy5vcGVyYXRvcixcbiAgICAgIHZhbHVlczogZ3JvdXBzLnZhbHVlcz8uc3BsaXQoJywnKSxcbiAgICB9O1xuICB9KTtcbn1cbiJdfQ==