@shakerquiz/utilities 0.6.5 → 0.6.7
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.
package/package.json
CHANGED
|
@@ -12,6 +12,7 @@ export const RouteCardinality = Object.freeze({
|
|
|
12
12
|
[Route['city/country']]: Cardinality['1-1'],
|
|
13
13
|
[Route['city/currency']]: Cardinality['1-1'],
|
|
14
14
|
[Route['city/timezone']]: Cardinality['1-1'],
|
|
15
|
+
[Route['city/vk_group_token']]: Cardinality['1-1'],
|
|
15
16
|
[Route['city/venue']]: Cardinality['1-1'],
|
|
16
17
|
[Route['city/venues']]: Cardinality['1-N'],
|
|
17
18
|
[Route['countries']]: Cardinality['N'],
|
|
@@ -11,6 +11,7 @@ export const RoutePathname = Object.freeze({
|
|
|
11
11
|
[Route['city/country']]: 'city/:city/country',
|
|
12
12
|
[Route['city/currency']]: 'city/:city/currency',
|
|
13
13
|
[Route['city/timezone']]: 'city/:city/timezone',
|
|
14
|
+
[Route['city/vk_group_token']]: 'city/:city/vk_group_token',
|
|
14
15
|
[Route['city/venue']]: 'city/:city/venue/:venue',
|
|
15
16
|
[Route['city/venues']]: 'city/:city/venues',
|
|
16
17
|
[Route['countries']]: 'countries',
|
|
@@ -27,6 +27,7 @@ export const RouteService = Object.freeze({
|
|
|
27
27
|
[Route['city/country']]: Service['Cities'],
|
|
28
28
|
[Route['city/currency']]: Service['Cities'],
|
|
29
29
|
[Route['city/timezone']]: Service['Cities'],
|
|
30
|
+
[Route['city/vk_group_token']]: Service['Cities'],
|
|
30
31
|
[Route['city/venues']]: Service['Cities'],
|
|
31
32
|
[Route['venue']]: Service['Venues'],
|
|
32
33
|
[Route['venue/city']]: Service['Venues'],
|
package/source/entities/route.js
CHANGED
|
@@ -9,6 +9,7 @@ export const Route = Object.freeze({
|
|
|
9
9
|
'city/country': 'city/country',
|
|
10
10
|
'city/currency': 'city/currency',
|
|
11
11
|
'city/timezone': 'city/timezone',
|
|
12
|
+
'city/vk_group_token': 'city/vk_group_token',
|
|
12
13
|
'city/venue': 'city/venue',
|
|
13
14
|
'city/venues': 'city/venues',
|
|
14
15
|
'countries': 'countries',
|
package/source/helpers/access.js
CHANGED
|
@@ -1,13 +1,109 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Blend } from '../entities/blend.js'
|
|
2
|
+
import { CardinalityRoutes } from '../entities/cardinality-routes.js'
|
|
3
|
+
import { Cardinality } from '../entities/cardinality.js'
|
|
4
|
+
import { Category } from '../entities/category.js'
|
|
5
|
+
import { CityAffilation } from '../entities/city-affilation.js'
|
|
6
|
+
import { CityChatappVersion } from '../entities/city-chatapp-version.js'
|
|
7
|
+
import { Constants } from '../entities/constants.js'
|
|
8
|
+
import { Display } from '../entities/display.js'
|
|
9
|
+
import { GameStatus } from '../entities/game-status.js'
|
|
10
|
+
import { Gender } from '../entities/gender.js'
|
|
11
|
+
import { Icon } from '../entities/icon.js'
|
|
12
|
+
import { Method } from '../entities/method.js'
|
|
13
|
+
import { Mode } from '../entities/mode.js'
|
|
14
|
+
import { Network } from '../entities/network.js'
|
|
15
|
+
import { Numerosity } from '../entities/numerosity.js'
|
|
16
|
+
import { Pattern } from '../entities/pattern.js'
|
|
17
|
+
import { Phase } from '../entities/phase.js'
|
|
18
|
+
import { Quantifier } from '../entities/quantifier.js'
|
|
19
|
+
import { RegistrationChannel } from '../entities/registration-channel.js'
|
|
20
|
+
import { RegistrationLineup } from '../entities/registration-lineup.js'
|
|
21
|
+
import { RegistrationMailing } from '../entities/registration-mailing.js'
|
|
22
|
+
import { RegistrationStatus } from '../entities/registration-status.js'
|
|
23
|
+
import { Role } from '../entities/role.js'
|
|
24
|
+
import { RouteCardinalityRoute } from '../entities/route-cardinality-route.js'
|
|
25
|
+
import { RouteCardinality } from '../entities/route-cardinality.js'
|
|
26
|
+
import { RoutePathnameParams } from '../entities/route-pathname-params.js'
|
|
27
|
+
import { RoutePathname } from '../entities/route-pathname.js'
|
|
28
|
+
import { RouteService } from '../entities/route-service.js'
|
|
29
|
+
import { Route } from '../entities/route.js'
|
|
30
|
+
import { Runtime } from '../entities/runtime.js'
|
|
31
|
+
import { ServiceRoutes } from '../entities/service-routes.js'
|
|
32
|
+
import { ServiceRuntime } from '../entities/service-runtime.js'
|
|
33
|
+
import { Service } from '../entities/service.js'
|
|
34
|
+
import { ThemeStatus } from '../entities/theme-status.js'
|
|
35
|
+
import { VenueAudience } from '../entities/venue-audience.js'
|
|
36
|
+
import { VenueStatus } from '../entities/venue-status.js'
|
|
37
|
+
|
|
38
|
+
const RelationNode = new Map([
|
|
39
|
+
[CityAffilation, 'city'],
|
|
40
|
+
[CityChatappVersion, 'city'],
|
|
41
|
+
[GameStatus, 'game'],
|
|
42
|
+
[RegistrationChannel, 'registration'],
|
|
43
|
+
[RegistrationLineup, 'registration'],
|
|
44
|
+
[RegistrationMailing, 'registration'],
|
|
45
|
+
[RegistrationStatus, 'registration'],
|
|
46
|
+
[Role, 'role'],
|
|
47
|
+
[ThemeStatus, 'theme'],
|
|
48
|
+
[VenueAudience, 'venue'],
|
|
49
|
+
[VenueStatus, 'venue'],
|
|
50
|
+
])
|
|
51
|
+
|
|
52
|
+
const RelationProp = new Map([
|
|
53
|
+
[Blend, 'blend'],
|
|
54
|
+
[CardinalityRoutes, 'routes'],
|
|
55
|
+
[Cardinality, 'cardinality'],
|
|
56
|
+
[Category, 'category'],
|
|
57
|
+
[CityAffilation, 'affilation'],
|
|
58
|
+
[CityChatappVersion, 'version'],
|
|
59
|
+
[Constants, 'constants'],
|
|
60
|
+
[Display, 'display'],
|
|
61
|
+
[GameStatus, 'status'],
|
|
62
|
+
[Gender, 'gender'],
|
|
63
|
+
[Icon, 'icon'],
|
|
64
|
+
[Method, 'method'],
|
|
65
|
+
[Mode, 'mode'],
|
|
66
|
+
[Network, 'network'],
|
|
67
|
+
[Numerosity, 'numerosity'],
|
|
68
|
+
[Pattern, 'pattern'],
|
|
69
|
+
[Phase, 'phase'],
|
|
70
|
+
[Quantifier, 'quantifier'],
|
|
71
|
+
[RegistrationChannel, 'channel'],
|
|
72
|
+
[RegistrationLineup, 'lineup'],
|
|
73
|
+
[RegistrationMailing, 'mailing'],
|
|
74
|
+
[RegistrationStatus, 'status'],
|
|
75
|
+
[Role, 'name'],
|
|
76
|
+
[RouteCardinalityRoute, 'cardinality_route'],
|
|
77
|
+
[RouteCardinality, 'cardinality'],
|
|
78
|
+
[RoutePathnameParams, 'pathname_params'],
|
|
79
|
+
[RoutePathname, 'pathname'],
|
|
80
|
+
[RouteService, 'service'],
|
|
81
|
+
[Route, 'route'],
|
|
82
|
+
[Runtime, 'runtime'],
|
|
83
|
+
[ServiceRoutes, 'routes'],
|
|
84
|
+
[ServiceRuntime, 'runtime'],
|
|
85
|
+
[Service, 'service'],
|
|
86
|
+
[ThemeStatus, 'status'],
|
|
87
|
+
[VenueAudience, 'audience'],
|
|
88
|
+
[VenueStatus, 'status'],
|
|
89
|
+
])
|
|
90
|
+
|
|
91
|
+
export const access = (Relation, value) => {
|
|
92
|
+
const node = RelationNode.get(Relation)
|
|
93
|
+
|
|
94
|
+
const prop = RelationProp.get(Relation)
|
|
95
|
+
|
|
96
|
+
const read = value?.[node]?.[prop] ?? value?.[prop] ?? value
|
|
97
|
+
|
|
98
|
+
if (Object.hasOwn(Relation, read))
|
|
99
|
+
return Relation[read]
|
|
4
100
|
else
|
|
5
|
-
throw TypeError(`Could not require key '${
|
|
101
|
+
throw TypeError(`Could not require key '${value}' from Relation '${JSON.stringify(Relation)}'.`)
|
|
6
102
|
}
|
|
7
103
|
|
|
8
|
-
export const tryAccess = (
|
|
104
|
+
export const tryAccess = (Relation, value) => {
|
|
9
105
|
try {
|
|
10
|
-
return access(
|
|
106
|
+
return access(Relation, value)
|
|
11
107
|
} catch (error) {
|
|
12
108
|
return 'Unknown'
|
|
13
109
|
}
|