mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-08 08:49:52 +03:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import Schema from 'async-validator';
|
|
import type { MqttSettingsType } from 'types';
|
|
|
|
import { IP_OR_HOSTNAME_VALIDATOR } from './shared';
|
|
|
|
export const createMqttSettingsValidator = (mqttSettings: MqttSettingsType) =>
|
|
new Schema({
|
|
...(mqttSettings.enabled && {
|
|
host: [
|
|
{ required: true, message: 'Host is required' },
|
|
IP_OR_HOSTNAME_VALIDATOR
|
|
],
|
|
base: { required: true, message: 'Base is required' },
|
|
port: [
|
|
{ required: true, message: 'Port is required' },
|
|
{ type: 'number', min: 0, max: 65535, message: 'Invalid Port' }
|
|
],
|
|
keep_alive: [
|
|
{ required: true, message: 'Keep alive is required' },
|
|
{
|
|
type: 'number',
|
|
min: 1,
|
|
max: 86400,
|
|
message: 'Keep alive must be between 1 and 86400'
|
|
}
|
|
],
|
|
publish_time_heartbeat: [
|
|
{ required: true, message: 'Heartbeat is required' },
|
|
{
|
|
type: 'number',
|
|
min: 10,
|
|
max: 86400,
|
|
message: 'Heartbeat must be between 10 and 86400'
|
|
}
|
|
]
|
|
})
|
|
});
|