volleyballsimtypes 0.0.98 → 0.0.100

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 (63) hide show
  1. package/dist/cjs/src/api/events.d.ts +0 -2
  2. package/dist/cjs/src/data/init-models.js +0 -13
  3. package/dist/cjs/src/data/models/block.d.ts +1 -28
  4. package/dist/cjs/src/data/models/block.js +0 -8
  5. package/dist/cjs/src/data/models/index.d.ts +0 -1
  6. package/dist/cjs/src/data/models/index.js +0 -1
  7. package/dist/cjs/src/data/models/reception.d.ts +1 -28
  8. package/dist/cjs/src/data/models/reception.js +0 -8
  9. package/dist/cjs/src/data/models/serve.d.ts +1 -28
  10. package/dist/cjs/src/data/models/serve.js +0 -8
  11. package/dist/cjs/src/data/models/set.d.ts +1 -28
  12. package/dist/cjs/src/data/models/set.js +0 -8
  13. package/dist/cjs/src/data/models/spike.d.ts +1 -28
  14. package/dist/cjs/src/data/models/spike.js +0 -8
  15. package/dist/cjs/src/data/models/trait.d.ts +1 -23
  16. package/dist/cjs/src/data/models/trait.js +0 -20
  17. package/dist/cjs/src/data/transformers/block.js +4 -14
  18. package/dist/cjs/src/data/transformers/reception.js +4 -14
  19. package/dist/cjs/src/data/transformers/serve.js +4 -14
  20. package/dist/cjs/src/data/transformers/set.js +5 -15
  21. package/dist/cjs/src/data/transformers/spike.js +4 -14
  22. package/dist/cjs/src/data/transformers/trait.js +1 -6
  23. package/dist/cjs/src/service/match/__stubs__/index.js +0 -3
  24. package/dist/cjs/src/service/match/match-set.d.ts +0 -11
  25. package/dist/cjs/src/service/match/match-set.js +1 -30
  26. package/dist/cjs/src/service/match/match-set.test.js +0 -50
  27. package/dist/cjs/src/service/match/rally.d.ts +1 -15
  28. package/dist/cjs/src/service/match/rally.js +3 -31
  29. package/dist/cjs/src/service/match/rally.test.js +3 -50
  30. package/dist/esm/src/api/events.d.ts +0 -2
  31. package/dist/esm/src/data/init-models.js +1 -14
  32. package/dist/esm/src/data/models/block.d.ts +1 -28
  33. package/dist/esm/src/data/models/block.js +0 -8
  34. package/dist/esm/src/data/models/index.d.ts +0 -1
  35. package/dist/esm/src/data/models/index.js +0 -1
  36. package/dist/esm/src/data/models/reception.d.ts +1 -28
  37. package/dist/esm/src/data/models/reception.js +0 -8
  38. package/dist/esm/src/data/models/serve.d.ts +1 -28
  39. package/dist/esm/src/data/models/serve.js +0 -8
  40. package/dist/esm/src/data/models/set.d.ts +1 -28
  41. package/dist/esm/src/data/models/set.js +0 -8
  42. package/dist/esm/src/data/models/spike.d.ts +1 -28
  43. package/dist/esm/src/data/models/spike.js +0 -8
  44. package/dist/esm/src/data/models/trait.d.ts +1 -23
  45. package/dist/esm/src/data/models/trait.js +0 -20
  46. package/dist/esm/src/data/transformers/block.js +5 -15
  47. package/dist/esm/src/data/transformers/reception.js +5 -15
  48. package/dist/esm/src/data/transformers/serve.js +5 -15
  49. package/dist/esm/src/data/transformers/set.js +6 -16
  50. package/dist/esm/src/data/transformers/spike.js +5 -15
  51. package/dist/esm/src/data/transformers/trait.js +1 -6
  52. package/dist/esm/src/service/match/__stubs__/index.js +0 -3
  53. package/dist/esm/src/service/match/match-set.d.ts +0 -11
  54. package/dist/esm/src/service/match/match-set.js +0 -29
  55. package/dist/esm/src/service/match/match-set.test.js +1 -51
  56. package/dist/esm/src/service/match/rally.d.ts +1 -15
  57. package/dist/esm/src/service/match/rally.js +1 -29
  58. package/dist/esm/src/service/match/rally.test.js +2 -49
  59. package/package.json +1 -1
  60. package/dist/cjs/src/data/models/event-trait.d.ts +0 -50
  61. package/dist/cjs/src/data/models/event-trait.js +0 -77
  62. package/dist/esm/src/data/models/event-trait.d.ts +0 -50
  63. package/dist/esm/src/data/models/event-trait.js +0 -73
@@ -42,23 +42,15 @@ function transformFromServeType(type) {
42
42
  return service_1.ServeTypeEnum[type];
43
43
  }
44
44
  function transformToAttributes(event, rallyId) {
45
- const eventTraits = event.activeTraits.map(trait => ({
46
- event_id: event.id,
47
- serve_id: event.id,
48
- trait_id: trait.id
49
- }));
50
45
  return {
51
46
  event_id: event.id,
52
47
  player_id: event.player.id,
53
48
  rally_id: rallyId,
54
49
  order: event.order,
55
- modifier: event.modifier,
56
- score: event.score,
57
50
  target: (0, _1.transformFromCourtTarget)(event.target),
58
51
  failure: transformToServeFailure(event.failure),
59
52
  type: transformToServeType(event.type),
60
53
  event_type: (0, _1.transformFromEventType)(event.eventType),
61
- EventTraits: eventTraits
62
54
  };
63
55
  }
64
56
  exports.transformFromServe = transformToAttributes;
@@ -70,10 +62,10 @@ function transformToObject(serve) {
70
62
  type: transformFromServeType(serve.type),
71
63
  player: (0, _1.transformToPlayer)(serve.player),
72
64
  target: (0, _1.transformToCourtTarget)(serve.target),
73
- modifier: serve.modifier,
74
65
  order: serve.order,
75
- score: serve.score,
76
- activeTraits: serve.Traits.map(_1.transformToTrait)
66
+ modifier: 1,
67
+ score: 1,
68
+ activeTraits: []
77
69
  });
78
70
  }
79
71
  exports.transformToServe = transformToObject;
@@ -85,9 +77,7 @@ function transformToAPIObject(event) {
85
77
  type: transformFromServeType(event.type),
86
78
  playerId: event.player_id,
87
79
  target: (0, _1.transformToCourtTarget)(event.target),
88
- modifier: event.modifier,
89
- order: event.order,
90
- score: event.score
80
+ order: event.order
91
81
  };
92
82
  }
93
83
  exports.transformToAPIServe = transformToAPIObject;
@@ -40,23 +40,15 @@ function transformFromSetType(type) {
40
40
  return service_1.SetTypeEnum[type];
41
41
  }
42
42
  function transformToAttributes(event, rallyId) {
43
- const eventTraits = event.activeTraits.map(trait => ({
44
- event_id: event.id,
45
- set_id: event.id,
46
- trait_id: trait.id
47
- }));
48
43
  return {
49
44
  event_id: event.id,
50
45
  player_id: event.player.id,
51
46
  rally_id: rallyId,
52
47
  order: event.order,
53
- modifier: event.modifier,
54
- score: event.score,
55
48
  target: (0, _1.transformFromCourtTarget)(event.target),
56
49
  failure: transformToSetFailure(event.failure),
57
50
  type: transformToSetType(event.type),
58
- event_type: (0, _1.transformFromEventType)(event.eventType),
59
- EventTraits: eventTraits
51
+ event_type: (0, _1.transformFromEventType)(event.eventType)
60
52
  };
61
53
  }
62
54
  exports.transformFromSet = transformToAttributes;
@@ -68,10 +60,10 @@ function transformToObject(set) {
68
60
  type: transformFromSetType(set.type),
69
61
  player: (0, _1.transformToPlayer)(set.player),
70
62
  target: (0, _1.transformToCourtTarget)(set.target),
71
- modifier: set.modifier,
72
63
  order: set.order,
73
- score: set.score,
74
- activeTraits: set.Traits.map(_1.transformToTrait)
64
+ modifier: 1,
65
+ score: 1,
66
+ activeTraits: []
75
67
  });
76
68
  }
77
69
  exports.transformToSet = transformToObject;
@@ -83,9 +75,7 @@ function transformToAPIObject(event) {
83
75
  type: transformFromSetType(event.type),
84
76
  playerId: event.player_id,
85
77
  target: (0, _1.transformToCourtTarget)(event.target),
86
- modifier: event.modifier,
87
- order: event.order,
88
- score: event.score
78
+ order: event.order
89
79
  };
90
80
  }
91
81
  exports.transformToAPISet = transformToAPIObject;
@@ -44,23 +44,15 @@ function transformFromSpikeType(type) {
44
44
  return service_1.SpikeTypeEnum[type];
45
45
  }
46
46
  function transformToAttributes(event, rallyId) {
47
- const eventTraits = event.activeTraits.map(trait => ({
48
- event_id: event.id,
49
- spike_id: event.id,
50
- trait_id: trait.id
51
- }));
52
47
  return {
53
48
  event_id: event.id,
54
49
  player_id: event.player.id,
55
50
  rally_id: rallyId,
56
51
  order: event.order,
57
- modifier: event.modifier,
58
- score: event.score,
59
52
  target: (0, _1.transformFromCourtTarget)(event.target),
60
53
  failure: transformToSpikeFailure(event.failure),
61
54
  type: transformToSpikeType(event.type),
62
- event_type: (0, _1.transformFromEventType)(event.eventType),
63
- EventTraits: eventTraits
55
+ event_type: (0, _1.transformFromEventType)(event.eventType)
64
56
  };
65
57
  }
66
58
  exports.transformFromSpike = transformToAttributes;
@@ -72,10 +64,10 @@ function transformToObject(spike) {
72
64
  type: transformFromSpikeType(spike.type),
73
65
  player: (0, _1.transformToPlayer)(spike.player),
74
66
  target: (0, _1.transformToCourtTarget)(spike.target),
75
- modifier: spike.modifier,
76
67
  order: spike.order,
77
- score: spike.score,
78
- activeTraits: spike.Traits.map(_1.transformToTrait)
68
+ modifier: 1,
69
+ score: 1,
70
+ activeTraits: []
79
71
  });
80
72
  }
81
73
  exports.transformToSpike = transformToObject;
@@ -87,9 +79,7 @@ function transformToAPIObject(event) {
87
79
  type: transformFromSpikeType(event.type),
88
80
  playerId: event.player_id,
89
81
  target: (0, _1.transformToCourtTarget)(event.target),
90
- modifier: event.modifier,
91
82
  order: event.order,
92
- score: event.score
93
83
  };
94
84
  }
95
85
  exports.transformToAPISpike = transformToAPIObject;
@@ -6,12 +6,7 @@ const api_1 = require("../../api");
6
6
  function transformToAttributes(trait) {
7
7
  return {
8
8
  trait_id: trait.id,
9
- name: trait.name,
10
- modifier: trait.modifier,
11
- chance: trait.chance,
12
- weight: trait.weight,
13
- threshold: trait.statThreshold,
14
- general_stat: trait.stat
9
+ name: trait.name
15
10
  };
16
11
  }
17
12
  exports.transformFromTrait = transformToAttributes;
@@ -41,11 +41,9 @@ exports.finishedSet = (() => {
41
41
  homeLibero: __stubs__2.libero,
42
42
  awayLibero: __stubs__2.libero
43
43
  });
44
- set.nextState();
45
44
  for (let i = 0; i < 25; i++) {
46
45
  set.increaseScore(match_team_1.MatchTeam.HOME);
47
46
  }
48
- set.nextState();
49
47
  return set;
50
48
  })();
51
49
  exports.inProgressSet = (() => {
@@ -60,7 +58,6 @@ exports.inProgressSet = (() => {
60
58
  homeLibero: __stubs__2.libero,
61
59
  awayLibero: __stubs__2.libero
62
60
  });
63
- set.nextState();
64
61
  for (let i = 0; i < 20; i++) {
65
62
  set.increaseScore(match_team_1.MatchTeam.AWAY);
66
63
  }
@@ -1,14 +1,6 @@
1
1
  import { Rally } from './rally';
2
2
  import { MatchTeam } from './match-team';
3
3
  import { Player } from '../player';
4
- export declare enum MatchSetState {
5
- NEW = 0,
6
- IN_PLAY = 1,
7
- FINISHED = 2
8
- }
9
- export declare namespace MatchSetState {
10
- function nextState(state: number): MatchSetState;
11
- }
12
4
  interface MatchSetOpts {
13
5
  readonly id: string;
14
6
  readonly order: number;
@@ -50,9 +42,7 @@ export declare class MatchSet {
50
42
  private readonly scoreThreshold;
51
43
  private homeScore;
52
44
  private awayScore;
53
- private _state;
54
45
  constructor({ id, order, isTieBreak, homeLibero, awayLibero, stats, rallies, homeScore, awayScore }: MatchSetOpts);
55
- get state(): MatchSetState;
56
46
  getHomeScore(): number;
57
47
  getAwayScore(): number;
58
48
  increaseScore(team: MatchTeam): void;
@@ -62,7 +52,6 @@ export declare class MatchSet {
62
52
  * @returns boolean
63
53
  */
64
54
  isOver(): boolean;
65
- nextState(): void;
66
55
  /**
67
56
  * Get the team that won the Set. Return undefined if set is not over.
68
57
  * @returns CourtTeam
@@ -1,25 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MatchSet = exports.MatchSetState = void 0;
3
+ exports.MatchSet = void 0;
4
4
  const utils_1 = require("../utils");
5
5
  const match_team_1 = require("./match-team");
6
- var MatchSetState;
7
- (function (MatchSetState) {
8
- MatchSetState[MatchSetState["NEW"] = 0] = "NEW";
9
- MatchSetState[MatchSetState["IN_PLAY"] = 1] = "IN_PLAY";
10
- MatchSetState[MatchSetState["FINISHED"] = 2] = "FINISHED";
11
- })(MatchSetState = exports.MatchSetState || (exports.MatchSetState = {}));
12
- // eslint-disable-next-line @typescript-eslint/no-namespace
13
- (function (MatchSetState) {
14
- function nextState(state) {
15
- if (state < 0 || state > 2)
16
- throw new Error('STATE_INDEX_OUT_OF_BOUNDS');
17
- if (state === 2)
18
- throw new Error(`CANT_GET_STATE_AFTER: ${MatchSetState[state]}`);
19
- return state + 1;
20
- }
21
- MatchSetState.nextState = nextState;
22
- })(MatchSetState = exports.MatchSetState || (exports.MatchSetState = {}));
23
6
  var ScoreThreshold;
24
7
  (function (ScoreThreshold) {
25
8
  ScoreThreshold[ScoreThreshold["SET"] = 25] = "SET";
@@ -38,10 +21,6 @@ class MatchSet {
38
21
  this.rallies = rallies;
39
22
  this.isTieBreak = isTieBreak;
40
23
  this.scoreThreshold = isTieBreak ? ScoreThreshold.TIE_BREAK : ScoreThreshold.SET;
41
- this._state = MatchSetState.NEW;
42
- }
43
- get state() {
44
- return this._state;
45
24
  }
46
25
  getHomeScore() {
47
26
  return this.homeScore;
@@ -50,8 +29,6 @@ class MatchSet {
50
29
  return this.awayScore;
51
30
  }
52
31
  increaseScore(team) {
53
- if (this._state !== MatchSetState.IN_PLAY || this.isOver())
54
- throw new Error('CANNOT_INCREASE_SCORE_OF_SET');
55
32
  if (team === match_team_1.MatchTeam.HOME)
56
33
  this.homeScore++;
57
34
  else if (team === match_team_1.MatchTeam.AWAY)
@@ -70,12 +47,6 @@ class MatchSet {
70
47
  return Math.abs(this.homeScore - this.awayScore) > 1 &&
71
48
  (this.homeScore >= this.scoreThreshold || this.awayScore >= this.scoreThreshold);
72
49
  }
73
- nextState() {
74
- if (this._state === 1 && !this.isOver()) {
75
- throw new Error('CANNOT_ADVANCE_SET_STATE');
76
- }
77
- this._state = MatchSetState.nextState(this._state);
78
- }
79
50
  /**
80
51
  * Get the team that won the Set. Return undefined if set is not over.
81
52
  * @returns CourtTeam
@@ -35,25 +35,21 @@ const __stubs__2 = require("../player/__stubs__");
35
35
  (0, globals_1.test)('Should instantiate object properly', () => {
36
36
  (0, globals_1.expect)(set.id).toBe('4a8d1149-0157-461c-afb4-8a2d9776da5a');
37
37
  (0, globals_1.expect)(set.rallies.length).toBe(0);
38
- (0, globals_1.expect)(set.state).toBe(0);
39
38
  (0, globals_1.expect)(set.getHomeScore()).toBe(0);
40
39
  (0, globals_1.expect)(set.getAwayScore()).toBe(0);
41
40
  });
42
41
  // increaseScore Tests
43
42
  (0, globals_1.test)('Should increase score of home team', () => {
44
- set.nextState();
45
43
  (0, globals_1.expect)(set.getHomeScore).toBe(0);
46
44
  set.increaseScore(match_team_1.MatchTeam.HOME);
47
45
  (0, globals_1.expect)(set.getHomeScore).toBe(1);
48
46
  });
49
47
  (0, globals_1.test)('Should increase score of away team', () => {
50
- set.nextState();
51
48
  (0, globals_1.expect)(set.getAwayScore).toBe(0);
52
49
  set.increaseScore(match_team_1.MatchTeam.AWAY);
53
50
  (0, globals_1.expect)(set.getAwayScore).toBe(1);
54
51
  });
55
52
  (0, globals_1.test)('Should throw Error when trying to increase score of finished set', () => {
56
- set.nextState();
57
53
  for (let i = 0; i < 25; i++)
58
54
  set.increaseScore(match_team_1.MatchTeam.HOME);
59
55
  function fin1() { set.increaseScore(match_team_1.MatchTeam.HOME); }
@@ -62,7 +58,6 @@ const __stubs__2 = require("../player/__stubs__");
62
58
  (0, globals_1.expect)(fin2).toThrow(/^CANNOT_INCREASE_SCORE_OF_SET$/);
63
59
  });
64
60
  (0, globals_1.test)('Should throw Error when providing invalid team', () => {
65
- set.nextState();
66
61
  // @ts-expect-error
67
62
  function fin() { set.increaseScore(match_team_1.MatchTeam.OTHER); }
68
63
  (0, globals_1.expect)(fin).toThrow(/^UNKNOWN_TEAM$/);
@@ -75,14 +70,12 @@ const __stubs__2 = require("../player/__stubs__");
75
70
  });
76
71
  // isOver Tests
77
72
  (0, globals_1.test)('Should return true for team reaching point threshold', () => {
78
- set.nextState();
79
73
  (0, globals_1.expect)(set.isOver()).toBe(false);
80
74
  for (let i = 0; i < 25; i++)
81
75
  set.increaseScore(match_team_1.MatchTeam.HOME);
82
76
  (0, globals_1.expect)(set.isOver()).toBe(true);
83
77
  });
84
78
  (0, globals_1.test)('Should return true for both teams reaching point threshold and point difference greater than 1', () => {
85
- set.nextState();
86
79
  for (let i = 0; i < 25; i++) {
87
80
  set.increaseScore(match_team_1.MatchTeam.HOME);
88
81
  set.increaseScore(match_team_1.MatchTeam.AWAY);
@@ -93,60 +86,17 @@ const __stubs__2 = require("../player/__stubs__");
93
86
  set.increaseScore(match_team_1.MatchTeam.HOME);
94
87
  (0, globals_1.expect)(set.isOver()).toBe(true);
95
88
  });
96
- // nextState Tests
97
- (0, globals_1.test)('Should advance to in play', () => {
98
- (0, globals_1.expect)(set.state).toBe(0);
99
- set.nextState();
100
- (0, globals_1.expect)(set.state).toBe(1);
101
- });
102
- (0, globals_1.test)('Should throw Error if in play and set not over', () => {
103
- set.nextState();
104
- function fin() { set.nextState(); }
105
- (0, globals_1.expect)(fin).toThrow(/^CANNOT_ADVANCE_SET_STATE$/);
106
- });
107
- (0, globals_1.test)('Should advance to FINISHED if set is over', () => {
108
- set.nextState();
109
- for (let i = 0; i < 25; i++)
110
- set.increaseScore(match_team_1.MatchTeam.HOME);
111
- set.nextState();
112
- (0, globals_1.expect)(set.state).toBe(2);
113
- });
114
- (0, globals_1.test)('Should throw Error when trying to transition from FINISHED state', () => {
115
- set.nextState();
116
- for (let i = 0; i < 25; i++)
117
- set.increaseScore(match_team_1.MatchTeam.HOME);
118
- set.nextState();
119
- function fin() { set.nextState(); }
120
- (0, globals_1.expect)(fin).toThrow(/^CANT_GET_STATE_AFTER: FINISHED$/);
121
- });
122
89
  // getWinner Tests
123
90
  (0, globals_1.test)('Should throw Error when getting winner of unfinished set', () => {
124
91
  function fin() { set.getWinner(); }
125
92
  (0, globals_1.expect)(fin).toThrow(/^UNFINISHED_SET$/);
126
93
  });
127
94
  (0, globals_1.test)('Should get correct set winner', () => {
128
- set.nextState();
129
95
  for (let i = 0; i < 25; i++)
130
96
  set.increaseScore(match_team_1.MatchTeam.HOME);
131
97
  (0, globals_1.expect)(set.getWinner()).toBe(match_team_1.MatchTeam.HOME);
132
- tieBreakSet.nextState();
133
98
  for (let i = 0; i < 15; i++)
134
99
  tieBreakSet.increaseScore(match_team_1.MatchTeam.AWAY);
135
100
  (0, globals_1.expect)(tieBreakSet.getWinner()).toBe(match_team_1.MatchTeam.AWAY);
136
101
  });
137
- // MatchSetState Tests
138
- (0, globals_1.test)('Should get next state', () => {
139
- (0, globals_1.expect)(match_set_1.MatchSetState.nextState(0)).toBe(1);
140
- (0, globals_1.expect)(match_set_1.MatchSetState.nextState(1)).toBe(2);
141
- });
142
- (0, globals_1.test)('Should throw Error for state outside range', () => {
143
- function fn1() { match_set_1.MatchSetState.nextState(-1); }
144
- function fn2() { match_set_1.MatchSetState.nextState(3); }
145
- (0, globals_1.expect)(fn1).toThrow(/^STATE_INDEX_OUT_OF_BOUNDS$/);
146
- (0, globals_1.expect)(fn2).toThrow(/^STATE_INDEX_OUT_OF_BOUNDS$/);
147
- });
148
- (0, globals_1.test)('Should throw Error for last state', () => {
149
- function fn() { match_set_1.MatchSetState.nextState(2); }
150
- (0, globals_1.expect)(fn).toThrow(/^CANT_GET_STATE_AFTER: FINISHED$/);
151
- });
152
102
  });
@@ -1,7 +1,6 @@
1
1
  import { Team } from '../team';
2
2
  import { CourtPosition } from './court-position';
3
- import { RallyEvent } from '../event/rally-event';
4
- import { Score } from '../event/score';
3
+ import { RallyEvent, Score } from '../event';
5
4
  interface RallyOpts {
6
5
  readonly id: string;
7
6
  readonly order: number;
@@ -14,15 +13,6 @@ export interface PlayerPosition {
14
13
  position: CourtPosition;
15
14
  playerId: string;
16
15
  }
17
- export declare enum RallyState {
18
- NEW = 0,
19
- MANAGEMENT = 1,
20
- IN_PLAY = 2,
21
- FINISHED = 3
22
- }
23
- export declare namespace RallyState {
24
- function nextState(state: number): RallyState;
25
- }
26
16
  export declare class Rally {
27
17
  readonly id: string;
28
18
  readonly servingTeam: Team;
@@ -30,12 +20,8 @@ export declare class Rally {
30
20
  readonly homePlayerPosition: PlayerPosition[];
31
21
  readonly awayPlayerPosition: PlayerPosition[];
32
22
  readonly order: number;
33
- private _state;
34
23
  constructor({ id, order, servingTeam, homePlayerPosition, awayPlayerPosition, events }: RallyOpts);
35
- get state(): RallyState;
36
24
  get score(): Score | undefined;
37
- isOver(): boolean;
38
25
  addEvent(event: RallyEvent): void;
39
- nextState(): void;
40
26
  }
41
27
  export {};
@@ -1,26 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Rally = exports.RallyState = void 0;
3
+ exports.Rally = void 0;
4
4
  const utils_1 = require("../utils");
5
- const rally_event_1 = require("../event/rally-event");
6
- var RallyState;
7
- (function (RallyState) {
8
- RallyState[RallyState["NEW"] = 0] = "NEW";
9
- RallyState[RallyState["MANAGEMENT"] = 1] = "MANAGEMENT";
10
- RallyState[RallyState["IN_PLAY"] = 2] = "IN_PLAY";
11
- RallyState[RallyState["FINISHED"] = 3] = "FINISHED";
12
- })(RallyState = exports.RallyState || (exports.RallyState = {}));
13
- // eslint-disable-next-line @typescript-eslint/no-namespace
14
- (function (RallyState) {
15
- function nextState(state) {
16
- if (state < 0 || state > 3)
17
- throw new Error('STATE_INDEX_OUT_OF_BOUNDS');
18
- if (state === 3)
19
- throw new Error(`CANT_GET_STATE_AFTER: ${RallyState[state]}`);
20
- return state + 1;
21
- }
22
- RallyState.nextState = nextState;
23
- })(RallyState = exports.RallyState || (exports.RallyState = {}));
5
+ const event_1 = require("../event");
24
6
  class Rally {
25
7
  constructor({ id, order, servingTeam, homePlayerPosition, awayPlayerPosition, events }) {
26
8
  (0, utils_1.validateUUID)(id);
@@ -30,22 +12,12 @@ class Rally {
30
12
  this.homePlayerPosition = homePlayerPosition;
31
13
  this.awayPlayerPosition = awayPlayerPosition;
32
14
  this.events = events;
33
- this._state = RallyState.NEW;
34
- }
35
- get state() {
36
- return this._state;
37
15
  }
38
16
  get score() {
39
- return this.events.find(e => e.eventType === rally_event_1.EventTypeEnum.SCORE);
40
- }
41
- isOver() {
42
- return this._state === RallyState.FINISHED;
17
+ return this.events.find(e => e.eventType === event_1.EventTypeEnum.SCORE);
43
18
  }
44
19
  addEvent(event) {
45
20
  this.events.push(event);
46
21
  }
47
- nextState() {
48
- this._state = RallyState.nextState(this._state);
49
- }
50
22
  }
51
23
  exports.Rally = Rally;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const globals_1 = require("@jest/globals");
4
4
  const rally_1 = require("./rally");
5
5
  const __stubs__1 = require("../event/__stubs__");
6
- const rally_event_1 = require("../event/rally-event");
6
+ const event_1 = require("../event");
7
7
  const __stubs__2 = require("../team/__stubs__");
8
8
  (0, globals_1.describe)('Rally Test Module', () => {
9
9
  let rally;
@@ -21,44 +21,12 @@ const __stubs__2 = require("../team/__stubs__");
21
21
  (0, globals_1.expect)(rally.id).toBe('0ac3ba3a-d710-42dc-a1e7-7066b8df5fd9');
22
22
  (0, globals_1.expect)(rally.servingTeam.id).toBe('426b5b9b-5be7-4963-92eb-71b7a3b29ffd');
23
23
  (0, globals_1.expect)(rally.events.length).toBe(0);
24
- (0, globals_1.expect)(rally.state).toBe(0);
25
- });
26
- // nextState Tests
27
- (0, globals_1.test)('Should cycle through states correctly', () => {
28
- (0, globals_1.expect)(rally.state).toBe(0);
29
- rally.nextState();
30
- (0, globals_1.expect)(rally.state).toBe(1);
31
- rally.nextState();
32
- (0, globals_1.expect)(rally.state).toBe(2);
33
- rally.nextState();
34
- (0, globals_1.expect)(rally.state).toBe(3);
35
- });
36
- (0, globals_1.test)('Should throw Error when trying to get next state after FINISHED', () => {
37
- function state() {
38
- rally.nextState();
39
- rally.nextState();
40
- rally.nextState();
41
- rally.nextState();
42
- }
43
- (0, globals_1.expect)(state).toThrow(/^CANT_GET_STATE_AFTER: FINISHED$/);
44
24
  });
45
25
  // addEvent Tests
46
26
  (0, globals_1.test)('Should add event to event array', () => {
47
27
  (0, globals_1.expect)(rally.events.length).toBe(0);
48
28
  rally.addEvent(__stubs__1.serve);
49
- (0, globals_1.expect)(rally.events.at(-1)?.eventType).toBe(rally_event_1.EventTypeEnum.SERVE);
50
- });
51
- // isOver Tests
52
- (0, globals_1.test)('Should return false if rally state is not FINISHED', () => {
53
- (0, globals_1.expect)(rally.state).toBe(0);
54
- (0, globals_1.expect)(rally.isOver()).toBe(false);
55
- });
56
- (0, globals_1.test)('Should return true if rally state is FINISHED', () => {
57
- rally.nextState();
58
- rally.nextState();
59
- rally.nextState();
60
- (0, globals_1.expect)(rally.state).toBe(3);
61
- (0, globals_1.expect)(rally.isOver()).toBe(true);
29
+ (0, globals_1.expect)(rally.events.at(-1)?.eventType).toBe(event_1.EventTypeEnum.SERVE);
62
30
  });
63
31
  // getScore Tests
64
32
  (0, globals_1.test)('Should return undefined if events array does not contain a Score', () => {
@@ -68,21 +36,6 @@ const __stubs__2 = require("../team/__stubs__");
68
36
  (0, globals_1.test)('Should return Score if events array contains a Score', () => {
69
37
  rally.addEvent(__stubs__1.score);
70
38
  (0, globals_1.expect)(rally.score).not.toBeUndefined();
71
- (0, globals_1.expect)(rally.score?.eventType).toBe(rally_event_1.EventTypeEnum.SCORE);
72
- });
73
- // RallyState Tests
74
- (0, globals_1.test)('Should get next state', () => {
75
- (0, globals_1.expect)(rally_1.RallyState.nextState(0)).toBe(1);
76
- (0, globals_1.expect)(rally_1.RallyState.nextState(1)).toBe(2);
77
- });
78
- (0, globals_1.test)('Should throw Error for state outside range', () => {
79
- function fn1() { rally_1.RallyState.nextState(-1); }
80
- function fn2() { rally_1.RallyState.nextState(4); }
81
- (0, globals_1.expect)(fn1).toThrow(/^STATE_INDEX_OUT_OF_BOUNDS$/);
82
- (0, globals_1.expect)(fn2).toThrow(/^STATE_INDEX_OUT_OF_BOUNDS$/);
83
- });
84
- (0, globals_1.test)('Should throw Error for last state', () => {
85
- function fn() { rally_1.RallyState.nextState(3); }
86
- (0, globals_1.expect)(fn).toThrow(/^CANT_GET_STATE_AFTER: FINISHED$/);
39
+ (0, globals_1.expect)(rally.score?.eventType).toBe(event_1.EventTypeEnum.SCORE);
87
40
  });
88
41
  });
@@ -14,8 +14,6 @@ export interface APISubstitution extends APIEvent {
14
14
  }
15
15
  export interface APIInPlayEvent extends APIEvent {
16
16
  readonly target: CourtTargetEnum;
17
- readonly modifier: number;
18
- readonly score: number;
19
17
  }
20
18
  export interface APIScore extends APIEvent {
21
19
  readonly teamId: string;
@@ -1,4 +1,4 @@
1
- import { BlockModel, CoachModel, CountryModel, DraftModel, DraftPickModel, EventModel, EventTraitModel, IterationModel, LeagueModel, LiberoReplacementModel, MatchModel, MatchRatingModel, MatchSetModel, MatchSetStatsModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, PlayerTraitModel, RallyModel, RallyPositionModel, ReceptionModel, ScoreModel, SeasonMatchModel, SeasonModel, SeasonTeamsModel, ServeModel, SetModel, SpikeModel, SubstitutionModel, TeamModel, TournamentMatchModel, TournamentModel, TournamentTeamsModel, TraitModel, UserModel } from './models';
1
+ import { BlockModel, CoachModel, CountryModel, DraftModel, DraftPickModel, EventModel, IterationModel, LeagueModel, LiberoReplacementModel, MatchModel, MatchRatingModel, MatchSetModel, MatchSetStatsModel, PerformanceStatsModel, PlayerModel, PlayerTeamModel, PlayerTraitModel, RallyModel, RallyPositionModel, ReceptionModel, ScoreModel, SeasonMatchModel, SeasonModel, SeasonTeamsModel, ServeModel, SetModel, SpikeModel, SubstitutionModel, TeamModel, TournamentMatchModel, TournamentModel, TournamentTeamsModel, TraitModel, UserModel } from './models';
2
2
  export function initModels(sequelize) {
3
3
  const Block = BlockModel.initModel(sequelize);
4
4
  const Coach = CoachModel.initModel(sequelize);
@@ -6,7 +6,6 @@ export function initModels(sequelize) {
6
6
  const Draft = DraftModel.initModel(sequelize);
7
7
  const DraftPick = DraftPickModel.initModel(sequelize);
8
8
  const Event = EventModel.initModel(sequelize);
9
- const EventTrait = EventTraitModel.initModel(sequelize);
10
9
  const Iteration = IterationModel.initModel(sequelize);
11
10
  const League = LeagueModel.initModel(sequelize);
12
11
  const LiberoReplacement = LiberoReplacementModel.initModel(sequelize);
@@ -44,7 +43,6 @@ export function initModels(sequelize) {
44
43
  Block.belongsTo(Player, { as: 'Blocker_3', foreignKey: 'blocker_3' });
45
44
  Block.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
46
45
  Block.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
47
- Block.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'block_id' });
48
46
  Coach.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
49
47
  Coach.hasMany(Team, { as: 'Teams', foreignKey: 'coach_id' });
50
48
  Country.hasMany(Coach, { as: 'Coaches', foreignKey: 'country_id' });
@@ -53,12 +51,6 @@ export function initModels(sequelize) {
53
51
  Country.hasMany(Team, { as: 'Teams', foreignKey: 'country_id' });
54
52
  Event.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
55
53
  Event.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
56
- EventTrait.belongsTo(Block, { as: 'Block', foreignKey: 'block_id' });
57
- EventTrait.belongsTo(Reception, { as: 'Reception', foreignKey: 'reception_id' });
58
- EventTrait.belongsTo(Serve, { as: 'Serve', foreignKey: 'serve_id' });
59
- EventTrait.belongsTo(Set, { as: 'Set', foreignKey: 'set_id' });
60
- EventTrait.belongsTo(Spike, { as: 'Spike', foreignKey: 'spike_id' });
61
- EventTrait.belongsTo(Trait, { as: 'Trait', foreignKey: 'trait_id' });
62
54
  Iteration.hasMany(Season, { as: 'Seasons', foreignKey: 'iteration' });
63
55
  Iteration.hasOne(Tournament, { as: 'Tournament', foreignKey: 'iteration' });
64
56
  League.belongsTo(Country, { as: 'country', foreignKey: 'country_id' });
@@ -166,7 +158,6 @@ export function initModels(sequelize) {
166
158
  RallyPosition.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
167
159
  Reception.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
168
160
  Reception.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
169
- Reception.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'reception_id' });
170
161
  Score.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
171
162
  Score.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
172
163
  Score.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
@@ -187,13 +178,10 @@ export function initModels(sequelize) {
187
178
  SeasonTeams.belongsTo(Team, { as: 'team', foreignKey: 'team_id' });
188
179
  Serve.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
189
180
  Serve.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
190
- Serve.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'serve_id' });
191
181
  Set.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
192
182
  Set.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
193
- Set.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'set_id' });
194
183
  Spike.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
195
184
  Spike.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
196
- Spike.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'spike_id' });
197
185
  Substitution.belongsTo(Player, { as: 'player', foreignKey: 'player_id' });
198
186
  Substitution.belongsTo(Player, { as: 'playerOut', foreignKey: 'player_out' });
199
187
  Substitution.belongsTo(Rally, { as: 'rally', foreignKey: 'rally_id' });
@@ -256,7 +244,6 @@ export function initModels(sequelize) {
256
244
  otherKey: 'player_id'
257
245
  });
258
246
  Trait.hasMany(PlayerTrait, { as: 'PlayerTraits', foreignKey: 'trait_id' });
259
- Trait.hasMany(EventTrait, { as: 'EventTraits', foreignKey: 'trait_id' });
260
247
  return {
261
248
  Block,
262
249
  Coach,