You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
main
${ noResults }
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import validator from 'validator'
|
|||
import { CONFIG } from '@server/initializers/config.js'
|
|||
import { CONSTRAINTS_FIELDS } from '../../initializers/constants.js'
|
|||
import { exists, isArray } from './misc.js'
|
|||
|
|||
function isHostValid (host: string) {
|
|||
const isURLOptions = {
|
|||
require_host: true,
|
|||
require_tld: true
|
|||
}
|
|||
|
|||
// We validate 'localhost', so we don't have the top level domain
|
|||
if (CONFIG.WEBSERVER.HOSTNAME === 'localhost' || CONFIG.WEBSERVER.HOSTNAME === '127.0.0.1') {
|
|||
isURLOptions.require_tld = false
|
|||
}
|
|||
|
|||
return exists(host) && validator.default.isURL(host, isURLOptions) && host.split('://').length === 1
|
|||
}
|
|||
|
|||
function isEachUniqueHostValid (hosts: string[]) {
|
|||
return isArray(hosts) &&
|
|||
hosts.every(host => {
|
|||
return isHostValid(host) && hosts.indexOf(host) === hosts.lastIndexOf(host)
|
|||
})
|
|||
}
|
|||
|
|||
function isValidContactBody (value: any) {
|
|||
return exists(value) && validator.default.isLength(value, CONSTRAINTS_FIELDS.CONTACT_FORM.BODY)
|
|||
}
|
|||
|
|||
function isValidContactFromName (value: any) {
|
|||
return exists(value) && validator.default.isLength(value, CONSTRAINTS_FIELDS.CONTACT_FORM.FROM_NAME)
|
|||
}
|
|||
|
|||
// ---------------------------------------------------------------------------
|
|||
|
|||
export {
|
|||
isValidContactBody,
|
|||
isValidContactFromName,
|
|||
isEachUniqueHostValid,
|
|||
isHostValid
|
|||
}
|