Initial commit
This commit is contained in:
47
web/utils/var.ts
Normal file
47
web/utils/var.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { VAR_ITEM_TEMPLATE, getMaxVarNameLength, zhRegex, emojiRegex, MAX_VAR_KEY_LENGHT } from "@/config"
|
||||
const otherAllowedRegex = new RegExp(`^[a-zA-Z0-9_]+$`)
|
||||
|
||||
export const getNewVar = (key: string) => {
|
||||
return {
|
||||
...VAR_ITEM_TEMPLATE,
|
||||
key,
|
||||
name: key.slice(0, getMaxVarNameLength(key)),
|
||||
}
|
||||
}
|
||||
|
||||
const checkKey = (key: string, canBeEmpty?: boolean) => {
|
||||
if (key.length === 0 && !canBeEmpty) {
|
||||
return 'canNoBeEmpty'
|
||||
}
|
||||
if (canBeEmpty && key === '') {
|
||||
return true
|
||||
}
|
||||
if (key.length > MAX_VAR_KEY_LENGHT) {
|
||||
return 'tooLong'
|
||||
}
|
||||
if (otherAllowedRegex.test(key)) {
|
||||
if (/[0-9]/.test(key[0])) {
|
||||
return 'notStartWithNumber'
|
||||
}
|
||||
return true
|
||||
}
|
||||
return 'notValid'
|
||||
}
|
||||
|
||||
export const checkKeys = (keys: string[], canBeEmpty?: boolean) => {
|
||||
let isValid = true
|
||||
let errorKey = ''
|
||||
let errorMessageKey = ''
|
||||
keys.forEach((key) => {
|
||||
if (!isValid) {
|
||||
return
|
||||
}
|
||||
const res = checkKey(key, canBeEmpty)
|
||||
if (res !== true) {
|
||||
isValid = false
|
||||
errorKey = key
|
||||
errorMessageKey = res
|
||||
}
|
||||
})
|
||||
return { isValid, errorKey, errorMessageKey }
|
||||
}
|
Reference in New Issue
Block a user