@alauda-fe/common
Version:
Alauda frontend team common codes.
54 lines • 8.35 kB
JavaScript
import { cloneDeep, get, has, unset } from 'lodash-es';
import { dissocPath } from 'ramda';
import { parse as parseYaml, parseAllDocuments, } from 'yaml';
export { stringify } from 'yaml';
export const parse = (yaml, options) => parseYaml(yaml, options);
export const safeParseYaml = (yaml, defaultValue = null, options) => {
try {
return parse(yaml, options);
}
catch {
return defaultValue;
}
};
export const parseAll = (yaml) => {
const docs = parseAllDocuments(yaml);
return docs.map(doc => doc.toJS());
};
export function yamlFilterField(resource, filterList, deepClone = true) {
let cloneResource = deepClone ? cloneDeep(resource) : resource;
filterList.forEach(pathOrFunction => {
if (typeof pathOrFunction === 'string') {
if (has(cloneResource, pathOrFunction)) {
unset(cloneResource, pathOrFunction);
}
}
else {
const list = pathOrFunction(cloneResource);
cloneResource = yamlFilterField(cloneResource, list, false);
}
});
return cloneResource;
}
export const removeDirtyFieldsBeforeUpdate = dissocPath(['metadata', 'managedFields']);
export function prefixFilterRuleFactory(prefix, path, includeOrStartsWith = 'includes') {
return (resource) => {
if (!has(resource, path)) {
return [];
}
const obj = get(resource, path);
return Object.keys(obj)
.filter(item => item[includeOrStartsWith](prefix))
.map(item => [...path, `['${item}']`].join('.'));
};
}
export function emptyObjectRemoveRuleFactory(path) {
return (resource) => {
if (!has(resource, path)) {
return [];
}
const obj = get(resource, path);
return Object.keys(obj).length ? [] : [path.join('.')];
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9jb3JlL3V0aWxzL3lhbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFFTCxLQUFLLElBQUksU0FBUyxFQUNsQixpQkFBaUIsR0FJbEIsTUFBTSxNQUFNLENBQUM7QUFJZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUNuQixJQUFZLEVBQ1osT0FBc0UsRUFDbkUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLElBQVksRUFDWixlQUFrQixJQUFJLEVBQ3RCLE9BQXNFLEVBQ3RFLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBSSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBSSxJQUFZLEVBQU8sRUFBRTtJQUMvQyxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUFNRixNQUFNLFVBQVUsZUFBZSxDQUM3QixRQUFXLEVBQ1gsVUFBNEIsRUFDNUIsU0FBUyxHQUFHLElBQUk7SUFFaEIsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUMvRCxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ2xDLElBQUksT0FBTyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLEtBQUssQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBRWpDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0FBRW5ELE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsTUFBYyxFQUNkLElBQWMsRUFDZCxzQkFHSSxVQUFVO0lBRWQsT0FBTyxDQUErQixRQUFXLEVBQUUsRUFBRTtRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNqRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQWM7SUFDekQsT0FBTyxDQUErQixRQUFXLEVBQUUsRUFBRTtRQUNuRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGhhcywgdW5zZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzc29jUGF0aCB9IGZyb20gJ3JhbWRhJztcbmltcG9ydCB7XG4gIERvY3VtZW50T3B0aW9ucyxcbiAgcGFyc2UgYXMgcGFyc2VZYW1sLFxuICBwYXJzZUFsbERvY3VtZW50cyxcbiAgUGFyc2VPcHRpb25zLFxuICBTY2hlbWFPcHRpb25zLFxuICBUb0pTT3B0aW9ucyxcbn0gZnJvbSAneWFtbCc7XG5cbmltcG9ydCB7IEt1YmVybmV0ZXNSZXNvdXJjZSB9IGZyb20gJy4uL3R5cGVzL3B1YmxpYy1hcGknO1xuXG5leHBvcnQgeyBzdHJpbmdpZnkgfSBmcm9tICd5YW1sJztcblxuZXhwb3J0IGNvbnN0IHBhcnNlID0gPFQ+KFxuICB5YW1sOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBQYXJzZU9wdGlvbnMgJiBEb2N1bWVudE9wdGlvbnMgJiBTY2hlbWFPcHRpb25zICYgVG9KU09wdGlvbnMsXG4pOiBUID0+IHBhcnNlWWFtbCh5YW1sLCBvcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IHNhZmVQYXJzZVlhbWwgPSA8VD4oXG4gIHlhbWw6IHN0cmluZyxcbiAgZGVmYXVsdFZhbHVlOiBUID0gbnVsbCxcbiAgb3B0aW9ucz86IFBhcnNlT3B0aW9ucyAmIERvY3VtZW50T3B0aW9ucyAmIFNjaGVtYU9wdGlvbnMgJiBUb0pTT3B0aW9ucyxcbikgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZTxUPih5YW1sLCBvcHRpb25zKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlQWxsID0gPFQ+KHlhbWw6IHN0cmluZyk6IFRbXSA9PiB7XG4gIGNvbnN0IGRvY3MgPSBwYXJzZUFsbERvY3VtZW50cyh5YW1sKTtcbiAgcmV0dXJuIGRvY3MubWFwKGRvYyA9PiBkb2MudG9KUygpKTtcbn07XG5cbmV4cG9ydCB0eXBlIFlhbWxGaWx0ZXJJdGVtID1cbiAgfCBzdHJpbmdcbiAgfCAoKHJlc291cmNlOiBLdWJlcm5ldGVzUmVzb3VyY2UpID0+IHN0cmluZ1tdKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHlhbWxGaWx0ZXJGaWVsZDxUIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlPihcbiAgcmVzb3VyY2U6IFQsXG4gIGZpbHRlckxpc3Q6IFlhbWxGaWx0ZXJJdGVtW10sXG4gIGRlZXBDbG9uZSA9IHRydWUsXG4pIHtcbiAgbGV0IGNsb25lUmVzb3VyY2UgPSBkZWVwQ2xvbmUgPyBjbG9uZURlZXAocmVzb3VyY2UpIDogcmVzb3VyY2U7XG4gIGZpbHRlckxpc3QuZm9yRWFjaChwYXRoT3JGdW5jdGlvbiA9PiB7XG4gICAgaWYgKHR5cGVvZiBwYXRoT3JGdW5jdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChoYXMoY2xvbmVSZXNvdXJjZSwgcGF0aE9yRnVuY3Rpb24pKSB7XG4gICAgICAgIHVuc2V0KGNsb25lUmVzb3VyY2UsIHBhdGhPckZ1bmN0aW9uKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbGlzdCA9IHBhdGhPckZ1bmN0aW9uKGNsb25lUmVzb3VyY2UpO1xuICAgICAgY2xvbmVSZXNvdXJjZSA9IHlhbWxGaWx0ZXJGaWVsZChjbG9uZVJlc291cmNlLCBsaXN0LCBmYWxzZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGNsb25lUmVzb3VyY2U7XG59XG5cbmV4cG9ydCBjb25zdCByZW1vdmVEaXJ0eUZpZWxkc0JlZm9yZVVwZGF0ZTogPFQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2U+KFxuICByZXNvdXJjZTogVCxcbikgPT4gVCA9IGRpc3NvY1BhdGgoWydtZXRhZGF0YScsICdtYW5hZ2VkRmllbGRzJ10pO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJlZml4RmlsdGVyUnVsZUZhY3RvcnkoXG4gIHByZWZpeDogc3RyaW5nLFxuICBwYXRoOiBzdHJpbmdbXSxcbiAgaW5jbHVkZU9yU3RhcnRzV2l0aDogRXh0cmFjdDxcbiAgICBrZXlvZiBzdHJpbmcsXG4gICAgJ2luY2x1ZGVzJyB8ICdzdGFydHNXaXRoJ1xuICA+ID0gJ2luY2x1ZGVzJyxcbikge1xuICByZXR1cm4gPFQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2U+KHJlc291cmNlOiBUKSA9PiB7XG4gICAgaWYgKCFoYXMocmVzb3VyY2UsIHBhdGgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IG9iaiA9IGdldChyZXNvdXJjZSwgcGF0aCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iailcbiAgICAgIC5maWx0ZXIoaXRlbSA9PiBpdGVtW2luY2x1ZGVPclN0YXJ0c1dpdGhdKHByZWZpeCkpXG4gICAgICAubWFwKGl0ZW0gPT4gWy4uLnBhdGgsIGBbJyR7aXRlbX0nXWBdLmpvaW4oJy4nKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbXB0eU9iamVjdFJlbW92ZVJ1bGVGYWN0b3J5KHBhdGg6IHN0cmluZ1tdKSB7XG4gIHJldHVybiA8VCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZT4ocmVzb3VyY2U6IFQpID0+IHtcbiAgICBpZiAoIWhhcyhyZXNvdXJjZSwgcGF0aCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3Qgb2JqID0gZ2V0KHJlc291cmNlLCBwYXRoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPyBbXSA6IFtwYXRoLmpvaW4oJy4nKV07XG4gIH07XG59XG4iXX0=