@alauda-fe/common
Version:
Alauda frontend team common codes.
80 lines • 9.39 kB
JavaScript
/**
* @packageDocumentation
* @module k8s-resource-list
*/
import { equals } from 'ramda';
import { distinctUntilChanged, map } from 'rxjs';
/**
* convert selector.matchLabels to string
* refers to: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
*/
export function matchLabelsToString(params = {}) {
return Object.keys(params)
.map(key => `${key}=${params[key] || ''}`)
.join(',');
}
/**
* convert string to selector.matchLabels
*/
export function stringToMatchLabels(str) {
const labels = {};
if (str) {
return str.split(',').reduce((acc, item) => {
const [key, value] = item.split('=');
if (key && value) {
acc[key] = value;
}
return acc;
}, labels);
}
return labels;
}
export function matchExpressionsToString(params) {
return params
.map(param => {
switch (param.operator.toLowerCase()) {
case '=':
case '==': {
return `${param.key}${param.operator}${param.values[0]}`;
}
case '!=': {
return param.values
.map(value => `${param.key}${param.operator}${value}`)
.join(',');
}
case '!':
case 'doesnotexist': {
return `!${param.key}`;
}
case 'exists': {
return `${param.key}`;
}
case 'in':
case 'notin': {
return `${param.key} ${param.operator} (${param.values.join(',')})`;
}
default: {
return param.key;
}
}
})
.join(',');
}
export function extractListParamsFromRoute(route) {
return route.queryParamMap.pipe(map(paramMap => ({
labelSelector: paramMap.get('labelSelector'),
fieldSelector: paramMap.get('fieldSelector'),
keyword: paramMap.get('keyword'),
field: paramMap.get('field'),
})), distinctUntilChanged(equals));
}
export function normalizeParams(params) {
return Object.entries(params).reduce((acc, [key, value]) => {
value = typeof value === 'string' ? value.trim() : value;
if (value) {
acc[key] = value;
}
return acc;
}, {});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUTdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQixFQUFFO0lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFZO0lBQzlDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQWtDO0lBQ3pFLE9BQU8sTUFBTTtTQUNWLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLFFBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLEtBQUssR0FBRyxDQUFDO1lBQ1QsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNWLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNELENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsT0FBTyxLQUFLLENBQUMsTUFBTTtxQkFDaEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLENBQUM7cUJBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNmLENBQUM7WUFDRCxLQUFLLEdBQUcsQ0FBQztZQUNULEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QixDQUFDO1lBQ0QsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNkLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDeEIsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDO1lBQ1YsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNiLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUN0RSxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDUixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxLQUFxQjtJQUVyQixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsYUFBYSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQzVDLGFBQWEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUM1QyxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDaEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0tBQzdCLENBQUMsQ0FBQyxFQUNILG9CQUFvQixDQUFxQixNQUFNLENBQUMsQ0FDakQsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFtQixNQUFTO0lBQ3pELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN6RCxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsR0FBRyxDQUFDLEdBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgU3RyaW5nTWFwLFxuICBMYWJlbFNlbGVjdG9yUmVxdWlyZW1lbnQsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbi8qKlxuICogY29udmVydCBzZWxlY3Rvci5tYXRjaExhYmVscyB0byBzdHJpbmdcbiAqIHJlZmVycyB0bzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbGFiZWxzLyNhcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTGFiZWxzVG9TdHJpbmcocGFyYW1zOiBTdHJpbmdNYXAgPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09JHtwYXJhbXNba2V5XSB8fCAnJ31gKVxuICAgIC5qb2luKCcsJyk7XG59XG5cbi8qKlxuICogY29udmVydCBzdHJpbmcgdG8gc2VsZWN0b3IubWF0Y2hMYWJlbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvTWF0Y2hMYWJlbHMoc3RyPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLCcpLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBpdGVtLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGxhYmVscyk7XG4gIH1cbiAgcmV0dXJuIGxhYmVscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhwYXJhbXM6IExhYmVsU2VsZWN0b3JSZXF1aXJlbWVudFtdKSB7XG4gIHJldHVybiBwYXJhbXNcbiAgICAubWFwKHBhcmFtID0+IHtcbiAgICAgIHN3aXRjaCAocGFyYW0ub3BlcmF0b3IudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICc9JzpcbiAgICAgICAgY2FzZSAnPT0nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0ke3BhcmFtLm9wZXJhdG9yfSR7cGFyYW0udmFsdWVzWzBdfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnIT0nOiB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLnZhbHVlc1xuICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiBgJHtwYXJhbS5rZXl9JHtwYXJhbS5vcGVyYXRvcn0ke3ZhbHVlfWApXG4gICAgICAgICAgICAuam9pbignLCcpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJyEnOlxuICAgICAgICBjYXNlICdkb2Vzbm90ZXhpc3QnOiB7XG4gICAgICAgICAgcmV0dXJuIGAhJHtwYXJhbS5rZXl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdleGlzdHMnOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2luJzpcbiAgICAgICAgY2FzZSAnbm90aW4nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0gJHtwYXJhbS5vcGVyYXRvcn0gKCR7cGFyYW0udmFsdWVzLmpvaW4oJywnKX0pYDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIHBhcmFtLmtleTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgLmpvaW4oJywnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMaXN0UGFyYW1zRnJvbVJvdXRlKFxuICByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4pOiBPYnNlcnZhYmxlPFJlc291cmNlTGlzdFBhcmFtcz4ge1xuICByZXR1cm4gcm91dGUucXVlcnlQYXJhbU1hcC5waXBlKFxuICAgIG1hcChwYXJhbU1hcCA9PiAoe1xuICAgICAgbGFiZWxTZWxlY3RvcjogcGFyYW1NYXAuZ2V0KCdsYWJlbFNlbGVjdG9yJyksXG4gICAgICBmaWVsZFNlbGVjdG9yOiBwYXJhbU1hcC5nZXQoJ2ZpZWxkU2VsZWN0b3InKSxcbiAgICAgIGtleXdvcmQ6IHBhcmFtTWFwLmdldCgna2V5d29yZCcpLFxuICAgICAgZmllbGQ6IHBhcmFtTWFwLmdldCgnZmllbGQnKSxcbiAgICB9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQ8UmVzb3VyY2VMaXN0UGFyYW1zPihlcXVhbHMpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFyYW1zPFAgZXh0ZW5kcyBvYmplY3Q+KHBhcmFtczogUCk6IFAge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgdmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUudHJpbSgpIDogdmFsdWU7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBhY2Nba2V5IGFzIGtleW9mIFBdID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9IGFzIFApO1xufVxuIl19