@k8ts/metadata
Version:
K8ts tools for working with k8ts metadata.
22 lines • 827 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.orderMetaKeyedObject = orderMetaKeyedObject;
const doddle_1 = require("doddle");
const error_1 = require("../error");
function comparisonKey(key) {
const bySlash = key.split("/");
if (bySlash.length === 1) {
return key;
}
if (bySlash.length > 2) {
throw new error_1.K8tsMetadataError(`Invalid composed key ${key}, too many '/' characters.`);
}
const [dns, name] = bySlash;
const dnsParts = dns.split(".").reverse();
return [...dnsParts, name].join("\uffff");
}
function orderMetaKeyedObject(input) {
const entries = (0, doddle_1.seq)(Object.entries(input)).orderBy(([key]) => comparisonKey(key));
return Object.fromEntries(entries);
}
//# sourceMappingURL=order-meta-keyed-object.js.map