volleyballsimtypes 0.0.6 → 0.0.8

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.
Files changed (133) hide show
  1. package/dist/src/service/event/in-play-event.js.map +1 -1
  2. package/package.json +5 -5
  3. package/src/data/index.ts +0 -2
  4. package/src/data/models/block.ts +0 -159
  5. package/src/data/models/coach.ts +0 -94
  6. package/src/data/models/country.ts +0 -105
  7. package/src/data/models/event.ts +0 -83
  8. package/src/data/models/index.ts +0 -22
  9. package/src/data/models/league.ts +0 -90
  10. package/src/data/models/libero-replacement.ts +0 -104
  11. package/src/data/models/match-set-stats.ts +0 -204
  12. package/src/data/models/match-set.ts +0 -152
  13. package/src/data/models/match.ts +0 -106
  14. package/src/data/models/performance-stats.ts +0 -136
  15. package/src/data/models/player.ts +0 -370
  16. package/src/data/models/rally-position.ts +0 -79
  17. package/src/data/models/rally.ts +0 -229
  18. package/src/data/models/reception.ts +0 -113
  19. package/src/data/models/score.ts +0 -99
  20. package/src/data/models/season-teams.ts +0 -67
  21. package/src/data/models/season.ts +0 -103
  22. package/src/data/models/serve.ts +0 -113
  23. package/src/data/models/set.ts +0 -113
  24. package/src/data/models/spike.ts +0 -113
  25. package/src/data/models/substitution.ts +0 -98
  26. package/src/data/models/team.ts +0 -193
  27. package/src/data/transformers/block.ts +0 -117
  28. package/src/data/transformers/coach.ts +0 -33
  29. package/src/data/transformers/country.ts +0 -23
  30. package/src/data/transformers/court-position.ts +0 -43
  31. package/src/data/transformers/court-target.ts +0 -58
  32. package/src/data/transformers/event-type.ts +0 -35
  33. package/src/data/transformers/formation.ts +0 -16
  34. package/src/data/transformers/index.ts +0 -27
  35. package/src/data/transformers/league.ts +0 -26
  36. package/src/data/transformers/libero-replacement.ts +0 -62
  37. package/src/data/transformers/match-set-stats.ts +0 -101
  38. package/src/data/transformers/match-set.ts +0 -59
  39. package/src/data/transformers/match.ts +0 -48
  40. package/src/data/transformers/performance-stats.ts +0 -40
  41. package/src/data/transformers/player.ts +0 -109
  42. package/src/data/transformers/rally-position.ts +0 -24
  43. package/src/data/transformers/rally.ts +0 -139
  44. package/src/data/transformers/reception.ts +0 -98
  45. package/src/data/transformers/role.ts +0 -31
  46. package/src/data/transformers/score.ts +0 -43
  47. package/src/data/transformers/season.ts +0 -42
  48. package/src/data/transformers/serve.ts +0 -100
  49. package/src/data/transformers/set.ts +0 -98
  50. package/src/data/transformers/spike.ts +0 -102
  51. package/src/data/transformers/substitution.ts +0 -42
  52. package/src/data/transformers/team.ts +0 -45
  53. package/src/data/transformers/trait.ts +0 -37
  54. package/src/index.ts +0 -7
  55. package/src/routing/events.ts +0 -60
  56. package/src/routing/index.ts +0 -5
  57. package/src/routing/league.ts +0 -15
  58. package/src/routing/match.ts +0 -52
  59. package/src/routing/player.ts +0 -24
  60. package/src/routing/team.ts +0 -14
  61. package/src/service/coach/__stubs__/index.ts +0 -46
  62. package/src/service/coach/coach.test.ts +0 -10
  63. package/src/service/coach/coach.ts +0 -30
  64. package/src/service/coach/formation.test.ts +0 -10
  65. package/src/service/coach/formation.ts +0 -160
  66. package/src/service/coach/index.ts +0 -2
  67. package/src/service/country/__stubs__/index.ts +0 -13
  68. package/src/service/country/country.test.ts +0 -10
  69. package/src/service/country/country.ts +0 -23
  70. package/src/service/country/index.ts +0 -1
  71. package/src/service/event/__stubs__/index.ts +0 -25
  72. package/src/service/event/block.test.ts +0 -100
  73. package/src/service/event/block.ts +0 -69
  74. package/src/service/event/in-play-event.ts +0 -37
  75. package/src/service/event/libero-replacement.test.ts +0 -37
  76. package/src/service/event/libero-replacement.ts +0 -25
  77. package/src/service/event/rally-event.ts +0 -33
  78. package/src/service/event/reception.test.ts +0 -50
  79. package/src/service/event/reception.ts +0 -38
  80. package/src/service/event/score.test.ts +0 -29
  81. package/src/service/event/score.ts +0 -22
  82. package/src/service/event/serve.test.ts +0 -50
  83. package/src/service/event/serve.ts +0 -39
  84. package/src/service/event/set.test.ts +0 -50
  85. package/src/service/event/set.ts +0 -38
  86. package/src/service/event/spike.test.ts +0 -64
  87. package/src/service/event/spike.ts +0 -46
  88. package/src/service/event/substitution.ts +0 -16
  89. package/src/service/index.ts +0 -17
  90. package/src/service/league/index.ts +0 -3
  91. package/src/service/league/league.ts +0 -112
  92. package/src/service/league/season.ts +0 -41
  93. package/src/service/league/standing.ts +0 -82
  94. package/src/service/main.ts +0 -52
  95. package/src/service/match/__stubs__/index.ts +0 -119
  96. package/src/service/match/court-position.test.ts +0 -73
  97. package/src/service/match/court-position.ts +0 -46
  98. package/src/service/match/court-target.test.ts +0 -39
  99. package/src/service/match/court-target.ts +0 -30
  100. package/src/service/match/index.ts +0 -6
  101. package/src/service/match/match-set.test.ts +0 -174
  102. package/src/service/match/match-set.ts +0 -140
  103. package/src/service/match/match-team.test.ts +0 -16
  104. package/src/service/match/match-team.ts +0 -13
  105. package/src/service/match/match.test.ts +0 -80
  106. package/src/service/match/match.ts +0 -63
  107. package/src/service/match/rally.test.ts +0 -94
  108. package/src/service/match/rally.ts +0 -79
  109. package/src/service/player/__stubs__/index.ts +0 -1433
  110. package/src/service/player/index.ts +0 -5
  111. package/src/service/player/performance-stats.test.ts +0 -24
  112. package/src/service/player/performance-stats.ts +0 -47
  113. package/src/service/player/player.test.ts +0 -51
  114. package/src/service/player/player.ts +0 -101
  115. package/src/service/player/role.test.ts +0 -29
  116. package/src/service/player/role.ts +0 -33
  117. package/src/service/player/stats.test.ts +0 -23
  118. package/src/service/player/stats.ts +0 -29
  119. package/src/service/player/trait.test.ts +0 -10
  120. package/src/service/player/trait.ts +0 -124
  121. package/src/service/team/__stubs__/index.ts +0 -290
  122. package/src/service/team/index.ts +0 -1
  123. package/src/service/team/team.test.ts +0 -30
  124. package/src/service/team/team.ts +0 -45
  125. package/src/service/utils/enum-utils.test.ts +0 -10
  126. package/src/service/utils/enum-utils.ts +0 -6
  127. package/src/service/utils/index.ts +0 -4
  128. package/src/service/utils/object-utils.ts +0 -1
  129. package/src/service/utils/rng-utils.test.ts +0 -32
  130. package/src/service/utils/rng-utils.ts +0 -41
  131. package/src/service/utils/string-utils.test.ts +0 -28
  132. package/src/service/utils/string-utils.ts +0 -13
  133. package/src/service/utils/testing-utils.ts +0 -2
@@ -1,290 +0,0 @@
1
- import { Team } from '../team'
2
- import { coaches } from '../../coach/__stubs__'
3
- import { Player, Role } from '../../player'
4
- import { country } from '../../country/__stubs__'
5
-
6
- export const roster: Player[] = [
7
- new Player({
8
- id: '7b2a8d9d-88fa-4446-8248-24ecf850ee2d',
9
- jerseyNumber: 19,
10
- name: { first: 'Scotti', last: 'Emmitt' }, country,
11
- stats: {
12
- setting: 45,
13
- reception: 57,
14
- pass: 57,
15
- backAttack: 30,
16
- jump: 66,
17
- block: 35,
18
- awareness: 37,
19
- serve: 53,
20
- spike: 55,
21
- defense: 83,
22
- stamina: 67
23
- },
24
- roles: Role.getRoles(),
25
- traits: []
26
- }),
27
- new Player({
28
- id: '02644d1a-ea42-43ee-8292-7d0e68655ba9',
29
- jerseyNumber: 19,
30
- name: { first: 'Sheri', last: 'Dowdall' }, country,
31
- stats: {
32
- setting: 78,
33
- reception: 49,
34
- pass: 49,
35
- backAttack: 63,
36
- jump: 96,
37
- block: 41,
38
- awareness: 38,
39
- serve: 56,
40
- spike: 79,
41
- defense: 95,
42
- stamina: 65
43
- },
44
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
45
- traits: []
46
- }),
47
- new Player({
48
- id: 'f075311b-6155-4071-91e4-c41bfd3fca22',
49
- jerseyNumber: 19,
50
- name: { first: 'Alfi', last: 'Eaddy' }, country,
51
- stats: {
52
- setting: 77,
53
- reception: 95,
54
- pass: 95,
55
- backAttack: 57,
56
- jump: 92,
57
- block: 58,
58
- awareness: 55,
59
- serve: 51,
60
- spike: 61,
61
- defense: 37,
62
- stamina: 86
63
- },
64
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
65
- traits: []
66
- }),
67
- new Player({
68
- id: '2b22931d-5cf5-4e3c-9fec-aa6d0910a911',
69
- jerseyNumber: 19,
70
- name: { first: 'Ofelia', last: 'Moseby' }, country,
71
- stats: {
72
- setting: 97,
73
- reception: 91,
74
- pass: 91,
75
- backAttack: 48,
76
- jump: 73,
77
- block: 44,
78
- awareness: 85,
79
- serve: 62,
80
- spike: 99,
81
- defense: 63,
82
- stamina: 51
83
- },
84
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
85
- traits: []
86
- }),
87
- new Player({
88
- id: '7612d231-372d-41f4-9658-0ed6c11296ba',
89
- jerseyNumber: 19,
90
- name: { first: 'Arel', last: 'Marquis' }, country,
91
- stats: {
92
- setting: 30,
93
- reception: 45,
94
- pass: 45,
95
- backAttack: 38,
96
- jump: 92,
97
- block: 34,
98
- awareness: 64,
99
- serve: 49,
100
- spike: 92,
101
- defense: 33,
102
- stamina: 77
103
- },
104
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
105
- traits: []
106
- }),
107
- new Player({
108
- id: '9b254ae4-ed58-4779-a5ce-7b61b1f10042',
109
- jerseyNumber: 19,
110
- name: { first: 'Inna', last: 'Mc Elory' }, country,
111
- stats: {
112
- setting: 42,
113
- reception: 75,
114
- pass: 75,
115
- backAttack: 76,
116
- jump: 36,
117
- block: 46,
118
- awareness: 78,
119
- serve: 94,
120
- spike: 58,
121
- defense: 35,
122
- stamina: 85
123
- },
124
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
125
- traits: []
126
- }),
127
- new Player({
128
- id: '575df8e7-260e-4fb3-8384-106136608745',
129
- jerseyNumber: 19,
130
- name: { first: 'Fransisco', last: 'Bernardon' },
131
- country,
132
- stats: {
133
- setting: 45,
134
- reception: 87,
135
- pass: 87,
136
- backAttack: 96,
137
- jump: 67,
138
- block: 86,
139
- awareness: 38,
140
- serve: 51,
141
- spike: 84,
142
- defense: 75,
143
- stamina: 53
144
- },
145
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
146
- traits: []
147
- })
148
- ]
149
-
150
- export const noLiberoRoster: Player[] = [
151
- new Player({
152
- id: '7b2a8d9d-88fa-4446-8248-24ecf850ee2d',
153
- jerseyNumber: 19,
154
- name: { first: 'Scotti', last: 'Emmitt' }, country,
155
- stats: {
156
- setting: 45,
157
- pass: 57,
158
- reception: 57,
159
- backAttack: 30,
160
- jump: 66,
161
- block: 35,
162
- awareness: 37,
163
- serve: 53,
164
- spike: 55,
165
- defense: 83,
166
- stamina: 67
167
- },
168
- roles: [Role.MIDDLE_BLOCKER],
169
- traits: []
170
- }),
171
- new Player({
172
- id: 'f075311b-6155-4071-91e4-c41bfd3fca22',
173
- jerseyNumber: 19,
174
- name: { first: 'Alfi', last: 'Eaddy' }, country,
175
- stats: {
176
- setting: 77,
177
- pass: 95,
178
- reception: 95,
179
- backAttack: 57,
180
- jump: 92,
181
- block: 58,
182
- awareness: 55,
183
- serve: 51,
184
- spike: 61,
185
- defense: 37,
186
- stamina: 86
187
- },
188
- roles: [Role.SETTER, Role.MIDDLE_BLOCKER],
189
- traits: []
190
- }),
191
- new Player({
192
- id: '2b22931d-5cf5-4e3c-9fec-aa6d0910a911',
193
- jerseyNumber: 19,
194
- name: { first: 'Ofelia', last: 'Moseby' }, country,
195
- stats: {
196
- setting: 97,
197
- reception: 91,
198
- pass: 91,
199
- backAttack: 48,
200
- jump: 73,
201
- block: 44,
202
- awareness: 85,
203
- serve: 62,
204
- spike: 99,
205
- defense: 63,
206
- stamina: 51
207
- },
208
- roles: [Role.SETTER, Role.OPPOSITE_HITTER],
209
- traits: []
210
- }),
211
- new Player({
212
- id: '7612d231-372d-41f4-9658-0ed6c11296ba',
213
- jerseyNumber: 19,
214
- name: { first: 'Arel', last: 'Marquis' }, country,
215
- stats: {
216
- setting: 30,
217
- reception: 45,
218
- pass: 45,
219
- backAttack: 38,
220
- jump: 92,
221
- block: 34,
222
- awareness: 64,
223
- serve: 49,
224
- spike: 92,
225
- defense: 33,
226
- stamina: 77
227
- },
228
- roles: [Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER],
229
- traits: []
230
- }),
231
- new Player({
232
- id: '9b254ae4-ed58-4779-a5ce-7b61b1f10042',
233
- jerseyNumber: 19,
234
- name: { first: 'Inna', last: 'Mc Elory' }, country,
235
- stats: {
236
- setting: 42,
237
- reception: 75,
238
- pass: 75,
239
- backAttack: 76,
240
- jump: 36,
241
- block: 46,
242
- awareness: 78,
243
- serve: 94,
244
- spike: 58,
245
- defense: 35,
246
- stamina: 85
247
- },
248
- roles: [Role.MIDDLE_BLOCKER, Role.OUTSIDE_HITTER],
249
- traits: []
250
- }),
251
- new Player({
252
- id: '575df8e7-260e-4fb3-8384-106136608745',
253
- jerseyNumber: 19,
254
- name: { first: 'Fransisco', last: 'Bernardon' },
255
- country,
256
- stats: {
257
- setting: 45,
258
- reception: 87,
259
- pass: 87,
260
- backAttack: 96,
261
- jump: 67,
262
- block: 86,
263
- awareness: 38,
264
- serve: 51,
265
- spike: 84,
266
- defense: 75,
267
- stamina: 53
268
- },
269
- roles: [Role.SETTER, Role.OPPOSITE_HITTER, Role.OUTSIDE_HITTER, Role.MIDDLE_BLOCKER],
270
- traits: []
271
- })
272
- ]
273
-
274
- export const team: Team = new Team({
275
- id: '426b5b9b-5be7-4963-92eb-71b7a3b29ffd',
276
- coach: coaches[0],
277
- name: 'Yodo',
278
- shortName: 'YOD',
279
- country,
280
- roster
281
- })
282
-
283
- export const noLiberoTeam: Team = new Team({
284
- id: '426b5b9b-5be7-4963-92eb-71b7a3b29ffd',
285
- coach: coaches[0],
286
- roster: noLiberoRoster,
287
- name: 'Rhynoodle',
288
- shortName: 'RHY',
289
- country
290
- })
@@ -1 +0,0 @@
1
- export * from './team'
@@ -1,30 +0,0 @@
1
- import { describe, expect, test } from '@jest/globals'
2
- import { team as t } from './__stubs__'
3
- import { libero, player } from '../player/__stubs__'
4
- import { Team } from './team'
5
- import { coaches } from '../coach/__stubs__'
6
-
7
- describe('Team Test Module', () => {
8
- let team: Team
9
-
10
- beforeEach(() => {
11
- team = t
12
- })
13
-
14
- test('Should instantiate object properly', () => {
15
- expect(team.id).toBe('426b5b9b-5be7-4963-92eb-71b7a3b29ffd')
16
- expect(team.name).toEqual('Yodo')
17
- expect(team.shortName).toEqual('YOD')
18
- expect(team.country!.name).toEqual('Argentina')
19
- expect(team.roster.length).toEqual(7)
20
- expect(team.coach).toEqual(coaches[0])
21
- })
22
- // isPlayerInRoster Tests
23
- test('Should return true when player is in roster', () => {
24
- team.roster.push(player)
25
- expect(team.isPlayerInRoster(player)).toBe(true)
26
- })
27
- test('Should return false when player is not in roster', () => {
28
- expect(team.isPlayerInRoster(libero)).toBe(false)
29
- })
30
- })
@@ -1,45 +0,0 @@
1
- import { Coach } from '../coach'
2
- import { validateUUID } from '../utils'
3
- import { Player } from '../player'
4
- import { Country } from '../country'
5
- import { League } from '../league'
6
-
7
- export interface TeamOpts {
8
- readonly id: string
9
- readonly name: string
10
- readonly shortName: string
11
- readonly roster: Player[]
12
- readonly country?: Country
13
- readonly league?: League
14
- readonly coach?: Coach
15
- }
16
-
17
- export class Team {
18
- readonly id: string
19
- readonly roster: Player[]
20
- readonly name: string
21
- readonly shortName: string
22
- readonly coach?: Coach
23
- readonly league?: League
24
- readonly country?: Country
25
-
26
- constructor ({ id, name, shortName, country, roster, coach, league }: TeamOpts) {
27
- validateUUID(id)
28
-
29
- this.id = id
30
- this.roster = roster
31
- this.coach = coach
32
- this.name = name
33
- this.shortName = shortName
34
- this.country = country
35
- this.league = league
36
- }
37
-
38
- public isPlayerInRoster (player: Player): boolean {
39
- return this.roster.some(p => p.id === player.id)
40
- }
41
-
42
- toString (): string {
43
- return `${this.name} [${this.shortName}] (${this.country?.name})`
44
- }
45
- }
@@ -1,10 +0,0 @@
1
- import { getRandomEnumValue } from './index'
2
- import { describe, expect, test } from '@jest/globals'
3
-
4
- describe('EnumUtils Test Module', () => {
5
- enum TestEnum {singleValue = 0}
6
-
7
- test('Should get random value from enum', () => {
8
- expect(getRandomEnumValue(TestEnum)).toBe(TestEnum.singleValue)
9
- })
10
- })
@@ -1,6 +0,0 @@
1
- export function getRandomEnumValue (enumeration: any): any {
2
- const values = Object.keys(enumeration).filter(k => isNaN(Number(k)))
3
- const enumKey = values[Math.floor(Math.random() * values.length)]
4
-
5
- return enumeration[enumKey]
6
- }
@@ -1,4 +0,0 @@
1
- export * from './enum-utils'
2
- export * from './string-utils'
3
- export * from './object-utils'
4
- export * from './rng-utils'
@@ -1 +0,0 @@
1
- export const getKeys = Object.keys as <T extends object>(obj: T) => Array<keyof T>
@@ -1,32 +0,0 @@
1
- import { generateModifier, randomNumber, shuffle } from './index'
2
- import { describe, expect, test } from '@jest/globals'
3
-
4
- describe('RNGUtils Test Module', () => {
5
- afterEach(() => { jest.spyOn(global.Math, 'random').mockRestore() })
6
-
7
- // randomNumber Tests
8
- test('Should get random value from provided range', () => {
9
- const n = randomNumber(99, 100)
10
-
11
- expect(n).toBeGreaterThanOrEqual(99)
12
- expect(n).toBeLessThanOrEqual(100)
13
- })
14
- // generateModifier Tests
15
- test('Should get 0.9 when RNG is within range', () => {
16
- jest.spyOn(global.Math, 'random').mockReturnValue(0.1)
17
- expect(generateModifier()).toBe(0.9)
18
- })
19
- test('Should get 1 when RNG is within range', () => {
20
- jest.spyOn(global.Math, 'random').mockReturnValue(0.5)
21
- expect(generateModifier()).toBe(1)
22
- })
23
- test('Should get 1.1 when RNG is within range', () => {
24
- jest.spyOn(global.Math, 'random').mockReturnValue(0.99)
25
- expect(generateModifier()).toBe(1.1)
26
- })
27
- // shuffle Tests
28
- test('Should shuffle array properly', () => {
29
- jest.spyOn(global.Math, 'random').mockReturnValue(0.1)
30
- expect(JSON.stringify(shuffle([1, 2, 3]))).toBe(JSON.stringify([2, 3, 1]))
31
- })
32
- })
@@ -1,41 +0,0 @@
1
- export function randomNumber (min: number, max: number): number {
2
- return Math.random() * (max - min) + min
3
- }
4
-
5
- export function generateModifier (): number {
6
- const n: number = Math.random()
7
-
8
- switch (true) {
9
- case (n >= 0.95):
10
- return 1.1
11
- case (n < 0.15):
12
- return 0.9
13
- case (n < 0.95):
14
- default:
15
- return 1
16
- }
17
- }
18
-
19
- /**
20
- * Fisher-Yates shuffle algorithm
21
- * Shuffles array IN-PLACE
22
- * @param {any[]} array
23
- */
24
- export function shuffle<Type> (array: Type[]): Type[] {
25
- let m = array.length
26
- let t
27
- let i
28
-
29
- // While there remain elements to shuffle…
30
- while (m > 0) {
31
- // Pick a remaining element…
32
- i = Math.floor(Math.random() * m--)
33
-
34
- // And swap it with the current element.
35
- t = array[m]
36
- array[m] = array[i]
37
- array[i] = t
38
- }
39
-
40
- return array
41
- }
@@ -1,28 +0,0 @@
1
- import { formatNumber, validateUUID } from './index'
2
- import { describe, expect, test } from '@jest/globals'
3
-
4
- describe('StringUtils Test Module', () => {
5
- // formatNumber Tests
6
- test('Single digit number should by prefixed by 0', () => {
7
- expect(formatNumber(1)).toBe('01')
8
- expect(formatNumber(0)).toBe('00')
9
- })
10
- test('A number of two or more digits should be returned as is', () => {
11
- expect(formatNumber(11)).toBe('11')
12
- expect(formatNumber(123)).toBe('123')
13
- })
14
- test('A negative number should throw an exception', () => {
15
- function formatNegative (): void { formatNumber(-2) }
16
-
17
- expect(formatNegative).toThrow(/^UNEXPECTED_NEGATIVE_NUMBER$/)
18
- })
19
- // isValidUUID Tests
20
- test('Should return true when receiving a valid UUID', () => {
21
- expect(validateUUID('e46cb767-3c7c-492a-924a-ce3a28813dbc')).toBe(true)
22
- })
23
- test('Should throw Error when receiving an invalid UUID', () => {
24
- function validate (): void { validateUUID('z46cb767-3g7c-492a-924a-ce3z28813dbc') }
25
-
26
- expect(validate).toThrow(/^INVALID_UUID$/)
27
- })
28
- })
@@ -1,13 +0,0 @@
1
- export function formatNumber (n: number): string {
2
- if (n < 0) throw new Error('UNEXPECTED_NEGATIVE_NUMBER')
3
-
4
- return n < 10 ? `0${n}` : `${n}`
5
- }
6
-
7
- export function validateUUID (uuid: string): boolean {
8
- const regex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/
9
-
10
- if (!regex.test(uuid)) throw new Error('INVALID_UUID')
11
-
12
- return true
13
- }
@@ -1,2 +0,0 @@
1
- import { Player, Role } from '../player'
2
-