@shakerquiz/url 0.0.26 → 0.0.28

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,130 +1,32 @@
1
- import { hydrateRoutePathname, inferNetwork, inferRoute, inferRouteService, Network, Service } from '@shakerquiz/utilities'
1
+ import { access, hydrateRoutePathname, Network, Route, RouteService } from '@shakerquiz/utilities'
2
2
 
3
- export var ServiceNetworkOrigin = {
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'),
12
- },
13
-
14
- [Service['Checkin']]: {
15
- [Network['Docker']]: Deno.env.get('CHECKIN_DOCKER_ORIGIN'),
16
- [Network['Public']]: Deno.env.get('CHECKIN_PUBLIC_ORIGIN'),
17
- },
18
-
19
- [Service['Locations']]: {
20
- [Network['Docker']]: Deno.env.get('LOCATIONS_DOCKER_ORIGIN'),
21
- [Network['Public']]: Deno.env.get('LOCATIONS_PUBLIC_ORIGIN'),
22
- },
23
-
24
- [Service['Cities']]: {
25
- [Network['Docker']]: Deno.env.get('CITIES_DOCKER_ORIGIN'),
26
- [Network['Public']]: Deno.env.get('CITIES_PUBLIC_ORIGIN'),
27
- },
28
-
29
- [Service['Venues']]: {
30
- [Network['Docker']]: Deno.env.get('VENUES_DOCKER_ORIGIN'),
31
- [Network['Public']]: Deno.env.get('VENUES_PUBLIC_ORIGIN'),
32
- },
33
-
34
- [Service['Themes']]: {
35
- [Network['Docker']]: Deno.env.get('THEMES_DOCKER_ORIGIN'),
36
- [Network['Public']]: Deno.env.get('THEMES_PUBLIC_ORIGIN'),
37
- },
38
-
39
- [Service['Games']]: {
40
- [Network['Docker']]: Deno.env.get('GAMES_DOCKER_ORIGIN'),
41
- [Network['Public']]: Deno.env.get('GAMES_PUBLIC_ORIGIN'),
42
- },
43
-
44
- [Service['Registrations']]: {
45
- [Network['Docker']]: Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN'),
46
- [Network['Public']]: Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN'),
47
- },
48
-
49
- [Service['Files']]: {
50
- [Network['Docker']]: Deno.env.get('FILES_DOCKER_ORIGIN'),
51
- [Network['Public']]: Deno.env.get('FILES_PUBLIC_ORIGIN'),
52
- },
3
+ export const ServiceNetworkOrigin = Object.freeze({Users: Object.freeze({Docker: Deno.env.get('USERS_DOCKER_ORIGIN'),Public: Deno.env.get('USERS_PUBLIC_ORIGIN')}),Roles: Object.freeze({Docker: Deno.env.get('ROLES_DOCKER_ORIGIN'),Public: Deno.env.get('ROLES_PUBLIC_ORIGIN')}),Checkin: Object.freeze({Docker: Deno.env.get('CHECKIN_DOCKER_ORIGIN'),Public: Deno.env.get('CHECKIN_PUBLIC_ORIGIN')}),Locations: Object.freeze({Docker: Deno.env.get('LOCATIONS_DOCKER_ORIGIN'),Public: Deno.env.get('LOCATIONS_PUBLIC_ORIGIN')}),Cities: Object.freeze({Docker: Deno.env.get('CITIES_DOCKER_ORIGIN'),Public: Deno.env.get('CITIES_PUBLIC_ORIGIN')}),Venues: Object.freeze({Docker: Deno.env.get('VENUES_DOCKER_ORIGIN'),Public: Deno.env.get('VENUES_PUBLIC_ORIGIN')}),Themes: Object.freeze({Docker: Deno.env.get('THEMES_DOCKER_ORIGIN'),Public: Deno.env.get('THEMES_PUBLIC_ORIGIN')}),Games: Object.freeze({Docker: Deno.env.get('GAMES_DOCKER_ORIGIN'),Public: Deno.env.get('GAMES_PUBLIC_ORIGIN')}),Registrations: Object.freeze({Docker: Deno.env.get('REGISTRATIONS_DOCKER_ORIGIN'),Public: Deno.env.get('REGISTRATIONS_PUBLIC_ORIGIN')}),Files: Object.freeze({Docker: Deno.env.get('FILES_DOCKER_ORIGIN'),Public: Deno.env.get('FILES_PUBLIC_ORIGIN')}),Procedures: Object.freeze({Docker: Deno.env.get('PROCEDURES_DOCKER_ORIGIN'),Public: Deno.env.get('PROCEDURES_PUBLIC_ORIGIN')}),Integrations: Object.freeze({Docker: Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN'),Public: Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN')}),Updates: Object.freeze({Docker: Deno.env.get('UPDATES_DOCKER_ORIGIN'),Public: Deno.env.get('UPDATES_PUBLIC_ORIGIN')}),Hub: Object.freeze({Docker: Deno.env.get('HUB_DOCKER_ORIGIN'),Public: Deno.env.get('HUB_PUBLIC_ORIGIN')}),Landing: Object.freeze({Docker: Deno.env.get('LANDING_DOCKER_ORIGIN'),Public: Deno.env.get('LANDING_PUBLIC_ORIGIN')}),Telegram: Object.freeze({Docker: Deno.env.get('TELEGRAM_DOCKER_ORIGIN'),Public: Deno.env.get('TELEGRAM_PUBLIC_ORIGIN')}),Vkma: Object.freeze({Docker: Deno.env.get('VKMA_DOCKER_ORIGIN'),Public: Deno.env.get('VKMA_PUBLIC_ORIGIN')}),Minio: Object.freeze({Docker: Deno.env.get('MINIO_DOCKER_ORIGIN'),Public: Deno.env.get('MINIO_PUBLIC_ORIGIN')})})
53
4
 
54
- [Service['Integrations']]: {
55
- [Network['Docker']]: Deno.env.get('INTEGRATIONS_DOCKER_ORIGIN'),
56
- [Network['Public']]: Deno.env.get('INTEGRATIONS_PUBLIC_ORIGIN'),
57
- },
5
+ export const request = Object.freeze(
6
+ /**
7
+ * @param {keyof typeof import('@shakerquiz/utilities').Network} network
8
+ * @param {keyof typeof import('@shakerquiz/utilities').Route} route
9
+ * @param {*} params
10
+ * @param {*} search
11
+ * @param {*} init
12
+ */
13
+ (network, route, params, search, init) => {
14
+ var r = access(Route, route)
58
15
 
59
- [Service['Updates']]: {
60
- [Network['Docker']]: Deno.env.get('UPDATES_DOCKER_ORIGIN'),
61
- [Network['Public']]: Deno.env.get('UPDATES_PUBLIC_ORIGIN'),
62
- },
16
+ var rs = access(RouteService, route)
63
17
 
64
- [Service['Procedures']]: {
65
- [Network['Docker']]: Deno.env.get('PROCEDURES_DOCKER_ORIGIN'),
66
- [Network['Public']]: Deno.env.get('PROCEDURES_PUBLIC_ORIGIN'),
67
- },
18
+ var n = access(Network, network)
68
19
 
69
- [Service['Minio']]: {
70
- [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
71
- [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
72
- },
20
+ if (!Object.hasOwn(ServiceNetworkOrigin, rs))
21
+ throw TypeError(`Service '${rs}' does not exist.`)
73
22
 
74
- [Service['Landing']]: {
75
- [Network['Docker']]: Deno.env.get('LANDING_DOCKER_ORIGIN'),
76
- [Network['Public']]: Deno.env.get('LANDING_PUBLIC_ORIGIN'),
77
- },
23
+ if (!Object.hasOwn(ServiceNetworkOrigin[rs], n))
24
+ throw TypeError(`Network '${n}' in Service '${rs}' does not exist.`)
78
25
 
79
- [Service['Vkma']]: {
80
- [Network['Docker']]: Deno.env.get('VKMA_DOCKER_ORIGIN'),
81
- [Network['Public']]: Deno.env.get('VKMA_PUBLIC_ORIGIN'),
82
- },
26
+ var url = new URL(hydrateRoutePathname(r, params), ServiceNetworkOrigin[rs][n])
83
27
 
84
- [Service['Hub']]: {
85
- [Network['Docker']]: Deno.env.get('HUB_DOCKER_ORIGIN'),
86
- [Network['Public']]: Deno.env.get('HUB_PUBLIC_ORIGIN'),
87
- },
28
+ url.search = search
88
29
 
89
- [Service['Minio']]: {
90
- [Network['Docker']]: Deno.env.get('MINIO_DOCKER_ORIGIN'),
91
- [Network['Public']]: Deno.env.get('MINIO_PUBLIC_ORIGIN'),
30
+ return fetch(url, init)
92
31
  },
93
- }
94
-
95
- /** @returns {string} */
96
- export const inferOrigin = Object.freeze((service, network) => {
97
- if (!(service in ServiceNetworkOrigin))
98
- throw TypeError(`Service '${service}' does not exist.`)
99
-
100
- if (!(network in ServiceNetworkOrigin[service]))
101
- throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
102
-
103
- return ServiceNetworkOrigin[service][network]
104
- })
105
-
106
- export const routeRequest = Object.freeze((maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
107
- var route = inferRoute(maybeRoute)
108
-
109
- if (route === 'Unknown')
110
- throw TypeError(`[routeRequest] Could not infer route for value: '${maybeRoute}'.`)
111
-
112
- var service = inferRouteService(maybeRoute)
113
-
114
- if (service === 'Unknown')
115
- throw TypeError(`[routeRequest] Could not infer service for value: '${maybeRoute}'.`)
116
-
117
- var network = inferNetwork(maybeNetwork)
118
-
119
- if (network === 'Unknown')
120
- throw TypeError(`[routeRequest] Could not infer network for value: '${maybeRoute}'.`)
121
-
122
- var url = new URL(
123
- hydrateRoutePathname(route, maybeRouteParams),
124
- inferOrigin(service, network),
125
- )
126
-
127
- url.search = maybeRouteSearch
128
-
129
- return fetch(url, init)
130
- })
32
+ )
@@ -1,130 +1,32 @@
1
- import { hydrateRoutePathname, inferNetwork, inferRoute, inferRouteService, Network, Service } from '@shakerquiz/utilities'
1
+ import { access, hydrateRoutePathname, Network, Route, RouteService } from '@shakerquiz/utilities'
2
2
 
3
- export var ServiceNetworkOrigin = {
4
- [Service['Roles']]: {
5
- [Network['Docker']]: process.env.NEXT_PUBLIC_ROLES_DOCKER_ORIGIN,
6
- [Network['Public']]: process.env.NEXT_PUBLIC_ROLES_PUBLIC_ORIGIN,
7
- },
8
-
9
- [Service['Users']]: {
10
- [Network['Docker']]: process.env.NEXT_PUBLIC_USERS_DOCKER_ORIGIN,
11
- [Network['Public']]: process.env.NEXT_PUBLIC_USERS_PUBLIC_ORIGIN,
12
- },
13
-
14
- [Service['Checkin']]: {
15
- [Network['Docker']]: process.env.NEXT_PUBLIC_CHECKIN_DOCKER_ORIGIN,
16
- [Network['Public']]: process.env.NEXT_PUBLIC_CHECKIN_PUBLIC_ORIGIN,
17
- },
18
-
19
- [Service['Locations']]: {
20
- [Network['Docker']]: process.env.NEXT_PUBLIC_LOCATIONS_DOCKER_ORIGIN,
21
- [Network['Public']]: process.env.NEXT_PUBLIC_LOCATIONS_PUBLIC_ORIGIN,
22
- },
23
-
24
- [Service['Cities']]: {
25
- [Network['Docker']]: process.env.NEXT_PUBLIC_CITIES_DOCKER_ORIGIN,
26
- [Network['Public']]: process.env.NEXT_PUBLIC_CITIES_PUBLIC_ORIGIN,
27
- },
28
-
29
- [Service['Venues']]: {
30
- [Network['Docker']]: process.env.NEXT_PUBLIC_VENUES_DOCKER_ORIGIN,
31
- [Network['Public']]: process.env.NEXT_PUBLIC_VENUES_PUBLIC_ORIGIN,
32
- },
33
-
34
- [Service['Themes']]: {
35
- [Network['Docker']]: process.env.NEXT_PUBLIC_THEMES_DOCKER_ORIGIN,
36
- [Network['Public']]: process.env.NEXT_PUBLIC_THEMES_PUBLIC_ORIGIN,
37
- },
38
-
39
- [Service['Games']]: {
40
- [Network['Docker']]: process.env.NEXT_PUBLIC_GAMES_DOCKER_ORIGIN,
41
- [Network['Public']]: process.env.NEXT_PUBLIC_GAMES_PUBLIC_ORIGIN,
42
- },
43
-
44
- [Service['Registrations']]: {
45
- [Network['Docker']]: process.env.NEXT_PUBLIC_REGISTRATIONS_DOCKER_ORIGIN,
46
- [Network['Public']]: process.env.NEXT_PUBLIC_REGISTRATIONS_PUBLIC_ORIGIN,
47
- },
48
-
49
- [Service['Files']]: {
50
- [Network['Docker']]: process.env.NEXT_PUBLIC_FILES_DOCKER_ORIGIN,
51
- [Network['Public']]: process.env.NEXT_PUBLIC_FILES_PUBLIC_ORIGIN,
52
- },
3
+ export const ServiceNetworkOrigin = Object.freeze({Users: Object.freeze({Docker: process.env.NEXT_PUBLIC_USERS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_USERS_PUBLIC_ORIGIN}),Roles: Object.freeze({Docker: process.env.NEXT_PUBLIC_ROLES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_ROLES_PUBLIC_ORIGIN}),Checkin: Object.freeze({Docker: process.env.NEXT_PUBLIC_CHECKIN_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_CHECKIN_PUBLIC_ORIGIN}),Locations: Object.freeze({Docker: process.env.NEXT_PUBLIC_LOCATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_LOCATIONS_PUBLIC_ORIGIN}),Cities: Object.freeze({Docker: process.env.NEXT_PUBLIC_CITIES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_CITIES_PUBLIC_ORIGIN}),Venues: Object.freeze({Docker: process.env.NEXT_PUBLIC_VENUES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_VENUES_PUBLIC_ORIGIN}),Themes: Object.freeze({Docker: process.env.NEXT_PUBLIC_THEMES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_THEMES_PUBLIC_ORIGIN}),Games: Object.freeze({Docker: process.env.NEXT_PUBLIC_GAMES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_GAMES_PUBLIC_ORIGIN}),Registrations: Object.freeze({Docker: process.env.NEXT_PUBLIC_REGISTRATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_REGISTRATIONS_PUBLIC_ORIGIN}),Files: Object.freeze({Docker: process.env.NEXT_PUBLIC_FILES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_FILES_PUBLIC_ORIGIN}),Procedures: Object.freeze({Docker: process.env.NEXT_PUBLIC_PROCEDURES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_PROCEDURES_PUBLIC_ORIGIN}),Integrations: Object.freeze({Docker: process.env.NEXT_PUBLIC_INTEGRATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_INTEGRATIONS_PUBLIC_ORIGIN}),Updates: Object.freeze({Docker: process.env.NEXT_PUBLIC_UPDATES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_UPDATES_PUBLIC_ORIGIN}),Hub: Object.freeze({Docker: process.env.NEXT_PUBLIC_HUB_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_HUB_PUBLIC_ORIGIN}),Landing: Object.freeze({Docker: process.env.NEXT_PUBLIC_LANDING_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_LANDING_PUBLIC_ORIGIN}),Telegram: Object.freeze({Docker: process.env.NEXT_PUBLIC_TELEGRAM_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_TELEGRAM_PUBLIC_ORIGIN}),Vkma: Object.freeze({Docker: process.env.NEXT_PUBLIC_VKMA_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_VKMA_PUBLIC_ORIGIN}),Minio: Object.freeze({Docker: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN})})
53
4
 
54
- [Service['Integrations']]: {
55
- [Network['Docker']]: process.env.NEXT_PUBLIC_INTEGRATIONS_DOCKER_ORIGIN,
56
- [Network['Public']]: process.env.NEXT_PUBLIC_INTEGRATIONS_PUBLIC_ORIGIN,
57
- },
5
+ export const request = Object.freeze(
6
+ /**
7
+ * @param {keyof typeof import('@shakerquiz/utilities').Network} network
8
+ * @param {keyof typeof import('@shakerquiz/utilities').Route} route
9
+ * @param {*} params
10
+ * @param {*} search
11
+ * @param {*} init
12
+ */
13
+ (network, route, params, search, init) => {
14
+ var r = access(Route, route)
58
15
 
59
- [Service['Updates']]: {
60
- [Network['Docker']]: process.env.NEXT_PUBLIC_UPDATES_DOCKER_ORIGIN,
61
- [Network['Public']]: process.env.NEXT_PUBLIC_UPDATES_PUBLIC_ORIGIN,
62
- },
16
+ var rs = access(RouteService, route)
63
17
 
64
- [Service['Procedures']]: {
65
- [Network['Docker']]: process.env.NEXT_PUBLIC_PROCEDURES_DOCKER_ORIGIN,
66
- [Network['Public']]: process.env.NEXT_PUBLIC_PROCEDURES_PUBLIC_ORIGIN,
67
- },
18
+ var n = access(Network, network)
68
19
 
69
- [Service['Minio']]: {
70
- [Network['Docker']]: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,
71
- [Network['Public']]: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN,
72
- },
20
+ if (!Object.hasOwn(ServiceNetworkOrigin, rs))
21
+ throw TypeError(`Service '${rs}' does not exist.`)
73
22
 
74
- [Service['Landing']]: {
75
- [Network['Docker']]: process.env.NEXT_PUBLIC_LANDING_DOCKER_ORIGIN,
76
- [Network['Public']]: process.env.NEXT_PUBLIC_LANDING_PUBLIC_ORIGIN,
77
- },
23
+ if (!Object.hasOwn(ServiceNetworkOrigin[rs], n))
24
+ throw TypeError(`Network '${n}' in Service '${rs}' does not exist.`)
78
25
 
79
- [Service['Vkma']]: {
80
- [Network['Docker']]: process.env.NEXT_PUBLIC_VKMA_DOCKER_ORIGIN,
81
- [Network['Public']]: process.env.NEXT_PUBLIC_VKMA_PUBLIC_ORIGIN,
82
- },
26
+ var url = new URL(hydrateRoutePathname(r, params), ServiceNetworkOrigin[rs][n])
83
27
 
84
- [Service['Hub']]: {
85
- [Network['Docker']]: process.env.NEXT_PUBLIC_HUB_DOCKER_ORIGIN,
86
- [Network['Public']]: process.env.NEXT_PUBLIC_HUB_PUBLIC_ORIGIN,
87
- },
28
+ url.search = search
88
29
 
89
- [Service['Minio']]: {
90
- [Network['Docker']]: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,
91
- [Network['Public']]: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN,
30
+ return fetch(url, init)
92
31
  },
93
- }
94
-
95
- /** @returns {string} */
96
- export const inferOrigin = Object.freeze((service, network) => {
97
- if (!(service in ServiceNetworkOrigin))
98
- throw TypeError(`Service '${service}' does not exist.`)
99
-
100
- if (!(network in ServiceNetworkOrigin[service]))
101
- throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
102
-
103
- return ServiceNetworkOrigin[service][network]
104
- })
105
-
106
- export const routeRequest = Object.freeze((maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
107
- var route = inferRoute(maybeRoute)
108
-
109
- if (route === 'Unknown')
110
- throw TypeError(`[routeRequest] Could not infer route for value: '${maybeRoute}'.`)
111
-
112
- var service = inferRouteService(maybeRoute)
113
-
114
- if (service === 'Unknown')
115
- throw TypeError(`[routeRequest] Could not infer service for value: '${maybeRoute}'.`)
116
-
117
- var network = inferNetwork(maybeNetwork)
118
-
119
- if (network === 'Unknown')
120
- throw TypeError(`[routeRequest] Could not infer network for value: '${maybeRoute}'.`)
121
-
122
- var url = new URL(
123
- hydrateRoutePathname(route, maybeRouteParams),
124
- inferOrigin(service, network),
125
- )
126
-
127
- url.search = maybeRouteSearch
128
-
129
- return fetch(url, init)
130
- })
32
+ )
@@ -1,130 +1,32 @@
1
- import { hydrateRoutePathname, inferNetwork, inferRoute, inferRouteService, Network, Service } from '@shakerquiz/utilities'
1
+ import { access, hydrateRoutePathname, Network, Route, RouteService } from '@shakerquiz/utilities'
2
2
 
3
- export var ServiceNetworkOrigin = {
4
- [Service['Roles']]: {
5
- [Network['Docker']]: process.env.ROLES_DOCKER_ORIGIN,
6
- [Network['Public']]: process.env.ROLES_PUBLIC_ORIGIN,
7
- },
8
-
9
- [Service['Users']]: {
10
- [Network['Docker']]: process.env.USERS_DOCKER_ORIGIN,
11
- [Network['Public']]: process.env.USERS_PUBLIC_ORIGIN,
12
- },
13
-
14
- [Service['Checkin']]: {
15
- [Network['Docker']]: process.env.CHECKIN_DOCKER_ORIGIN,
16
- [Network['Public']]: process.env.CHECKIN_PUBLIC_ORIGIN,
17
- },
18
-
19
- [Service['Locations']]: {
20
- [Network['Docker']]: process.env.LOCATIONS_DOCKER_ORIGIN,
21
- [Network['Public']]: process.env.LOCATIONS_PUBLIC_ORIGIN,
22
- },
23
-
24
- [Service['Cities']]: {
25
- [Network['Docker']]: process.env.CITIES_DOCKER_ORIGIN,
26
- [Network['Public']]: process.env.CITIES_PUBLIC_ORIGIN,
27
- },
28
-
29
- [Service['Venues']]: {
30
- [Network['Docker']]: process.env.VENUES_DOCKER_ORIGIN,
31
- [Network['Public']]: process.env.VENUES_PUBLIC_ORIGIN,
32
- },
33
-
34
- [Service['Themes']]: {
35
- [Network['Docker']]: process.env.THEMES_DOCKER_ORIGIN,
36
- [Network['Public']]: process.env.THEMES_PUBLIC_ORIGIN,
37
- },
38
-
39
- [Service['Games']]: {
40
- [Network['Docker']]: process.env.GAMES_DOCKER_ORIGIN,
41
- [Network['Public']]: process.env.GAMES_PUBLIC_ORIGIN,
42
- },
43
-
44
- [Service['Registrations']]: {
45
- [Network['Docker']]: process.env.REGISTRATIONS_DOCKER_ORIGIN,
46
- [Network['Public']]: process.env.REGISTRATIONS_PUBLIC_ORIGIN,
47
- },
48
-
49
- [Service['Files']]: {
50
- [Network['Docker']]: process.env.FILES_DOCKER_ORIGIN,
51
- [Network['Public']]: process.env.FILES_PUBLIC_ORIGIN,
52
- },
3
+ export const ServiceNetworkOrigin = Object.freeze({Users: Object.freeze({Docker: process.env.USERS_DOCKER_ORIGIN,Public: process.env.USERS_PUBLIC_ORIGIN}),Roles: Object.freeze({Docker: process.env.ROLES_DOCKER_ORIGIN,Public: process.env.ROLES_PUBLIC_ORIGIN}),Checkin: Object.freeze({Docker: process.env.CHECKIN_DOCKER_ORIGIN,Public: process.env.CHECKIN_PUBLIC_ORIGIN}),Locations: Object.freeze({Docker: process.env.LOCATIONS_DOCKER_ORIGIN,Public: process.env.LOCATIONS_PUBLIC_ORIGIN}),Cities: Object.freeze({Docker: process.env.CITIES_DOCKER_ORIGIN,Public: process.env.CITIES_PUBLIC_ORIGIN}),Venues: Object.freeze({Docker: process.env.VENUES_DOCKER_ORIGIN,Public: process.env.VENUES_PUBLIC_ORIGIN}),Themes: Object.freeze({Docker: process.env.THEMES_DOCKER_ORIGIN,Public: process.env.THEMES_PUBLIC_ORIGIN}),Games: Object.freeze({Docker: process.env.GAMES_DOCKER_ORIGIN,Public: process.env.GAMES_PUBLIC_ORIGIN}),Registrations: Object.freeze({Docker: process.env.REGISTRATIONS_DOCKER_ORIGIN,Public: process.env.REGISTRATIONS_PUBLIC_ORIGIN}),Files: Object.freeze({Docker: process.env.FILES_DOCKER_ORIGIN,Public: process.env.FILES_PUBLIC_ORIGIN}),Procedures: Object.freeze({Docker: process.env.PROCEDURES_DOCKER_ORIGIN,Public: process.env.PROCEDURES_PUBLIC_ORIGIN}),Integrations: Object.freeze({Docker: process.env.INTEGRATIONS_DOCKER_ORIGIN,Public: process.env.INTEGRATIONS_PUBLIC_ORIGIN}),Updates: Object.freeze({Docker: process.env.UPDATES_DOCKER_ORIGIN,Public: process.env.UPDATES_PUBLIC_ORIGIN}),Hub: Object.freeze({Docker: process.env.HUB_DOCKER_ORIGIN,Public: process.env.HUB_PUBLIC_ORIGIN}),Landing: Object.freeze({Docker: process.env.LANDING_DOCKER_ORIGIN,Public: process.env.LANDING_PUBLIC_ORIGIN}),Telegram: Object.freeze({Docker: process.env.TELEGRAM_DOCKER_ORIGIN,Public: process.env.TELEGRAM_PUBLIC_ORIGIN}),Vkma: Object.freeze({Docker: process.env.VKMA_DOCKER_ORIGIN,Public: process.env.VKMA_PUBLIC_ORIGIN}),Minio: Object.freeze({Docker: process.env.MINIO_DOCKER_ORIGIN,Public: process.env.MINIO_PUBLIC_ORIGIN})})
53
4
 
54
- [Service['Integrations']]: {
55
- [Network['Docker']]: process.env.INTEGRATIONS_DOCKER_ORIGIN,
56
- [Network['Public']]: process.env.INTEGRATIONS_PUBLIC_ORIGIN,
57
- },
5
+ export const request = Object.freeze(
6
+ /**
7
+ * @param {keyof typeof import('@shakerquiz/utilities').Network} network
8
+ * @param {keyof typeof import('@shakerquiz/utilities').Route} route
9
+ * @param {*} params
10
+ * @param {*} search
11
+ * @param {*} init
12
+ */
13
+ (network, route, params, search, init) => {
14
+ var r = access(Route, route)
58
15
 
59
- [Service['Updates']]: {
60
- [Network['Docker']]: process.env.UPDATES_DOCKER_ORIGIN,
61
- [Network['Public']]: process.env.UPDATES_PUBLIC_ORIGIN,
62
- },
16
+ var rs = access(RouteService, route)
63
17
 
64
- [Service['Procedures']]: {
65
- [Network['Docker']]: process.env.PROCEDURES_DOCKER_ORIGIN,
66
- [Network['Public']]: process.env.PROCEDURES_PUBLIC_ORIGIN,
67
- },
18
+ var n = access(Network, network)
68
19
 
69
- [Service['Minio']]: {
70
- [Network['Docker']]: process.env.MINIO_DOCKER_ORIGIN,
71
- [Network['Public']]: process.env.MINIO_PUBLIC_ORIGIN,
72
- },
20
+ if (!Object.hasOwn(ServiceNetworkOrigin, rs))
21
+ throw TypeError(`Service '${rs}' does not exist.`)
73
22
 
74
- [Service['Landing']]: {
75
- [Network['Docker']]: process.env.LANDING_DOCKER_ORIGIN,
76
- [Network['Public']]: process.env.LANDING_PUBLIC_ORIGIN,
77
- },
23
+ if (!Object.hasOwn(ServiceNetworkOrigin[rs], n))
24
+ throw TypeError(`Network '${n}' in Service '${rs}' does not exist.`)
78
25
 
79
- [Service['Vkma']]: {
80
- [Network['Docker']]: process.env.VKMA_DOCKER_ORIGIN,
81
- [Network['Public']]: process.env.VKMA_PUBLIC_ORIGIN,
82
- },
26
+ var url = new URL(hydrateRoutePathname(r, params), ServiceNetworkOrigin[rs][n])
83
27
 
84
- [Service['Hub']]: {
85
- [Network['Docker']]: process.env.HUB_DOCKER_ORIGIN,
86
- [Network['Public']]: process.env.HUB_PUBLIC_ORIGIN,
87
- },
28
+ url.search = search
88
29
 
89
- [Service['Minio']]: {
90
- [Network['Docker']]: process.env.MINIO_DOCKER_ORIGIN,
91
- [Network['Public']]: process.env.MINIO_PUBLIC_ORIGIN,
30
+ return fetch(url, init)
92
31
  },
93
- }
94
-
95
- /** @returns {string} */
96
- export const inferOrigin = Object.freeze((service, network) => {
97
- if (!(service in ServiceNetworkOrigin))
98
- throw TypeError(`Service '${service}' does not exist.`)
99
-
100
- if (!(network in ServiceNetworkOrigin[service]))
101
- throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
102
-
103
- return ServiceNetworkOrigin[service][network]
104
- })
105
-
106
- export const routeRequest = Object.freeze((maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
107
- var route = inferRoute(maybeRoute)
108
-
109
- if (route === 'Unknown')
110
- throw TypeError(`[routeRequest] Could not infer route for value: '${maybeRoute}'.`)
111
-
112
- var service = inferRouteService(maybeRoute)
113
-
114
- if (service === 'Unknown')
115
- throw TypeError(`[routeRequest] Could not infer service for value: '${maybeRoute}'.`)
116
-
117
- var network = inferNetwork(maybeNetwork)
118
-
119
- if (network === 'Unknown')
120
- throw TypeError(`[routeRequest] Could not infer network for value: '${maybeRoute}'.`)
121
-
122
- var url = new URL(
123
- hydrateRoutePathname(route, maybeRouteParams),
124
- inferOrigin(service, network),
125
- )
126
-
127
- url.search = maybeRouteSearch
128
-
129
- return fetch(url, init)
130
- })
32
+ )
@@ -1,130 +1,32 @@
1
- import { hydrateRoutePathname, inferNetwork, inferRoute, inferRouteService, Network, Service } from '@shakerquiz/utilities'
1
+ import { access, hydrateRoutePathname, Network, Route, RouteService } from '@shakerquiz/utilities'
2
2
 
3
- export var ServiceNetworkOrigin = {
4
- [Service['Roles']]: {
5
- [Network['Docker']]: process.env.NEXT_PUBLIC_ROLES_DOCKER_ORIGIN,
6
- [Network['Public']]: process.env.NEXT_PUBLIC_ROLES_PUBLIC_ORIGIN,
7
- },
8
-
9
- [Service['Users']]: {
10
- [Network['Docker']]: process.env.NEXT_PUBLIC_USERS_DOCKER_ORIGIN,
11
- [Network['Public']]: process.env.NEXT_PUBLIC_USERS_PUBLIC_ORIGIN,
12
- },
13
-
14
- [Service['Checkin']]: {
15
- [Network['Docker']]: process.env.NEXT_PUBLIC_CHECKIN_DOCKER_ORIGIN,
16
- [Network['Public']]: process.env.NEXT_PUBLIC_CHECKIN_PUBLIC_ORIGIN,
17
- },
18
-
19
- [Service['Locations']]: {
20
- [Network['Docker']]: process.env.NEXT_PUBLIC_LOCATIONS_DOCKER_ORIGIN,
21
- [Network['Public']]: process.env.NEXT_PUBLIC_LOCATIONS_PUBLIC_ORIGIN,
22
- },
23
-
24
- [Service['Cities']]: {
25
- [Network['Docker']]: process.env.NEXT_PUBLIC_CITIES_DOCKER_ORIGIN,
26
- [Network['Public']]: process.env.NEXT_PUBLIC_CITIES_PUBLIC_ORIGIN,
27
- },
28
-
29
- [Service['Venues']]: {
30
- [Network['Docker']]: process.env.NEXT_PUBLIC_VENUES_DOCKER_ORIGIN,
31
- [Network['Public']]: process.env.NEXT_PUBLIC_VENUES_PUBLIC_ORIGIN,
32
- },
33
-
34
- [Service['Themes']]: {
35
- [Network['Docker']]: process.env.NEXT_PUBLIC_THEMES_DOCKER_ORIGIN,
36
- [Network['Public']]: process.env.NEXT_PUBLIC_THEMES_PUBLIC_ORIGIN,
37
- },
38
-
39
- [Service['Games']]: {
40
- [Network['Docker']]: process.env.NEXT_PUBLIC_GAMES_DOCKER_ORIGIN,
41
- [Network['Public']]: process.env.NEXT_PUBLIC_GAMES_PUBLIC_ORIGIN,
42
- },
43
-
44
- [Service['Registrations']]: {
45
- [Network['Docker']]: process.env.NEXT_PUBLIC_REGISTRATIONS_DOCKER_ORIGIN,
46
- [Network['Public']]: process.env.NEXT_PUBLIC_REGISTRATIONS_PUBLIC_ORIGIN,
47
- },
48
-
49
- [Service['Files']]: {
50
- [Network['Docker']]: process.env.NEXT_PUBLIC_FILES_DOCKER_ORIGIN,
51
- [Network['Public']]: process.env.NEXT_PUBLIC_FILES_PUBLIC_ORIGIN,
52
- },
3
+ export const ServiceNetworkOrigin = Object.freeze({Users: Object.freeze({Docker: process.env.NEXT_PUBLIC_USERS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_USERS_PUBLIC_ORIGIN}),Roles: Object.freeze({Docker: process.env.NEXT_PUBLIC_ROLES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_ROLES_PUBLIC_ORIGIN}),Checkin: Object.freeze({Docker: process.env.NEXT_PUBLIC_CHECKIN_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_CHECKIN_PUBLIC_ORIGIN}),Locations: Object.freeze({Docker: process.env.NEXT_PUBLIC_LOCATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_LOCATIONS_PUBLIC_ORIGIN}),Cities: Object.freeze({Docker: process.env.NEXT_PUBLIC_CITIES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_CITIES_PUBLIC_ORIGIN}),Venues: Object.freeze({Docker: process.env.NEXT_PUBLIC_VENUES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_VENUES_PUBLIC_ORIGIN}),Themes: Object.freeze({Docker: process.env.NEXT_PUBLIC_THEMES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_THEMES_PUBLIC_ORIGIN}),Games: Object.freeze({Docker: process.env.NEXT_PUBLIC_GAMES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_GAMES_PUBLIC_ORIGIN}),Registrations: Object.freeze({Docker: process.env.NEXT_PUBLIC_REGISTRATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_REGISTRATIONS_PUBLIC_ORIGIN}),Files: Object.freeze({Docker: process.env.NEXT_PUBLIC_FILES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_FILES_PUBLIC_ORIGIN}),Procedures: Object.freeze({Docker: process.env.NEXT_PUBLIC_PROCEDURES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_PROCEDURES_PUBLIC_ORIGIN}),Integrations: Object.freeze({Docker: process.env.NEXT_PUBLIC_INTEGRATIONS_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_INTEGRATIONS_PUBLIC_ORIGIN}),Updates: Object.freeze({Docker: process.env.NEXT_PUBLIC_UPDATES_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_UPDATES_PUBLIC_ORIGIN}),Hub: Object.freeze({Docker: process.env.NEXT_PUBLIC_HUB_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_HUB_PUBLIC_ORIGIN}),Landing: Object.freeze({Docker: process.env.NEXT_PUBLIC_LANDING_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_LANDING_PUBLIC_ORIGIN}),Telegram: Object.freeze({Docker: process.env.NEXT_PUBLIC_TELEGRAM_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_TELEGRAM_PUBLIC_ORIGIN}),Vkma: Object.freeze({Docker: process.env.NEXT_PUBLIC_VKMA_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_VKMA_PUBLIC_ORIGIN}),Minio: Object.freeze({Docker: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,Public: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN})})
53
4
 
54
- [Service['Integrations']]: {
55
- [Network['Docker']]: process.env.NEXT_PUBLIC_INTEGRATIONS_DOCKER_ORIGIN,
56
- [Network['Public']]: process.env.NEXT_PUBLIC_INTEGRATIONS_PUBLIC_ORIGIN,
57
- },
5
+ export const request = Object.freeze(
6
+ /**
7
+ * @param {keyof typeof import('@shakerquiz/utilities').Network} network
8
+ * @param {keyof typeof import('@shakerquiz/utilities').Route} route
9
+ * @param {*} params
10
+ * @param {*} search
11
+ * @param {*} init
12
+ */
13
+ (network, route, params, search, init) => {
14
+ var r = access(Route, route)
58
15
 
59
- [Service['Updates']]: {
60
- [Network['Docker']]: process.env.NEXT_PUBLIC_UPDATES_DOCKER_ORIGIN,
61
- [Network['Public']]: process.env.NEXT_PUBLIC_UPDATES_PUBLIC_ORIGIN,
62
- },
16
+ var rs = access(RouteService, route)
63
17
 
64
- [Service['Procedures']]: {
65
- [Network['Docker']]: process.env.NEXT_PUBLIC_PROCEDURES_DOCKER_ORIGIN,
66
- [Network['Public']]: process.env.NEXT_PUBLIC_PROCEDURES_PUBLIC_ORIGIN,
67
- },
18
+ var n = access(Network, network)
68
19
 
69
- [Service['Minio']]: {
70
- [Network['Docker']]: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,
71
- [Network['Public']]: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN,
72
- },
20
+ if (!Object.hasOwn(ServiceNetworkOrigin, rs))
21
+ throw TypeError(`Service '${rs}' does not exist.`)
73
22
 
74
- [Service['Landing']]: {
75
- [Network['Docker']]: process.env.NEXT_PUBLIC_LANDING_DOCKER_ORIGIN,
76
- [Network['Public']]: process.env.NEXT_PUBLIC_LANDING_PUBLIC_ORIGIN,
77
- },
23
+ if (!Object.hasOwn(ServiceNetworkOrigin[rs], n))
24
+ throw TypeError(`Network '${n}' in Service '${rs}' does not exist.`)
78
25
 
79
- [Service['Vkma']]: {
80
- [Network['Docker']]: process.env.NEXT_PUBLIC_VKMA_DOCKER_ORIGIN,
81
- [Network['Public']]: process.env.NEXT_PUBLIC_VKMA_PUBLIC_ORIGIN,
82
- },
26
+ var url = new URL(hydrateRoutePathname(r, params), ServiceNetworkOrigin[rs][n])
83
27
 
84
- [Service['Hub']]: {
85
- [Network['Docker']]: process.env.NEXT_PUBLIC_HUB_DOCKER_ORIGIN,
86
- [Network['Public']]: process.env.NEXT_PUBLIC_HUB_PUBLIC_ORIGIN,
87
- },
28
+ url.search = search
88
29
 
89
- [Service['Minio']]: {
90
- [Network['Docker']]: process.env.NEXT_PUBLIC_MINIO_DOCKER_ORIGIN,
91
- [Network['Public']]: process.env.NEXT_PUBLIC_MINIO_PUBLIC_ORIGIN,
30
+ return fetch(url, init)
92
31
  },
93
- }
94
-
95
- /** @returns {string} */
96
- export const inferOrigin = Object.freeze((service, network) => {
97
- if (!(service in ServiceNetworkOrigin))
98
- throw TypeError(`Service '${service}' does not exist.`)
99
-
100
- if (!(network in ServiceNetworkOrigin[service]))
101
- throw TypeError(`Network '${network}' in Service '${service}' does not exist.`)
102
-
103
- return ServiceNetworkOrigin[service][network]
104
- })
105
-
106
- export const routeRequest = Object.freeze((maybeNetwork, maybeRoute, maybeRouteParams, maybeRouteSearch, init) => {
107
- var route = inferRoute(maybeRoute)
108
-
109
- if (route === 'Unknown')
110
- throw TypeError(`[routeRequest] Could not infer route for value: '${maybeRoute}'.`)
111
-
112
- var service = inferRouteService(maybeRoute)
113
-
114
- if (service === 'Unknown')
115
- throw TypeError(`[routeRequest] Could not infer service for value: '${maybeRoute}'.`)
116
-
117
- var network = inferNetwork(maybeNetwork)
118
-
119
- if (network === 'Unknown')
120
- throw TypeError(`[routeRequest] Could not infer network for value: '${maybeRoute}'.`)
121
-
122
- var url = new URL(
123
- hydrateRoutePathname(route, maybeRouteParams),
124
- inferOrigin(service, network),
125
- )
126
-
127
- url.search = maybeRouteSearch
128
-
129
- return fetch(url, init)
130
- })
32
+ )