UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

84 lines 9.74 kB
/** * @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.key}`; } case '!=': { return param.values .map(value => `${param.key}${param.operator}${value}`) .join(','); } case 'in': case 'notin': { return `${param.key} ${param.operator} (${param.values .filter(Boolean) .join(',')})`; } case 'exists': { return `${param.key}`; } case 'doesnotexist': { return `!${param.key}`; } 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvazhzLXJlc291cmNlLWxpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBR0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUTdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxTQUFvQixFQUFFO0lBQ3hELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1NBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxHQUFZO0lBQzlDLE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDekMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNiLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FB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c291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgazhzLXJlc291cmNlLWxpc3RcbiAqL1xuXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMgfSBmcm9tICdyYW1kYSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlTGlzdFBhcmFtcyxcbiAgU3RyaW5nTWFwLFxuICBMYWJlbFNlbGVjdG9yUmVxdWlyZW1lbnQsXG59IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbi8qKlxuICogY29udmVydCBzZWxlY3Rvci5tYXRjaExhYmVscyB0byBzdHJpbmdcbiAqIHJlZmVycyB0bzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbGFiZWxzLyNhcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTGFiZWxzVG9TdHJpbmcocGFyYW1zOiBTdHJpbmdNYXAgPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgIC5tYXAoa2V5ID0+IGAke2tleX09JHtwYXJhbXNba2V5XSB8fCAnJ31gKVxuICAgIC5qb2luKCcsJyk7XG59XG5cbi8qKlxuICogY29udmVydCBzdHJpbmcgdG8gc2VsZWN0b3IubWF0Y2hMYWJlbHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvTWF0Y2hMYWJlbHMoc3RyPzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGxhYmVsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLCcpLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiB7XG4gICAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBpdGVtLnNwbGl0KCc9Jyk7XG4gICAgICBpZiAoa2V5ICYmIHZhbHVlKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIGxhYmVscyk7XG4gIH1cbiAgcmV0dXJuIGxhYmVscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoRXhwcmVzc2lvbnNUb1N0cmluZyhwYXJhbXM6IExhYmVsU2VsZWN0b3JSZXF1aXJlbWVudFtdKSB7XG4gIHJldHVybiBwYXJhbXNcbiAgICAubWFwKHBhcmFtID0+IHtcbiAgICAgIHN3aXRjaCAocGFyYW0ub3BlcmF0b3IudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBjYXNlICc9JzpcbiAgICAgICAgY2FzZSAnPT0nOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX0ke3BhcmFtLm9wZXJhdG9yfSR7cGFyYW0udmFsdWVzWzBdfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnISc6IHtcbiAgICAgICAgICByZXR1cm4gYCEke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJyE9Jzoge1xuICAgICAgICAgIHJldHVybiBwYXJhbS52YWx1ZXNcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gYCR7cGFyYW0ua2V5fSR7cGFyYW0ub3BlcmF0b3J9JHt2YWx1ZX1gKVxuICAgICAgICAgICAgLmpvaW4oJywnKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdpbic6XG4gICAgICAgIGNhc2UgJ25vdGluJzoge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbS5rZXl9ICR7cGFyYW0ub3BlcmF0b3J9ICgke3BhcmFtLnZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgLmpvaW4oJywnKX0pYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdleGlzdHMnOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2RvZXNub3RleGlzdCc6IHtcbiAgICAgICAgICByZXR1cm4gYCEke3BhcmFtLmtleX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gcGFyYW0ua2V5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICAuam9pbignLCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExpc3RQYXJhbXNGcm9tUm91dGUoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbik6IE9ic2VydmFibGU8UmVzb3VyY2VMaXN0UGFyYW1zPiB7XG4gIHJldHVybiByb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUoXG4gICAgbWFwKHBhcmFtTWFwID0+ICh7XG4gICAgICBsYWJlbFNlbGVjdG9yOiBwYXJhbU1hcC5nZXQoJ2xhYmVsU2VsZWN0b3InKSxcbiAgICAgIGZpZWxkU2VsZWN0b3I6IHBhcmFtTWFwLmdldCgnZmllbGRTZWxlY3RvcicpLFxuICAgICAga2V5d29yZDogcGFyYW1NYXAuZ2V0KCdrZXl3b3JkJyksXG4gICAgICBmaWVsZDogcGFyYW1NYXAuZ2V0KCdmaWVsZCcpLFxuICAgIH0pKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZDxSZXNvdXJjZUxpc3RQYXJhbXM+KGVxdWFscyksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQYXJhbXM8UCBleHRlbmRzIG9iamVjdD4ocGFyYW1zOiBQKTogUCB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwYXJhbXMpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiB2YWx1ZTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGFjY1trZXkgYXMga2V5b2YgUF0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUCk7XG59XG4iXX0=