@luceosports/play-rendering 1.12.4 → 1.13.0

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 (35) hide show
  1. package/dist/play-rendering.js +3 -3
  2. package/dist/play-rendering.js.map +1 -1
  3. package/index.js +2 -1
  4. package/package.json +1 -1
  5. package/src/constants.js +19 -19
  6. package/src/layers/CourtLayer.js +4 -4
  7. package/src/layers/PlayerLayer.js +4 -2
  8. package/src/layers/base/BaseLayer.js +2 -2
  9. package/src/layers/court/index.js +33 -6
  10. package/src/layers/court/layers/BASKETBALL/NBA/constants/constants.js +1 -0
  11. package/src/layers/court/layers/BASKETBALL/NBA/constants/index.js +4 -0
  12. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/BaseLineMarkingLayer.js +1 -1
  13. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/BenchAreaLayer.js +1 -1
  14. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/Big3Layer.js +2 -4
  15. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/BorderRectLayer.js +2 -4
  16. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/CenterCircleLayer.js +2 -4
  17. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/CenterLineLayer.js +2 -4
  18. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/FreeThrowLayer.js +1 -1
  19. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/HoopLayer.js +1 -1
  20. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/InnerOuterRectLayer.js +1 -1
  21. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/LaneMarkingLayer.js +1 -1
  22. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/RestrictedAreaLayer.js +1 -1
  23. package/src/layers/court/layers/{NBA → BASKETBALL/NBA/layers}/ThreePointLineLayer.js +1 -1
  24. package/src/layers/court/layers/BASKETBALL/constants.js +9 -0
  25. package/src/layers/court/layers/FOOTBALL/HIGH_SCHOOL_FOOTBALL/constants/constants.js +3 -0
  26. package/src/layers/court/layers/FOOTBALL/HIGH_SCHOOL_FOOTBALL/constants/index.js +4 -0
  27. package/src/layers/court/layers/FOOTBALL/{BorderRectLayer.js → HIGH_SCHOOL_FOOTBALL/layers/BorderRectLayer.js} +2 -4
  28. package/src/layers/court/layers/FOOTBALL/{CenterLineLayer.js → HIGH_SCHOOL_FOOTBALL/layers/CenterLineLayer.js} +2 -4
  29. package/src/layers/court/layers/FOOTBALL/{EndZoneLayer.js → HIGH_SCHOOL_FOOTBALL/layers/EndZoneLayer.js} +2 -4
  30. package/src/layers/court/layers/FOOTBALL/{FieldNumberLayer.js → HIGH_SCHOOL_FOOTBALL/layers/FieldNumberLayer.js} +2 -4
  31. package/src/layers/court/layers/FOOTBALL/{HashMarkLayer.js → HIGH_SCHOOL_FOOTBALL/layers/HashMarkLayer.js} +2 -4
  32. package/src/layers/court/layers/FOOTBALL/{YardLineLayer.js → HIGH_SCHOOL_FOOTBALL/layers/YardLineLayer.js} +2 -4
  33. package/src/layers/court/layers/FOOTBALL/constants.js +9 -0
  34. package/src/models/Frame.js +21 -2
  35. package/src/models/Play.js +3 -3
package/index.js CHANGED
@@ -8,4 +8,5 @@ module.exports.Shape = require('./src/models/Shape');
8
8
  module.exports.ShapeModels = require('./src/models/ShapeModels');
9
9
  module.exports.LineDrawingMath = require('./src/math/LineDrawingMath');
10
10
  module.exports.Bezier = require('./src/math/Bezier').Bezier;
11
- module.exports.CourtTypeConstants = require('./src/constants');
11
+ module.exports.CourtTypeConstants = require('./src/layers/court').courtTypeConstants;
12
+ module.exports.Constants = require('./src/constants');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luceosports/play-rendering",
3
- "version": "1.12.4",
3
+ "version": "1.13.0",
4
4
  "description": "",
5
5
  "main": "dist/play-rendering.js",
6
6
  "scripts": {
package/src/constants.js CHANGED
@@ -1,21 +1,21 @@
1
1
  module.exports = Object.freeze({
2
- NBA: {
3
- COURT_LINE_WIDTH: 0.1667,
4
- COURT_RECT_WIDTH: 50.0,
5
- COURT_RECT_HEIGHT: 94.0,
6
- PLAYER_TOKEN_RADIUS: 1.5,
7
- PLAYER_TOKEN_SCALE: 1,
8
- LINE_WIDTH: 0.33,
9
- LINE_MASKING: true
10
- },
11
- FOOTBALL: {
12
- COURT_LINE_WIDTH: 0.32,
13
- COURT_RECT_WIDTH: 160.0,
14
- COURT_RECT_HEIGHT: 360.0,
15
- END_ZONE_HEIGHT: 30,
16
- PLAYER_TOKEN_RADIUS: 1.5,
17
- PLAYER_TOKEN_SCALE: 2,
18
- LINE_WIDTH: 0.55,
19
- LINE_MASKING: false
20
- }
2
+ SPORT_TYPE_BASKETBALL: 'BASKETBALL',
3
+ SPORT_TYPE_FOOTBALL: 'FOOTBALL',
4
+
5
+ COURT_TYPE_NBA: 'NBA',
6
+ COURT_TYPE_HIGH_SCHOOL_FOOTBALL: 'HIGH_SCHOOL_FOOTBALL',
7
+ COURT_TYPE_HIGH_SCHOOL_FOOTBALL_LEGACY: 'FOOTBALL',
8
+
9
+ SHAPE_TYPE_CIRCLE: 'CIRCLE',
10
+ SHAPE_TYPE_SQUARE: 'SQUARE',
11
+ SHAPE_TYPE_TRIANGLE: 'TRIANGLE',
12
+ SHAPE_TYPE_FOV: 'FOV',
13
+ SHAPE_TYPE_XMARK: 'XMARK',
14
+ SHAPE_TYPE_STRAIGHT: 'STRAIGHT',
15
+ SHAPE_TYPE_CONE: 'CONE',
16
+ SHAPE_TYPE_LINE_CUT: 'LINE.CUT',
17
+ SHAPE_TYPE_LINE_SCREEN: 'LINE.SCREEN',
18
+ SHAPE_TYPE_LINE_DRIBBLE: 'LINE.DRIBBLE',
19
+ SHAPE_TYPE_LINE_PASS: 'LINE.PASS',
20
+ SHAPE_TYPE_LINE_HANDOFF: 'LINE.HANDOFF'
21
21
  });
@@ -1,5 +1,5 @@
1
1
  const BaseLayer = require('./base/BaseLayer');
2
- const courtLayers = require('./court');
2
+ const { layers: courtLayers } = require('./court');
3
3
 
4
4
  class CourtLayer extends BaseLayer {
5
5
  get frameWidth() {
@@ -15,12 +15,12 @@ class CourtLayer extends BaseLayer {
15
15
  }
16
16
 
17
17
  get courtTypeLayers() {
18
- if (!courtLayers[this.playData.court.type]) throw new Error('unknown court type');
19
- return courtLayers[this.playData.court.type];
18
+ if (!(courtLayers[this.playData.sport] || {})[this.playData.court.type]) throw new Error('unknown court type');
19
+ return courtLayers[this.playData.sport][this.playData.court.type];
20
20
  }
21
21
 
22
22
  get background() {
23
- return this.options.background || this.playData.court.type;
23
+ return this.options.background || this.playData.sport;
24
24
  }
25
25
 
26
26
  apply() {
@@ -101,11 +101,13 @@ class PlayerLayer extends BaseLayer {
101
101
  const { x, y } = player.location;
102
102
  const { alpha } = player.color;
103
103
 
104
+ const fontSizeLength = 3 - player.textLabel.length * 0.5;
104
105
  const fontSizeMultiplier = this.options.legacyPrintStyle ? 1.3 : 1;
105
- const fontSize = (player.textLabel.length > 1 ? 2.0 : 2.5) * fontSizeMultiplier * this.playerScale;
106
+ const fontSize = fontSizeLength * fontSizeMultiplier * this.playerScale;
106
107
 
108
+ const textVOffsetLength = 1 - player.textLabel.length * 0.15;
107
109
  const textVOffsetMultiplier = this.options.legacyPrintStyle ? 1.4 : 1;
108
- const textVerticalOffset = (player.textLabel.length > 1 ? 0.7 : 0.85) * textVOffsetMultiplier * this.playerScale;
110
+ const textVerticalOffset = textVOffsetLength * textVOffsetMultiplier * this.playerScale;
109
111
 
110
112
  if (!alpha) return;
111
113
 
@@ -1,4 +1,4 @@
1
- const constants = require('../../constants');
1
+ const { courtTypeConstants } = require('../court');
2
2
 
3
3
  class BaseLayer {
4
4
  constructor(ctx, playData) {
@@ -8,7 +8,7 @@ class BaseLayer {
8
8
  }
9
9
 
10
10
  get courtTypeConstants() {
11
- return constants[this.playData.court.type];
11
+ return courtTypeConstants[this.playData.court.type];
12
12
  }
13
13
  }
14
14
 
@@ -1,13 +1,40 @@
1
1
  // require all modules on the path and with the pattern defined
2
2
  const req = require.context('./layers/', true, /.js$/);
3
3
 
4
- const modules = {};
4
+ const layers = {};
5
+ const sportConstants = {};
6
+ const courtTypeConstants = {};
5
7
 
6
8
  req.keys().forEach(key => {
7
- const mPath = key.replace('./', '').replace('.js', '');
8
- const [mType, mName] = mPath.split('/');
9
- if (!modules[mType]) modules[mType] = {};
10
- modules[mType][mName] = req(key);
9
+ if (key.match(/\/layers\//)) {
10
+ return processLayers(key);
11
+ }
12
+ processConstants(key);
11
13
  });
12
14
 
13
- module.exports = modules;
15
+ function processLayers(key) {
16
+ const mPath = key
17
+ .replace('./', '')
18
+ .replace('/layers', '')
19
+ .replace('.js', '');
20
+ const [sportName, courtType, mName] = mPath.split('/');
21
+ if (!layers[sportName]) layers[sportName] = {};
22
+ if (!layers[sportName][courtType]) layers[sportName][courtType] = {};
23
+ layers[sportName][courtType][mName] = req(key);
24
+ }
25
+
26
+ function processConstants(key) {
27
+ if (key.match(/\/constants\/index.js$/)) {
28
+ const mPath = key.replace('./', '').replace('/constants/index.js', '');
29
+ const [, courtType] = mPath.split('/');
30
+ courtTypeConstants[courtType] = req(key);
31
+ return;
32
+ }
33
+ const mPath = key.replace('./', '').replace('/constants.js', '');
34
+ const [sportName, courtType] = mPath.split('/');
35
+ if (!courtType) {
36
+ sportConstants[sportName] = req(key);
37
+ }
38
+ }
39
+
40
+ module.exports = { layers, sportConstants, courtTypeConstants };
@@ -0,0 +1 @@
1
+ module.exports = Object.freeze({});
@@ -0,0 +1,4 @@
1
+ const parentConstants = require('../../constants');
2
+ const localConstants = require('./constants');
3
+
4
+ module.exports = { ...parentConstants, ...localConstants };
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class BaseLineMarkingLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class BenchAreaLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- NBA: { COURT_RECT_WIDTH, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class Big3Layer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- NBA: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class BorderRectLayer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- NBA: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT } = require('../constants');
5
3
 
6
4
  class CenterCircleLayer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- NBA: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class CenterLineLayer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class FreeThrowLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class HoopLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class InnerOuterRectLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class LaneMarkingLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class RestrictedAreaLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -1,4 +1,4 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
2
 
3
3
  class ThreePointLineLayer extends InternalCourtLayer {
4
4
  reflection() {
@@ -0,0 +1,9 @@
1
+ module.exports = Object.freeze({
2
+ COURT_LINE_WIDTH: 0.1667,
3
+ COURT_RECT_WIDTH: 50.0,
4
+ COURT_RECT_HEIGHT: 94.0,
5
+ PLAYER_TOKEN_RADIUS: 1.5,
6
+ PLAYER_TOKEN_SCALE: 1,
7
+ LINE_WIDTH: 0.33,
8
+ LINE_MASKING: true
9
+ });
@@ -0,0 +1,3 @@
1
+ module.exports = Object.freeze({
2
+ END_ZONE_HEIGHT: 30
3
+ });
@@ -0,0 +1,4 @@
1
+ const parentConstants = require('../../constants');
2
+ const localConstants = require('./constants');
3
+
4
+ module.exports = { ...parentConstants, ...localConstants };
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class BorderRectLayer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class CenterLineLayer extends InternalCourtLayer {
7
5
  drawLogic() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, COURT_LINE_WIDTH }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_LINE_WIDTH } = require('../constants');
5
3
 
6
4
  class EndZoneLayer extends InternalCourtLayer {
7
5
  reflection() {
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, END_ZONE_HEIGHT }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, END_ZONE_HEIGHT } = require('../constants');
5
3
 
6
4
  const NUMBER_VERTICAL_OFFSET = -6;
7
5
 
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH, END_ZONE_HEIGHT }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH, END_ZONE_HEIGHT } = require('../constants');
5
3
 
6
4
  const HASH_MARK_OFFSET_X = 3;
7
5
  const HASH_MARK_LENGTH = 3;
@@ -1,7 +1,5 @@
1
- const InternalCourtLayer = require('../../base/InternalCourtLayer');
2
- const {
3
- FOOTBALL: { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH, END_ZONE_HEIGHT }
4
- } = require('../../../../constants');
1
+ const InternalCourtLayer = require('../../../../base/InternalCourtLayer');
2
+ const { COURT_RECT_WIDTH, COURT_RECT_HEIGHT, COURT_LINE_WIDTH, END_ZONE_HEIGHT } = require('../constants');
5
3
 
6
4
  class YardLineLayer extends InternalCourtLayer {
7
5
  reflection() {
@@ -0,0 +1,9 @@
1
+ module.exports = Object.freeze({
2
+ COURT_LINE_WIDTH: 0.32,
3
+ COURT_RECT_WIDTH: 160.0,
4
+ COURT_RECT_HEIGHT: 360.0,
5
+ PLAYER_TOKEN_RADIUS: 1.5,
6
+ PLAYER_TOKEN_SCALE: 2,
7
+ LINE_WIDTH: 0.55,
8
+ LINE_MASKING: false
9
+ });
@@ -13,6 +13,12 @@ const Line = require('./Line');
13
13
  const Player = require('./Player');
14
14
  const Note = require('./Note');
15
15
  const ShapeModels = require('./ShapeModels');
16
+ const {
17
+ COURT_TYPE_HIGH_SCHOOL_FOOTBALL,
18
+ COURT_TYPE_HIGH_SCHOOL_FOOTBALL_LEGACY,
19
+ SPORT_TYPE_FOOTBALL,
20
+ SPORT_TYPE_BASKETBALL
21
+ } = require('../constants');
16
22
 
17
23
  class Frame {
18
24
  constructor(play, phase = 1, animationGlobalProgress = false) {
@@ -22,8 +28,20 @@ class Frame {
22
28
  this.animationGlobalProgressPrev = animationGlobalProgress;
23
29
  }
24
30
 
31
+ get sport() {
32
+ const { court, sport } = this.play.playData;
33
+ if (sport) return sport;
34
+ return [COURT_TYPE_HIGH_SCHOOL_FOOTBALL_LEGACY, COURT_TYPE_HIGH_SCHOOL_FOOTBALL].includes(court.type)
35
+ ? SPORT_TYPE_FOOTBALL
36
+ : SPORT_TYPE_BASKETBALL;
37
+ }
38
+
25
39
  get court() {
26
- return this.play.playData.court;
40
+ const { court } = this.play.playData;
41
+ return {
42
+ ...court,
43
+ type: court.type === COURT_TYPE_HIGH_SCHOOL_FOOTBALL_LEGACY ? COURT_TYPE_HIGH_SCHOOL_FOOTBALL : court.type
44
+ };
27
45
  }
28
46
 
29
47
  get frameWidth() {
@@ -36,7 +54,8 @@ class Frame {
36
54
 
37
55
  get frameData() {
38
56
  return {
39
- court: this.play.playData.court,
57
+ sport: this.sport,
58
+ court: this.court,
40
59
  lines: this.lines,
41
60
  players: this.players,
42
61
  shapes: this.shapes,
@@ -3,6 +3,7 @@ const { loadImage } = require('canvas');
3
3
  const playerHatsConfig = require('../playerHatsConfig');
4
4
  const shapesConfig = require('../shapesConfig');
5
5
  const { useDefaults } = require('./Play/Options');
6
+ const { SPORT_TYPE_BASKETBALL, SPORT_TYPE_FOOTBALL } = require('../constants');
6
7
 
7
8
  const STORAGE_URL = 'https://playbooksstore.blob.core.windows.net/public';
8
9
  const LUCEOSPORTS_WATERMARK_PATH = 'partners/LuceoSports/luceo-sports-logo-powered-by-sm.png';
@@ -25,9 +26,8 @@ class Play {
25
26
 
26
27
  Play.backgroundOptions = {
27
28
  Hardwood: hardwoodImage,
28
- NBA: hardwoodImage,
29
- NCAA: hardwoodImage,
30
- FOOTBALL: grassImage
29
+ [SPORT_TYPE_BASKETBALL]: hardwoodImage,
30
+ [SPORT_TYPE_FOOTBALL]: grassImage
31
31
  };
32
32
 
33
33
  const luceoSportsWatermark = await loadImage(`${STORAGE_URL}/${LUCEOSPORTS_WATERMARK_PATH}`);