@scarlett-player/core 0.1.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.
- package/dist/error-handler.d.ts.map +1 -0
- package/dist/error-handler.js +300 -0
- package/dist/error-handler.js.map +1 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +407 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2271 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +272 -0
- package/dist/logger.js.map +1 -0
- package/dist/plugin-api.d.ts +147 -0
- package/dist/plugin-api.d.ts.map +1 -0
- package/dist/plugin-api.js +160 -0
- package/dist/plugin-api.js.map +1 -0
- package/dist/plugin-manager.d.ts +52 -0
- package/dist/plugin-manager.d.ts.map +1 -0
- package/dist/plugin-manager.js +224 -0
- package/dist/plugin-manager.js.map +1 -0
- package/dist/scarlett-player.d.ts +404 -0
- package/dist/scarlett-player.d.ts.map +1 -0
- package/dist/scarlett-player.js +769 -0
- package/dist/scarlett-player.js.map +1 -0
- package/dist/state/computed.d.ts.map +1 -0
- package/dist/state/computed.js +134 -0
- package/dist/state/computed.js.map +1 -0
- package/dist/state/effect.d.ts.map +1 -0
- package/dist/state/effect.js +77 -0
- package/dist/state/effect.js.map +1 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +9 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/signal.d.ts.map +1 -0
- package/dist/state/signal.js +126 -0
- package/dist/state/signal.js.map +1 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +334 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/types/events.d.ts +323 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +7 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +141 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +8 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/state.d.ts +232 -0
- package/dist/types/state.d.ts.map +1 -0
- package/dist/types/state.js +8 -0
- package/dist/types/state.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scarlett-player.js","sourceRoot":"","sources":["../src/scarlett-player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/state/computed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAqD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEjG;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,kBAAkB,CAAa;gBAE3B,WAAW,EAAE,MAAM,CAAC;IAMhC;;;;;;OAMG;IACH,GAAG,IAAI,CAAC;IAsBR;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAWlB;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,aAAa;IAK9C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf;;;OAGG;IACH,kBAAkB,IAAI,MAAM;CAG7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE7D"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computed - Derived reactive values for Scarlett Player.
|
|
3
|
+
*
|
|
4
|
+
* Computed values are lazy-evaluated and cached until dependencies change.
|
|
5
|
+
*
|
|
6
|
+
* Target size: ~400 bytes minified
|
|
7
|
+
*/
|
|
8
|
+
import { currentEffect, setCurrentEffect, getCurrentEffect } from './effect';
|
|
9
|
+
/**
|
|
10
|
+
* A computed signal that derives its value from other signals.
|
|
11
|
+
*
|
|
12
|
+
* The computation is lazy (only runs when accessed) and cached
|
|
13
|
+
* until dependencies change.
|
|
14
|
+
*
|
|
15
|
+
* @template T - The type of computed value
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const count = signal(0);
|
|
20
|
+
* const doubled = new Computed(() => count.get() * 2);
|
|
21
|
+
*
|
|
22
|
+
* doubled.get(); // 0
|
|
23
|
+
* count.set(5);
|
|
24
|
+
* doubled.get(); // 10
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class Computed {
|
|
28
|
+
constructor(computation) {
|
|
29
|
+
this.dirty = true;
|
|
30
|
+
this.subscribers = new Set();
|
|
31
|
+
this.dependencies = new Set();
|
|
32
|
+
this.computation = computation;
|
|
33
|
+
// Create invalidate callback once to avoid creating new functions
|
|
34
|
+
this.invalidateCallback = () => this.invalidate();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the computed value, tracking dependency if in effect context.
|
|
38
|
+
*
|
|
39
|
+
* Recomputes if dirty, otherwise returns cached value.
|
|
40
|
+
*
|
|
41
|
+
* @returns Computed value
|
|
42
|
+
*/
|
|
43
|
+
get() {
|
|
44
|
+
if (this.dirty) {
|
|
45
|
+
// Run computation with this computed as the current effect
|
|
46
|
+
const prevEffect = getCurrentEffect();
|
|
47
|
+
setCurrentEffect(this.invalidateCallback);
|
|
48
|
+
try {
|
|
49
|
+
this.value = this.computation();
|
|
50
|
+
this.dirty = false;
|
|
51
|
+
}
|
|
52
|
+
finally {
|
|
53
|
+
setCurrentEffect(prevEffect);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Track dependency if in effect context
|
|
57
|
+
if (currentEffect) {
|
|
58
|
+
this.subscribers.add(currentEffect);
|
|
59
|
+
}
|
|
60
|
+
return this.value;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Mark the computed value as dirty (needs recomputation).
|
|
64
|
+
*
|
|
65
|
+
* Called when a dependency changes.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
invalidate() {
|
|
69
|
+
const wasDirty = this.dirty;
|
|
70
|
+
this.dirty = true;
|
|
71
|
+
// Always notify subscribers when invalidated, even if already dirty
|
|
72
|
+
// This ensures subscribers know when dependencies have changed
|
|
73
|
+
if (!wasDirty || this.subscribers.size > 0) {
|
|
74
|
+
this.notifySubscribers();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Subscribe to computed value changes.
|
|
79
|
+
*
|
|
80
|
+
* @param callback - Function to call when computed value may have changed
|
|
81
|
+
* @returns Unsubscribe function
|
|
82
|
+
*/
|
|
83
|
+
subscribe(callback) {
|
|
84
|
+
this.subscribers.add(callback);
|
|
85
|
+
return () => this.subscribers.delete(callback);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Notify subscribers that this computed value needs recomputation.
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
notifySubscribers() {
|
|
92
|
+
this.subscribers.forEach(subscriber => {
|
|
93
|
+
try {
|
|
94
|
+
subscriber();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error('[Scarlett Player] Error in computed subscriber:', error);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clean up all subscriptions.
|
|
103
|
+
*/
|
|
104
|
+
destroy() {
|
|
105
|
+
this.dependencies.forEach(unsub => unsub());
|
|
106
|
+
this.dependencies.clear();
|
|
107
|
+
this.subscribers.clear();
|
|
108
|
+
this.value = undefined;
|
|
109
|
+
this.dirty = true;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the current number of subscribers (for debugging).
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
getSubscriberCount() {
|
|
116
|
+
return this.subscribers.size;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Helper function to create a computed signal.
|
|
121
|
+
*
|
|
122
|
+
* @param computation - Function that computes the derived value
|
|
123
|
+
* @returns New computed instance
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* const playing = signal(false);
|
|
128
|
+
* const paused = computed(() => !playing.get());
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
export function computed(computation) {
|
|
132
|
+
return new Computed(computation);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=computed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/state/computed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC;AAEjG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,QAAQ;IAQnB,YAAY,WAAoB;QANxB,UAAK,GAAG,IAAI,CAAC;QACb,gBAAW,GAAG,IAAI,GAAG,EAAc,CAAC;QAEpC,iBAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;QAI9C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,kEAAkE;QAClE,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,2DAA2D;YAC3D,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;YACtC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAE1C,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAoB;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC;gBACH,UAAU,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAI,WAAoB;IAC9C,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../src/state/effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;;GAGG;AACH,eAAO,IAAI,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAW,CAAC;AAErD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAGlE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,aAAa,CAsBpD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect tracking for automatic dependency management in signals.
|
|
3
|
+
*
|
|
4
|
+
* When a signal is accessed within an effect, it automatically
|
|
5
|
+
* subscribes the effect to that signal's updates.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Effect context that can be modified
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const effectContext = {
|
|
12
|
+
current: null,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Currently executing effect (for dependency tracking)
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export let currentEffect = null;
|
|
19
|
+
/**
|
|
20
|
+
* Set the current effect context (used internally by computed)
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export function setCurrentEffect(effect) {
|
|
24
|
+
effectContext.current = effect;
|
|
25
|
+
currentEffect = effect;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the current effect context
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export function getCurrentEffect() {
|
|
32
|
+
return effectContext.current;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a reactive effect that runs when its dependencies change.
|
|
36
|
+
*
|
|
37
|
+
* The effect runs immediately and tracks any signals accessed during execution.
|
|
38
|
+
* When those signals change, the effect re-runs automatically.
|
|
39
|
+
*
|
|
40
|
+
* @param fn - Function to run as an effect
|
|
41
|
+
* @returns Unsubscribe function to stop the effect
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const count = signal(0);
|
|
46
|
+
*
|
|
47
|
+
* effect(() => {
|
|
48
|
+
* console.log('Count:', count.get());
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* count.set(1); // Logs: "Count: 1"
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function effect(fn) {
|
|
55
|
+
const execute = () => {
|
|
56
|
+
// Set as current effect for dependency tracking
|
|
57
|
+
setCurrentEffect(execute);
|
|
58
|
+
try {
|
|
59
|
+
fn();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('[Scarlett Player] Error in effect:', error);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
// Clear current effect
|
|
67
|
+
setCurrentEffect(null);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
// Run immediately to establish dependencies
|
|
71
|
+
execute();
|
|
72
|
+
// Return cleanup function (can be extended for unsubscribing)
|
|
73
|
+
return () => {
|
|
74
|
+
// Future: Add unsubscribe logic if needed
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=effect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect.js","sourceRoot":"","sources":["../../src/state/effect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,IAA2B;CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAI,aAAa,GAAwB,IAAI,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC;IAC/B,aAAa,GAAG,MAAM,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAC,OAAO,CAAC;AAC/B,CAAC;AAOD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,MAAM,CAAC,EAAc;IACnC,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,gDAAgD;QAChD,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,EAAE,EAAE,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,uBAAuB;YACvB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,4CAA4C;IAC5C,OAAO,EAAE,CAAC;IAEV,8DAA8D;IAC9D,OAAO,GAAG,EAAE;QACV,0CAA0C;IAC5C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scarlett Player - Custom Signals (~2KB)
|
|
3
|
+
*
|
|
4
|
+
* Lightweight reactive state management with automatic dependency tracking.
|
|
5
|
+
*/
|
|
6
|
+
export { Signal, signal } from './signal';
|
|
7
|
+
export { Computed, computed } from './computed';
|
|
8
|
+
export { effect, currentEffect, setCurrentEffect, getCurrentEffect } from './effect';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,WAAW,CAAyB;gBAEhC,YAAY,EAAE,CAAC;IAI3B;;;;OAIG;IACH,GAAG,IAAI,CAAC;IAQR;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;IAUtB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,aAAa;IAK9C;;;OAGG;IACH,OAAO,CAAC,MAAM;IAUd;;;OAGG;IACH,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,kBAAkB,IAAI,MAAM;CAG7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAEpD"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signal - Core reactive primitive for Scarlett Player.
|
|
3
|
+
*
|
|
4
|
+
* Signals are observable values that automatically track dependencies
|
|
5
|
+
* and notify subscribers when the value changes.
|
|
6
|
+
*
|
|
7
|
+
* Target size: ~500 bytes minified
|
|
8
|
+
*/
|
|
9
|
+
import { currentEffect } from './effect';
|
|
10
|
+
/**
|
|
11
|
+
* A reactive signal that holds a value and notifies subscribers on changes.
|
|
12
|
+
*
|
|
13
|
+
* @template T - The type of value held by this signal
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const count = new Signal(0);
|
|
18
|
+
*
|
|
19
|
+
* // Subscribe to changes
|
|
20
|
+
* const unsub = count.subscribe(() => {
|
|
21
|
+
* console.log('Count changed:', count.get());
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* count.set(1); // Logs: "Count changed: 1"
|
|
25
|
+
* unsub(); // Stop listening
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class Signal {
|
|
29
|
+
constructor(initialValue) {
|
|
30
|
+
this.subscribers = new Set();
|
|
31
|
+
this.value = initialValue;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the current value and track dependency if called within an effect.
|
|
35
|
+
*
|
|
36
|
+
* @returns Current value
|
|
37
|
+
*/
|
|
38
|
+
get() {
|
|
39
|
+
// Track dependency if in effect context
|
|
40
|
+
if (currentEffect) {
|
|
41
|
+
this.subscribers.add(currentEffect);
|
|
42
|
+
}
|
|
43
|
+
return this.value;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Set a new value and notify subscribers if changed.
|
|
47
|
+
*
|
|
48
|
+
* @param newValue - New value to set
|
|
49
|
+
*/
|
|
50
|
+
set(newValue) {
|
|
51
|
+
// Skip if value hasn't changed
|
|
52
|
+
if (Object.is(this.value, newValue)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.value = newValue;
|
|
56
|
+
this.notify();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Update the value using a function.
|
|
60
|
+
*
|
|
61
|
+
* @param updater - Function that receives current value and returns new value
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* const count = new Signal(0);
|
|
66
|
+
* count.update(n => n + 1); // Increments by 1
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
update(updater) {
|
|
70
|
+
this.set(updater(this.value));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Subscribe to changes without automatic dependency tracking.
|
|
74
|
+
*
|
|
75
|
+
* @param callback - Function to call when value changes
|
|
76
|
+
* @returns Unsubscribe function
|
|
77
|
+
*/
|
|
78
|
+
subscribe(callback) {
|
|
79
|
+
this.subscribers.add(callback);
|
|
80
|
+
return () => this.subscribers.delete(callback);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Notify all subscribers of a change.
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
notify() {
|
|
87
|
+
this.subscribers.forEach(subscriber => {
|
|
88
|
+
try {
|
|
89
|
+
subscriber();
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.error('[Scarlett Player] Error in signal subscriber:', error);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Clean up all subscriptions.
|
|
98
|
+
* Call this when destroying the signal.
|
|
99
|
+
*/
|
|
100
|
+
destroy() {
|
|
101
|
+
this.subscribers.clear();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the current number of subscribers (for debugging).
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
getSubscriberCount() {
|
|
108
|
+
return this.subscribers.size;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Helper function to create a signal.
|
|
113
|
+
*
|
|
114
|
+
* @param initialValue - Initial value for the signal
|
|
115
|
+
* @returns New signal instance
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* const playing = signal(false);
|
|
120
|
+
* playing.set(true);
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export function signal(initialValue) {
|
|
124
|
+
return new Signal(initialValue);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal.js","sourceRoot":"","sources":["../../src/state/signal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAsB,MAAM,UAAU,CAAC;AAE7D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,MAAM;IAIjB,YAAY,YAAe;QAFnB,gBAAW,GAAG,IAAI,GAAG,EAAc,CAAC;QAG1C,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,GAAG;QACD,wCAAwC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,QAAW;QACb,+BAA+B;QAC/B,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAA0B;QAC/B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAoB;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACK,MAAM;QACZ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC;gBACH,UAAU,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAI,YAAe;IACvC,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AA4ExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,YAAY;IACvB,oCAAoC;IACpC,OAAO,CAAC,OAAO,CAAoC;IAEnD,sCAAsC;IACtC,OAAO,CAAC,iBAAiB,CAAgD;IAEzE;;;;OAIG;gBACS,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;IAI9C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;;;;;;;;OAYG;IACH,GAAG,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAQtD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAInD;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAI3D;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IASlC;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,CAAC,SAAS,QAAQ,EAC/B,GAAG,EAAE,CAAC,EACN,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GACvC,MAAM,IAAI;IAOb;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKlE;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;;;;;;OAOG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IAK1C;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC;IAUhC;;;;;;OAMG;IACH,kBAAkB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM;IAIzC;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;CAQhB"}
|