@shakerquiz/url 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,86 +1,121 @@
1
+ import { guardNetwork, guardRouteService, guardService, hydrateRoutePathname, Network, Service } from '@shakerquiz/utilities'
2
+
1
3
  export var ServiceNetworkOrigin = {
2
- 'Roles': {
3
- 'Docker': new URL(Deno.env.get('ROLES_DOCKER_ORIGIN')),
4
- 'Public': new URL(Deno.env.get('ROLES_PUBLIC_ORIGIN')),
4
+ [Service['Roles']]: {
5
+ [Network['Docker']]: Deno.env.get('ROLES_DOCKER_ORIGIN'),
6
+ [Network['Public']]: Deno.env.get('ROLES_PUBLIC_ORIGIN'),
7
+ },
8
+
9
+ [Service['Users']]: {
10
+ [Network['Docker']]: Deno.env.get('USERS_DOCKER_ORIGIN'),
11
+ [Network['Public']]: Deno.env.get('USERS_PUBLIC_ORIGIN'),
5
12
  },
6
13
 
7
- 'Users': {
8
- 'Docker': new URL(Deno.env.get('USERS_DOCKER_ORIGIN')),
9
- 'Public': new URL(Deno.env.get('USERS_PUBLIC_ORIGIN')),
14
+ [Service['Checkin']]: {
15
+ [Network['Docker']]: Deno.env.get('CHECKIN_DOCKER_ORIGIN'),
16
+ [Network['Public']]: Deno.env.get('CHECKIN_PUBLIC_ORIGIN'),
10
17
  },
11
18
 
12
- 'Checkin': {
13
- 'Docker': new URL(Deno.env.get('CHECKIN_DOCKER_ORIGIN')),
14
- 'Public': new URL(Deno.env.get('CHECKIN_PUBLIC_ORIGIN')),
19
+ [Service['Locations']]: {
20
+ [Network['Docker']]: Deno.env.get('LOCATIONS_DOCKER_ORIGIN'),
21
+ [Network['Public']]: Deno.env.get('LOCATIONS_PUBLIC_ORIGIN'),
15
22
  },
16
23
 
17
- 'Locations': {
18
- 'Docker': new URL(Deno.env.get('LOCATIONS_DOCKER_ORIGIN')),
19
- 'Public': new URL(Deno.env.get('LOCATIONS_PUBLIC_ORIGIN')),
24
+ [Service['Cities']]: {
25
+ [Network['Docker']]: Deno.env.get('CITIES_DOCKER_ORIGIN'),
26
+ [Network['Public']]: Deno.env.get('CITIES_PUBLIC_ORIGIN'),
20
27
  },
21
28
 
22
- 'Cities': {
23
- 'Docker': new URL(Deno.env.get('CITIES_DOCKER_ORIGIN')),
24
- 'Public': new URL(Deno.env.get('CITIES_PUBLIC_ORIGIN')),
29
+ [Service['Venues']]: {
30
+ [Network['Docker']]: Deno.env.get('VENUES_DOCKER_ORIGIN'),
31
+ [Network['Public']]: Deno.env.get('VENUES_PUBLIC_ORIGIN'),
25
32
  },
26
33
 
27
- 'Venues': {
28
- 'Docker': new URL(Deno.env.get('VENUES_DOCKER_ORIGIN')),
29
- 'Public': new URL(Deno.env.get('VENUES_PUBLIC_ORIGIN')),
34
+ [Service['Themes']]: {
35
+ [Network['Docker']]: Deno.env.get('THEMES_DOCKER_ORIGIN'),
36
+ [Network['Public']]: Deno.env.get('THEMES_PUBLIC_ORIGIN'),
30
37
  },
31
38
 
32
- 'Themes': {
33
- 'Docker': new URL(Deno.env.get('THEMES_DOCKER_ORIGIN')),
34
- 'Public': new URL(Deno.env.get('THEMES_PUBLIC_ORIGIN')),
39
+ [Service['Games']]: {
40
+ [Network['Docker']]: Deno.env.get('GAMES_DOCKER_ORIGIN'),
41
+ [Network['Public']]: Deno.env.get('GAMES_PUBLIC_ORIGIN'),
35
42
  },
36
43
 
37
- 'Games': {
38
- 'Docker': new URL(Deno.env.get('GAMES_DOCKER_ORIGIN')),
39
- 'Public': new URL(Deno.env.get('GAMES_PUBLIC_ORIGIN')),
44
+ [Service['Registrations']]: {
45
+ [Network['Docker']]: Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN'),
46
+ [Network['Public']]: Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN'),
40
47
  },
41
48
 
42
- 'Registrations': {
43
- 'Docker': new URL(Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN')),
44
- 'Public': new URL(Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN')),
49
+ [Service['Files']]: {
50
+ [Network['Docker']]: Deno.env.get('FILES_DOCKER_ORIGIN'),
51
+ [Network['Public']]: Deno.env.get('FILES_PUBLIC_ORIGIN'),
45
52
  },
46
53
 
47
- 'Files': {
48
- 'Docker': new URL(Deno.env.get('FILES_DOCKER_ORIGIN')),
49
- 'Public': new URL(Deno.env.get('FILES_PUBLIC_ORIGIN')),
54
+ [Service['Integrations']]: {
55
+ [Network['Docker']]: Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN'),
56
+ [Network['Public']]: Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN'),
50
57
  },
51
58
 
52
- 'Integrations': {
53
- 'Docker': new URL(Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN')),
54
- 'Public': new URL(Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN')),
59
+ [Service['Updates']]: {
60
+ [Network['Docker']]: Deno.env.get('UPDATES_DOCKER_ORIGIN'),
61
+ [Network['Public']]: Deno.env.get('UPDATES_PUBLIC_ORIGIN'),
55
62
  },
56
63
 
57
- 'Updates': {
58
- 'Docker': new URL(Deno.env.get('UPDATES_DOCKER_ORIGIN')),
59
- 'Public': new URL(Deno.env.get('UPDATES_PUBLIC_ORIGIN')),
64
+ [Service['Procedures']]: {
65
+ [Network['Docker']]: Deno.env.get('PROCEDURES_DOCKER_ORIGIN'),
66
+ [Network['Public']]: Deno.env.get('PROCEDURES_PUBLIC_ORIGIN'),
60
67
  },
61
68
 
62
- 'Procedures': {
63
- 'Docker': new URL(Deno.env.get('PROCEDURES_DOCKER_ORIGIN')),
64
- 'Public': new URL(Deno.env.get('PROCEDURES_PUBLIC_ORIGIN')),
69
+ [Service['Minio']]: {
70
+ [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
71
+ [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
65
72
  },
66
73
 
67
- 'Minio': {
68
- 'Docker': new URL(Deno.env.get('MINIO_DOCKER_ORIGIN')),
69
- 'Public': new URL(Deno.env.get('MINIO_PUBLIC_ORIGIN')),
74
+ [Service['Landing']]: {
75
+ [Network['Docker']]: Deno.env.get('LANDING_DOCKER_ORIGIN'),
76
+ [Network['Public']]: Deno.env.get('LANDING_PUBLIC_ORIGIN'),
70
77
  },
71
78
 
72
- 'Landing': {
73
- 'Docker': new URL(Deno.env.get('LANDING_DOCKER_ORIGIN')),
74
- 'Public': new URL(Deno.env.get('LANDING_PUBLIC_ORIGIN')),
79
+ [Service['Vkma']]: {
80
+ [Network['Docker']]: Deno.env.get('VKMA_DOCKER_ORIGIN'),
81
+ [Network['Public']]: Deno.env.get('VKMA_PUBLIC_ORIGIN'),
75
82
  },
76
83
 
77
- 'Vk': {
78
- 'Docker': new URL(Deno.env.get('VK_DOCKER_ORIGIN')),
79
- 'Public': new URL(Deno.env.get('VK_PUBLIC_ORIGIN')),
84
+ [Service['Hub']]: {
85
+ [Network['Docker']]: Deno.env.get('HUB_DOCKER_ORIGIN'),
86
+ [Network['Public']]: Deno.env.get('HUB_PUBLIC_ORIGIN'),
80
87
  },
81
88
 
82
- 'Hub': {
83
- 'Docker': new URL(Deno.env.get('HUB_DOCKER_ORIGIN')),
84
- 'Public': new URL(Deno.env.get('HUB_PUBLIC_ORIGIN')),
89
+ [Service['Minio']]: {
90
+ [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
91
+ [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
85
92
  },
86
93
  }
94
+
95
+ /**
96
+ * @returns {string}
97
+ */
98
+ export var guardOrigin = (maybeService, maybeNetwork) => {
99
+ var service = guardService(maybeService)
100
+
101
+ var network = guardNetwork(maybeNetwork)
102
+
103
+ if (!(service in ServiceNetworkOrigin))
104
+ throw TypeError(`Service '${service}' does not exist.`)
105
+
106
+ if (!(network in ServiceNetworkOrigin[service]))
107
+ throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
108
+
109
+ return ServiceNetworkOrigin[service][network]
110
+ }
111
+
112
+ export var routeRequest = (maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
113
+ var url = new URL(
114
+ hydrateRoutePathname(maybeRoute, maybeRouteParams),
115
+ guardOrigin(guardRouteService(guardRoute(maybeRoute)), guardNetwork(maybeNetwork)),
116
+ )
117
+
118
+ url.search = maybeRouteSearch
119
+
120
+ return fetch(url, init)
121
+ }
@@ -1,86 +1,121 @@
1
+ import { guardNetwork, guardRouteService, guardService, hydrateRoutePathname, Network, Service } from '@shakerquiz/utilities'
2
+
1
3
  export var ServiceNetworkOrigin = {
2
- 'Roles': {
3
- 'Docker': new URL(Deno.env.get('ROLES_DOCKER_ORIGIN')),
4
- 'Public': new URL(Deno.env.get('ROLES_PUBLIC_ORIGIN')),
4
+ [Service['Roles']]: {
5
+ [Network['Docker']]: Deno.env.get('ROLES_DOCKER_ORIGIN'),
6
+ [Network['Public']]: Deno.env.get('ROLES_PUBLIC_ORIGIN'),
7
+ },
8
+
9
+ [Service['Users']]: {
10
+ [Network['Docker']]: Deno.env.get('USERS_DOCKER_ORIGIN'),
11
+ [Network['Public']]: Deno.env.get('USERS_PUBLIC_ORIGIN'),
5
12
  },
6
13
 
7
- 'Users': {
8
- 'Docker': new URL(Deno.env.get('USERS_DOCKER_ORIGIN')),
9
- 'Public': new URL(Deno.env.get('USERS_PUBLIC_ORIGIN')),
14
+ [Service['Checkin']]: {
15
+ [Network['Docker']]: Deno.env.get('CHECKIN_DOCKER_ORIGIN'),
16
+ [Network['Public']]: Deno.env.get('CHECKIN_PUBLIC_ORIGIN'),
10
17
  },
11
18
 
12
- 'Checkin': {
13
- 'Docker': new URL(Deno.env.get('CHECKIN_DOCKER_ORIGIN')),
14
- 'Public': new URL(Deno.env.get('CHECKIN_PUBLIC_ORIGIN')),
19
+ [Service['Locations']]: {
20
+ [Network['Docker']]: Deno.env.get('LOCATIONS_DOCKER_ORIGIN'),
21
+ [Network['Public']]: Deno.env.get('LOCATIONS_PUBLIC_ORIGIN'),
15
22
  },
16
23
 
17
- 'Locations': {
18
- 'Docker': new URL(Deno.env.get('LOCATIONS_DOCKER_ORIGIN')),
19
- 'Public': new URL(Deno.env.get('LOCATIONS_PUBLIC_ORIGIN')),
24
+ [Service['Cities']]: {
25
+ [Network['Docker']]: Deno.env.get('CITIES_DOCKER_ORIGIN'),
26
+ [Network['Public']]: Deno.env.get('CITIES_PUBLIC_ORIGIN'),
20
27
  },
21
28
 
22
- 'Cities': {
23
- 'Docker': new URL(Deno.env.get('CITIES_DOCKER_ORIGIN')),
24
- 'Public': new URL(Deno.env.get('CITIES_PUBLIC_ORIGIN')),
29
+ [Service['Venues']]: {
30
+ [Network['Docker']]: Deno.env.get('VENUES_DOCKER_ORIGIN'),
31
+ [Network['Public']]: Deno.env.get('VENUES_PUBLIC_ORIGIN'),
25
32
  },
26
33
 
27
- 'Venues': {
28
- 'Docker': new URL(Deno.env.get('VENUES_DOCKER_ORIGIN')),
29
- 'Public': new URL(Deno.env.get('VENUES_PUBLIC_ORIGIN')),
34
+ [Service['Themes']]: {
35
+ [Network['Docker']]: Deno.env.get('THEMES_DOCKER_ORIGIN'),
36
+ [Network['Public']]: Deno.env.get('THEMES_PUBLIC_ORIGIN'),
30
37
  },
31
38
 
32
- 'Themes': {
33
- 'Docker': new URL(Deno.env.get('THEMES_DOCKER_ORIGIN')),
34
- 'Public': new URL(Deno.env.get('THEMES_PUBLIC_ORIGIN')),
39
+ [Service['Games']]: {
40
+ [Network['Docker']]: Deno.env.get('GAMES_DOCKER_ORIGIN'),
41
+ [Network['Public']]: Deno.env.get('GAMES_PUBLIC_ORIGIN'),
35
42
  },
36
43
 
37
- 'Games': {
38
- 'Docker': new URL(Deno.env.get('GAMES_DOCKER_ORIGIN')),
39
- 'Public': new URL(Deno.env.get('GAMES_PUBLIC_ORIGIN')),
44
+ [Service['Registrations']]: {
45
+ [Network['Docker']]: Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN'),
46
+ [Network['Public']]: Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN'),
40
47
  },
41
48
 
42
- 'Registrations': {
43
- 'Docker': new URL(Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN')),
44
- 'Public': new URL(Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN')),
49
+ [Service['Files']]: {
50
+ [Network['Docker']]: Deno.env.get('FILES_DOCKER_ORIGIN'),
51
+ [Network['Public']]: Deno.env.get('FILES_PUBLIC_ORIGIN'),
45
52
  },
46
53
 
47
- 'Files': {
48
- 'Docker': new URL(Deno.env.get('FILES_DOCKER_ORIGIN')),
49
- 'Public': new URL(Deno.env.get('FILES_PUBLIC_ORIGIN')),
54
+ [Service['Integrations']]: {
55
+ [Network['Docker']]: Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN'),
56
+ [Network['Public']]: Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN'),
50
57
  },
51
58
 
52
- 'Integrations': {
53
- 'Docker': new URL(Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN')),
54
- 'Public': new URL(Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN')),
59
+ [Service['Updates']]: {
60
+ [Network['Docker']]: Deno.env.get('UPDATES_DOCKER_ORIGIN'),
61
+ [Network['Public']]: Deno.env.get('UPDATES_PUBLIC_ORIGIN'),
55
62
  },
56
63
 
57
- 'Updates': {
58
- 'Docker': new URL(Deno.env.get('UPDATES_DOCKER_ORIGIN')),
59
- 'Public': new URL(Deno.env.get('UPDATES_PUBLIC_ORIGIN')),
64
+ [Service['Procedures']]: {
65
+ [Network['Docker']]: Deno.env.get('PROCEDURES_DOCKER_ORIGIN'),
66
+ [Network['Public']]: Deno.env.get('PROCEDURES_PUBLIC_ORIGIN'),
60
67
  },
61
68
 
62
- 'Procedures': {
63
- 'Docker': new URL(Deno.env.get('PROCEDURES_DOCKER_ORIGIN')),
64
- 'Public': new URL(Deno.env.get('PROCEDURES_PUBLIC_ORIGIN')),
69
+ [Service['Minio']]: {
70
+ [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
71
+ [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
65
72
  },
66
73
 
67
- 'Minio': {
68
- 'Docker': new URL(Deno.env.get('MINIO_DOCKER_ORIGIN')),
69
- 'Public': new URL(Deno.env.get('MINIO_PUBLIC_ORIGIN')),
74
+ [Service['Landing']]: {
75
+ [Network['Docker']]: Deno.env.get('LANDING_DOCKER_ORIGIN'),
76
+ [Network['Public']]: Deno.env.get('LANDING_PUBLIC_ORIGIN'),
70
77
  },
71
78
 
72
- 'Landing': {
73
- 'Docker': new URL(Deno.env.get('LANDING_DOCKER_ORIGIN')),
74
- 'Public': new URL(Deno.env.get('LANDING_PUBLIC_ORIGIN')),
79
+ [Service['Vkma']]: {
80
+ [Network['Docker']]: Deno.env.get('VKMA_DOCKER_ORIGIN'),
81
+ [Network['Public']]: Deno.env.get('VKMA_PUBLIC_ORIGIN'),
75
82
  },
76
83
 
77
- 'Vk': {
78
- 'Docker': new URL(Deno.env.get('VK_DOCKER_ORIGIN')),
79
- 'Public': new URL(Deno.env.get('VK_PUBLIC_ORIGIN')),
84
+ [Service['Hub']]: {
85
+ [Network['Docker']]: Deno.env.get('HUB_DOCKER_ORIGIN'),
86
+ [Network['Public']]: Deno.env.get('HUB_PUBLIC_ORIGIN'),
80
87
  },
81
88
 
82
- 'Hub': {
83
- 'Docker': new URL(Deno.env.get('HUB_DOCKER_ORIGIN')),
84
- 'Public': new URL(Deno.env.get('HUB_PUBLIC_ORIGIN')),
89
+ [Service['Minio']]: {
90
+ [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
91
+ [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
85
92
  },
86
93
  }
94
+
95
+ /**
96
+ * @returns {string}
97
+ */
98
+ export var guardOrigin = (maybeService, maybeNetwork) => {
99
+ var service = guardService(maybeService)
100
+
101
+ var network = guardNetwork(maybeNetwork)
102
+
103
+ if (!(service in ServiceNetworkOrigin))
104
+ throw TypeError(`Service '${service}' does not exist.`)
105
+
106
+ if (!(network in ServiceNetworkOrigin[service]))
107
+ throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
108
+
109
+ return ServiceNetworkOrigin[service][network]
110
+ }
111
+
112
+ export var routeRequest = (maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
113
+ var url = new URL(
114
+ hydrateRoutePathname(maybeRoute, maybeRouteParams),
115
+ guardOrigin(guardRouteService(guardRoute(maybeRoute)), guardNetwork(maybeNetwork)),
116
+ )
117
+
118
+ url.search = maybeRouteSearch
119
+
120
+ return fetch(url, init)
121
+ }
@@ -0,0 +1,121 @@
1
+ import { guardNetwork, guardRouteService, guardService, hydrateRoutePathname, Network, Service } from '@shakerquiz/utilities'
2
+
3
+ export var ServiceNetworkOrigin = {
4
+ [Service['Roles']]: {
5
+ [Network['Docker']]: import.meta.env.VITE_ROLES_DOCKER_ORIGIN,
6
+ [Network['Public']]: import.meta.env.VITE_ROLES_PUBLIC_ORIGIN,
7
+ },
8
+
9
+ [Service['Users']]: {
10
+ [Network['Docker']]: import.meta.env.VITE_USERS_DOCKER_ORIGIN,
11
+ [Network['Public']]: import.meta.env.VITE_USERS_PUBLIC_ORIGIN,
12
+ },
13
+
14
+ [Service['Checkin']]: {
15
+ [Network['Docker']]: import.meta.env.VITE_CHECKIN_DOCKER_ORIGIN,
16
+ [Network['Public']]: import.meta.env.VITE_CHECKIN_PUBLIC_ORIGIN,
17
+ },
18
+
19
+ [Service['Locations']]: {
20
+ [Network['Docker']]: import.meta.env.VITE_LOCATIONS_DOCKER_ORIGIN,
21
+ [Network['Public']]: import.meta.env.VITE_LOCATIONS_PUBLIC_ORIGIN,
22
+ },
23
+
24
+ [Service['Cities']]: {
25
+ [Network['Docker']]: import.meta.env.VITE_CITIES_DOCKER_ORIGIN,
26
+ [Network['Public']]: import.meta.env.VITE_CITIES_PUBLIC_ORIGIN,
27
+ },
28
+
29
+ [Service['Venues']]: {
30
+ [Network['Docker']]: import.meta.env.VITE_VENUES_DOCKER_ORIGIN,
31
+ [Network['Public']]: import.meta.env.VITE_VENUES_PUBLIC_ORIGIN,
32
+ },
33
+
34
+ [Service['Themes']]: {
35
+ [Network['Docker']]: import.meta.env.VITE_THEMES_DOCKER_ORIGIN,
36
+ [Network['Public']]: import.meta.env.VITE_THEMES_PUBLIC_ORIGIN,
37
+ },
38
+
39
+ [Service['Games']]: {
40
+ [Network['Docker']]: import.meta.env.VITE_GAMES_DOCKER_ORIGIN,
41
+ [Network['Public']]: import.meta.env.VITE_GAMES_PUBLIC_ORIGIN,
42
+ },
43
+
44
+ [Service['Registrations']]: {
45
+ [Network['Docker']]: import.meta.env.VITE_REGISTRATIONS_DOCKER_ORIGIN,
46
+ [Network['Public']]: import.meta.env.VITE_REGISTRATIONS_PUBLIC_ORIGIN,
47
+ },
48
+
49
+ [Service['Files']]: {
50
+ [Network['Docker']]: import.meta.env.VITE_FILES_DOCKER_ORIGIN,
51
+ [Network['Public']]: import.meta.env.VITE_FILES_PUBLIC_ORIGIN,
52
+ },
53
+
54
+ [Service['Integrations']]: {
55
+ [Network['Docker']]: import.meta.env.VITE_INTEGRATIONS_DOCKER_ORIGIN,
56
+ [Network['Public']]: import.meta.env.VITE_INTEGRATIONS_PUBLIC_ORIGIN,
57
+ },
58
+
59
+ [Service['Updates']]: {
60
+ [Network['Docker']]: import.meta.env.VITE_UPDATES_DOCKER_ORIGIN,
61
+ [Network['Public']]: import.meta.env.VITE_UPDATES_PUBLIC_ORIGIN,
62
+ },
63
+
64
+ [Service['Procedures']]: {
65
+ [Network['Docker']]: import.meta.env.VITE_PROCEDURES_DOCKER_ORIGIN,
66
+ [Network['Public']]: import.meta.env.VITE_PROCEDURES_PUBLIC_ORIGIN,
67
+ },
68
+
69
+ [Service['Minio']]: {
70
+ [Network['Docker']]: import.meta.env.VITE_MINIO_DOCKER_ORIGIN,
71
+ [Network['Public']]: import.meta.env.VITE_MINIO_PUBLIC_ORIGIN,
72
+ },
73
+
74
+ [Service['Landing']]: {
75
+ [Network['Docker']]: import.meta.env.VITE_LANDING_DOCKER_ORIGIN,
76
+ [Network['Public']]: import.meta.env.VITE_LANDING_PUBLIC_ORIGIN,
77
+ },
78
+
79
+ [Service['Vkma']]: {
80
+ [Network['Docker']]: import.meta.env.VITE_VKMA_DOCKER_ORIGIN,
81
+ [Network['Public']]: import.meta.env.VITE_VKMA_PUBLIC_ORIGIN,
82
+ },
83
+
84
+ [Service['Hub']]: {
85
+ [Network['Docker']]: import.meta.env.VITE_HUB_DOCKER_ORIGIN,
86
+ [Network['Public']]: import.meta.env.VITE_HUB_PUBLIC_ORIGIN,
87
+ },
88
+
89
+ [Service['Minio']]: {
90
+ [Network['Docker']]: import.meta.env.VITE_MINIO_DOCKER_ORIGIN,
91
+ [Network['Public']]: import.meta.env.VITE_MINIO_PUBLIC_ORIGIN,
92
+ },
93
+ }
94
+
95
+ /**
96
+ * @returns {string}
97
+ */
98
+ export var guardOrigin = (maybeService, maybeNetwork) => {
99
+ var service = guardService(maybeService)
100
+
101
+ var network = guardNetwork(maybeNetwork)
102
+
103
+ if (!(service in ServiceNetworkOrigin))
104
+ throw TypeError(`Service '${service}' does not exist.`)
105
+
106
+ if (!(network in ServiceNetworkOrigin[service]))
107
+ throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
108
+
109
+ return ServiceNetworkOrigin[service][network]
110
+ }
111
+
112
+ export var routeRequest = (maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
113
+ var url = new URL(
114
+ hydrateRoutePathname(maybeRoute, maybeRouteParams),
115
+ guardOrigin(guardRouteService(guardRoute(maybeRoute)), guardNetwork(maybeNetwork)),
116
+ )
117
+
118
+ url.search = maybeRouteSearch
119
+
120
+ return fetch(url, init)
121
+ }
@@ -1,86 +0,0 @@
1
- export var ServiceNetworkOrigin = {
2
- 'Roles': {
3
- 'Docker': new URL(process.env.NEXT_PUBLIC_ROLES_DOCKER_ORIGIN),
4
- 'Public': new URL(process.env.NEXT_PUBLIC_ROLES_PUBLIC_ORIGIN),
5
- },
6
-
7
- 'Users': {
8
- 'Docker': new URL(process.env.NEXT_PUBLIC_USERS_DOCKER_ORIGIN),
9
- 'Public': new URL(process.env.NEXT_PUBLIC_USERS_PUBLIC_ORIGIN),
10
- },
11
-
12
- 'Checkin': {
13
- 'Docker': new URL(process.env.NEXT_PUBLIC_CHECKIN_DOCKER_ORIGIN),
14
- 'Public': new URL(process.env.NEXT_PUBLIC_CHECKIN_PUBLIC_ORIGIN),
15
- },
16
-
17
- 'Locations': {
18
- 'Docker': new URL(process.env.NEXT_PUBLIC_LOCATIONS_DOCKER_ORIGIN),
19
- 'Public': new URL(process.env.NEXT_PUBLIC_LOCATIONS_PUBLIC_ORIGIN),
20
- },
21
-
22
- 'Cities': {
23
- 'Docker': new URL(process.env.NEXT_PUBLIC_CITIES_DOCKER_ORIGIN),
24
- 'Public': new URL(process.env.NEXT_PUBLIC_CITIES_PUBLIC_ORIGIN),
25
- },
26
-
27
- 'Venues': {
28
- 'Docker': new URL(process.env.NEXT_PUBLIC_VENUES_DOCKER_ORIGIN),
29
- 'Public': new URL(process.env.NEXT_PUBLIC_VENUES_PUBLIC_ORIGIN),
30
- },
31
-
32
- 'Themes': {
33
- 'Docker': new URL(process.env.NEXT_PUBLIC_THEMES_DOCKER_ORIGIN),
34
- 'Public': new URL(process.env.NEXT_PUBLIC_THEMES_PUBLIC_ORIGIN),
35
- },
36
-
37
- 'Games': {
38
- 'Docker': new URL(process.env.NEXT_PUBLIC_GAMES_DOCKER_ORIGIN),
39
- 'Public': new URL(process.env.NEXT_PUBLIC_GAMES_PUBLIC_ORIGIN),
40
- },
41
-
42
- 'Registrations': {
43
- 'Docker': new URL(process.env.NEXT_PUBLIC_REGISTRATIONS_DOCKER_ORIGIN),
44
- 'Public': new URL(process.env.NEXT_PUBLIC_REGISTRATIONS_PUBLIC_ORIGIN),
45
- },
46
-
47
- 'Files': {
48
- 'Docker': new URL(process.env.NEXT_PUBLIC_FILES_DOCKER_ORIGIN),
49
- 'Public': new URL(process.env.NEXT_PUBLIC_FILES_PUBLIC_ORIGIN),
50
- },
51
-
52
- 'Integrations': {
53
- 'Docker': new URL(process.env.NEXT_PUBLIC_INTEGRATIONS_DOCKER_ORIGIN),
54
- 'Public': new URL(process.env.NEXT_PUBLIC_INTEGRATIONS_PUBLIC_ORIGIN),
55
- },
56
-
57
- 'Updates': {
58
- 'Docker': new URL(process.env.NEXT_PUBLIC_UPDATES_DOCKER_ORIGIN),
59
- 'Public': new URL(process.env.NEXT_PUBLIC_UPDATES_PUBLIC_ORIGIN),
60
- },
61
-
62
- 'Procedures': {
63
- 'Docker': new URL(process.env.NEXT_PUBLIC_PROCEDURES_DOCKER_ORIGIN),
64
- 'Public': new URL(process.env.NEXT_PUBLIC_PROCEDURES_PUBLIC_ORIGIN),
65
- },
66
-
67
- 'Minio': {
68
- 'Docker': new URL(process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN),
69
- 'Public': new URL(process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN),
70
- },
71
-
72
- 'Landing': {
73
- 'Docker': new URL(process.env.NEXT_PUBLIC_LANDING_DOCKER_ORIGIN),
74
- 'Public': new URL(process.env.NEXT_PUBLIC_LANDING_PUBLIC_ORIGIN),
75
- },
76
-
77
- 'Vk': {
78
- 'Docker': new URL(process.env.NEXT_PUBLIC_VK_DOCKER_ORIGIN),
79
- 'Public': new URL(process.env.NEXT_PUBLIC_VK_PUBLIC_ORIGIN),
80
- },
81
-
82
- 'Hub': {
83
- 'Docker': new URL(process.env.NEXT_PUBLIC_HUB_DOCKER_ORIGIN),
84
- 'Public': new URL(process.env.NEXT_PUBLIC_HUB_PUBLIC_ORIGIN),
85
- },
86
- }
@@ -1,86 +0,0 @@
1
- export var ServiceNetworkOrigin = {
2
- 'Roles': {
3
- 'Docker': new URL(import.meta.env.VITE_ROLES_DOCKER_ORIGIN),
4
- 'Public': new URL(import.meta.env.VITE_ROLES_PUBLIC_ORIGIN),
5
- },
6
-
7
- 'Users': {
8
- 'Docker': new URL(import.meta.env.VITE_USERS_DOCKER_ORIGIN),
9
- 'Public': new URL(import.meta.env.VITE_USERS_PUBLIC_ORIGIN),
10
- },
11
-
12
- 'Checkin': {
13
- 'Docker': new URL(import.meta.env.VITE_CHECKIN_DOCKER_ORIGIN),
14
- 'Public': new URL(import.meta.env.VITE_CHECKIN_PUBLIC_ORIGIN),
15
- },
16
-
17
- 'Locations': {
18
- 'Docker': new URL(import.meta.env.VITE_LOCATIONS_DOCKER_ORIGIN),
19
- 'Public': new URL(import.meta.env.VITE_LOCATIONS_PUBLIC_ORIGIN),
20
- },
21
-
22
- 'Cities': {
23
- 'Docker': new URL(import.meta.env.VITE_CITIES_DOCKER_ORIGIN),
24
- 'Public': new URL(import.meta.env.VITE_CITIES_PUBLIC_ORIGIN),
25
- },
26
-
27
- 'Venues': {
28
- 'Docker': new URL(import.meta.env.VITE_VENUES_DOCKER_ORIGIN),
29
- 'Public': new URL(import.meta.env.VITE_VENUES_PUBLIC_ORIGIN),
30
- },
31
-
32
- 'Themes': {
33
- 'Docker': new URL(import.meta.env.VITE_THEMES_DOCKER_ORIGIN),
34
- 'Public': new URL(import.meta.env.VITE_THEMES_PUBLIC_ORIGIN),
35
- },
36
-
37
- 'Games': {
38
- 'Docker': new URL(import.meta.env.VITE_GAMES_DOCKER_ORIGIN),
39
- 'Public': new URL(import.meta.env.VITE_GAMES_PUBLIC_ORIGIN),
40
- },
41
-
42
- 'Registrations': {
43
- 'Docker': new URL(import.meta.env.VITE_REGISTRATIONS_DOCKER_ORIGIN),
44
- 'Public': new URL(import.meta.env.VITE_REGISTRATIONS_PUBLIC_ORIGIN),
45
- },
46
-
47
- 'Files': {
48
- 'Docker': new URL(import.meta.env.VITE_FILES_DOCKER_ORIGIN),
49
- 'Public': new URL(import.meta.env.VITE_FILES_PUBLIC_ORIGIN),
50
- },
51
-
52
- 'Integrations': {
53
- 'Docker': new URL(import.meta.env.VITE_INTEGRATIONS_DOCKER_ORIGIN),
54
- 'Public': new URL(import.meta.env.VITE_INTEGRATIONS_PUBLIC_ORIGIN),
55
- },
56
-
57
- 'Updates': {
58
- 'Docker': new URL(import.meta.env.VITE_UPDATES_DOCKER_ORIGIN),
59
- 'Public': new URL(import.meta.env.VITE_UPDATES_PUBLIC_ORIGIN),
60
- },
61
-
62
- 'Procedures': {
63
- 'Docker': new URL(import.meta.env.VITE_PROCEDURES_DOCKER_ORIGIN),
64
- 'Public': new URL(import.meta.env.VITE_PROCEDURES_PUBLIC_ORIGIN),
65
- },
66
-
67
- 'Minio': {
68
- 'Docker': new URL(import.meta.env.VITE_MINIO_DOCKER_ORIGIN),
69
- 'Public': new URL(import.meta.env.VITE_MINIO_PUBLIC_ORIGIN),
70
- },
71
-
72
- 'Landing': {
73
- 'Docker': new URL(import.meta.env.VITE_LANDING_DOCKER_ORIGIN),
74
- 'Public': new URL(import.meta.env.VITE_LANDING_PUBLIC_ORIGIN),
75
- },
76
-
77
- 'Vk': {
78
- 'Docker': new URL(import.meta.env.VITE_VK_DOCKER_ORIGIN),
79
- 'Public': new URL(import.meta.env.VITE_VK_PUBLIC_ORIGIN),
80
- },
81
-
82
- 'Hub': {
83
- 'Docker': new URL(import.meta.env.VITE_HUB_DOCKER_ORIGIN),
84
- 'Public': new URL(import.meta.env.VITE_HUB_PUBLIC_ORIGIN),
85
- },
86
- }