@liteforge/runtime 0.2.3 → 0.4.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/app.d.ts CHANGED
@@ -3,36 +3,31 @@
3
3
  *
4
4
  * Central app bootstrap: mounts root component, initializes stores,
5
5
  * sets up context, router, plugins, and debug utilities.
6
+ *
7
+ * Returns an AppBuilder that supports chained .use(plugin).mount().
8
+ * The AppBuilder is also a Thenable, so `await createApp(...)` works
9
+ * without an explicit .mount() call (backward compat).
6
10
  */
7
- import type { AppConfig, AppInstance } from './types.js';
11
+ import type { AppConfig, AppBuilder } from './types.js';
8
12
  /**
9
13
  * Create and bootstrap a LiteForge application.
10
14
  *
11
- * This is an async function that:
12
- * 1. Resolves the target element
13
- * 2. Builds the app context (custom context + router + stores)
14
- * 3. Runs plugin beforeInit hooks
15
- * 4. Initializes stores (calls initialize() if present)
16
- * 5. Starts the router (if present)
17
- * 6. Mounts the root component
18
- * 7. Runs plugin afterMount hooks
19
- * 8. Sets up debug utilities (if debug mode)
20
- * 9. Calls onReady callback
21
- *
22
- * @param config - Application configuration
23
- * @returns Promise resolving to the app instance
15
+ * Returns an AppBuilder with:
16
+ * - `.use(plugin)` register a new-style LiteForgePlugin (chainable)
17
+ * - `.mount()` async, performs full bootstrap
18
+ * - `.then()` Thenable for `await createApp(...)` backward compat
24
19
  *
25
20
  * @example
26
21
  * ```ts
27
- * const app = await createApp({
28
- * root: App,
29
- * target: '#app',
30
- * router: createAppRouter(),
31
- * stores: [authStore, uiStore],
32
- * context: { api: createApiClient() },
33
- * debug: true,
34
- * });
22
+ * // New pattern:
23
+ * const app = await createApp({ root: App, target: '#app' })
24
+ * .use(routerPlugin(options))
25
+ * .use(modalPlugin())
26
+ * .mount();
27
+ *
28
+ * // Old pattern (still works):
29
+ * const app = await createApp({ root: App, target: '#app', plugins: [devtoolsPlugin()] });
35
30
  * ```
36
31
  */
37
- export declare function createApp(config: AppConfig): Promise<AppInstance>;
32
+ export declare function createApp(config: AppConfig): AppBuilder;
38
33
  //# sourceMappingURL=app.d.ts.map
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EAIZ,MAAM,YAAY,CAAC;AAqBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAwSvE"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,UAAU,EAKX,MAAM,YAAY,CAAC;AAuBpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAsCvD"}
package/dist/app.js CHANGED
@@ -3,50 +3,77 @@
3
3
  *
4
4
  * Central app bootstrap: mounts root component, initializes stores,
5
5
  * sets up context, router, plugins, and debug utilities.
6
+ *
7
+ * Returns an AppBuilder that supports chained .use(plugin).mount().
8
+ * The AppBuilder is also a Thenable, so `await createApp(...)` works
9
+ * without an explicit .mount() call (backward compat).
6
10
  */
7
11
  import { initAppContext, clearContext, use } from './context.js';
8
12
  import { isComponentFactory } from './component.js';
9
13
  import { getHMRHandler } from './hmr.js';
14
+ import { createPluginContext } from './plugin-registry.js';
10
15
  // ============================================================================
11
- // createApp Implementation
16
+ // createApp — returns AppBuilder
12
17
  // ============================================================================
13
18
  /**
14
19
  * Create and bootstrap a LiteForge application.
15
20
  *
16
- * This is an async function that:
17
- * 1. Resolves the target element
18
- * 2. Builds the app context (custom context + router + stores)
19
- * 3. Runs plugin beforeInit hooks
20
- * 4. Initializes stores (calls initialize() if present)
21
- * 5. Starts the router (if present)
22
- * 6. Mounts the root component
23
- * 7. Runs plugin afterMount hooks
24
- * 8. Sets up debug utilities (if debug mode)
25
- * 9. Calls onReady callback
26
- *
27
- * @param config - Application configuration
28
- * @returns Promise resolving to the app instance
21
+ * Returns an AppBuilder with:
22
+ * - `.use(plugin)` register a new-style LiteForgePlugin (chainable)
23
+ * - `.mount()` async, performs full bootstrap
24
+ * - `.then()` Thenable for `await createApp(...)` backward compat
29
25
  *
30
26
  * @example
31
27
  * ```ts
32
- * const app = await createApp({
33
- * root: App,
34
- * target: '#app',
35
- * router: createAppRouter(),
36
- * stores: [authStore, uiStore],
37
- * context: { api: createApiClient() },
38
- * debug: true,
39
- * });
28
+ * // New pattern:
29
+ * const app = await createApp({ root: App, target: '#app' })
30
+ * .use(routerPlugin(options))
31
+ * .use(modalPlugin())
32
+ * .mount();
33
+ *
34
+ * // Old pattern (still works):
35
+ * const app = await createApp({ root: App, target: '#app', plugins: [devtoolsPlugin()] });
40
36
  * ```
41
37
  */
42
- export async function createApp(config) {
38
+ export function createApp(config) {
39
+ const newStylePlugins = [];
40
+ let mountCalled = false;
41
+ const builder = {
42
+ use(plugin) {
43
+ if (mountCalled) {
44
+ throw new Error(`[LiteForge] Cannot call .use() after .mount() — plugin "${plugin.name}" added too late.`);
45
+ }
46
+ newStylePlugins.push(plugin);
47
+ return builder;
48
+ },
49
+ mount() {
50
+ if (mountCalled) {
51
+ throw new Error('[LiteForge] .mount() has already been called.');
52
+ }
53
+ mountCalled = true;
54
+ return installAndMount(config, newStylePlugins);
55
+ },
56
+ then(onfulfilled, onrejected) {
57
+ return builder.mount().then(onfulfilled, onrejected);
58
+ },
59
+ catch(onrejected) {
60
+ return builder.mount().catch(onrejected);
61
+ },
62
+ };
63
+ return builder;
64
+ }
65
+ // ============================================================================
66
+ // installAndMount — the full bootstrap logic
67
+ // ============================================================================
68
+ async function installAndMount(config, newStylePlugins) {
43
69
  let rootInstance = null;
44
70
  let rootNode = null;
45
71
  let targetElement = null;
46
72
  let isMounted = false;
47
73
  const appContext = {};
48
74
  const storesMap = {};
49
- // Determine debug mode (auto-detect from Vite's import.meta.env.DEV)
75
+ const pluginCleanups = [];
76
+ // Determine debug mode
50
77
  const isDebug = config.debug ??
51
78
  (typeof globalThis !== 'undefined' &&
52
79
  globalThis.__DEV__ === true);
@@ -72,39 +99,55 @@ export async function createApp(config) {
72
99
  }
73
100
  // 2b. Router
74
101
  if (config.router) {
75
- appContext.router = config.router;
102
+ appContext['router'] = config.router;
76
103
  }
77
- // 2c. Stores - register under $name and with store: prefix
104
+ // 2c. Stores
78
105
  if (config.stores) {
79
106
  for (const store of config.stores) {
80
107
  storesMap[store.$name] = store;
81
108
  appContext[`store:${store.$name}`] = store;
82
- // Also register directly by name for convenience
83
109
  appContext[store.$name] = store;
84
110
  }
85
111
  }
86
- // 2d. Plugin provide values
87
- if (config.plugins) {
88
- for (const plugin of config.plugins) {
89
- if (plugin.provide) {
90
- Object.assign(appContext, plugin.provide);
91
- }
112
+ // ========================================
113
+ // 3. Duplicate-check all plugin names BEFORE any install()
114
+ // ========================================
115
+ const seenNames = new Set();
116
+ for (const plugin of newStylePlugins) {
117
+ if (seenNames.has(plugin.name)) {
118
+ throw new Error(`[LiteForge] Duplicate plugin name: "${plugin.name}". Each plugin must have a unique name.`);
92
119
  }
120
+ seenNames.add(plugin.name);
93
121
  }
94
122
  // ========================================
95
- // 3. Plugin beforeInit hooks
123
+ // 4. LiteForgePlugin install()
124
+ // On failure: run collected cleanups in reverse, then re-throw.
96
125
  // ========================================
97
- if (config.plugins) {
98
- for (const plugin of config.plugins) {
99
- if (plugin.beforeInit) {
100
- await plugin.beforeInit({ context: appContext });
126
+ const pluginCtx = createPluginContext(targetElement, appContext);
127
+ for (const plugin of newStylePlugins) {
128
+ try {
129
+ const cleanup = plugin.install(pluginCtx);
130
+ if (typeof cleanup === 'function') {
131
+ pluginCleanups.push(cleanup);
101
132
  }
102
133
  }
134
+ catch (err) {
135
+ // Run cleanups for already-installed plugins in reverse
136
+ for (let i = pluginCleanups.length - 1; i >= 0; i--) {
137
+ try {
138
+ pluginCleanups[i]();
139
+ }
140
+ catch { /* ignore cleanup errors */ }
141
+ }
142
+ throw err;
143
+ }
103
144
  }
104
- // Initialize app-level context (makes use() work)
145
+ // ========================================
146
+ // 6. Initialize app-level context
147
+ // ========================================
105
148
  initAppContext(appContext);
106
149
  // ========================================
107
- // 4. Initialize stores
150
+ // 7. Initialize stores
108
151
  // ========================================
109
152
  if (config.stores) {
110
153
  for (const store of config.stores) {
@@ -117,48 +160,39 @@ export async function createApp(config) {
117
160
  }
118
161
  }
119
162
  // ========================================
120
- // 5. Start router
163
+ // 8. Start router
121
164
  // ========================================
122
- if (config.router && 'start' in config.router && typeof config.router.start === 'function') {
165
+ if (config.router &&
166
+ 'start' in config.router &&
167
+ typeof config.router.start === 'function') {
123
168
  if (isDebug) {
124
169
  console.log('[LiteForge] Starting router...');
125
170
  }
126
171
  await config.router.start();
127
172
  }
128
173
  // ========================================
129
- // 6. Mount root component
174
+ // 9. Mount root component
130
175
  // ========================================
131
176
  const rootConfig = config.root;
132
177
  if (isComponentFactory(rootConfig)) {
133
- // It's a ComponentFactory from createComponent()
134
178
  rootInstance = rootConfig({});
135
179
  rootInstance.mount(targetElement);
136
180
  }
137
181
  else {
138
- // It's a simple render function () => Node
139
182
  rootNode = rootConfig();
140
183
  targetElement.appendChild(rootNode);
141
184
  }
142
185
  isMounted = true;
143
186
  // ========================================
144
- // 7. Plugin afterMount hooks
187
+ // 10. Build app instance
145
188
  // ========================================
146
- // Create app instance first so plugins can use it
147
- // Note: We build the object conditionally to satisfy exactOptionalPropertyTypes
148
189
  const app = Object.assign({
149
190
  unmount,
150
191
  use: createAppUse(appContext),
151
192
  stores: storesMap,
152
193
  }, config.router ? { router: config.router } : {});
153
- if (config.plugins) {
154
- for (const plugin of config.plugins) {
155
- if (plugin.afterMount) {
156
- await plugin.afterMount(app);
157
- }
158
- }
159
- }
160
194
  // ========================================
161
- // 8. Debug utilities
195
+ // 11. Debug utilities
162
196
  // ========================================
163
197
  if (isDebug && typeof window !== 'undefined') {
164
198
  const debugUtils = {
@@ -189,14 +223,12 @@ export async function createApp(config) {
189
223
  console.log('='.repeat(50));
190
224
  }
191
225
  // ========================================
192
- // 8b. HMR support
226
+ // 12b. HMR support
193
227
  // ========================================
194
228
  const hmrHandler = getHMRHandler();
195
229
  if (hmrHandler) {
196
230
  hmrHandler.fullRerender = () => {
197
231
  console.log('[LiteForge HMR] 🔄 Full app re-render (stores + router preserved)');
198
- // Set cooldown immediately to block any HMR updates triggered by
199
- // module re-evaluation during the synchronous remount cycle
200
232
  if (typeof window !== 'undefined') {
201
233
  if (window.__LITEFORGE_HMR_COOLDOWN__ !== undefined) {
202
234
  clearTimeout(window.__LITEFORGE_HMR_COOLDOWN__);
@@ -205,10 +237,8 @@ export async function createApp(config) {
205
237
  delete window.__LITEFORGE_HMR_COOLDOWN__;
206
238
  }, 200);
207
239
  }
208
- // Preserve scroll position across the re-render
209
240
  const scrollX = window.scrollX;
210
241
  const scrollY = window.scrollY;
211
- // Unmount current root
212
242
  if (rootInstance) {
213
243
  rootInstance.unmount();
214
244
  rootInstance = null;
@@ -217,8 +247,6 @@ export async function createApp(config) {
217
247
  rootNode.parentNode.removeChild(rootNode);
218
248
  rootNode = null;
219
249
  }
220
- // Re-mount root component — all factories read latest definitions
221
- // from the component registry (updated by createComponent on re-eval)
222
250
  if (targetElement) {
223
251
  if (isComponentFactory(config.root)) {
224
252
  rootInstance = config.root({});
@@ -229,12 +257,11 @@ export async function createApp(config) {
229
257
  targetElement.appendChild(rootNode);
230
258
  }
231
259
  }
232
- // Restore scroll after DOM settles
233
260
  requestAnimationFrame(() => { window.scrollTo(scrollX, scrollY); });
234
261
  };
235
262
  }
236
263
  // ========================================
237
- // 9. onReady callback
264
+ // 13. onReady callback
238
265
  // ========================================
239
266
  if (config.onReady) {
240
267
  config.onReady(app);
@@ -242,70 +269,59 @@ export async function createApp(config) {
242
269
  return app;
243
270
  }
244
271
  catch (error) {
245
- // Handle bootstrap errors
246
272
  const err = error instanceof Error ? error : new Error(String(error));
247
273
  if (config.onError) {
248
274
  config.onError(err);
249
275
  }
250
- // Re-throw so the promise rejects
251
276
  throw err;
252
277
  }
253
- // ========================================
278
+ // ============================================================================
254
279
  // Internal Functions
255
- // ========================================
280
+ // ============================================================================
256
281
  function unmount() {
257
282
  if (!isMounted)
258
283
  return;
259
- // Plugin beforeUnmount hooks
260
- if (config.plugins) {
261
- for (const plugin of config.plugins) {
262
- if (plugin.beforeUnmount) {
263
- const appForPlugin = Object.assign({
264
- unmount,
265
- use: createAppUse(appContext),
266
- stores: storesMap,
267
- }, config.router ? { router: config.router } : {});
268
- plugin.beforeUnmount(appForPlugin);
269
- }
284
+ // Plugin cleanups in REVERSE order
285
+ for (let i = pluginCleanups.length - 1; i >= 0; i--) {
286
+ try {
287
+ pluginCleanups[i]();
270
288
  }
289
+ catch { /* ignore cleanup errors */ }
271
290
  }
272
291
  // Unmount root component
273
292
  if (rootInstance) {
274
293
  rootInstance.unmount();
275
294
  rootInstance = null;
276
295
  }
277
- // Remove simple render function node
278
296
  if (rootNode && rootNode.parentNode) {
279
297
  rootNode.parentNode.removeChild(rootNode);
280
298
  rootNode = null;
281
299
  }
282
- // Clear target element
283
300
  if (targetElement) {
284
301
  targetElement.innerHTML = '';
285
302
  }
286
303
  // Stop router
287
- if (config.router && 'stop' in config.router && typeof config.router.stop === 'function') {
304
+ if (config.router &&
305
+ 'stop' in config.router &&
306
+ typeof config.router.stop === 'function') {
288
307
  config.router.stop();
289
308
  }
290
309
  // Remove debug utilities from window
291
310
  if (typeof window !== 'undefined' && '$lf' in window) {
292
311
  delete window.$lf;
293
312
  }
294
- // Clear context
295
313
  clearContext();
296
314
  isMounted = false;
297
315
  }
298
316
  }
299
- /**
300
- * Create a bound use() function for the app instance.
301
- * This allows accessing context from outside components.
302
- */
317
+ // ============================================================================
318
+ // Helpers
319
+ // ============================================================================
303
320
  function createAppUse(appContext) {
304
321
  return function appUse(key) {
305
322
  if (key in appContext) {
306
323
  return appContext[key];
307
324
  }
308
- // Fall back to global use() which checks the context stack
309
325
  return use(key);
310
326
  };
311
327
  }
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,12 @@
18
18
  * from the registry at call-time, picking up the new component/mounted/etc. fns
19
19
  */
20
20
  import type { ComponentDefinition, ComponentFactory, PropDefinition, InputPropsFromSchema, Simplify } from './types.js';
21
+ /**
22
+ * Register a cleanup function to run when the current component is destroyed.
23
+ * Must be called synchronously during `setup()`.
24
+ * Outside of setup(), this is a no-op.
25
+ */
26
+ export declare function onSetupCleanup(fn: () => void): void;
21
27
  /**
22
28
  * Create a component factory from a component definition.
23
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACT,MAAM,YAAY,CAAC;AA2BpB;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,EACrB,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EACb,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAGvG,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EACtD,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,EACxF,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EAEb,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAGlE,wBAAgB,eAAe,CAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EACb,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AA2UpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKrG"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAEhB,cAAc,EACd,oBAAoB,EACpB,QAAQ,EACT,MAAM,YAAY,CAAC;AAUpB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAEnD;AAsBD;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,EACrB,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EACb,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAGvG,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,EACtD,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAE,EACxF,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EAEb,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAC3D,gBAAgB,CAAC,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAGlE,wBAAgB,eAAe,CAC7B,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,CAAC,GAAG,SAAS,EACb,CAAC,GAAG,SAAS,EACb,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAqVpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKrG"}
package/dist/component.js CHANGED
@@ -22,6 +22,16 @@ import { use, withContext } from './context.js';
22
22
  import { registerComponent, getLatestDefinition } from './hmr.js';
23
23
  // Track parent component for debug hierarchy
24
24
  let currentParentComponentId;
25
+ // Setup-scope cleanup registry — populated during setup(), drained on unmount()
26
+ let currentSetupCleanups = null;
27
+ /**
28
+ * Register a cleanup function to run when the current component is destroyed.
29
+ * Must be called synchronously during `setup()`.
30
+ * Outside of setup(), this is a no-op.
31
+ */
32
+ export function onSetupCleanup(fn) {
33
+ currentSetupCleanups?.push(fn);
34
+ }
25
35
  // Check if we're in development mode
26
36
  const isDev = typeof import.meta !== 'undefined' && import.meta.env?.DEV === true;
27
37
  // ============================================================================
@@ -76,6 +86,7 @@ function createComponentInstance(definition, inputProps) {
76
86
  let setupResult;
77
87
  let loadedData;
78
88
  let mountedCleanup;
89
+ const setupCleanups = [];
79
90
  const hasProvide = Boolean(definition.provide);
80
91
  let provideContext;
81
92
  // currentDefinition is the frozen import binding. In dev mode with an hmrId
@@ -88,7 +99,10 @@ function createComponentInstance(definition, inputProps) {
88
99
  // Phase 1: Setup (synchronous)
89
100
  // ========================================
90
101
  if (currentDefinition.setup) {
102
+ const prevCleanups = currentSetupCleanups;
103
+ currentSetupCleanups = setupCleanups;
91
104
  setupResult = currentDefinition.setup({ props, use });
105
+ currentSetupCleanups = prevCleanups;
92
106
  }
93
107
  // ========================================
94
108
  // Lifecycle Methods
@@ -139,6 +153,14 @@ function createComponentInstance(definition, inputProps) {
139
153
  if (currentDefinition.destroyed) {
140
154
  currentDefinition.destroyed({ props, setup: setupResult });
141
155
  }
156
+ // Run setup-scope cleanups (registered via onSetupCleanup during setup())
157
+ for (let i = setupCleanups.length - 1; i >= 0; i--) {
158
+ try {
159
+ setupCleanups[i]();
160
+ }
161
+ catch { /* ignore */ }
162
+ }
163
+ setupCleanups.length = 0;
142
164
  // Run mounted cleanup
143
165
  if (mountedCleanup) {
144
166
  mountedCleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,9 @@ export interface ShowConfig<T = unknown> {
16
16
  }
17
17
  export declare function Show<T>(config: ShowConfig<T>): Node;
18
18
  /**
19
- * Config for For component (internal use).
20
- * Use ForProps<T> from types.ts for external typing.
19
+ * Config for For component.
20
+ * children receives plain values — the Vite plugin transforms item.x to () => item().x
21
+ * at compile time. Internally, For still uses signal-backed getters for performance.
21
22
  */
22
23
  export interface ForConfig<T> {
23
24
  each: (() => ReadonlyArray<T>) | (() => T[]) | ReadonlyArray<T> | T[];
@@ -28,17 +29,21 @@ export interface ForConfig<T> {
28
29
  /**
29
30
  * Render a list of items with keyed reconciliation.
30
31
  *
32
+ * When items reorder, DOM nodes are moved (not destroyed/recreated).
33
+ * When item data changes, the item signal is updated and reactive bindings auto-update.
34
+ *
31
35
  * @typeParam T - The item type, inferred from the `each` array
32
36
  *
33
37
  * @example
34
38
  * ```ts
35
39
  * For({
36
40
  * each: () => users(),
37
- * key: 'id',
41
+ * key: (user) => user.id,
38
42
  * children: (user, index) => {
39
- * return document.createTextNode(`${index}: ${user.name}`);
43
+ * // user() and index() are getters - read them inside reactive contexts
44
+ * return <div>{() => `${index()}: ${user().name}`}</div>;
40
45
  * },
41
- * fallback: () => document.createTextNode('No users'),
46
+ * fallback: () => <div>No users</div>,
42
47
  * })
43
48
  * ```
44
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"control-flow.d.ts","sourceRoot":"","sources":["../src/control-flow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAqB,gBAAgB,EAA4B,cAAc,EAAE,MAAM,YAAY,CAAC;AAsChH;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3C;AA6BD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CA0EnD;AAMD;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AASD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAyJjD;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA6EjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAEpD;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,SAAS,EAAE,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CA2FzF"}
1
+ {"version":3,"file":"control-flow.d.ts","sourceRoot":"","sources":["../src/control-flow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAqB,gBAAgB,EAA4B,cAAc,EAAE,MAAM,YAAY,CAAC;AAsChH;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3C;AA6BD,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CA0EnD;AASD;;;;GAIG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9D,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA+BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CA4OjD;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA6EjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAEpD;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,SAAS,EAAE,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CA2FzF"}