@caperjs/core 0.4.0 → 0.5.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 (86) hide show
  1. package/build/index.d.mts +29 -0
  2. package/build/internal/manifest.mjs +2 -2
  3. package/build/internal/validate.mjs +2 -1
  4. package/build/plugins/assetTypes.mjs +0 -6
  5. package/build/plugins/caperConfig.mjs +5 -3
  6. package/build/plugins/lists.mjs +0 -15
  7. package/lib/{CaptionsPlugin-cSJj-R9M.js → CaptionsPlugin-CDbGZrN9.js} +11 -11
  8. package/lib/CaptionsPlugin-CDbGZrN9.js.map +1 -0
  9. package/lib/{DataAdapter-D2tc6hx9.js → DataAdapter-BTlNzWqg.js} +2 -2
  10. package/lib/{DataAdapter-D2tc6hx9.js.map → DataAdapter-BTlNzWqg.js.map} +1 -1
  11. package/lib/{DebugRenderer-CGUKy6Fy.js → DebugRenderer-eSVpon4c.js} +2 -2
  12. package/lib/{DebugRenderer-CGUKy6Fy.js.map → DebugRenderer-eSVpon4c.js.map} +1 -1
  13. package/lib/{DevToolsPlugin-B8GX3H9b.js → DevToolsPlugin-Ci6r9j-m.js} +2 -2
  14. package/lib/{DevToolsPlugin-B8GX3H9b.js.map → DevToolsPlugin-Ci6r9j-m.js.map} +1 -1
  15. package/lib/{GSAPPlugin-Br9AjuTD.js → GSAPPlugin-C8zo-fyt.js} +2 -2
  16. package/lib/{GSAPPlugin-Br9AjuTD.js.map → GSAPPlugin-C8zo-fyt.js.map} +1 -1
  17. package/lib/{LayoutPlugin-BX3OP7pw.js → LayoutPlugin-Cs2lcXKb.js} +4 -4
  18. package/lib/{LayoutPlugin-BX3OP7pw.js.map → LayoutPlugin-Cs2lcXKb.js.map} +1 -1
  19. package/lib/{SpinePlugin-C-JDdXpf.js → SpinePlugin-CLgSXBQm.js} +2 -2
  20. package/lib/{SpinePlugin-C-JDdXpf.js.map → SpinePlugin-CLgSXBQm.js.map} +1 -1
  21. package/lib/{StatsPlugin-yJlJtoQ2.js → StatsPlugin-D_90U3BG.js} +4 -4
  22. package/lib/{StatsPlugin-yJlJtoQ2.js.map → StatsPlugin-D_90U3BG.js.map} +1 -1
  23. package/lib/{VoiceOverPlugin-DjSZp4Ko.js → VoiceOverPlugin-CAE1dtOw.js} +33 -33
  24. package/lib/{VoiceOverPlugin-DjSZp4Ko.js.map → VoiceOverPlugin-CAE1dtOw.js.map} +1 -1
  25. package/lib/caper.mjs +87 -87
  26. package/lib/caper.mjs.map +1 -1
  27. package/lib/{const-C3sxeYhl.js → const-BTDpIdRO.js} +192 -199
  28. package/lib/const-BTDpIdRO.js.map +1 -0
  29. package/lib/display/Container.d.ts +1 -28
  30. package/lib/display/Container.d.ts.map +1 -1
  31. package/lib/display/ParticleContainer.d.ts +20 -29
  32. package/lib/display/ParticleContainer.d.ts.map +1 -1
  33. package/lib/display/ParticleContainer.test.d.ts +2 -0
  34. package/lib/display/ParticleContainer.test.d.ts.map +1 -0
  35. package/lib/display/SpineAnimation.d.ts +1 -2
  36. package/lib/display/SpineAnimation.d.ts.map +1 -1
  37. package/lib/display/SpineAnimation.test.d.ts +1 -0
  38. package/lib/display/SpineAnimation.test.d.ts.map +1 -0
  39. package/lib/mixins/factory/const.d.ts.map +1 -1
  40. package/lib/mixins/focus.d.ts.map +1 -1
  41. package/lib/mixins/index.d.ts +1 -0
  42. package/lib/mixins/index.d.ts.map +1 -1
  43. package/lib/mixins/lifecycle.d.ts +56 -0
  44. package/lib/mixins/lifecycle.d.ts.map +1 -0
  45. package/lib/plugins/FullScreenPlugin.d.ts.map +1 -1
  46. package/lib/plugins/KeyboardPlugin.d.ts.map +1 -1
  47. package/lib/plugins/Plugin.d.ts.map +1 -1
  48. package/lib/plugins/WebEventsPlugin.d.ts +1 -0
  49. package/lib/plugins/WebEventsPlugin.d.ts.map +1 -1
  50. package/lib/plugins/audio/AudioInstance.d.ts +3 -3
  51. package/lib/plugins/audio/AudioInstance.d.ts.map +1 -1
  52. package/lib/plugins/captions/CaptionsRenderer.d.ts.map +1 -1
  53. package/lib/plugins/focus/FocusManagerPlugin.d.ts.map +1 -1
  54. package/lib/{registries-BfV-VF7a.js → registries-nN_hU44y.js} +109 -77
  55. package/lib/registries-nN_hU44y.js.map +1 -0
  56. package/lib/utils/types.d.ts.map +1 -1
  57. package/package.json +3 -2
  58. package/src/core/Application.ts +2 -2
  59. package/src/display/Container.ts +5 -72
  60. package/src/display/ParticleContainer.test.ts +127 -0
  61. package/src/display/ParticleContainer.ts +28 -62
  62. package/src/display/SpineAnimation.test.ts +79 -0
  63. package/src/display/SpineAnimation.ts +4 -6
  64. package/src/mixins/factory/const.ts +2 -1
  65. package/src/mixins/focus.ts +0 -2
  66. package/src/mixins/index.ts +4 -0
  67. package/src/mixins/lifecycle.ts +160 -0
  68. package/src/plugins/DataAdapter.ts +1 -1
  69. package/src/plugins/FullScreenPlugin.test.ts +9 -0
  70. package/src/plugins/FullScreenPlugin.ts +0 -1
  71. package/src/plugins/KeyboardPlugin.ts +0 -1
  72. package/src/plugins/Plugin.ts +0 -2
  73. package/src/plugins/TimerPlugin.ts +1 -1
  74. package/src/plugins/WebEventsPlugin.test.ts +13 -0
  75. package/src/plugins/WebEventsPlugin.ts +12 -1
  76. package/src/plugins/audio/AudioInstance.ts +2 -2
  77. package/src/plugins/captions/CaptionsPlugin.test.ts +48 -3
  78. package/src/plugins/captions/CaptionsPlugin.ts +5 -5
  79. package/src/plugins/captions/CaptionsRenderer.ts +0 -1
  80. package/src/plugins/focus/FocusManagerPlugin.ts +0 -1
  81. package/src/ui/Input.ts +2 -2
  82. package/src/utils/types.ts +0 -1
  83. package/src/version.ts +1 -1
  84. package/lib/CaptionsPlugin-cSJj-R9M.js.map +0 -1
  85. package/lib/const-C3sxeYhl.js.map +0 -1
  86. package/lib/registries-BfV-VF7a.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caperjs/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "title": "Caper",
5
5
  "description": "An opinionated HTML game framework built on PixiJS v8",
6
6
  "bin": {
@@ -29,6 +29,7 @@
29
29
  "default": "./lib/caper.mjs"
30
30
  },
31
31
  "./vite": {
32
+ "types": "./build/index.d.mts",
32
33
  "default": "./build/index.mjs"
33
34
  },
34
35
  "./client": {
@@ -57,7 +58,7 @@
57
58
  "build": "pnpm generate-version && vite build",
58
59
  "prepack": "pnpm build",
59
60
  "visualize:examples": "cd ./examples && npx vite-bundle-visualizer",
60
- "lint": "eslint \"src/**/*.ts\"",
61
+ "lint": "eslint \"src/**/*.ts\" --max-warnings 0",
61
62
  "lint:fix": "eslint \"src/**/*.ts\" --fix",
62
63
  "test": "vitest run",
63
64
  "test:watch": "vitest",
@@ -338,7 +338,7 @@ export class Application extends PIXIPApplication implements IApplication {
338
338
  public get appVersion() {
339
339
  try {
340
340
  this._appVersion = __CAPER_APP_VERSION;
341
- } catch (e) {
341
+ } catch {
342
342
  this._appVersion = -1;
343
343
  }
344
344
 
@@ -351,7 +351,7 @@ export class Application extends PIXIPApplication implements IApplication {
351
351
  if (!this._appName) {
352
352
  try {
353
353
  this._appName = __CAPER_APP_NAME;
354
- } catch (e) {
354
+ } catch {
355
355
  this._appName = 'n/a';
356
356
  }
357
357
  }
@@ -1,9 +1,9 @@
1
1
  import { DestroyOptions, Container as PIXIContainer, Sprite, Texture, Ticker } from 'pixi.js';
2
2
  import { Animated } from '../mixins/animated';
3
3
  import { Factory } from '../mixins/factory/Factory';
4
+ import { WithLifecycle } from '../mixins/lifecycle';
4
5
  import { WithSignals } from '../mixins/signals';
5
6
 
6
- import { Application } from '../core/Application';
7
7
  import { Signal } from '../signals';
8
8
  import { SignalOrder } from '../signals/Signal';
9
9
  import type { AppTypeOverrides, PointLike, Size } from '../utils';
@@ -61,11 +61,7 @@ export interface IContainer {
61
61
  * The Container class extends the _Container class (which includes the Animated and Factory mixins) and implements the IContainer interface.
62
62
  * It represents a container for PIXI.js display objects.
63
63
  */
64
- export class Container extends Animated(WithSignals(Factory())) implements IContainer {
65
- private static readonly __caper_method_binding_root = true;
66
-
67
- public onDestroy: Signal<() => void> = new Signal();
68
-
64
+ export class Container extends WithLifecycle(Animated(WithSignals(Factory()))) implements IContainer {
69
65
  protected __background: Sprite;
70
66
 
71
67
  protected _animationContext: string | undefined;
@@ -76,8 +72,6 @@ export class Container extends Animated(WithSignals(Factory())) implements ICont
76
72
  this._animationContext = value;
77
73
  }
78
74
 
79
- private __config: ContainerConfig;
80
-
81
75
  public static onGlobalChildAdded = new Signal<(child: PIXIContainer) => void>();
82
76
  public static onGlobalChildRemoved = new Signal<(child: PIXIContainer) => void>();
83
77
 
@@ -89,25 +83,17 @@ export class Container extends Animated(WithSignals(Factory())) implements ICont
89
83
  Container.onGlobalChildRemoved.emit(child);
90
84
  }
91
85
 
92
- /**
93
- * Get the application instance.
94
- */
95
- public get app(): AppTypeOverrides['App'] {
96
- return Application.getInstance();
97
- }
98
-
99
86
  /**
100
87
  * The constructor for the Container class.
101
88
  * @param config - The configuration for the container.
102
89
  */
103
90
  constructor(config: Partial<ContainerConfig> = {}) {
104
91
  super();
105
- this.__config = { ...defaultConfig, ...config };
92
+ const { autoResize, autoUpdate, priority }: ContainerConfig = { ...defaultConfig, ...config };
106
93
  // Bind all methods of this class to the current instance.
107
94
  bindAllMethods(this);
108
- // Add an event listener for the 'added' event.
109
- this.on('added', this._added);
110
- this.on('removed', this._removed);
95
+ // Wire up the shared lifecycle (adds the 'added' / 'removed' listeners).
96
+ this._initLifecycle({ autoResize, autoUpdate, resizePriority: priority });
111
97
  this.on('childAdded', this._childAdded);
112
98
  this.on('childRemoved', this._childRemoved);
113
99
  }
@@ -152,42 +138,15 @@ export class Container extends Animated(WithSignals(Factory())) implements ICont
152
138
  return this.__background;
153
139
  }
154
140
 
155
- /**
156
- * Update the container. This method is meant to be overridden by subclasses.
157
- * @param ticker
158
- */
159
- public update(ticker?: Ticker | number) {
160
- void ticker;
161
- }
162
-
163
- /**
164
- * Resize the container. This method is meant to be overridden by subclasses.
165
- * @param size
166
- */
167
- public resize(size?: Size) {
168
- void size;
169
- }
170
-
171
- /**
172
- * This method is called when the container is added to the stage. It is meant to be overridden by subclasses.
173
- */
174
- public added() {}
175
-
176
141
  public childAdded(child: PIXIContainer) {
177
142
  void child;
178
143
  }
179
144
 
180
145
  destroy(options?: DestroyOptions): void {
181
146
  this.app.animation.killAll(this.animationContext);
182
- if (this.__config.autoUpdate) {
183
- this.app.ticker.remove(this.update, this);
184
- }
185
- this.onDestroy.emit();
186
147
  super.destroy(options);
187
148
  }
188
149
 
189
- public removed() {}
190
-
191
150
  public childRemoved(child: PIXIContainer) {
192
151
  void child;
193
152
  }
@@ -197,32 +156,6 @@ export class Container extends Animated(WithSignals(Factory())) implements ICont
197
156
  this.__background.height = this.app.size.height;
198
157
  }
199
158
 
200
- /**
201
- * This method is called when the container is added to the stage. It sets up auto-resizing and auto-updating if enabled.
202
- */
203
- private _added() {
204
- if (this.__config.autoResize) {
205
- this.addSignalConnection(this.app.onResize.connect(this.resize, this.__config.priority ?? 'highest'));
206
- }
207
-
208
- if (this.__config.autoUpdate) {
209
- this.app.ticker.add(this.update, this, -999999);
210
- }
211
- this.added();
212
- }
213
-
214
- private _removed() {
215
- if (this.__config.autoResize) {
216
- this.app.onResize.disconnect(this.resize);
217
- }
218
-
219
- if (this.__config.autoUpdate) {
220
- this.app.ticker.remove(this.update, this);
221
- }
222
-
223
- this.removed();
224
- }
225
-
226
159
  private _childAdded(child: PIXIContainer) {
227
160
  Container.childAdded(child);
228
161
  this.childAdded(child);
@@ -0,0 +1,127 @@
1
+ import { Container as PIXIContainer, ParticleContainer as PIXIParticleContainer } from 'pixi.js';
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
+
4
+ import { Signal } from '../signals';
5
+ import type { Size } from '../utils';
6
+ import { ParticleContainer } from './ParticleContainer';
7
+
8
+ class TestParticleContainer extends ParticleContainer {
9
+ public resizeCalls: (Size | undefined)[] = [];
10
+ public updateCalls = 0;
11
+
12
+ public resize(size?: Size) {
13
+ this.resizeCalls.push(size);
14
+ }
15
+
16
+ public update() {
17
+ this.updateCalls++;
18
+ }
19
+ }
20
+
21
+ describe('ParticleContainer lifecycle', () => {
22
+ let app: {
23
+ onResize: Signal<(size: Size) => void>;
24
+ ticker: { add: ReturnType<typeof vi.fn>; remove: ReturnType<typeof vi.fn> };
25
+ };
26
+ let originalAppDescriptor: PropertyDescriptor | undefined;
27
+
28
+ beforeEach(() => {
29
+ app = {
30
+ onResize: new Signal<(size: Size) => void>(),
31
+ ticker: { add: vi.fn(), remove: vi.fn() },
32
+ };
33
+ // `app` is a getter on the mixin prototype; shadow it on ParticleContainer's
34
+ // own prototype so the constructor picks up the fake app.
35
+ originalAppDescriptor = Object.getOwnPropertyDescriptor(ParticleContainer.prototype, 'app');
36
+ Object.defineProperty(ParticleContainer.prototype, 'app', { get: () => app, configurable: true });
37
+ });
38
+
39
+ afterEach(() => {
40
+ if (originalAppDescriptor) {
41
+ Object.defineProperty(ParticleContainer.prototype, 'app', originalAppDescriptor);
42
+ } else {
43
+ delete (ParticleContainer.prototype as any).app;
44
+ }
45
+ });
46
+
47
+ it('routes app resizes to resize() once it has been added to the stage', () => {
48
+ const particles = new TestParticleContainer();
49
+
50
+ // not on the stage yet — nothing is connected
51
+ app.onResize.emit({ width: 10, height: 20 });
52
+ expect(particles.resizeCalls).toEqual([]);
53
+
54
+ new PIXIContainer().addChild(particles);
55
+ app.onResize.emit({ width: 100, height: 50 });
56
+
57
+ expect(particles.resizeCalls).toEqual([{ width: 100, height: 50 }]);
58
+ });
59
+
60
+ it('does not connect resize() when autoResize is off', () => {
61
+ const particles = new TestParticleContainer({ autoResize: false });
62
+ new PIXIContainer().addChild(particles);
63
+
64
+ app.onResize.emit({ width: 100, height: 50 });
65
+
66
+ expect(particles.resizeCalls).toEqual([]);
67
+ });
68
+
69
+ it('adds update() to the ticker with the configured priority', () => {
70
+ const particles = new TestParticleContainer({ priority: 5 });
71
+ new PIXIContainer().addChild(particles);
72
+
73
+ expect(app.ticker.add).toHaveBeenCalledWith(particles.update, particles, 5);
74
+ });
75
+
76
+ it('disconnects resize, the ticker and emits onDestroy on destroy', () => {
77
+ const particles = new TestParticleContainer();
78
+ new PIXIContainer().addChild(particles);
79
+
80
+ const onDestroy = vi.fn();
81
+ particles.onDestroy.connect(onDestroy);
82
+
83
+ particles.destroy();
84
+
85
+ expect(onDestroy).toHaveBeenCalledTimes(1);
86
+ expect(app.ticker.remove).toHaveBeenCalledWith(particles.update, particles);
87
+
88
+ app.onResize.emit({ width: 100, height: 50 });
89
+ expect(particles.resizeCalls).toEqual([]);
90
+ });
91
+
92
+ it('calls through to Pixi update() so the particle buffers are flagged', () => {
93
+ const particles = new ParticleContainer();
94
+ const pixiUpdate = vi.spyOn(PIXIParticleContainer.prototype, 'update');
95
+
96
+ (particles as any)._childrenDirty = false;
97
+ particles.update();
98
+
99
+ expect(pixiUpdate).toHaveBeenCalledTimes(1);
100
+ expect((particles as any)._childrenDirty).toBe(true);
101
+
102
+ pixiUpdate.mockRestore();
103
+ });
104
+
105
+ it('flags the particle buffers when update() is driven by the ticker', () => {
106
+ const particles = new ParticleContainer();
107
+ new PIXIContainer().addChild(particles);
108
+
109
+ const [tick, context] = app.ticker.add.mock.calls[0];
110
+ (particles as any)._childrenDirty = false;
111
+ tick.call(context);
112
+
113
+ expect((particles as any)._childrenDirty).toBe(true);
114
+ });
115
+
116
+ it('disconnects resize and the ticker when removed from the stage', () => {
117
+ const particles = new TestParticleContainer();
118
+ const parent = new PIXIContainer();
119
+ parent.addChild(particles);
120
+
121
+ parent.removeChild(particles);
122
+ app.onResize.emit({ width: 100, height: 50 });
123
+
124
+ expect(particles.resizeCalls).toEqual([]);
125
+ expect(app.ticker.remove).toHaveBeenCalledWith(particles.update, particles);
126
+ });
127
+ });
@@ -1,21 +1,23 @@
1
1
  import { DestroyOptions, ParticleContainerOptions, ParticleContainer as PIXIParticleContainer, Ticker } from 'pixi.js';
2
2
 
3
- import { Application } from '../core/Application';
3
+ import { WithLifecycle } from '../mixins/lifecycle';
4
+ import { WithSignals } from '../mixins/signals';
4
5
  import { Signal } from '../signals';
5
6
  import type { AppTypeOverrides, Size } from '../utils';
6
7
  import { bindAllMethods } from '../utils';
7
8
 
8
9
  /**
9
- * Configuration for the Container class.
10
+ * Configuration for the ParticleContainer class.
10
11
  */
11
12
  export interface ParticleContainerConfig extends ParticleContainerOptions {
13
+ autoResize: boolean;
12
14
  autoUpdate: boolean;
13
15
  priority: number;
14
16
  }
15
17
 
16
- export const ParticleContainerConfigKeys: (keyof ParticleContainerConfig)[] = ['autoUpdate', 'priority'];
18
+ export const ParticleContainerConfigKeys: (keyof ParticleContainerConfig)[] = ['autoResize', 'autoUpdate', 'priority'];
17
19
 
18
- const defaultConfig: ParticleContainerConfig = { autoUpdate: true, priority: 0 };
20
+ const defaultConfig: ParticleContainerConfig = { autoResize: true, autoUpdate: true, priority: 0 };
19
21
 
20
22
  export interface IParticleContainer {
21
23
  app: AppTypeOverrides['App'];
@@ -26,82 +28,46 @@ export interface IParticleContainer {
26
28
 
27
29
  added(): Promise<void> | void;
28
30
 
31
+ removed(): Promise<void> | void;
32
+
33
+ resize(size?: Size): void;
34
+
29
35
  update(ticker?: Ticker | number): void;
30
36
  }
31
37
 
32
38
  /**
33
- * The Container class extends the _Container class (which includes the Animated and Factory mixins) and implements the IContainer interface.
34
- * It represents a container for PIXI.js display objects.
39
+ * The ParticleContainer class extends PIXI's ParticleContainer with Caper's
40
+ * shared lifecycle (the `added` / `removed` / `resize` / `update` hooks and
41
+ * their auto-connections) and signal-connection tracking. It does not get the
42
+ * Factory mixin — a particle container holds particles, not display children.
43
+ *
44
+ * Caper's lifecycle `update()` hook shadows PIXI's own `update()`, which flags
45
+ * the particle buffers for re-upload, so the default implementation here calls
46
+ * through to it. Subclasses that override `update()` must call
47
+ * `super.update(ticker)`.
35
48
  */
36
- export class ParticleContainer extends PIXIParticleContainer implements IParticleContainer {
37
- onDestroy: Signal<() => void> = new Signal();
38
- static __caper_method_binding_root = true;
39
- private __config: ParticleContainerConfig;
40
-
49
+ export class ParticleContainer extends WithLifecycle(WithSignals(PIXIParticleContainer)) implements IParticleContainer {
41
50
  /**
42
- * The constructor for the Container class.
51
+ * The constructor for the ParticleContainer class.
43
52
  * @param config - The configuration for the container.
44
53
  */
45
54
  constructor(config: Partial<ParticleContainerConfig> = {}) {
46
55
  super(config);
47
- this.__config = { ...defaultConfig, ...config };
56
+ const { autoResize, autoUpdate, priority }: ParticleContainerConfig = { ...defaultConfig, ...config };
48
57
  // Bind all methods of this class to the current instance.
49
58
  bindAllMethods(this);
50
- // Add an event listener for the 'added' event.
51
- this.on('added', this._added);
52
- this.on('removed', this._removed);
59
+ // Wire up the shared lifecycle (adds the 'added' / 'removed' listeners).
60
+ this._initLifecycle({ autoResize, autoUpdate, resizePriority: priority, updatePriority: priority });
53
61
  }
54
62
 
55
63
  /**
56
- * Get the application instance.
57
- */
58
- public get app(): AppTypeOverrides['App'] {
59
- return Application.getInstance() as AppTypeOverrides['App'];
60
- }
61
- /**
62
- * Update the container. This method is meant to be overridden by subclasses.
64
+ * Flag the particle buffers for re-upload. `super.update()` would resolve to
65
+ * the lifecycle mixin's no-op hook, so PIXI's implementation is called
66
+ * directly.
63
67
  * @param ticker
64
68
  */
65
69
  public update(ticker?: Ticker | number) {
66
70
  void ticker;
67
- }
68
-
69
- /**
70
- * Resize the container. This method is meant to be overridden by subclasses.
71
- * @param size
72
- */
73
- public resize(size?: Size) {
74
- void size;
75
- }
76
-
77
- /**
78
- * This method is called when the container is added to the stage. It is meant to be overridden by subclasses.
79
- */
80
- public added() {}
81
-
82
- destroy(options?: DestroyOptions): void {
83
- if (this.__config.autoUpdate) {
84
- this.app.ticker.remove(this.update, this);
85
- }
86
- this.onDestroy.emit();
87
- super.destroy(options);
88
- }
89
-
90
- public removed() {}
91
- /**
92
- * This method is called when the container is added to the stage. It sets up auto-resizing and auto-updating if enabled.
93
- */
94
- private _added() {
95
- if (this.__config.autoUpdate) {
96
- this.app.ticker.add(this.update, this, this.__config.priority);
97
- }
98
- this.added();
99
- }
100
-
101
- private _removed() {
102
- if (this.__config.autoUpdate) {
103
- this.app.ticker.remove(this.update, this);
104
- }
105
- this.removed();
71
+ PIXIParticleContainer.prototype.update.call(this);
106
72
  }
107
73
  }
@@ -0,0 +1,79 @@
1
+ import { Container as PIXIContainer } from 'pixi.js';
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
+
4
+ // Registers the factory method table `Factory()` (part of SpineAnimation's mixin
5
+ // chain) reads from — must be imported before any display/ui class is
6
+ // constructed. See importOrder.containerFirst.test.ts.
7
+ import '../mixins/factory/const';
8
+ import { Signal } from '../signals';
9
+ import type { Size } from '../utils';
10
+ import { SpineAnimation } from './SpineAnimation';
11
+
12
+ class FakeSpine extends PIXIContainer {
13
+ public autoUpdate = true;
14
+ public state = {
15
+ data: { skeletonData: { animations: [{ name: 'idle' }] } },
16
+ addListener: vi.fn(),
17
+ removeListener: vi.fn(),
18
+ getCurrent: () => null,
19
+ setAnimation: vi.fn(),
20
+ };
21
+ }
22
+
23
+ class TestSpineAnimation extends SpineAnimation {
24
+ public resizeCalls: (Size | undefined)[] = [];
25
+
26
+ public resize(size?: Size) {
27
+ this.resizeCalls.push(size);
28
+ }
29
+ }
30
+
31
+ describe('SpineAnimation lifecycle', () => {
32
+ let app: { onResize: Signal<(size: Size) => void>; actions: () => Signal<() => void> };
33
+ let originalAppDescriptor: PropertyDescriptor | undefined;
34
+
35
+ beforeEach(() => {
36
+ app = {
37
+ onResize: new Signal<(size: Size) => void>(),
38
+ actions: () => new Signal<() => void>(),
39
+ };
40
+ (window as any).Spine = { from: () => new FakeSpine() };
41
+ // `app` is a getter on the mixin prototype; shadow it on SpineAnimation's
42
+ // own prototype so the constructor picks up the fake app.
43
+ originalAppDescriptor = Object.getOwnPropertyDescriptor(SpineAnimation.prototype, 'app');
44
+ Object.defineProperty(SpineAnimation.prototype, 'app', { get: () => app, configurable: true });
45
+ });
46
+
47
+ afterEach(() => {
48
+ if (originalAppDescriptor) {
49
+ Object.defineProperty(SpineAnimation.prototype, 'app', originalAppDescriptor);
50
+ } else {
51
+ delete (SpineAnimation.prototype as any).app;
52
+ }
53
+ delete (window as any).Spine;
54
+ });
55
+
56
+ it('routes app resizes to resize() once it has been added to the stage', () => {
57
+ const animation = new TestSpineAnimation();
58
+
59
+ // not on the stage yet — nothing is connected
60
+ app.onResize.emit({ width: 10, height: 20 });
61
+ expect(animation.resizeCalls).toEqual([]);
62
+
63
+ new PIXIContainer().addChild(animation);
64
+ app.onResize.emit({ width: 100, height: 50 });
65
+
66
+ expect(animation.resizeCalls).toEqual([{ width: 100, height: 50 }]);
67
+ });
68
+
69
+ it('disconnects resize when removed from the stage', () => {
70
+ const animation = new TestSpineAnimation();
71
+ const parent = new PIXIContainer();
72
+ parent.addChild(animation);
73
+
74
+ parent.removeChild(animation);
75
+ app.onResize.emit({ width: 100, height: 50 });
76
+
77
+ expect(animation.resizeCalls).toEqual([]);
78
+ });
79
+ });
@@ -1,12 +1,12 @@
1
1
  import { type AnimationStateListener, type Event, type TrackEntry } from '@esotericsoftware/spine-core';
2
- import { Application } from '../core/Application';
3
2
  import type { SpineProps } from '../mixins/factory/props';
4
3
  import { Factory } from '../mixins/factory/Factory';
4
+ import { WithLifecycle } from '../mixins/lifecycle';
5
5
  import { WithSignals } from '../mixins/signals';
6
6
  import { Signal } from '../signals';
7
7
  import { type AppTypeOverrides, bindAllMethods, Spine } from '../utils';
8
8
 
9
- const _SpineAnimation = WithSignals(Factory());
9
+ const _SpineAnimation = WithLifecycle(WithSignals(Factory()));
10
10
 
11
11
  export interface ISpineAnimation<ANames extends string = string> extends InstanceType<typeof _SpineAnimation> {
12
12
  readonly spine: Spine;
@@ -43,10 +43,6 @@ export class SpineAnimation<ANames extends string = string> extends _SpineAnimat
43
43
 
44
44
  protected _stateListener: AnimationStateListener;
45
45
 
46
- get app(): AppTypeOverrides['App'] {
47
- return Application.getInstance();
48
- }
49
-
50
46
  get animationNames(): ANames[] {
51
47
  return this.spine.state.data.skeletonData.animations.map((a) => a.name) as ANames[];
52
48
  }
@@ -65,6 +61,8 @@ export class SpineAnimation<ANames extends string = string> extends _SpineAnimat
65
61
  public constructor(props?: Partial<SpineProps>) {
66
62
  super();
67
63
  bindAllMethods(this);
64
+ // Wire up the shared lifecycle (adds the 'added' / 'removed' listeners).
65
+ this._initLifecycle();
68
66
  let data = props?.data;
69
67
  let spineData: { skeleton: string; atlas: string } | string = '';
70
68
  if (typeof data === 'string') {
@@ -142,7 +142,8 @@ export const defaultFactoryMethods = {
142
142
 
143
143
  svg(props: WithRequiredProps<SvgProps, 'ctx'>) {
144
144
  const entity = new Svg(props.ctx);
145
- const { position, x, y, pivot, scale, scaleX, scaleY, ctx: _ctx, ...rest } = props;
145
+ const { position, x, y, pivot, scale, scaleX, scaleY, ...rest } = props;
146
+ delete (rest as { ctx?: unknown }).ctx;
146
147
  resolvePosition({ position, x, y }, entity);
147
148
  resolveScale({ scale, scaleX, scaleY }, entity);
148
149
  resolvePivot(pivot, entity);
@@ -93,7 +93,6 @@ export function Focusable<TBase extends Constructor<Container>>(Base: TBase): TB
93
93
  return [this.getFocusArea().width, this.getFocusArea().height];
94
94
  }
95
95
 
96
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
97
96
  protected _onMouseOver(_e: MouseEvent) {
98
97
  this.app.focus.setFocus(this);
99
98
  }
@@ -107,7 +106,6 @@ export function Focusable<TBase extends Constructor<Container>>(Base: TBase): TB
107
106
  this.click();
108
107
  }
109
108
 
110
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
111
109
  protected _handleKeyUp(_e: KeyboardEvent) {}
112
110
 
113
111
  private _maybeEmit(type: string, e: FederatedEvent) {
@@ -3,3 +3,7 @@ export * from './animated';
3
3
  export * from './focus';
4
4
  export * from './interaction';
5
5
  export * from './factory';
6
+ // Appended last on purpose: `lifecycle` is already evaluated as a dependency of
7
+ // the display classes `./factory` pulls in, so this line adds no new module
8
+ // evaluation order. See the import-cycle notes in docs/wiki/mixins-and-factory.md.
9
+ export * from './lifecycle';