summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2018-02-19 15:03:58 +0100
committerAndrej Mihajlov <and@mullvad.net>2018-02-20 17:48:28 +0100
commit9fa6ddc1cebae32b6df4ac1f58baa0aee08a9549 (patch)
tree193284d97ba7d9fd22d5663ed1832a86820cfbde /app
parent0a9d2493c98009df43252bd3ec2ebfccc2904052 (diff)
downloadmullvadvpn-9fa6ddc1cebae32b6df4ac1f58baa0aee08a9549.tar.xz
mullvadvpn-9fa6ddc1cebae32b6df4ac1f58baa0aee08a9549.zip
Add generic parameter to constraint helper
Diffstat (limited to 'app')
-rw-r--r--app/lib/ipc-facade.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/app/lib/ipc-facade.js b/app/lib/ipc-facade.js
index 244e6bcc4b..0a64a5cc68 100644
--- a/app/lib/ipc-facade.js
+++ b/app/lib/ipc-facade.js
@@ -4,6 +4,8 @@ import JsonRpcWs, { InvalidReply } from './jsonrpc-ws-ipc';
import { object, maybe, string, number, boolean, enumeration, arrayOf, oneOf } from 'validated/schema';
import { validate } from 'validated/object';
+import type { Node as SchemaNode } from 'validated/schema';
+
export type AccountData = { expiry: string };
export type AccountToken = string;
export type Ip = string;
@@ -75,13 +77,14 @@ export type RelaySettingsUpdate = {|
custom_tunnel_endpoint: RelaySettingsCustom
|};
-const Constraint = (v) => oneOf(string, object({
- only: v,
+const constraint = <T>(constraintValue: SchemaNode<T>) => oneOf(string, object({
+ only: constraintValue,
}));
+
const RelaySettingsSchema = oneOf(
object({
normal: object({
- location: Constraint(oneOf(
+ location: constraint(oneOf(
object({
city: arrayOf(string),
}),
@@ -89,10 +92,10 @@ const RelaySettingsSchema = oneOf(
country: string
}),
)),
- tunnel: Constraint(object({
+ tunnel: constraint(object({
openvpn: object({
- port: Constraint(number),
- protocol: Constraint(enumeration('udp', 'tcp')),
+ port: constraint(number),
+ protocol: constraint(enumeration('udp', 'tcp')),
}),
})),
})