@allgemein/schema-api
Version:
Library for schema api
37 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HOSTNAME_RFC1034_REGEX = exports.HOSTNAME_RFC952_REGEX = void 0;
exports.Hostname = Hostname;
const lodash_1 = require("lodash");
const AnnotationsHelper_1 = require("../../lib/AnnotationsHelper");
const DefaultValidator_1 = require("../../lib/validation/DefaultValidator");
function Hostname(options) {
return function (source, propertyName) {
const opts = {
format: 'hostname',
};
if (options) {
(0, lodash_1.assign)(opts, { validateOptions: { hostname: {} } });
(0, lodash_1.assign)(opts.validateOptions.hostname, options);
}
AnnotationsHelper_1.AnnotationsHelper.forPropertyOn(source.constructor, propertyName, opts, 'merge');
};
}
exports.HOSTNAME_RFC952_REGEX = /^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$/;
exports.HOSTNAME_RFC1034_REGEX = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/;
DefaultValidator_1.DefaultValidator.define({
name: 'hostname',
fn: (value, options, instance) => {
if ((0, lodash_1.isUndefined)(value) || (0, lodash_1.isNull)(value) || !(0, lodash_1.isString)(value)) {
// if (!get(options, 'required', false)) {
// return true;
// }
return false;
}
return exports.HOSTNAME_RFC952_REGEX.test(value);
},
defaultOptions: {
message: 'Value of property "%propertyName" must be a valid hostname.'
}
});
//# sourceMappingURL=Hostname.js.map