UNPKG

im-angular-validators

Version:

This library will help you with lots of already written mostly used validators for Angular 2+ applications.

26 lines 4.78 kB
import { IMUrlProtocolTypeEnum } from '../enums/url-protocol.enum'; export class IMUrlValidatorConfigModel { constructor() { this.protocolType = IMUrlProtocolTypeEnum.Any; } } export const IMUrlValidator = (config = new IMUrlValidatorConfigModel()) => { return (control) => { if (control.value && !urlCheckResolver[config.protocolType](control.value)) { return { urlValidationError: { isInvalid: true, protocolType: config.protocolType } }; } }; }; const urlCheckResolver = { [IMUrlProtocolTypeEnum.Any]: (value) => new RegExp(`^(?:(?:http(s)?:\\/\\/)|(?:ftp(s)?:\\/\\/))?[\\w.-]+(?:\\.[\\w.-]+)+[\\w\\-._~:/?#[\\]@!$&'()*+,;=]+$`).test(value), [IMUrlProtocolTypeEnum.NoProtocol]: (value) => new RegExp(`^www.`).test(value), [IMUrlProtocolTypeEnum.Http]: (value) => new RegExp(`^http://`).test(value), [IMUrlProtocolTypeEnum.Https]: (value) => new RegExp(`^https://`).test(value), [IMUrlProtocolTypeEnum.Ftp]: (value) => new RegExp(`^ftp://`).test(value) }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdmFsaWRhdG9ycy9zcmMvbGliL3ZhbGlkYXRvcnMvdXJsLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUdqRSxNQUFNLE9BQU8seUJBQXlCO0lBQXRDO1FBQ1MsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsR0FBRyxDQUFDO0lBQ3pFLENBQUM7Q0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFNBQW9DLElBQUkseUJBQXlCLEVBQUUsRUFBZSxFQUFFO0lBQ2pILE9BQU8sQ0FBQyxPQUF3QixFQUFvQixFQUFFO1FBQ3BELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUUsT0FBTztnQkFDTCxrQkFBa0IsRUFBRTtvQkFDbEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO2lCQUNYO2FBQ3pCLENBQUM7U0FDSDtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQzdDLElBQUksTUFBTSxDQUFDLHVHQUF1RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNqSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RGLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkYsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyRixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0NBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtJTVVybFByb3RvY29sVHlwZUVudW19IGZyb20gJy4uL2VudW1zL3VybC1wcm90b2NvbC5lbnVtJztcclxuaW1wb3J0IHtJTVVybEVycm9ySW50ZXJmYWNlfSBmcm9tICcuLi9pbnRlcmZhY2VzL3VybC1lcnJvci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIElNVXJsVmFsaWRhdG9yQ29uZmlnTW9kZWwge1xyXG4gIHB1YmxpYyBwcm90b2NvbFR5cGU6IElNVXJsUHJvdG9jb2xUeXBlRW51bSA9IElNVXJsUHJvdG9jb2xUeXBlRW51bS5Bbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBJTVVybFZhbGlkYXRvciA9IChjb25maWc6IElNVXJsVmFsaWRhdG9yQ29uZmlnTW9kZWwgPSBuZXcgSU1VcmxWYWxpZGF0b3JDb25maWdNb2RlbCgpKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XHJcbiAgICBpZiAoY29udHJvbC52YWx1ZSAmJiAhdXJsQ2hlY2tSZXNvbHZlcltjb25maWcucHJvdG9jb2xUeXBlXShjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHVybFZhbGlkYXRpb25FcnJvcjoge1xyXG4gICAgICAgICAgaXNJbnZhbGlkOiB0cnVlLFxyXG4gICAgICAgICAgcHJvdG9jb2xUeXBlOiBjb25maWcucHJvdG9jb2xUeXBlXHJcbiAgICAgICAgfSBhcyBJTVVybEVycm9ySW50ZXJmYWNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfTtcclxufTtcclxuXHJcbmNvbnN0IHVybENoZWNrUmVzb2x2ZXIgPSB7XHJcbiAgW0lNVXJsUHJvdG9jb2xUeXBlRW51bS5BbnldOiAodmFsdWU6IHN0cmluZykgPT5cclxuICAgIG5ldyBSZWdFeHAoYF4oPzooPzpodHRwKHMpPzpcXFxcL1xcXFwvKXwoPzpmdHAocyk/OlxcXFwvXFxcXC8pKT9bXFxcXHcuLV0rKD86XFxcXC5bXFxcXHcuLV0rKStbXFxcXHdcXFxcLS5ffjovPyNbXFxcXF1AISQmJygpKissOz1dKyRgKS50ZXN0KHZhbHVlKSxcclxuICBbSU1VcmxQcm90b2NvbFR5cGVFbnVtLk5vUHJvdG9jb2xdOiAodmFsdWU6IHN0cmluZykgPT4gbmV3IFJlZ0V4cChgXnd3dy5gKS50ZXN0KHZhbHVlKSxcclxuICBbSU1VcmxQcm90b2NvbFR5cGVFbnVtLkh0dHBdOiAodmFsdWU6IHN0cmluZykgPT4gbmV3IFJlZ0V4cChgXmh0dHA6Ly9gKS50ZXN0KHZhbHVlKSxcclxuICBbSU1VcmxQcm90b2NvbFR5cGVFbnVtLkh0dHBzXTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBSZWdFeHAoYF5odHRwczovL2ApLnRlc3QodmFsdWUpLFxyXG4gIFtJTVVybFByb3RvY29sVHlwZUVudW0uRnRwXTogKHZhbHVlOiBzdHJpbmcpID0+IG5ldyBSZWdFeHAoYF5mdHA6Ly9gKS50ZXN0KHZhbHVlKVxyXG59O1xyXG4iXX0=