1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Vapor migration lint rules.
//!
//! These rules help identify patterns that are NOT supported in Vue's Vapor mode.
//!
//! Based on Vue 3.6.0-beta.1 release notes:
//! <https://github.com/vuejs/core/releases/tag/v3.6.0-beta.1>
//!
//! ## What is Vapor Mode?
//!
//! Vapor Mode is a new compilation mode for Vue Single-File Components (SFC)
//! with the goal of reducing baseline bundle size and improved performance.
//! It achieves performance parity with Solid and Svelte 5.
//!
//! ## Opt-in Mechanism
//!
//! ```vue
//! <script setup vapor>
//! // component code
//! </script>
//! ```
//!
//! ## NOT Supported in Vapor Mode
//!
//! The following features are **intentionally excluded** from Vapor Mode:
//!
//! - **Options API** - Composition API only
//! - **`app.config.globalProperties`** - Not accessible
//! - **`getCurrentInstance()`** - Returns `null` in Vapor components
//! - **`nextTick()` / `$nextTick()`** - Avoid VDOM-style post-render scheduling
//! - **`@vue:xxx` per-element lifecycle events** - Use lifecycle hooks instead
//! - **Suspense** in Vapor-only mode (works when Vapor components render inside VDOM Suspense)
//!
//! ## Template Rules (this module)
//!
//! - `vapor/no-vue-lifecycle-events` - Disallow @vue:xxx per-element lifecycle events
//! - `vapor/no-suspense` - Warn about Suspense usage in Vapor-only apps
//! - `vapor/prefer-static-class` - Prefer static class for performance
//!
//! ## Script Rules (see `rules::script`)
//!
//! - `script/no-options-api` - Disallow Options API patterns
//! - `script/no-get-current-instance` - Disallow getCurrentInstance() calls
//! - `script/no-next-tick` - Disallow nextTick() scheduling
pub use crateNoInlineTemplate;
pub use crateNoSuspense;
pub use cratePreferStaticClass;
pub use crateRequireVaporAttribute;
pub use NoVueLifecycleEvents;