@tachui/cli 0.8.1-alpha → 0.8.5-alpha
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/README.md +15 -0
- package/bin/tacho.js +57 -7
- package/dist/cli/src/commands/analyze-imports.d.ts +18 -0
- package/dist/cli/src/commands/analyze-imports.d.ts.map +1 -0
- package/dist/cli/src/commands/analyze-imports.js +152 -0
- package/dist/cli/src/commands/analyze-imports.js.map +1 -0
- package/dist/cli/src/commands/analyze.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/analyze.js +1 -1
- package/dist/cli/src/commands/analyze.js.map +1 -0
- package/dist/cli/src/commands/dev.d.ts.map +1 -0
- package/dist/cli/src/commands/dev.js.map +1 -0
- package/dist/cli/src/commands/generate.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/generate.js +0 -21
- package/dist/cli/src/commands/generate.js.map +1 -0
- package/dist/cli/src/commands/init.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/init.js +1 -28
- package/dist/cli/src/commands/init.js.map +1 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts +3 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.d.ts.map +1 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.js +103 -0
- package/dist/cli/src/commands/migrate/remove-modifier-trigger.js.map +1 -0
- package/dist/cli/src/commands/migrate.d.ts.map +1 -0
- package/dist/{commands → cli/src/commands}/migrate.js +5 -3
- package/dist/cli/src/commands/migrate.js.map +1 -0
- package/dist/cli/src/commands/modifier-docs.d.ts +24 -0
- package/dist/cli/src/commands/modifier-docs.d.ts.map +1 -0
- package/dist/cli/src/commands/modifier-docs.js +375 -0
- package/dist/cli/src/commands/modifier-docs.js.map +1 -0
- package/dist/cli/src/commands/optimize.d.ts.map +1 -0
- package/dist/cli/src/commands/optimize.js.map +1 -0
- package/dist/cli/src/import-optimizer.d.ts +50 -0
- package/dist/cli/src/import-optimizer.d.ts.map +1 -0
- package/dist/cli/src/import-optimizer.js +227 -0
- package/dist/cli/src/import-optimizer.js.map +1 -0
- package/dist/cli/src/index.d.ts.map +1 -0
- package/dist/{index.js → cli/src/index.js} +14 -3
- package/dist/cli/src/index.js.map +1 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.d.ts +7 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.d.ts.map +1 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.js +99 -0
- package/dist/cli/src/migrations/remove-modifier-trigger.js.map +1 -0
- package/dist/core/package.json +223 -0
- package/dist/core/src/assets/Asset.d.ts +11 -0
- package/dist/core/src/assets/Asset.d.ts.map +1 -0
- package/dist/core/src/assets/Asset.js +12 -0
- package/dist/core/src/assets/Asset.js.map +1 -0
- package/dist/core/src/assets/AssetCollection.d.ts +14 -0
- package/dist/core/src/assets/AssetCollection.d.ts.map +1 -0
- package/dist/core/src/assets/AssetCollection.js +133 -0
- package/dist/core/src/assets/AssetCollection.js.map +1 -0
- package/dist/core/src/assets/ColorAsset.d.ts +31 -0
- package/dist/core/src/assets/ColorAsset.d.ts.map +1 -0
- package/dist/core/src/assets/ColorAsset.js +182 -0
- package/dist/core/src/assets/ColorAsset.js.map +1 -0
- package/dist/core/src/assets/FontAsset.d.ts +114 -0
- package/dist/core/src/assets/FontAsset.d.ts.map +1 -0
- package/dist/core/src/assets/FontAsset.js +289 -0
- package/dist/core/src/assets/FontAsset.js.map +1 -0
- package/dist/core/src/assets/ImageAsset.d.ts +35 -0
- package/dist/core/src/assets/ImageAsset.d.ts.map +1 -0
- package/dist/core/src/assets/ImageAsset.js +69 -0
- package/dist/core/src/assets/ImageAsset.js.map +1 -0
- package/dist/core/src/assets/index.d.ts +27 -0
- package/dist/core/src/assets/index.d.ts.map +1 -0
- package/dist/core/src/assets/index.js +137 -0
- package/dist/core/src/assets/index.js.map +1 -0
- package/dist/core/src/assets/types.d.ts +10 -0
- package/dist/core/src/assets/types.d.ts.map +1 -0
- package/dist/core/src/assets/types.js +6 -0
- package/dist/core/src/assets/types.js.map +1 -0
- package/dist/core/src/compiler/advanced-parser.d.ts +113 -0
- package/dist/core/src/compiler/advanced-parser.d.ts.map +1 -0
- package/dist/core/src/compiler/advanced-parser.js +702 -0
- package/dist/core/src/compiler/advanced-parser.js.map +1 -0
- package/dist/core/src/compiler/codegen.d.ts +20 -0
- package/dist/core/src/compiler/codegen.d.ts.map +1 -0
- package/dist/core/src/compiler/codegen.js +509 -0
- package/dist/core/src/compiler/codegen.js.map +1 -0
- package/dist/core/src/compiler/enhanced-codegen.d.ts +121 -0
- package/dist/core/src/compiler/enhanced-codegen.d.ts.map +1 -0
- package/dist/core/src/compiler/enhanced-codegen.js +607 -0
- package/dist/core/src/compiler/enhanced-codegen.js.map +1 -0
- package/dist/core/src/compiler/index.d.ts +14 -0
- package/dist/core/src/compiler/index.d.ts.map +1 -0
- package/dist/core/src/compiler/index.js +12 -0
- package/dist/core/src/compiler/index.js.map +1 -0
- package/dist/core/src/compiler/parser.d.ts +12 -0
- package/dist/core/src/compiler/parser.d.ts.map +1 -0
- package/dist/core/src/compiler/parser.js +407 -0
- package/dist/core/src/compiler/parser.js.map +1 -0
- package/dist/core/src/compiler/plugin.d.ts +13 -0
- package/dist/core/src/compiler/plugin.d.ts.map +1 -0
- package/dist/core/src/compiler/plugin.js +456 -0
- package/dist/core/src/compiler/plugin.js.map +1 -0
- package/dist/core/src/compiler/types.d.ts +177 -0
- package/dist/core/src/compiler/types.d.ts.map +1 -0
- package/dist/core/src/compiler/types.js +5 -0
- package/dist/core/src/compiler/types.js.map +1 -0
- package/dist/core/src/components/factory.d.ts +24 -0
- package/dist/core/src/components/factory.d.ts.map +1 -0
- package/dist/core/src/components/factory.js +19 -0
- package/dist/core/src/components/factory.js.map +1 -0
- package/dist/core/src/components/index.d.ts +12 -0
- package/dist/core/src/components/index.d.ts.map +1 -0
- package/dist/core/src/components/index.js +9 -0
- package/dist/core/src/components/index.js.map +1 -0
- package/dist/core/src/components/wrapper.d.ts +142 -0
- package/dist/core/src/components/wrapper.d.ts.map +1 -0
- package/dist/core/src/components/wrapper.js +628 -0
- package/dist/core/src/components/wrapper.js.map +1 -0
- package/dist/core/src/concatenation/concatenatable.d.ts +63 -0
- package/dist/core/src/concatenation/concatenatable.d.ts.map +1 -0
- package/dist/core/src/concatenation/concatenatable.js +158 -0
- package/dist/core/src/concatenation/concatenatable.js.map +1 -0
- package/dist/core/src/concatenation/concatenated-component.d.ts +124 -0
- package/dist/core/src/concatenation/concatenated-component.d.ts.map +1 -0
- package/dist/core/src/concatenation/concatenated-component.js +447 -0
- package/dist/core/src/concatenation/concatenated-component.js.map +1 -0
- package/dist/core/src/concatenation/index.d.ts +13 -0
- package/dist/core/src/concatenation/index.d.ts.map +1 -0
- package/dist/core/src/concatenation/index.js +16 -0
- package/dist/core/src/concatenation/index.js.map +1 -0
- package/dist/core/src/concatenation/text-optimizer.d.ts +104 -0
- package/dist/core/src/concatenation/text-optimizer.d.ts.map +1 -0
- package/dist/core/src/concatenation/text-optimizer.js +349 -0
- package/dist/core/src/concatenation/text-optimizer.js.map +1 -0
- package/dist/core/src/concatenation/types.d.ts +88 -0
- package/dist/core/src/concatenation/types.d.ts.map +1 -0
- package/dist/core/src/concatenation/types.js +23 -0
- package/dist/core/src/concatenation/types.js.map +1 -0
- package/dist/core/src/config.d.ts +7 -0
- package/dist/core/src/config.d.ts.map +1 -0
- package/dist/core/src/config.js +17 -0
- package/dist/core/src/config.js.map +1 -0
- package/dist/core/src/constants/frame-utils.d.ts +68 -0
- package/dist/core/src/constants/frame-utils.d.ts.map +1 -0
- package/dist/core/src/constants/frame-utils.js +156 -0
- package/dist/core/src/constants/frame-utils.js.map +1 -0
- package/dist/core/src/constants/index.d.ts +8 -0
- package/dist/core/src/constants/index.d.ts.map +1 -0
- package/dist/core/src/constants/index.js +8 -0
- package/dist/core/src/constants/index.js.map +1 -0
- package/dist/core/src/constants/layout.d.ts +96 -0
- package/dist/core/src/constants/layout.d.ts.map +1 -0
- package/dist/core/src/constants/layout.js +124 -0
- package/dist/core/src/constants/layout.js.map +1 -0
- package/dist/core/src/css-classes/component-base.d.ts +40 -0
- package/dist/core/src/css-classes/component-base.d.ts.map +1 -0
- package/dist/core/src/css-classes/component-base.js +90 -0
- package/dist/core/src/css-classes/component-base.js.map +1 -0
- package/dist/core/src/css-classes/css-class-manager.d.ts +89 -0
- package/dist/core/src/css-classes/css-class-manager.d.ts.map +1 -0
- package/dist/core/src/css-classes/css-class-manager.js +328 -0
- package/dist/core/src/css-classes/css-class-manager.js.map +1 -0
- package/dist/core/src/css-classes/dom-integration.d.ts +76 -0
- package/dist/core/src/css-classes/dom-integration.d.ts.map +1 -0
- package/dist/core/src/css-classes/dom-integration.js +104 -0
- package/dist/core/src/css-classes/dom-integration.js.map +1 -0
- package/dist/core/src/css-classes/enhanced-renderer.d.ts +42 -0
- package/dist/core/src/css-classes/enhanced-renderer.d.ts.map +1 -0
- package/dist/core/src/css-classes/enhanced-renderer.js +121 -0
- package/dist/core/src/css-classes/enhanced-renderer.js.map +1 -0
- package/dist/core/src/css-classes/index.d.ts +14 -0
- package/dist/core/src/css-classes/index.d.ts.map +1 -0
- package/dist/core/src/css-classes/index.js +14 -0
- package/dist/core/src/css-classes/index.js.map +1 -0
- package/dist/core/src/css-classes/types.d.ts +59 -0
- package/dist/core/src/css-classes/types.d.ts.map +1 -0
- package/dist/core/src/css-classes/types.js +8 -0
- package/dist/core/src/css-classes/types.js.map +1 -0
- package/dist/core/src/css-classes/utilities.d.ts +104 -0
- package/dist/core/src/css-classes/utilities.d.ts.map +1 -0
- package/dist/core/src/css-classes/utilities.js +126 -0
- package/dist/core/src/css-classes/utilities.js.map +1 -0
- package/dist/core/src/gradients/css-generator.d.ts +10 -0
- package/dist/core/src/gradients/css-generator.d.ts.map +1 -0
- package/dist/core/src/gradients/css-generator.js +123 -0
- package/dist/core/src/gradients/css-generator.js.map +1 -0
- package/dist/core/src/gradients/examples.d.ts +432 -0
- package/dist/core/src/gradients/examples.d.ts.map +1 -0
- package/dist/core/src/gradients/examples.js +588 -0
- package/dist/core/src/gradients/examples.js.map +1 -0
- package/dist/core/src/gradients/gradient-asset.d.ts +10 -0
- package/dist/core/src/gradients/gradient-asset.d.ts.map +1 -0
- package/dist/core/src/gradients/gradient-asset.js +25 -0
- package/dist/core/src/gradients/gradient-asset.js.map +1 -0
- package/dist/core/src/gradients/index.d.ts +19 -0
- package/dist/core/src/gradients/index.d.ts.map +1 -0
- package/dist/core/src/gradients/index.js +56 -0
- package/dist/core/src/gradients/index.js.map +1 -0
- package/dist/core/src/gradients/performance.d.ts +146 -0
- package/dist/core/src/gradients/performance.d.ts.map +1 -0
- package/dist/core/src/gradients/performance.js +413 -0
- package/dist/core/src/gradients/performance.js.map +1 -0
- package/dist/core/src/gradients/presets.d.ts +165 -0
- package/dist/core/src/gradients/presets.d.ts.map +1 -0
- package/dist/core/src/gradients/presets.js +371 -0
- package/dist/core/src/gradients/presets.js.map +1 -0
- package/dist/core/src/gradients/reactive.d.ts +167 -0
- package/dist/core/src/gradients/reactive.d.ts.map +1 -0
- package/dist/core/src/gradients/reactive.js +329 -0
- package/dist/core/src/gradients/reactive.js.map +1 -0
- package/dist/core/src/gradients/state-gradient-asset.d.ts +67 -0
- package/dist/core/src/gradients/state-gradient-asset.d.ts.map +1 -0
- package/dist/core/src/gradients/state-gradient-asset.js +145 -0
- package/dist/core/src/gradients/state-gradient-asset.js.map +1 -0
- package/dist/core/src/gradients/types.d.ts +6 -0
- package/dist/core/src/gradients/types.d.ts.map +1 -0
- package/dist/core/src/gradients/types.js +6 -0
- package/dist/core/src/gradients/types.js.map +1 -0
- package/dist/core/src/gradients/utils.d.ts +313 -0
- package/dist/core/src/gradients/utils.d.ts.map +1 -0
- package/dist/core/src/gradients/utils.js +513 -0
- package/dist/core/src/gradients/utils.js.map +1 -0
- package/dist/core/src/gradients/validation.d.ts +156 -0
- package/dist/core/src/gradients/validation.d.ts.map +1 -0
- package/dist/core/src/gradients/validation.js +392 -0
- package/dist/core/src/gradients/validation.js.map +1 -0
- package/dist/core/src/index.d.ts +33 -0
- package/dist/core/src/index.d.ts.map +1 -0
- package/dist/core/src/index.js +57 -0
- package/dist/core/src/index.js.map +1 -0
- package/dist/core/src/lifecycle/hooks.d.ts +101 -0
- package/dist/core/src/lifecycle/hooks.d.ts.map +1 -0
- package/dist/core/src/lifecycle/hooks.js +241 -0
- package/dist/core/src/lifecycle/hooks.js.map +1 -0
- package/dist/core/src/modifiers/alignment.d.ts +5 -0
- package/dist/core/src/modifiers/alignment.d.ts.map +1 -0
- package/dist/core/src/modifiers/alignment.js +19 -0
- package/dist/core/src/modifiers/alignment.js.map +1 -0
- package/dist/core/src/modifiers/base.d.ts +128 -0
- package/dist/core/src/modifiers/base.d.ts.map +1 -0
- package/dist/core/src/modifiers/base.js +1062 -0
- package/dist/core/src/modifiers/base.js.map +1 -0
- package/dist/core/src/modifiers/builder.d.ts +148 -0
- package/dist/core/src/modifiers/builder.d.ts.map +1 -0
- package/dist/core/src/modifiers/builder.js +903 -0
- package/dist/core/src/modifiers/builder.js.map +1 -0
- package/dist/core/src/modifiers/core.d.ts +14 -0
- package/dist/core/src/modifiers/core.d.ts.map +1 -0
- package/dist/core/src/modifiers/core.js +16 -0
- package/dist/core/src/modifiers/core.js.map +1 -0
- package/dist/core/src/modifiers/corner-radius.d.ts +8 -0
- package/dist/core/src/modifiers/corner-radius.d.ts.map +1 -0
- package/dist/core/src/modifiers/corner-radius.js +19 -0
- package/dist/core/src/modifiers/corner-radius.js.map +1 -0
- package/dist/core/src/modifiers/factories.d.ts +88 -0
- package/dist/core/src/modifiers/factories.d.ts.map +1 -0
- package/dist/core/src/modifiers/factories.js +376 -0
- package/dist/core/src/modifiers/factories.js.map +1 -0
- package/dist/core/src/modifiers/index.d.ts +17 -0
- package/dist/core/src/modifiers/index.d.ts.map +1 -0
- package/dist/core/src/modifiers/index.js +16 -0
- package/dist/core/src/modifiers/index.js.map +1 -0
- package/dist/core/src/modifiers/layout-priority.d.ts +8 -0
- package/dist/core/src/modifiers/layout-priority.d.ts.map +1 -0
- package/dist/core/src/modifiers/layout-priority.js +19 -0
- package/dist/core/src/modifiers/layout-priority.js.map +1 -0
- package/dist/core/src/modifiers/opacity.d.ts +8 -0
- package/dist/core/src/modifiers/opacity.d.ts.map +1 -0
- package/dist/core/src/modifiers/opacity.js +19 -0
- package/dist/core/src/modifiers/opacity.js.map +1 -0
- package/dist/core/src/modifiers/presets.d.ts +368 -0
- package/dist/core/src/modifiers/presets.d.ts.map +1 -0
- package/dist/core/src/modifiers/presets.js +394 -0
- package/dist/core/src/modifiers/presets.js.map +1 -0
- package/dist/core/src/modifiers/proxy.d.ts +4 -0
- package/dist/core/src/modifiers/proxy.d.ts.map +1 -0
- package/dist/core/src/modifiers/proxy.js +212 -0
- package/dist/core/src/modifiers/proxy.js.map +1 -0
- package/dist/core/src/modifiers/registration-utils.d.ts +7 -0
- package/dist/core/src/modifiers/registration-utils.d.ts.map +1 -0
- package/dist/core/src/modifiers/registration-utils.js +46 -0
- package/dist/core/src/modifiers/registration-utils.js.map +1 -0
- package/dist/core/src/modifiers/registry.d.ts +78 -0
- package/dist/core/src/modifiers/registry.d.ts.map +1 -0
- package/dist/core/src/modifiers/registry.js +397 -0
- package/dist/core/src/modifiers/registry.js.map +1 -0
- package/dist/core/src/modifiers/types.d.ts +6 -0
- package/dist/core/src/modifiers/types.d.ts.map +1 -0
- package/dist/core/src/modifiers/types.js +6 -0
- package/dist/core/src/modifiers/types.js.map +1 -0
- package/dist/core/src/plugins/index.d.ts +16 -0
- package/dist/core/src/plugins/index.d.ts.map +1 -0
- package/dist/core/src/plugins/index.js +21 -0
- package/dist/core/src/plugins/index.js.map +1 -0
- package/dist/core/src/plugins/legacy-adapter.d.ts +35 -0
- package/dist/core/src/plugins/legacy-adapter.d.ts.map +1 -0
- package/dist/core/src/plugins/legacy-adapter.js +57 -0
- package/dist/core/src/plugins/legacy-adapter.js.map +1 -0
- package/dist/core/src/plugins/simplified-component-registry.d.ts +40 -0
- package/dist/core/src/plugins/simplified-component-registry.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-component-registry.js +97 -0
- package/dist/core/src/plugins/simplified-component-registry.js.map +1 -0
- package/dist/core/src/plugins/simplified-lazy-loader.d.ts +65 -0
- package/dist/core/src/plugins/simplified-lazy-loader.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-lazy-loader.js +205 -0
- package/dist/core/src/plugins/simplified-lazy-loader.js.map +1 -0
- package/dist/core/src/plugins/simplified-plugin-manager.d.ts +24 -0
- package/dist/core/src/plugins/simplified-plugin-manager.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-plugin-manager.js +77 -0
- package/dist/core/src/plugins/simplified-plugin-manager.js.map +1 -0
- package/dist/core/src/plugins/simplified-tachui-instance.d.ts +54 -0
- package/dist/core/src/plugins/simplified-tachui-instance.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-tachui-instance.js +114 -0
- package/dist/core/src/plugins/simplified-tachui-instance.js.map +1 -0
- package/dist/core/src/plugins/simplified-types.d.ts +63 -0
- package/dist/core/src/plugins/simplified-types.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-types.js +18 -0
- package/dist/core/src/plugins/simplified-types.js.map +1 -0
- package/dist/core/src/plugins/simplified-utils.d.ts +39 -0
- package/dist/core/src/plugins/simplified-utils.d.ts.map +1 -0
- package/dist/core/src/plugins/simplified-utils.js +104 -0
- package/dist/core/src/plugins/simplified-utils.js.map +1 -0
- package/dist/core/src/reactive/cleanup.d.ts +115 -0
- package/dist/core/src/reactive/cleanup.d.ts.map +1 -0
- package/dist/core/src/reactive/cleanup.js +187 -0
- package/dist/core/src/reactive/cleanup.js.map +1 -0
- package/dist/core/src/reactive/computed.d.ts +115 -0
- package/dist/core/src/reactive/computed.d.ts.map +1 -0
- package/dist/core/src/reactive/computed.js +237 -0
- package/dist/core/src/reactive/computed.js.map +1 -0
- package/dist/core/src/reactive/context.d.ts +83 -0
- package/dist/core/src/reactive/context.d.ts.map +1 -0
- package/dist/core/src/reactive/context.js +286 -0
- package/dist/core/src/reactive/context.js.map +1 -0
- package/dist/core/src/reactive/effect.d.ts +79 -0
- package/dist/core/src/reactive/effect.d.ts.map +1 -0
- package/dist/core/src/reactive/effect.js +159 -0
- package/dist/core/src/reactive/effect.js.map +1 -0
- package/dist/core/src/reactive/enhanced-effect.d.ts +108 -0
- package/dist/core/src/reactive/enhanced-effect.d.ts.map +1 -0
- package/dist/core/src/reactive/enhanced-effect.js +265 -0
- package/dist/core/src/reactive/enhanced-effect.js.map +1 -0
- package/dist/core/src/reactive/enhanced-signal.d.ts +91 -0
- package/dist/core/src/reactive/enhanced-signal.d.ts.map +1 -0
- package/dist/core/src/reactive/enhanced-signal.js +175 -0
- package/dist/core/src/reactive/enhanced-signal.js.map +1 -0
- package/dist/core/src/reactive/equality.d.ts +51 -0
- package/dist/core/src/reactive/equality.d.ts.map +1 -0
- package/dist/core/src/reactive/equality.js +169 -0
- package/dist/core/src/reactive/equality.js.map +1 -0
- package/dist/core/src/reactive/index.d.ts +22 -0
- package/dist/core/src/reactive/index.d.ts.map +1 -0
- package/dist/core/src/reactive/index.js +33 -0
- package/dist/core/src/reactive/index.js.map +1 -0
- package/dist/core/src/reactive/migration.d.ts +104 -0
- package/dist/core/src/reactive/migration.d.ts.map +1 -0
- package/dist/core/src/reactive/migration.js +257 -0
- package/dist/core/src/reactive/migration.js.map +1 -0
- package/dist/core/src/reactive/ownership.d.ts +75 -0
- package/dist/core/src/reactive/ownership.d.ts.map +1 -0
- package/dist/core/src/reactive/ownership.js +155 -0
- package/dist/core/src/reactive/ownership.js.map +1 -0
- package/dist/core/src/reactive/scheduler.d.ts +56 -0
- package/dist/core/src/reactive/scheduler.d.ts.map +1 -0
- package/dist/core/src/reactive/scheduler.js +263 -0
- package/dist/core/src/reactive/scheduler.js.map +1 -0
- package/dist/core/src/reactive/signal-list.d.ts +100 -0
- package/dist/core/src/reactive/signal-list.d.ts.map +1 -0
- package/dist/core/src/reactive/signal-list.js +240 -0
- package/dist/core/src/reactive/signal-list.js.map +1 -0
- package/dist/core/src/reactive/signal.d.ts +82 -0
- package/dist/core/src/reactive/signal.d.ts.map +1 -0
- package/dist/core/src/reactive/signal.js +172 -0
- package/dist/core/src/reactive/signal.js.map +1 -0
- package/dist/core/src/reactive/theme.d.ts +12 -0
- package/dist/core/src/reactive/theme.d.ts.map +1 -0
- package/dist/core/src/reactive/theme.js +41 -0
- package/dist/core/src/reactive/theme.js.map +1 -0
- package/dist/core/src/reactive/types.d.ts +6 -0
- package/dist/core/src/reactive/types.d.ts.map +1 -0
- package/dist/core/src/reactive/types.js +6 -0
- package/dist/core/src/reactive/types.js.map +1 -0
- package/dist/core/src/reactive/unified-scheduler.d.ts +112 -0
- package/dist/core/src/reactive/unified-scheduler.d.ts.map +1 -0
- package/dist/core/src/reactive/unified-scheduler.js +315 -0
- package/dist/core/src/reactive/unified-scheduler.js.map +1 -0
- package/dist/core/src/runtime/component-context.d.ts +73 -0
- package/dist/core/src/runtime/component-context.d.ts.map +1 -0
- package/dist/core/src/runtime/component-context.js +278 -0
- package/dist/core/src/runtime/component-context.js.map +1 -0
- package/dist/core/src/runtime/component.d.ts +112 -0
- package/dist/core/src/runtime/component.d.ts.map +1 -0
- package/dist/core/src/runtime/component.js +394 -0
- package/dist/core/src/runtime/component.js.map +1 -0
- package/dist/core/src/runtime/context.d.ts +138 -0
- package/dist/core/src/runtime/context.d.ts.map +1 -0
- package/dist/core/src/runtime/context.js +411 -0
- package/dist/core/src/runtime/context.js.map +1 -0
- package/dist/core/src/runtime/dom-bridge.d.ts +70 -0
- package/dist/core/src/runtime/dom-bridge.d.ts.map +1 -0
- package/dist/core/src/runtime/dom-bridge.js +481 -0
- package/dist/core/src/runtime/dom-bridge.js.map +1 -0
- package/dist/core/src/runtime/element-override.d.ts +82 -0
- package/dist/core/src/runtime/element-override.d.ts.map +1 -0
- package/dist/core/src/runtime/element-override.js +360 -0
- package/dist/core/src/runtime/element-override.js.map +1 -0
- package/dist/core/src/runtime/event-delegation.d.ts +59 -0
- package/dist/core/src/runtime/event-delegation.d.ts.map +1 -0
- package/dist/core/src/runtime/event-delegation.js +220 -0
- package/dist/core/src/runtime/event-delegation.js.map +1 -0
- package/dist/core/src/runtime/index.d.ts +24 -0
- package/dist/core/src/runtime/index.d.ts.map +1 -0
- package/dist/core/src/runtime/index.js +36 -0
- package/dist/core/src/runtime/index.js.map +1 -0
- package/dist/core/src/runtime/lazy-component.d.ts +58 -0
- package/dist/core/src/runtime/lazy-component.d.ts.map +1 -0
- package/dist/core/src/runtime/lazy-component.js +206 -0
- package/dist/core/src/runtime/lazy-component.js.map +1 -0
- package/dist/core/src/runtime/lifecycle.d.ts +8 -0
- package/dist/core/src/runtime/lifecycle.d.ts.map +1 -0
- package/dist/core/src/runtime/lifecycle.js +9 -0
- package/dist/core/src/runtime/lifecycle.js.map +1 -0
- package/dist/core/src/runtime/mounting.d.ts +9 -0
- package/dist/core/src/runtime/mounting.d.ts.map +1 -0
- package/dist/core/src/runtime/mounting.js +15 -0
- package/dist/core/src/runtime/mounting.js.map +1 -0
- package/dist/core/src/runtime/optimization.d.ts +8 -0
- package/dist/core/src/runtime/optimization.d.ts.map +1 -0
- package/dist/core/src/runtime/optimization.js +12 -0
- package/dist/core/src/runtime/optimization.js.map +1 -0
- package/dist/core/src/runtime/props.d.ts +154 -0
- package/dist/core/src/runtime/props.d.ts.map +1 -0
- package/dist/core/src/runtime/props.js +389 -0
- package/dist/core/src/runtime/props.js.map +1 -0
- package/dist/core/src/runtime/renderer.d.ts +168 -0
- package/dist/core/src/runtime/renderer.d.ts.map +1 -0
- package/dist/core/src/runtime/renderer.js +1181 -0
- package/dist/core/src/runtime/renderer.js.map +1 -0
- package/dist/core/src/runtime/semantic-role-manager.d.ts +37 -0
- package/dist/core/src/runtime/semantic-role-manager.d.ts.map +1 -0
- package/dist/core/src/runtime/semantic-role-manager.js +102 -0
- package/dist/core/src/runtime/semantic-role-manager.js.map +1 -0
- package/dist/core/src/runtime/types.d.ts +6 -0
- package/dist/core/src/runtime/types.d.ts.map +1 -0
- package/dist/core/src/runtime/types.js +6 -0
- package/dist/core/src/runtime/types.js.map +1 -0
- package/dist/core/src/state/binding.d.ts +96 -0
- package/dist/core/src/state/binding.d.ts.map +1 -0
- package/dist/core/src/state/binding.js +264 -0
- package/dist/core/src/state/binding.js.map +1 -0
- package/dist/core/src/state/environment.d.ts +178 -0
- package/dist/core/src/state/environment.d.ts.map +1 -0
- package/dist/core/src/state/environment.js +272 -0
- package/dist/core/src/state/environment.js.map +1 -0
- package/dist/core/src/state/index.d.ts +108 -0
- package/dist/core/src/state/index.d.ts.map +1 -0
- package/dist/core/src/state/index.js +102 -0
- package/dist/core/src/state/index.js.map +1 -0
- package/dist/core/src/state/observed-object.d.ts +126 -0
- package/dist/core/src/state/observed-object.d.ts.map +1 -0
- package/dist/core/src/state/observed-object.js +330 -0
- package/dist/core/src/state/observed-object.js.map +1 -0
- package/dist/core/src/state/state-manager.d.ts +97 -0
- package/dist/core/src/state/state-manager.d.ts.map +1 -0
- package/dist/core/src/state/state-manager.js +297 -0
- package/dist/core/src/state/state-manager.js.map +1 -0
- package/dist/core/src/state/state.d.ts +78 -0
- package/dist/core/src/state/state.d.ts.map +1 -0
- package/dist/core/src/state/state.js +283 -0
- package/dist/core/src/state/state.js.map +1 -0
- package/dist/core/src/state/types.d.ts +159 -0
- package/dist/core/src/state/types.d.ts.map +1 -0
- package/dist/core/src/state/types.js +8 -0
- package/dist/core/src/state/types.js.map +1 -0
- package/dist/core/src/utils/clone-helpers.d.ts +11 -0
- package/dist/core/src/utils/clone-helpers.d.ts.map +1 -0
- package/dist/core/src/utils/clone-helpers.js +69 -0
- package/dist/core/src/utils/clone-helpers.js.map +1 -0
- package/dist/core/src/validation/build-time-stub.d.ts +33 -0
- package/dist/core/src/validation/build-time-stub.d.ts.map +1 -0
- package/dist/core/src/validation/build-time-stub.js +53 -0
- package/dist/core/src/validation/build-time-stub.js.map +1 -0
- package/dist/core/src/validation/debug-tools-stub.d.ts +67 -0
- package/dist/core/src/validation/debug-tools-stub.d.ts.map +1 -0
- package/dist/core/src/validation/debug-tools-stub.js +94 -0
- package/dist/core/src/validation/debug-tools-stub.js.map +1 -0
- package/dist/core/src/validation/index.d.ts +116 -0
- package/dist/core/src/validation/index.d.ts.map +1 -0
- package/dist/core/src/validation/index.js +306 -0
- package/dist/core/src/validation/index.js.map +1 -0
- package/dist/core/src/validation/lifecycle-validation.d.ts +165 -0
- package/dist/core/src/validation/lifecycle-validation.d.ts.map +1 -0
- package/dist/core/src/validation/lifecycle-validation.js +501 -0
- package/dist/core/src/validation/lifecycle-validation.js.map +1 -0
- package/dist/core/src/validation/performance-optimizer-stub.d.ts +50 -0
- package/dist/core/src/validation/performance-optimizer-stub.d.ts.map +1 -0
- package/dist/core/src/validation/performance-optimizer-stub.js +50 -0
- package/dist/core/src/validation/performance-optimizer-stub.js.map +1 -0
- package/dist/core/src/validation/plugin-registration.d.ts +92 -0
- package/dist/core/src/validation/plugin-registration.d.ts.map +1 -0
- package/dist/core/src/validation/plugin-registration.js +199 -0
- package/dist/core/src/validation/plugin-registration.js.map +1 -0
- package/dist/core/src/validation/production-bypass-core.d.ts +69 -0
- package/dist/core/src/validation/production-bypass-core.d.ts.map +1 -0
- package/dist/core/src/validation/production-bypass-core.js +115 -0
- package/dist/core/src/validation/production-bypass-core.js.map +1 -0
- package/dist/core/src/version.d.ts +19 -0
- package/dist/core/src/version.d.ts.map +1 -0
- package/dist/core/src/version.js +20 -0
- package/dist/core/src/version.js.map +1 -0
- package/dist/devtools/src/build-time/detection.d.ts +32 -0
- package/dist/devtools/src/build-time/detection.d.ts.map +1 -0
- package/dist/devtools/src/build-time/detection.js +327 -0
- package/dist/devtools/src/build-time/detection.js.map +1 -0
- package/dist/devtools/src/build-time/index.d.ts +84 -0
- package/dist/devtools/src/build-time/index.d.ts.map +1 -0
- package/dist/devtools/src/build-time/index.js +157 -0
- package/dist/devtools/src/build-time/index.js.map +1 -0
- package/dist/devtools/src/build-time/plugins.d.ts +75 -0
- package/dist/devtools/src/build-time/plugins.d.ts.map +1 -0
- package/dist/devtools/src/build-time/plugins.js +429 -0
- package/dist/devtools/src/build-time/plugins.js.map +1 -0
- package/dist/devtools/src/build-time/rules.d.ts +73 -0
- package/dist/devtools/src/build-time/rules.d.ts.map +1 -0
- package/dist/devtools/src/build-time/rules.js +622 -0
- package/dist/devtools/src/build-time/rules.js.map +1 -0
- package/dist/devtools/src/build-time/transformer.d.ts +23 -0
- package/dist/devtools/src/build-time/transformer.d.ts.map +1 -0
- package/dist/devtools/src/build-time/transformer.js +294 -0
- package/dist/devtools/src/build-time/transformer.js.map +1 -0
- package/dist/devtools/src/build-time/types.d.ts +212 -0
- package/dist/devtools/src/build-time/types.d.ts.map +1 -0
- package/dist/devtools/src/build-time/types.js +8 -0
- package/dist/devtools/src/build-time/types.js.map +1 -0
- package/dist/devtools/src/debug/debug.d.ts +61 -0
- package/dist/devtools/src/debug/debug.d.ts.map +1 -0
- package/dist/devtools/src/debug/debug.js +239 -0
- package/dist/devtools/src/debug/debug.js.map +1 -0
- package/dist/devtools/src/debug/development-warnings.d.ts +42 -0
- package/dist/devtools/src/debug/development-warnings.d.ts.map +1 -0
- package/dist/devtools/src/debug/development-warnings.js +84 -0
- package/dist/devtools/src/debug/development-warnings.js.map +1 -0
- package/dist/devtools/src/debug/enhanced-errors.d.ts +176 -0
- package/dist/devtools/src/debug/enhanced-errors.d.ts.map +1 -0
- package/dist/devtools/src/debug/enhanced-errors.js +481 -0
- package/dist/devtools/src/debug/enhanced-errors.js.map +1 -0
- package/dist/devtools/src/debug/enhanced-types.d.ts +284 -0
- package/dist/devtools/src/debug/enhanced-types.d.ts.map +1 -0
- package/dist/devtools/src/debug/enhanced-types.js +8 -0
- package/dist/devtools/src/debug/enhanced-types.js.map +1 -0
- package/dist/devtools/src/debug/index.d.ts +13 -0
- package/dist/devtools/src/debug/index.d.ts.map +1 -0
- package/dist/devtools/src/debug/index.js +17 -0
- package/dist/devtools/src/debug/index.js.map +1 -0
- package/dist/devtools/src/debug/validation-debug-tools.d.ts +228 -0
- package/dist/devtools/src/debug/validation-debug-tools.d.ts.map +1 -0
- package/dist/devtools/src/debug/validation-debug-tools.js +472 -0
- package/dist/devtools/src/debug/validation-debug-tools.js.map +1 -0
- package/dist/devtools/src/import-guide.d.ts +50 -0
- package/dist/devtools/src/import-guide.d.ts.map +1 -0
- package/dist/devtools/src/import-guide.js +257 -0
- package/dist/devtools/src/import-guide.js.map +1 -0
- package/dist/devtools/src/index.d.ts +24 -0
- package/dist/devtools/src/index.d.ts.map +1 -0
- package/dist/devtools/src/index.js +32 -0
- package/dist/devtools/src/index.js.map +1 -0
- package/dist/devtools/src/inspector/index.d.ts +232 -0
- package/dist/devtools/src/inspector/index.d.ts.map +1 -0
- package/dist/devtools/src/inspector/index.js +551 -0
- package/dist/devtools/src/inspector/index.js.map +1 -0
- package/dist/devtools/src/modifier-parameter-system.d.ts +69 -0
- package/dist/devtools/src/modifier-parameter-system.d.ts.map +1 -0
- package/dist/devtools/src/modifier-parameter-system.js +462 -0
- package/dist/devtools/src/modifier-parameter-system.js.map +1 -0
- package/dist/devtools/src/plugins/simplified-error-handler.d.ts +83 -0
- package/dist/devtools/src/plugins/simplified-error-handler.d.ts.map +1 -0
- package/dist/devtools/src/plugins/simplified-error-handler.js +335 -0
- package/dist/devtools/src/plugins/simplified-error-handler.js.map +1 -0
- package/dist/devtools/src/profiler/index.d.ts +21 -0
- package/dist/devtools/src/profiler/index.d.ts.map +1 -0
- package/dist/devtools/src/profiler/index.js +30 -0
- package/dist/devtools/src/profiler/index.js.map +1 -0
- package/dist/devtools/src/profiler/performance-optimizer.d.ts +115 -0
- package/dist/devtools/src/profiler/performance-optimizer.d.ts.map +1 -0
- package/dist/devtools/src/profiler/performance-optimizer.js +273 -0
- package/dist/devtools/src/profiler/performance-optimizer.js.map +1 -0
- package/dist/devtools/src/profiler/production-monitoring.d.ts +150 -0
- package/dist/devtools/src/profiler/production-monitoring.d.ts.map +1 -0
- package/dist/devtools/src/profiler/production-monitoring.js +274 -0
- package/dist/devtools/src/profiler/production-monitoring.js.map +1 -0
- package/dist/devtools/src/runtime/error-boundary.d.ts +302 -0
- package/dist/devtools/src/runtime/error-boundary.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-boundary.js +717 -0
- package/dist/devtools/src/runtime/error-boundary.js.map +1 -0
- package/dist/devtools/src/runtime/error-recovery.d.ts +267 -0
- package/dist/devtools/src/runtime/error-recovery.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-recovery.js +499 -0
- package/dist/devtools/src/runtime/error-recovery.js.map +1 -0
- package/dist/devtools/src/runtime/error-reporting.d.ts +287 -0
- package/dist/devtools/src/runtime/error-reporting.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-reporting.js +626 -0
- package/dist/devtools/src/runtime/error-reporting.js.map +1 -0
- package/dist/devtools/src/runtime/error-utils.d.ts +204 -0
- package/dist/devtools/src/runtime/error-utils.d.ts.map +1 -0
- package/dist/devtools/src/runtime/error-utils.js +519 -0
- package/dist/devtools/src/runtime/error-utils.js.map +1 -0
- package/dist/devtools/src/runtime/performance.d.ts +217 -0
- package/dist/devtools/src/runtime/performance.d.ts.map +1 -0
- package/dist/devtools/src/runtime/performance.js +538 -0
- package/dist/devtools/src/runtime/performance.js.map +1 -0
- package/dist/devtools/src/testing/index.d.ts +29 -0
- package/dist/devtools/src/testing/index.d.ts.map +1 -0
- package/dist/devtools/src/testing/index.js +48 -0
- package/dist/devtools/src/testing/index.js.map +1 -0
- package/dist/devtools/src/validation/enhanced-runtime.d.ts +310 -0
- package/dist/devtools/src/validation/enhanced-runtime.d.ts.map +1 -0
- package/dist/devtools/src/validation/enhanced-runtime.js +603 -0
- package/dist/devtools/src/validation/enhanced-runtime.js.map +1 -0
- package/dist/devtools/src/validation/error-reporting.d.ts +186 -0
- package/dist/devtools/src/validation/error-reporting.d.ts.map +1 -0
- package/dist/devtools/src/validation/error-reporting.js +439 -0
- package/dist/devtools/src/validation/error-reporting.js.map +1 -0
- package/package.json +6 -2
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js.map +0 -1
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/generate.d.ts.map +0 -1
- package/dist/commands/generate.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/migrate.d.ts.map +0 -1
- package/dist/commands/migrate.js.map +0 -1
- package/dist/commands/optimize.d.ts.map +0 -1
- package/dist/commands/optimize.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- /package/dist/{commands → cli/src/commands}/analyze.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/dev.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/dev.js +0 -0
- /package/dist/{commands → cli/src/commands}/generate.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/init.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/migrate.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/optimize.d.ts +0 -0
- /package/dist/{commands → cli/src/commands}/optimize.js +0 -0
- /package/dist/{index.d.ts → cli/src/index.d.ts} +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cleanup and disposal utilities for reactive system
|
|
3
|
+
*
|
|
4
|
+
* Provides memory management, cleanup functions, and disposal
|
|
5
|
+
* utilities to prevent memory leaks in reactive computations.
|
|
6
|
+
*/
|
|
7
|
+
import { getCurrentOwner } from './context';
|
|
8
|
+
/**
|
|
9
|
+
* Add a cleanup function to the current reactive context
|
|
10
|
+
*
|
|
11
|
+
* @param fn Cleanup function to run when the context is disposed
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* createEffect(() => {
|
|
16
|
+
* const interval = setInterval(() => {
|
|
17
|
+
* console.log('tick')
|
|
18
|
+
* }, 1000)
|
|
19
|
+
*
|
|
20
|
+
* onCleanup(() => {
|
|
21
|
+
* clearInterval(interval)
|
|
22
|
+
* })
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function onCleanup(fn) {
|
|
27
|
+
const owner = getCurrentOwner();
|
|
28
|
+
if (owner && !owner.disposed) {
|
|
29
|
+
owner.cleanups.push(fn);
|
|
30
|
+
}
|
|
31
|
+
else if (__DEV__) {
|
|
32
|
+
console.warn('onCleanup called outside of reactive context');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Dispose a reactive owner and all its children
|
|
37
|
+
*
|
|
38
|
+
* @param owner The owner to dispose
|
|
39
|
+
*/
|
|
40
|
+
export function dispose(owner) {
|
|
41
|
+
if ('dispose' in owner && typeof owner.dispose === 'function') {
|
|
42
|
+
owner.dispose();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Create a disposable resource with automatic cleanup
|
|
47
|
+
*
|
|
48
|
+
* @param fn Function that creates and returns a resource and its cleanup
|
|
49
|
+
* @returns The created resource
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const timer = createResource(() => {
|
|
54
|
+
* const id = setInterval(() => console.log('tick'), 1000)
|
|
55
|
+
* return [id, () => clearInterval(id)]
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export function createResource(fn) {
|
|
60
|
+
const [resource, cleanup] = fn();
|
|
61
|
+
onCleanup(cleanup);
|
|
62
|
+
return resource;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a cleanup group that can be disposed manually
|
|
66
|
+
*
|
|
67
|
+
* @returns Cleanup group with dispose function
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const group = createCleanupGroup()
|
|
72
|
+
*
|
|
73
|
+
* group.add(() => console.log('cleanup 1'))
|
|
74
|
+
* group.add(() => console.log('cleanup 2'))
|
|
75
|
+
*
|
|
76
|
+
* // Later...
|
|
77
|
+
* group.dispose() // Runs both cleanup functions
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export function createCleanupGroup() {
|
|
81
|
+
const cleanups = [];
|
|
82
|
+
let disposed = false;
|
|
83
|
+
return {
|
|
84
|
+
add(fn) {
|
|
85
|
+
if (disposed) {
|
|
86
|
+
if (__DEV__) {
|
|
87
|
+
console.warn('Adding cleanup to disposed group');
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
cleanups.push(fn);
|
|
92
|
+
},
|
|
93
|
+
dispose() {
|
|
94
|
+
if (disposed)
|
|
95
|
+
return;
|
|
96
|
+
disposed = true;
|
|
97
|
+
for (const cleanup of cleanups) {
|
|
98
|
+
try {
|
|
99
|
+
cleanup();
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error('Error in cleanup function:', error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
cleanups.length = 0;
|
|
106
|
+
},
|
|
107
|
+
get disposed() {
|
|
108
|
+
return disposed;
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Create a weak disposal tracker using WeakRef and FinalizationRegistry
|
|
114
|
+
* for automatic cleanup of unreferenced objects
|
|
115
|
+
*/
|
|
116
|
+
export function createWeakDisposal(target, cleanup) {
|
|
117
|
+
const weakRef = new WeakRef(target);
|
|
118
|
+
if (typeof FinalizationRegistry !== 'undefined') {
|
|
119
|
+
const registry = new FinalizationRegistry(cleanup);
|
|
120
|
+
registry.register(target, cleanup);
|
|
121
|
+
}
|
|
122
|
+
return weakRef;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Defer a cleanup function to run after the current reactive cycle
|
|
126
|
+
*
|
|
127
|
+
* @param fn Cleanup function to defer
|
|
128
|
+
*/
|
|
129
|
+
export function deferCleanup(fn) {
|
|
130
|
+
queueMicrotask(() => {
|
|
131
|
+
try {
|
|
132
|
+
fn();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
console.error('Error in deferred cleanup:', error);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Create a cleanup function that only runs once
|
|
141
|
+
*
|
|
142
|
+
* @param fn Cleanup function
|
|
143
|
+
* @returns Cleanup function that only runs once
|
|
144
|
+
*/
|
|
145
|
+
export function createOnceCleanup(fn) {
|
|
146
|
+
let hasRun = false;
|
|
147
|
+
return () => {
|
|
148
|
+
if (hasRun)
|
|
149
|
+
return;
|
|
150
|
+
hasRun = true;
|
|
151
|
+
fn();
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Create a timeout with automatic cleanup
|
|
156
|
+
*
|
|
157
|
+
* @param fn Function to run after timeout
|
|
158
|
+
* @param delay Delay in milliseconds
|
|
159
|
+
* @returns Timeout ID
|
|
160
|
+
*/
|
|
161
|
+
export function createTimeout(fn, delay) {
|
|
162
|
+
const id = setTimeout(fn, delay);
|
|
163
|
+
onCleanup(() => clearTimeout(id));
|
|
164
|
+
return id;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Create an interval with automatic cleanup
|
|
168
|
+
*
|
|
169
|
+
* @param fn Function to run on interval
|
|
170
|
+
* @param delay Delay in milliseconds
|
|
171
|
+
* @returns Interval ID
|
|
172
|
+
*/
|
|
173
|
+
export function createInterval(fn, delay) {
|
|
174
|
+
const id = setInterval(fn, delay);
|
|
175
|
+
onCleanup(() => clearInterval(id));
|
|
176
|
+
return id;
|
|
177
|
+
}
|
|
178
|
+
export function createEventListener(target, event, handler, options) {
|
|
179
|
+
target.addEventListener(event, handler, options);
|
|
180
|
+
onCleanup(() => target.removeEventListener(event, handler, options));
|
|
181
|
+
}
|
|
182
|
+
// Development mode flag - simplified approach
|
|
183
|
+
if (typeof globalThis.__DEV__ === 'undefined') {
|
|
184
|
+
;
|
|
185
|
+
globalThis.__DEV__ = process.env.NODE_ENV !== 'production';
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=cleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../../../core/src/reactive/cleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computed values implementation
|
|
3
|
+
*
|
|
4
|
+
* Computed values are derived reactive values that automatically
|
|
5
|
+
* update when their dependencies change, with memoization.
|
|
6
|
+
*/
|
|
7
|
+
import { ComputationImpl } from './context';
|
|
8
|
+
import { type EqualityFunction } from './equality';
|
|
9
|
+
import type { Computation, Signal } from './types';
|
|
10
|
+
import { type ReactiveNode, UpdatePriority } from './unified-scheduler';
|
|
11
|
+
export interface ComputedOptions<T> {
|
|
12
|
+
equals?: EqualityFunction<T>;
|
|
13
|
+
priority?: UpdatePriority;
|
|
14
|
+
debugName?: string;
|
|
15
|
+
onError?: (error: Error) => T;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Robust computed value implementation with error recovery
|
|
19
|
+
*/
|
|
20
|
+
declare class ComputedImpl<T> extends ComputationImpl implements ReactiveNode {
|
|
21
|
+
readonly type: "computed";
|
|
22
|
+
readonly priority: UpdatePriority;
|
|
23
|
+
private _hasValue;
|
|
24
|
+
private _error;
|
|
25
|
+
private equalsFn;
|
|
26
|
+
private options;
|
|
27
|
+
constructor(fn: () => T, options?: ComputedOptions<T>, owner?: import("@tachui/types/reactive").Owner | null);
|
|
28
|
+
/**
|
|
29
|
+
* Get the computed value, tracking dependency and lazily computing
|
|
30
|
+
*/
|
|
31
|
+
getValue(): T;
|
|
32
|
+
/**
|
|
33
|
+
* Get the current value without tracking dependency
|
|
34
|
+
*/
|
|
35
|
+
peek(): T;
|
|
36
|
+
/**
|
|
37
|
+
* Remove an observer (cleanup)
|
|
38
|
+
*/
|
|
39
|
+
removeObserver(computation: Computation): void;
|
|
40
|
+
/**
|
|
41
|
+
* Execute the computation and notify observers
|
|
42
|
+
*/
|
|
43
|
+
execute(): T;
|
|
44
|
+
/**
|
|
45
|
+
* Notify method for ReactiveNode compatibility
|
|
46
|
+
*/
|
|
47
|
+
notify(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Complete cleanup for memory management
|
|
50
|
+
*/
|
|
51
|
+
cleanup(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Dispose the computed value
|
|
54
|
+
*/
|
|
55
|
+
dispose(): void;
|
|
56
|
+
toString(): string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Create a computed value that automatically updates when dependencies change
|
|
60
|
+
*
|
|
61
|
+
* @param fn The computation function
|
|
62
|
+
* @param options Configuration options for the computed value
|
|
63
|
+
* @returns An accessor function for the computed value
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const [count, setCount] = createSignal(0)
|
|
68
|
+
* const doubleCount = createComputed(() => count() * 2, {
|
|
69
|
+
* debugName: 'doubleCounter',
|
|
70
|
+
* onError: (error) => {
|
|
71
|
+
* console.error('Computation failed:', error)
|
|
72
|
+
* return 0 // fallback value
|
|
73
|
+
* }
|
|
74
|
+
* })
|
|
75
|
+
*
|
|
76
|
+
* console.log(doubleCount()) // 0
|
|
77
|
+
* setCount(5)
|
|
78
|
+
* console.log(doubleCount()) // 10
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function createComputed<T>(fn: () => T, options?: ComputedOptions<T>): Signal<T>;
|
|
82
|
+
/**
|
|
83
|
+
* Create a memo (alias for createComputed for SolidJS compatibility)
|
|
84
|
+
*/
|
|
85
|
+
export declare function createMemo<T>(fn: () => T, options?: ComputedOptions<T>): Signal<T>;
|
|
86
|
+
/**
|
|
87
|
+
* Type guard to check if a value is a computed
|
|
88
|
+
*/
|
|
89
|
+
export declare function isComputed<T = any>(value: any): value is Signal<T>;
|
|
90
|
+
/**
|
|
91
|
+
* Get the underlying computed implementation for debugging
|
|
92
|
+
*/
|
|
93
|
+
export declare function getComputedImpl<T>(computed: Signal<T>): ComputedImpl<T> | null;
|
|
94
|
+
/**
|
|
95
|
+
* Create a computed value with explicit dependency tracking
|
|
96
|
+
*
|
|
97
|
+
* @param fn The computation function
|
|
98
|
+
* @param deps Explicit dependencies (optional)
|
|
99
|
+
* @returns An accessor function for the computed value
|
|
100
|
+
*/
|
|
101
|
+
export declare function createDerivedSignal<T>(fn: () => T, deps?: (() => any)[]): Signal<T>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a computed value that only updates when a condition is met
|
|
104
|
+
*
|
|
105
|
+
* @param fn The computation function
|
|
106
|
+
* @param when Condition function that must return true for updates
|
|
107
|
+
* @returns An accessor function for the computed value
|
|
108
|
+
*/
|
|
109
|
+
export declare function createConditionalComputed<T>(fn: () => T, when: () => boolean): Signal<T>;
|
|
110
|
+
/**
|
|
111
|
+
* Public Computed type export
|
|
112
|
+
*/
|
|
113
|
+
export type Computed<T> = Signal<T>;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=computed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/computed.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAA0C,MAAM,WAAW,CAAA;AACnF,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEvE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAA;CAC9B;AAED;;GAEG;AACH,cAAM,YAAY,CAAC,CAAC,CAAE,SAAQ,eAAgB,YAAW,YAAY;IACnE,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IAEjC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,OAAO,CAAoB;gBAEvB,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAE,eAAe,CAAC,CAAC,CAAM,EAAE,KAAK,gDAAoB;IAOpF;;OAEG;IACH,QAAQ,IAAI,CAAC;IAiBb;;OAEG;IACH,IAAI,IAAI,CAAC;IAQT;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C;;OAEG;IACH,OAAO,IAAI,CAAC;IAyBZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAmBf;;OAEG;IACH,OAAO,IAAI,IAAI;IAwBf,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CActF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAElF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAElE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAenF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAiBxF;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Computed values implementation
|
|
3
|
+
*
|
|
4
|
+
* Computed values are derived reactive values that automatically
|
|
5
|
+
* update when their dependencies change, with memoization.
|
|
6
|
+
*/
|
|
7
|
+
import { ComputationImpl, getCurrentComputation, getCurrentOwner } from './context';
|
|
8
|
+
import { defaultEquals } from './equality';
|
|
9
|
+
import { ComputationState } from './types';
|
|
10
|
+
import { UpdatePriority } from './unified-scheduler';
|
|
11
|
+
/**
|
|
12
|
+
* Robust computed value implementation with error recovery
|
|
13
|
+
*/
|
|
14
|
+
class ComputedImpl extends ComputationImpl {
|
|
15
|
+
type = 'computed';
|
|
16
|
+
priority;
|
|
17
|
+
_hasValue = false;
|
|
18
|
+
_error = null;
|
|
19
|
+
equalsFn;
|
|
20
|
+
options;
|
|
21
|
+
constructor(fn, options = {}, owner = getCurrentOwner()) {
|
|
22
|
+
super(fn, owner);
|
|
23
|
+
this.priority = options.priority ?? UpdatePriority.Normal;
|
|
24
|
+
this.equalsFn = options.equals ?? defaultEquals;
|
|
25
|
+
this.options = options;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the computed value, tracking dependency and lazily computing
|
|
29
|
+
*/
|
|
30
|
+
getValue() {
|
|
31
|
+
// Track this computed as a dependency if we're in a reactive context
|
|
32
|
+
const computation = getCurrentComputation();
|
|
33
|
+
if (computation && computation.state !== ComputationState.Disposed) {
|
|
34
|
+
this.observers.add(computation);
|
|
35
|
+
computation.sources.add(this);
|
|
36
|
+
}
|
|
37
|
+
// Compute value if needed
|
|
38
|
+
if (this.state === ComputationState.Dirty || !this._hasValue) {
|
|
39
|
+
this.execute();
|
|
40
|
+
this._hasValue = true;
|
|
41
|
+
}
|
|
42
|
+
return this.value;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get the current value without tracking dependency
|
|
46
|
+
*/
|
|
47
|
+
peek() {
|
|
48
|
+
if (this.state === ComputationState.Dirty || !this._hasValue) {
|
|
49
|
+
this.execute();
|
|
50
|
+
this._hasValue = true;
|
|
51
|
+
}
|
|
52
|
+
return this.value;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Remove an observer (cleanup)
|
|
56
|
+
*/
|
|
57
|
+
removeObserver(computation) {
|
|
58
|
+
this.observers.delete(computation);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Execute the computation and notify observers
|
|
62
|
+
*/
|
|
63
|
+
execute() {
|
|
64
|
+
const previousValue = this._hasValue ? this.value : undefined;
|
|
65
|
+
const result = super.execute();
|
|
66
|
+
// Only notify observers if the value actually changed
|
|
67
|
+
if (!this._hasValue || !this.equalsFn(previousValue, result)) {
|
|
68
|
+
// Notify dependent computations
|
|
69
|
+
for (const observer of this.observers) {
|
|
70
|
+
if (observer.state !== ComputationState.Disposed) {
|
|
71
|
+
observer.state = ComputationState.Dirty;
|
|
72
|
+
// Use the signal's scheduling mechanism for consistency
|
|
73
|
+
if ('execute' in observer && typeof observer.execute === 'function') {
|
|
74
|
+
queueMicrotask(() => {
|
|
75
|
+
if (observer.state === ComputationState.Dirty) {
|
|
76
|
+
observer.execute();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Notify method for ReactiveNode compatibility
|
|
87
|
+
*/
|
|
88
|
+
notify() {
|
|
89
|
+
// For computations, notify means execute
|
|
90
|
+
this.execute();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Complete cleanup for memory management
|
|
94
|
+
*/
|
|
95
|
+
cleanup() {
|
|
96
|
+
// Complete bidirectional cleanup
|
|
97
|
+
for (const source of this.sources) {
|
|
98
|
+
if ('removeObserver' in source) {
|
|
99
|
+
;
|
|
100
|
+
source.removeObserver(this);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this.sources.clear();
|
|
104
|
+
for (const observer of this.observers) {
|
|
105
|
+
observer.sources.delete(this);
|
|
106
|
+
}
|
|
107
|
+
this.observers.clear();
|
|
108
|
+
this._hasValue = false;
|
|
109
|
+
this._error = null;
|
|
110
|
+
this.state = ComputationState.Disposed;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Dispose the computed value
|
|
114
|
+
*/
|
|
115
|
+
dispose() {
|
|
116
|
+
this.cleanup();
|
|
117
|
+
super.dispose();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Debug information
|
|
121
|
+
*/
|
|
122
|
+
[Symbol.for('tachui.debug')]() {
|
|
123
|
+
return {
|
|
124
|
+
id: this.id,
|
|
125
|
+
type: this.type,
|
|
126
|
+
value: this._hasValue ? this.value : undefined,
|
|
127
|
+
hasValue: this._hasValue,
|
|
128
|
+
error: this._error?.message,
|
|
129
|
+
state: this.state,
|
|
130
|
+
sourceCount: this.sources.size,
|
|
131
|
+
observerCount: this.observers.size,
|
|
132
|
+
priority: UpdatePriority[this.priority],
|
|
133
|
+
debugName: this.options.debugName,
|
|
134
|
+
equalsFn: this.equalsFn.name || 'anonymous',
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
toString() {
|
|
138
|
+
return `Computed(${this.options.debugName || this.id}): ${this._hasValue ? this.value : 'no value'}`;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a computed value that automatically updates when dependencies change
|
|
143
|
+
*
|
|
144
|
+
* @param fn The computation function
|
|
145
|
+
* @param options Configuration options for the computed value
|
|
146
|
+
* @returns An accessor function for the computed value
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const [count, setCount] = createSignal(0)
|
|
151
|
+
* const doubleCount = createComputed(() => count() * 2, {
|
|
152
|
+
* debugName: 'doubleCounter',
|
|
153
|
+
* onError: (error) => {
|
|
154
|
+
* console.error('Computation failed:', error)
|
|
155
|
+
* return 0 // fallback value
|
|
156
|
+
* }
|
|
157
|
+
* })
|
|
158
|
+
*
|
|
159
|
+
* console.log(doubleCount()) // 0
|
|
160
|
+
* setCount(5)
|
|
161
|
+
* console.log(doubleCount()) // 10
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
export function createComputed(fn, options) {
|
|
165
|
+
const computed = new ComputedImpl(fn, options);
|
|
166
|
+
// Create bound accessor with peek method - this is already a Signal<T>
|
|
167
|
+
const accessor = computed.getValue.bind(computed);
|
|
168
|
+
accessor.peek = computed.peek.bind(computed);
|
|
169
|
+
// Add debug information
|
|
170
|
+
Object.defineProperty(accessor, Symbol.for('tachui.computed'), {
|
|
171
|
+
value: computed,
|
|
172
|
+
enumerable: false,
|
|
173
|
+
});
|
|
174
|
+
return accessor;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Create a memo (alias for createComputed for SolidJS compatibility)
|
|
178
|
+
*/
|
|
179
|
+
export function createMemo(fn, options) {
|
|
180
|
+
return createComputed(fn, options);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Type guard to check if a value is a computed
|
|
184
|
+
*/
|
|
185
|
+
export function isComputed(value) {
|
|
186
|
+
return typeof value === 'function' && Symbol.for('tachui.computed') in value;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get the underlying computed implementation for debugging
|
|
190
|
+
*/
|
|
191
|
+
export function getComputedImpl(computed) {
|
|
192
|
+
return computed[Symbol.for('tachui.computed')] || null;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Create a computed value with explicit dependency tracking
|
|
196
|
+
*
|
|
197
|
+
* @param fn The computation function
|
|
198
|
+
* @param deps Explicit dependencies (optional)
|
|
199
|
+
* @returns An accessor function for the computed value
|
|
200
|
+
*/
|
|
201
|
+
export function createDerivedSignal(fn, deps) {
|
|
202
|
+
if (!deps) {
|
|
203
|
+
return createComputed(fn);
|
|
204
|
+
}
|
|
205
|
+
// Wrap function to explicitly track dependencies
|
|
206
|
+
const wrappedFn = () => {
|
|
207
|
+
// Read all dependencies to track them
|
|
208
|
+
for (const dep of deps) {
|
|
209
|
+
dep();
|
|
210
|
+
}
|
|
211
|
+
return fn();
|
|
212
|
+
};
|
|
213
|
+
return createComputed(wrappedFn);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Create a computed value that only updates when a condition is met
|
|
217
|
+
*
|
|
218
|
+
* @param fn The computation function
|
|
219
|
+
* @param when Condition function that must return true for updates
|
|
220
|
+
* @returns An accessor function for the computed value
|
|
221
|
+
*/
|
|
222
|
+
export function createConditionalComputed(fn, when) {
|
|
223
|
+
let lastValue;
|
|
224
|
+
let hasValue = false;
|
|
225
|
+
return createComputed(() => {
|
|
226
|
+
if (when()) {
|
|
227
|
+
lastValue = fn();
|
|
228
|
+
hasValue = true;
|
|
229
|
+
}
|
|
230
|
+
if (!hasValue) {
|
|
231
|
+
lastValue = fn();
|
|
232
|
+
hasValue = true;
|
|
233
|
+
}
|
|
234
|
+
return lastValue;
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=computed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computed.js","sourceRoot":"","sources":["../../../../../core/src/reactive/computed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactive context and computation management
|
|
3
|
+
*
|
|
4
|
+
* Manages the reactive execution context, dependency tracking,
|
|
5
|
+
* and computation lifecycle.
|
|
6
|
+
*/
|
|
7
|
+
import type { CleanupFunction, Computation, ComputationStateValue, Owner, ReactiveContext } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Get the current computation context
|
|
10
|
+
*/
|
|
11
|
+
export declare function getCurrentComputation(): Computation | null;
|
|
12
|
+
/**
|
|
13
|
+
* Get the current owner context
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCurrentOwner(): Owner | null;
|
|
16
|
+
/**
|
|
17
|
+
* Check if we're currently batching updates
|
|
18
|
+
*/
|
|
19
|
+
export declare function isBatchingUpdates(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Computation implementation
|
|
22
|
+
*/
|
|
23
|
+
export declare class ComputationImpl implements Computation {
|
|
24
|
+
readonly id: number;
|
|
25
|
+
readonly owner: Owner | null;
|
|
26
|
+
readonly fn: () => any;
|
|
27
|
+
readonly sources: Set<any>;
|
|
28
|
+
readonly observers: Set<Computation>;
|
|
29
|
+
state: ComputationStateValue;
|
|
30
|
+
value: any;
|
|
31
|
+
constructor(fn: () => any, owner?: Owner | null);
|
|
32
|
+
execute(): any;
|
|
33
|
+
dispose(): void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a new reactive computation root
|
|
37
|
+
*/
|
|
38
|
+
export declare function createRoot<T>(fn: (dispose: () => void) => T): T;
|
|
39
|
+
/**
|
|
40
|
+
* Run a function with a specific owner context
|
|
41
|
+
*/
|
|
42
|
+
export declare function runWithOwner<T>(owner: Owner | null, fn: () => T): T;
|
|
43
|
+
/**
|
|
44
|
+
* Get the current owner context
|
|
45
|
+
*/
|
|
46
|
+
export declare function getOwner(): Owner | null;
|
|
47
|
+
/**
|
|
48
|
+
* Set the flush function (called by signal module)
|
|
49
|
+
*/
|
|
50
|
+
export declare function setFlushFunction(fn: () => void): void;
|
|
51
|
+
/**
|
|
52
|
+
* Batch multiple updates together
|
|
53
|
+
*/
|
|
54
|
+
export declare function batch<T>(fn: () => T): T;
|
|
55
|
+
/**
|
|
56
|
+
* Read a signal without tracking dependency
|
|
57
|
+
*/
|
|
58
|
+
export declare function untrack<T>(fn: () => T): T;
|
|
59
|
+
/**
|
|
60
|
+
* Add cleanup function to current owner
|
|
61
|
+
*/
|
|
62
|
+
export declare function onCleanup(fn: CleanupFunction): void;
|
|
63
|
+
/**
|
|
64
|
+
* Create a computation that runs immediately and tracks dependencies
|
|
65
|
+
*/
|
|
66
|
+
export declare function createComputation<T>(fn: () => T, owner?: Owner): ComputationImpl;
|
|
67
|
+
/**
|
|
68
|
+
* Get reactive context information
|
|
69
|
+
*/
|
|
70
|
+
export declare function getReactiveContext(): ReactiveContext;
|
|
71
|
+
/**
|
|
72
|
+
* Debug utilities
|
|
73
|
+
*/
|
|
74
|
+
export declare const DEBUG: {
|
|
75
|
+
getCurrentComputation: () => Computation | null;
|
|
76
|
+
getCurrentOwner: () => Owner | null;
|
|
77
|
+
getComputationCount: () => number;
|
|
78
|
+
getOwnerCount: () => number;
|
|
79
|
+
isBatching: () => boolean;
|
|
80
|
+
getModuleInstances: () => string[];
|
|
81
|
+
getModuleId: () => string;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../core/src/reactive/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,KAAK,EACL,eAAe,EAChB,MAAM,SAAS,CAAA;AA0ChB;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,GAAG,IAAI,CAG1D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,KAAK,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AA8CD;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,CAAA;IACtB,QAAQ,CAAC,OAAO,WAAiB;IACjC,QAAQ,CAAC,SAAS,mBAAyB;IAC3C,KAAK,EAAE,qBAAqB,CAAyB;IACrD,KAAK,EAAE,GAAG,CAAY;gBAEV,EAAE,EAAE,MAAM,GAAG,EAAE,KAAK,GAAE,KAAK,GAAG,IAAW;IAUrD,OAAO,IAAI,GAAG;IAiCd,OAAO,IAAI,IAAI;CAwBhB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAU/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CASnE;AAED;;GAEG;AACH,wBAAgB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAEvC;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAErD;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAkBvC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CASzC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAKnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,CAAC,EACX,KAAK,CAAC,EAAE,KAAK,GACZ,eAAe,CAOjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAA"}
|