fin-utils
Version:
Shared utilities for Fin.
50 lines (36 loc) • 1.3 kB
JavaScript
const emailValidator = require('email-validator')
const usernameBlacklist = require('./username-blacklist.json')
const usernameBlacklistSet = new Set(usernameBlacklist)
exports.usernameRe = /^[a-zA-Z0-9-_]{1,64}$/
exports.passwordRe = /^.{3,1024}$/
exports.projectNameRe = /^[a-zA-Z0-9-_]{3,64}$/
exports.deploymentHashRe = /^[a-z0-9]{8}$/
exports.projectRe = /^[a-zA-Z0-9-_]{1,64}\/[a-zA-Z0-9-_]{3,64}$/
exports.deploymentRe = /^[a-zA-Z0-9-_]{1,64}\/[a-zA-Z0-9-_]{3,64}@[a-z0-9]{8}$/
// any valid JavaScript identifier
exports.serviceRe = /^[a-zA-Z_][a-zA-Z0-9_]*$/
exports.email = (value) => {
return emailValidator.validate(value)
}
exports.username = (value) => {
return value && exports.usernameRe.test(value) && !usernameBlacklistSet.has(value)
}
exports.password = (value) => {
return value && exports.passwordRe.test(value)
}
exports.projectName = (value) => {
return value && exports.projectNameRe.test(value)
}
exports.deploymentHash = (value) => {
return value && exports.deploymentHashRe.test(value)
}
exports.project = (value) => {
return value && exports.projectRe.test(value)
}
exports.deployment = (value) => {
return value && exports.deploymentRe.test(value)
}
exports.service = (value) => {
return value && exports.serviceRe.test(value)
}