mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-14 15:36:52 +03:00
refactor: migrate Outbound Configuration validation to modular
This commit is contained in:
@@ -7,3 +7,4 @@ export * from './validateSubnet';
|
||||
export * from './bulkValidate';
|
||||
export * from './validateShadowsocksUrl';
|
||||
export * from './validateVlessUrl';
|
||||
export * from './validateOutboundJson';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { validateDomain } from './validateDomain';
|
||||
import { validateIPV4 } from './validateIp';
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
export function validateDNS(value: string): ValidationResult {
|
||||
if (!value) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
export function validateDomain(domain: string): ValidationResult {
|
||||
const domainRegex =
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
export function validateIPV4(ip: string): ValidationResult {
|
||||
const ipRegex =
|
||||
|
||||
20
fe-app-podkop/src/validators/validateOutboundJson.ts
Normal file
20
fe-app-podkop/src/validators/validateOutboundJson.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
// TODO refactor current validation and add tests
|
||||
export function validateOutboundJson(value: string): ValidationResult {
|
||||
try {
|
||||
const parsed = JSON.parse(value);
|
||||
|
||||
if (!parsed.type || !parsed.server || !parsed.server_port) {
|
||||
return {
|
||||
valid: false,
|
||||
message:
|
||||
'Outbound JSON must contain at least "type", "server" and "server_port" fields',
|
||||
};
|
||||
}
|
||||
|
||||
return { valid: true, message: 'Valid' };
|
||||
} catch {
|
||||
return { valid: false, message: 'Invalid JSON format' };
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
// TODO refactor current validation and add tests
|
||||
export function validateShadowsocksUrl(url: string): ValidationResult {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
import { validateIPV4 } from './validateIp';
|
||||
|
||||
export function validateSubnet(value: string): ValidationResult {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ValidationResult } from './types.js';
|
||||
import { ValidationResult } from './types';
|
||||
|
||||
export function validateUrl(
|
||||
url: string,
|
||||
|
||||
Reference in New Issue
Block a user