UNPKG

@k8ts/metadata

Version:

K8ts tools for working with k8ts metadata.

38 lines 1.58 kB
"use strict"; 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