@k8ts/metadata
Version:
K8ts tools for working with k8ts metadata.
38 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkMetadataValue = checkMetadataValue;
exports.checkNameValue = checkNameValue;
exports.checkMetaString = checkMetaString;
const error_1 = require("../error");
const metadata_key_1 = require("../input/key/metadata-key");
const parse_key_1 = require("../input/key/parse-key");
function checkMetadataValue(key, v) {
const parsed = (0, parse_key_1.parseOuterKey)(key);
if (!(parsed instanceof metadata_key_1.Metadata_Key_Value)) {
throw new error_1.K8tsMetadataError(`Expected value key, got section key for ${key}`);
}
if (parsed.metaType === "label") {
checkMetaString(`value of ${key}`, v, 63);
}
else if (parsed.metaType === "core") {
checkNameValue(`value of ${key}`, v);
}
}
function checkNameValue(what, v) {
if (!parse_key_1.pNameValue.parse(v).isOk) {
throw new error_1.K8tsMetadataError(`Invalid ${what}: ${v}`);
}
checkMetaString(what, v, 63);
}
function checkMetaString(thing, input, length) {
if (!parse_key_1.normalChar.parse(input[0]).isOk) {
throw new error_1.K8tsMetadataError(`${thing} must start with an alphanumeric character.`);
}
if (!parse_key_1.normalChar.parse(input[input.length - 1]).isOk) {
throw new error_1.K8tsMetadataError(`${thing} must end with an alphanumeric character.`);
}
if (thing.length > length) {
throw new error_1.K8tsMetadataError(`${thing} must be no more than ${length} characters.`);
}
}
//# sourceMappingURL=validate.js.map