ads-fe 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/README.md +99 -0
  2. package/dist/cli.js +545 -0
  3. package/dist/meta.js +93 -0
  4. package/package.json +43 -0
  5. package/skill.md +66 -0
  6. package/skills/core/SKILL.md +66 -0
  7. package/skills/core/references/app-development.md +45 -0
  8. package/skills/core/references/git.md +66 -0
  9. package/skills/core/references/monorepo.md +124 -0
  10. package/skills/element-plus-vue3/LICENSE.md +405 -0
  11. package/skills/element-plus-vue3/LICENSE.txt +202 -0
  12. package/skills/element-plus-vue3/SKILL.md +218 -0
  13. package/skills/element-plus-vue3/SYNC.md +5 -0
  14. package/skills/element-plus-vue3/api/component-api.md +94 -0
  15. package/skills/element-plus-vue3/api/global-config.md +89 -0
  16. package/skills/element-plus-vue3/api/props-and-events.md +101 -0
  17. package/skills/element-plus-vue3/examples/components/button.md +99 -0
  18. package/skills/element-plus-vue3/examples/components/date-picker.md +115 -0
  19. package/skills/element-plus-vue3/examples/components/dialog.md +106 -0
  20. package/skills/element-plus-vue3/examples/components/form.md +127 -0
  21. package/skills/element-plus-vue3/examples/components/input.md +123 -0
  22. package/skills/element-plus-vue3/examples/components/message.md +93 -0
  23. package/skills/element-plus-vue3/examples/components/overview.md +59 -0
  24. package/skills/element-plus-vue3/examples/components/select.md +133 -0
  25. package/skills/element-plus-vue3/examples/components/table.md +166 -0
  26. package/skills/element-plus-vue3/examples/guide/design.md +68 -0
  27. package/skills/element-plus-vue3/examples/guide/global-config.md +95 -0
  28. package/skills/element-plus-vue3/examples/guide/i18n.md +95 -0
  29. package/skills/element-plus-vue3/examples/guide/installation.md +110 -0
  30. package/skills/element-plus-vue3/examples/guide/quick-start.md +103 -0
  31. package/skills/element-plus-vue3/examples/guide/theme.md +78 -0
  32. package/skills/element-plus-vue3/templates/component-usage.md +92 -0
  33. package/skills/element-plus-vue3/templates/installation.md +82 -0
  34. package/skills/element-plus-vue3/templates/project-setup.md +83 -0
  35. package/skills/node/LICENSE.md +21 -0
  36. package/skills/node/SKILL.md +94 -0
  37. package/skills/node/SYNC.md +5 -0
  38. package/skills/node/rules/assets/graceful-server.test.ts +88 -0
  39. package/skills/node/rules/assets/graceful-server.ts +80 -0
  40. package/skills/node/rules/async-patterns.md +136 -0
  41. package/skills/node/rules/caching.md +198 -0
  42. package/skills/node/rules/environment.md +253 -0
  43. package/skills/node/rules/error-handling.md +164 -0
  44. package/skills/node/rules/flaky-tests.md +439 -0
  45. package/skills/node/rules/graceful-shutdown.md +204 -0
  46. package/skills/node/rules/logging.md +205 -0
  47. package/skills/node/rules/modules.md +105 -0
  48. package/skills/node/rules/node-modules-exploration.md +172 -0
  49. package/skills/node/rules/performance.md +130 -0
  50. package/skills/node/rules/profiling.md +183 -0
  51. package/skills/node/rules/streams.md +213 -0
  52. package/skills/node/rules/stuck-processes-and-tests.md +124 -0
  53. package/skills/node/rules/testing.md +218 -0
  54. package/skills/node/rules/typescript.md +262 -0
  55. package/skills/node/tile.json +11 -0
  56. package/skills/nuxt/GENERATION.md +5 -0
  57. package/skills/nuxt/LICENSE.md +21 -0
  58. package/skills/nuxt/SKILL.md +55 -0
  59. package/skills/nuxt/SYNC.md +5 -0
  60. package/skills/nuxt/references/advanced-hooks.md +289 -0
  61. package/skills/nuxt/references/advanced-layers.md +299 -0
  62. package/skills/nuxt/references/advanced-module-authoring.md +554 -0
  63. package/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  64. package/skills/nuxt/references/best-practices-ssr.md +355 -0
  65. package/skills/nuxt/references/core-cli.md +263 -0
  66. package/skills/nuxt/references/core-config.md +162 -0
  67. package/skills/nuxt/references/core-data-fetching.md +236 -0
  68. package/skills/nuxt/references/core-deployment.md +224 -0
  69. package/skills/nuxt/references/core-directory-structure.md +269 -0
  70. package/skills/nuxt/references/core-modules.md +292 -0
  71. package/skills/nuxt/references/core-routing.md +226 -0
  72. package/skills/nuxt/references/features-components-autoimport.md +328 -0
  73. package/skills/nuxt/references/features-components.md +264 -0
  74. package/skills/nuxt/references/features-composables.md +276 -0
  75. package/skills/nuxt/references/features-server.md +265 -0
  76. package/skills/nuxt/references/features-state.md +194 -0
  77. package/skills/nuxt/references/rendering-modes.md +237 -0
  78. package/skills/pinia/GENERATION.md +5 -0
  79. package/skills/pinia/LICENSE.md +21 -0
  80. package/skills/pinia/SKILL.md +59 -0
  81. package/skills/pinia/SYNC.md +5 -0
  82. package/skills/pinia/references/advanced-hmr.md +61 -0
  83. package/skills/pinia/references/advanced-nuxt.md +119 -0
  84. package/skills/pinia/references/advanced-ssr.md +121 -0
  85. package/skills/pinia/references/best-practices-outside-component.md +115 -0
  86. package/skills/pinia/references/best-practices-testing.md +212 -0
  87. package/skills/pinia/references/core-stores.md +389 -0
  88. package/skills/pinia/references/features-composables.md +114 -0
  89. package/skills/pinia/references/features-composing-stores.md +134 -0
  90. package/skills/pinia/references/features-plugins.md +203 -0
  91. package/skills/pnpm/GENERATION.md +5 -0
  92. package/skills/pnpm/LICENSE.md +21 -0
  93. package/skills/pnpm/SKILL.md +42 -0
  94. package/skills/pnpm/SYNC.md +5 -0
  95. package/skills/pnpm/references/best-practices-ci.md +285 -0
  96. package/skills/pnpm/references/best-practices-migration.md +291 -0
  97. package/skills/pnpm/references/best-practices-performance.md +284 -0
  98. package/skills/pnpm/references/core-cli.md +229 -0
  99. package/skills/pnpm/references/core-config.md +188 -0
  100. package/skills/pnpm/references/core-store.md +179 -0
  101. package/skills/pnpm/references/core-workspaces.md +205 -0
  102. package/skills/pnpm/references/features-aliases.md +168 -0
  103. package/skills/pnpm/references/features-catalogs.md +159 -0
  104. package/skills/pnpm/references/features-hooks.md +233 -0
  105. package/skills/pnpm/references/features-overrides.md +184 -0
  106. package/skills/pnpm/references/features-patches.md +201 -0
  107. package/skills/pnpm/references/features-peer-deps.md +250 -0
  108. package/skills/slidev/LICENSE.md +21 -0
  109. package/skills/slidev/README.md +61 -0
  110. package/skills/slidev/SKILL.md +189 -0
  111. package/skills/slidev/SYNC.md +5 -0
  112. package/skills/slidev/references/animation-click-marker.md +37 -0
  113. package/skills/slidev/references/animation-drawing.md +68 -0
  114. package/skills/slidev/references/animation-rough-marker.md +53 -0
  115. package/skills/slidev/references/api-slide-hooks.md +37 -0
  116. package/skills/slidev/references/build-og-image.md +36 -0
  117. package/skills/slidev/references/build-pdf.md +40 -0
  118. package/skills/slidev/references/build-remote-assets.md +34 -0
  119. package/skills/slidev/references/build-seo-meta.md +43 -0
  120. package/skills/slidev/references/code-groups.md +64 -0
  121. package/skills/slidev/references/code-import-snippet.md +55 -0
  122. package/skills/slidev/references/code-line-highlighting.md +50 -0
  123. package/skills/slidev/references/code-line-numbers.md +46 -0
  124. package/skills/slidev/references/code-magic-move.md +57 -0
  125. package/skills/slidev/references/code-max-height.md +37 -0
  126. package/skills/slidev/references/code-twoslash.md +42 -0
  127. package/skills/slidev/references/core-animations.md +196 -0
  128. package/skills/slidev/references/core-cli.md +140 -0
  129. package/skills/slidev/references/core-components.md +197 -0
  130. package/skills/slidev/references/core-exporting.md +148 -0
  131. package/skills/slidev/references/core-frontmatter.md +195 -0
  132. package/skills/slidev/references/core-global-context.md +155 -0
  133. package/skills/slidev/references/core-headmatter.md +188 -0
  134. package/skills/slidev/references/core-hosting.md +152 -0
  135. package/skills/slidev/references/core-layouts.md +286 -0
  136. package/skills/slidev/references/core-syntax.md +155 -0
  137. package/skills/slidev/references/diagram-latex.md +55 -0
  138. package/skills/slidev/references/diagram-mermaid.md +44 -0
  139. package/skills/slidev/references/diagram-plantuml.md +45 -0
  140. package/skills/slidev/references/editor-monaco-run.md +44 -0
  141. package/skills/slidev/references/editor-monaco-write.md +24 -0
  142. package/skills/slidev/references/editor-monaco.md +50 -0
  143. package/skills/slidev/references/editor-prettier.md +40 -0
  144. package/skills/slidev/references/editor-side.md +23 -0
  145. package/skills/slidev/references/editor-vscode.md +55 -0
  146. package/skills/slidev/references/layout-canvas-size.md +25 -0
  147. package/skills/slidev/references/layout-draggable.md +57 -0
  148. package/skills/slidev/references/layout-global-layers.md +50 -0
  149. package/skills/slidev/references/layout-slots.md +75 -0
  150. package/skills/slidev/references/layout-transform.md +33 -0
  151. package/skills/slidev/references/layout-zoom.md +39 -0
  152. package/skills/slidev/references/presenter-notes-ruby.md +35 -0
  153. package/skills/slidev/references/presenter-recording.md +30 -0
  154. package/skills/slidev/references/presenter-remote.md +40 -0
  155. package/skills/slidev/references/presenter-timer.md +34 -0
  156. package/skills/slidev/references/style-direction.md +34 -0
  157. package/skills/slidev/references/style-icons.md +46 -0
  158. package/skills/slidev/references/style-scoped.md +50 -0
  159. package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  160. package/skills/slidev/references/syntax-comark.md +51 -0
  161. package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  162. package/skills/slidev/references/syntax-importing-slides.md +60 -0
  163. package/skills/slidev/references/tool-eject-theme.md +27 -0
  164. package/skills/tsdown/LICENSE.md +22 -0
  165. package/skills/tsdown/README.md +77 -0
  166. package/skills/tsdown/SKILL.md +416 -0
  167. package/skills/tsdown/SYNC.md +5 -0
  168. package/skills/tsdown/references/README.md +139 -0
  169. package/skills/tsdown/references/advanced-benchmark.md +8 -0
  170. package/skills/tsdown/references/advanced-ci.md +89 -0
  171. package/skills/tsdown/references/advanced-hooks.md +363 -0
  172. package/skills/tsdown/references/advanced-plugins.md +381 -0
  173. package/skills/tsdown/references/advanced-programmatic.md +378 -0
  174. package/skills/tsdown/references/advanced-rolldown-options.md +117 -0
  175. package/skills/tsdown/references/guide-getting-started.md +183 -0
  176. package/skills/tsdown/references/guide-introduction.md +42 -0
  177. package/skills/tsdown/references/guide-migrate-from-tsup.md +199 -0
  178. package/skills/tsdown/references/option-cjs-default.md +98 -0
  179. package/skills/tsdown/references/option-cleaning.md +275 -0
  180. package/skills/tsdown/references/option-config-file.md +291 -0
  181. package/skills/tsdown/references/option-css.md +301 -0
  182. package/skills/tsdown/references/option-dependencies.md +385 -0
  183. package/skills/tsdown/references/option-dts.md +251 -0
  184. package/skills/tsdown/references/option-entry.md +211 -0
  185. package/skills/tsdown/references/option-exe.md +120 -0
  186. package/skills/tsdown/references/option-lint.md +127 -0
  187. package/skills/tsdown/references/option-log-level.md +91 -0
  188. package/skills/tsdown/references/option-minification.md +177 -0
  189. package/skills/tsdown/references/option-output-directory.md +272 -0
  190. package/skills/tsdown/references/option-output-format.md +183 -0
  191. package/skills/tsdown/references/option-package-exports.md +320 -0
  192. package/skills/tsdown/references/option-platform.md +256 -0
  193. package/skills/tsdown/references/option-root.md +88 -0
  194. package/skills/tsdown/references/option-shims.md +299 -0
  195. package/skills/tsdown/references/option-sourcemap.md +301 -0
  196. package/skills/tsdown/references/option-target.md +222 -0
  197. package/skills/tsdown/references/option-tree-shaking.md +335 -0
  198. package/skills/tsdown/references/option-unbundle.md +310 -0
  199. package/skills/tsdown/references/option-watch-mode.md +261 -0
  200. package/skills/tsdown/references/recipe-react.md +338 -0
  201. package/skills/tsdown/references/recipe-solid.md +42 -0
  202. package/skills/tsdown/references/recipe-svelte.md +54 -0
  203. package/skills/tsdown/references/recipe-vue.md +387 -0
  204. package/skills/tsdown/references/recipe-wasm.md +125 -0
  205. package/skills/tsdown/references/reference-cli.md +472 -0
  206. package/skills/turborepo/LICENSE.md +7 -0
  207. package/skills/turborepo/SKILL.md +951 -0
  208. package/skills/turborepo/SYNC.md +5 -0
  209. package/skills/turborepo/command/turborepo.md +70 -0
  210. package/skills/turborepo/references/best-practices/RULE.md +241 -0
  211. package/skills/turborepo/references/best-practices/dependencies.md +246 -0
  212. package/skills/turborepo/references/best-practices/packages.md +335 -0
  213. package/skills/turborepo/references/best-practices/structure.md +297 -0
  214. package/skills/turborepo/references/boundaries/RULE.md +126 -0
  215. package/skills/turborepo/references/caching/RULE.md +153 -0
  216. package/skills/turborepo/references/caching/gotchas.md +190 -0
  217. package/skills/turborepo/references/caching/remote-cache.md +127 -0
  218. package/skills/turborepo/references/ci/RULE.md +79 -0
  219. package/skills/turborepo/references/ci/github-actions.md +162 -0
  220. package/skills/turborepo/references/ci/patterns.md +145 -0
  221. package/skills/turborepo/references/ci/vercel.md +103 -0
  222. package/skills/turborepo/references/cli/RULE.md +100 -0
  223. package/skills/turborepo/references/cli/commands.md +297 -0
  224. package/skills/turborepo/references/configuration/RULE.md +235 -0
  225. package/skills/turborepo/references/configuration/global-options.md +239 -0
  226. package/skills/turborepo/references/configuration/gotchas.md +368 -0
  227. package/skills/turborepo/references/configuration/tasks.md +325 -0
  228. package/skills/turborepo/references/environment/RULE.md +123 -0
  229. package/skills/turborepo/references/environment/gotchas.md +175 -0
  230. package/skills/turborepo/references/environment/modes.md +101 -0
  231. package/skills/turborepo/references/filtering/RULE.md +148 -0
  232. package/skills/turborepo/references/filtering/patterns.md +152 -0
  233. package/skills/turborepo/references/watch/RULE.md +99 -0
  234. package/skills/vite/GENERATION.md +5 -0
  235. package/skills/vite/LICENSE.md +21 -0
  236. package/skills/vite/SKILL.md +72 -0
  237. package/skills/vite/SYNC.md +5 -0
  238. package/skills/vite/references/build-and-ssr.md +164 -0
  239. package/skills/vite/references/core-config.md +162 -0
  240. package/skills/vite/references/core-features.md +205 -0
  241. package/skills/vite/references/core-plugin-api.md +235 -0
  242. package/skills/vite/references/environment-api.md +108 -0
  243. package/skills/vite/references/rolldown-migration.md +157 -0
  244. package/skills/vitepress/GENERATION.md +5 -0
  245. package/skills/vitepress/LICENSE.md +21 -0
  246. package/skills/vitepress/SKILL.md +65 -0
  247. package/skills/vitepress/SYNC.md +5 -0
  248. package/skills/vitepress/references/advanced-i18n.md +299 -0
  249. package/skills/vitepress/references/advanced-ssr.md +228 -0
  250. package/skills/vitepress/references/core-cli.md +119 -0
  251. package/skills/vitepress/references/core-config.md +189 -0
  252. package/skills/vitepress/references/core-markdown.md +277 -0
  253. package/skills/vitepress/references/core-routing.md +169 -0
  254. package/skills/vitepress/references/features-code-blocks.md +243 -0
  255. package/skills/vitepress/references/features-data-loading.md +220 -0
  256. package/skills/vitepress/references/features-dynamic-routes.md +235 -0
  257. package/skills/vitepress/references/features-vue.md +224 -0
  258. package/skills/vitepress/references/recipes-deploy.md +240 -0
  259. package/skills/vitepress/references/theme-config.md +315 -0
  260. package/skills/vitepress/references/theme-custom.md +269 -0
  261. package/skills/vitepress/references/theme-customization.md +290 -0
  262. package/skills/vitest/GENERATION.md +5 -0
  263. package/skills/vitest/LICENSE.md +21 -0
  264. package/skills/vitest/SKILL.md +52 -0
  265. package/skills/vitest/SYNC.md +5 -0
  266. package/skills/vitest/references/advanced-environments.md +264 -0
  267. package/skills/vitest/references/advanced-projects.md +300 -0
  268. package/skills/vitest/references/advanced-type-testing.md +237 -0
  269. package/skills/vitest/references/advanced-vi.md +249 -0
  270. package/skills/vitest/references/core-cli.md +166 -0
  271. package/skills/vitest/references/core-config.md +174 -0
  272. package/skills/vitest/references/core-describe.md +193 -0
  273. package/skills/vitest/references/core-expect.md +219 -0
  274. package/skills/vitest/references/core-hooks.md +244 -0
  275. package/skills/vitest/references/core-test-api.md +233 -0
  276. package/skills/vitest/references/features-concurrency.md +250 -0
  277. package/skills/vitest/references/features-context.md +238 -0
  278. package/skills/vitest/references/features-coverage.md +207 -0
  279. package/skills/vitest/references/features-filtering.md +211 -0
  280. package/skills/vitest/references/features-mocking.md +265 -0
  281. package/skills/vitest/references/features-snapshots.md +207 -0
  282. package/skills/vue/GENERATION.md +5 -0
  283. package/skills/vue/LICENSE.md +21 -0
  284. package/skills/vue/SKILL.md +84 -0
  285. package/skills/vue/SYNC.md +5 -0
  286. package/skills/vue/references/advanced-patterns.md +314 -0
  287. package/skills/vue/references/core-new-apis.md +264 -0
  288. package/skills/vue/references/script-setup-macros.md +204 -0
  289. package/skills/vue-best-practices/LICENSE.md +21 -0
  290. package/skills/vue-best-practices/SKILL.md +154 -0
  291. package/skills/vue-best-practices/SYNC.md +5 -0
  292. package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
  293. package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  294. package/skills/vue-best-practices/references/component-async.md +97 -0
  295. package/skills/vue-best-practices/references/component-data-flow.md +307 -0
  296. package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  297. package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
  298. package/skills/vue-best-practices/references/component-slots.md +216 -0
  299. package/skills/vue-best-practices/references/component-suspense.md +228 -0
  300. package/skills/vue-best-practices/references/component-teleport.md +108 -0
  301. package/skills/vue-best-practices/references/component-transition-group.md +128 -0
  302. package/skills/vue-best-practices/references/component-transition.md +125 -0
  303. package/skills/vue-best-practices/references/composables.md +290 -0
  304. package/skills/vue-best-practices/references/directives.md +162 -0
  305. package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  306. package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  307. package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  308. package/skills/vue-best-practices/references/plugins.md +166 -0
  309. package/skills/vue-best-practices/references/reactivity.md +344 -0
  310. package/skills/vue-best-practices/references/render-functions.md +201 -0
  311. package/skills/vue-best-practices/references/sfc.md +310 -0
  312. package/skills/vue-best-practices/references/state-management.md +135 -0
  313. package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
  314. package/skills/vue-router-best-practices/LICENSE.md +21 -0
  315. package/skills/vue-router-best-practices/SKILL.md +23 -0
  316. package/skills/vue-router-best-practices/SYNC.md +5 -0
  317. package/skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
  318. package/skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
  319. package/skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
  320. package/skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
  321. package/skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
  322. package/skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
  323. package/skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
  324. package/skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
  325. package/skills/vue-testing-best-practices/LICENSE.md +21 -0
  326. package/skills/vue-testing-best-practices/SKILL.md +29 -0
  327. package/skills/vue-testing-best-practices/SYNC.md +5 -0
  328. package/skills/vue-testing-best-practices/reference/async-component-testing.md +163 -0
  329. package/skills/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
  330. package/skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
  331. package/skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
  332. package/skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
  333. package/skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
  334. package/skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
  335. package/skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
  336. package/skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
  337. package/skills/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
  338. package/skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
  339. package/skills/vueuse-functions/LICENSE.md +21 -0
  340. package/skills/vueuse-functions/SKILL.md +419 -0
  341. package/skills/vueuse-functions/SYNC.md +5 -0
  342. package/skills/vueuse-functions/references/computedAsync.md +195 -0
  343. package/skills/vueuse-functions/references/computedEager.md +62 -0
  344. package/skills/vueuse-functions/references/computedInject.md +137 -0
  345. package/skills/vueuse-functions/references/computedWithControl.md +98 -0
  346. package/skills/vueuse-functions/references/createEventHook.md +86 -0
  347. package/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  348. package/skills/vueuse-functions/references/createGlobalState.md +95 -0
  349. package/skills/vueuse-functions/references/createInjectionState.md +226 -0
  350. package/skills/vueuse-functions/references/createProjection.md +31 -0
  351. package/skills/vueuse-functions/references/createRef.md +54 -0
  352. package/skills/vueuse-functions/references/createReusableTemplate.md +361 -0
  353. package/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  354. package/skills/vueuse-functions/references/createTemplatePromise.md +306 -0
  355. package/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  356. package/skills/vueuse-functions/references/extendRef.md +76 -0
  357. package/skills/vueuse-functions/references/from.md +80 -0
  358. package/skills/vueuse-functions/references/get.md +30 -0
  359. package/skills/vueuse-functions/references/injectLocal.md +35 -0
  360. package/skills/vueuse-functions/references/isDefined.md +31 -0
  361. package/skills/vueuse-functions/references/logicAnd.md +40 -0
  362. package/skills/vueuse-functions/references/logicNot.md +36 -0
  363. package/skills/vueuse-functions/references/logicOr.md +40 -0
  364. package/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  365. package/skills/vueuse-functions/references/onClickOutside.md +228 -0
  366. package/skills/vueuse-functions/references/onElementRemoval.md +88 -0
  367. package/skills/vueuse-functions/references/onKeyStroke.md +212 -0
  368. package/skills/vueuse-functions/references/onLongPress.md +235 -0
  369. package/skills/vueuse-functions/references/onStartTyping.md +53 -0
  370. package/skills/vueuse-functions/references/provideLocal.md +37 -0
  371. package/skills/vueuse-functions/references/reactify.md +144 -0
  372. package/skills/vueuse-functions/references/reactifyObject.md +62 -0
  373. package/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  374. package/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  375. package/skills/vueuse-functions/references/reactivePick.md +106 -0
  376. package/skills/vueuse-functions/references/refAutoReset.md +46 -0
  377. package/skills/vueuse-functions/references/refDebounced.md +81 -0
  378. package/skills/vueuse-functions/references/refDefault.md +36 -0
  379. package/skills/vueuse-functions/references/refManualReset.md +48 -0
  380. package/skills/vueuse-functions/references/refThrottled.md +99 -0
  381. package/skills/vueuse-functions/references/refWithControl.md +146 -0
  382. package/skills/vueuse-functions/references/set.md +30 -0
  383. package/skills/vueuse-functions/references/syncRef.md +195 -0
  384. package/skills/vueuse-functions/references/syncRefs.md +128 -0
  385. package/skills/vueuse-functions/references/templateRef.md +86 -0
  386. package/skills/vueuse-functions/references/toObserver.md +38 -0
  387. package/skills/vueuse-functions/references/toReactive.md +41 -0
  388. package/skills/vueuse-functions/references/toRef.md +74 -0
  389. package/skills/vueuse-functions/references/toRefs.md +78 -0
  390. package/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  391. package/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  392. package/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  393. package/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  394. package/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  395. package/skills/vueuse-functions/references/unrefElement.md +54 -0
  396. package/skills/vueuse-functions/references/until.md +161 -0
  397. package/skills/vueuse-functions/references/useAbs.md +31 -0
  398. package/skills/vueuse-functions/references/useActiveElement.md +86 -0
  399. package/skills/vueuse-functions/references/useAnimate.md +180 -0
  400. package/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  401. package/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  402. package/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  403. package/skills/vueuse-functions/references/useArrayFind.md +50 -0
  404. package/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  405. package/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  406. package/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  407. package/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  408. package/skills/vueuse-functions/references/useArrayMap.md +59 -0
  409. package/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  410. package/skills/vueuse-functions/references/useArraySome.md +59 -0
  411. package/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  412. package/skills/vueuse-functions/references/useAsyncQueue.md +136 -0
  413. package/skills/vueuse-functions/references/useAsyncState.md +185 -0
  414. package/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  415. package/skills/vueuse-functions/references/useAuth.md +123 -0
  416. package/skills/vueuse-functions/references/useAverage.md +36 -0
  417. package/skills/vueuse-functions/references/useAxios.md +325 -0
  418. package/skills/vueuse-functions/references/useBase64.md +136 -0
  419. package/skills/vueuse-functions/references/useBattery.md +80 -0
  420. package/skills/vueuse-functions/references/useBluetooth.md +174 -0
  421. package/skills/vueuse-functions/references/useBreakpoints.md +176 -0
  422. package/skills/vueuse-functions/references/useBroadcastChannel.md +73 -0
  423. package/skills/vueuse-functions/references/useBrowserLocation.md +56 -0
  424. package/skills/vueuse-functions/references/useCached.md +52 -0
  425. package/skills/vueuse-functions/references/useCeil.md +31 -0
  426. package/skills/vueuse-functions/references/useChangeCase.md +79 -0
  427. package/skills/vueuse-functions/references/useClamp.md +85 -0
  428. package/skills/vueuse-functions/references/useClipboard.md +122 -0
  429. package/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  430. package/skills/vueuse-functions/references/useCloned.md +91 -0
  431. package/skills/vueuse-functions/references/useColorMode.md +172 -0
  432. package/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  433. package/skills/vueuse-functions/references/useCookies.md +162 -0
  434. package/skills/vueuse-functions/references/useCountdown.md +105 -0
  435. package/skills/vueuse-functions/references/useCounter.md +86 -0
  436. package/skills/vueuse-functions/references/useCssSupports.md +33 -0
  437. package/skills/vueuse-functions/references/useCssVar.md +50 -0
  438. package/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  439. package/skills/vueuse-functions/references/useCycleList.md +75 -0
  440. package/skills/vueuse-functions/references/useDark.md +142 -0
  441. package/skills/vueuse-functions/references/useDateFormat.md +145 -0
  442. package/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  443. package/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  444. package/skills/vueuse-functions/references/useDeviceMotion.md +80 -0
  445. package/skills/vueuse-functions/references/useDeviceOrientation.md +64 -0
  446. package/skills/vueuse-functions/references/useDevicePixelRatio.md +47 -0
  447. package/skills/vueuse-functions/references/useDevicesList.md +89 -0
  448. package/skills/vueuse-functions/references/useDisplayMedia.md +67 -0
  449. package/skills/vueuse-functions/references/useDocumentVisibility.md +44 -0
  450. package/skills/vueuse-functions/references/useDraggable.md +289 -0
  451. package/skills/vueuse-functions/references/useDrauu.md +65 -0
  452. package/skills/vueuse-functions/references/useDropZone.md +83 -0
  453. package/skills/vueuse-functions/references/useElementBounding.md +131 -0
  454. package/skills/vueuse-functions/references/useElementByPoint.md +46 -0
  455. package/skills/vueuse-functions/references/useElementHover.md +79 -0
  456. package/skills/vueuse-functions/references/useElementSize.md +79 -0
  457. package/skills/vueuse-functions/references/useElementVisibility.md +163 -0
  458. package/skills/vueuse-functions/references/useEventBus.md +101 -0
  459. package/skills/vueuse-functions/references/useEventListener.md +226 -0
  460. package/skills/vueuse-functions/references/useEventSource.md +204 -0
  461. package/skills/vueuse-functions/references/useExtractedObservable.md +198 -0
  462. package/skills/vueuse-functions/references/useEyeDropper.md +72 -0
  463. package/skills/vueuse-functions/references/useFavicon.md +69 -0
  464. package/skills/vueuse-functions/references/useFetch.md +546 -0
  465. package/skills/vueuse-functions/references/useFileDialog.md +91 -0
  466. package/skills/vueuse-functions/references/useFileSystemAccess.md +161 -0
  467. package/skills/vueuse-functions/references/useFirestore.md +129 -0
  468. package/skills/vueuse-functions/references/useFloor.md +31 -0
  469. package/skills/vueuse-functions/references/useFocus.md +99 -0
  470. package/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  471. package/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  472. package/skills/vueuse-functions/references/useFps.md +28 -0
  473. package/skills/vueuse-functions/references/useFullscreen.md +74 -0
  474. package/skills/vueuse-functions/references/useFuse.md +75 -0
  475. package/skills/vueuse-functions/references/useGamepad.md +176 -0
  476. package/skills/vueuse-functions/references/useGeolocation.md +63 -0
  477. package/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  478. package/skills/vueuse-functions/references/useIdle.md +88 -0
  479. package/skills/vueuse-functions/references/useImage.md +90 -0
  480. package/skills/vueuse-functions/references/useInfiniteScroll.md +156 -0
  481. package/skills/vueuse-functions/references/useIntersectionObserver.md +117 -0
  482. package/skills/vueuse-functions/references/useInterval.md +112 -0
  483. package/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  484. package/skills/vueuse-functions/references/useIpcRenderer.md +144 -0
  485. package/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  486. package/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  487. package/skills/vueuse-functions/references/useJwt.md +57 -0
  488. package/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  489. package/skills/vueuse-functions/references/useLastChanged.md +63 -0
  490. package/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  491. package/skills/vueuse-functions/references/useMagicKeys.md +245 -0
  492. package/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  493. package/skills/vueuse-functions/references/useMath.md +47 -0
  494. package/skills/vueuse-functions/references/useMax.md +36 -0
  495. package/skills/vueuse-functions/references/useMediaControls.md +201 -0
  496. package/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  497. package/skills/vueuse-functions/references/useMemoize.md +175 -0
  498. package/skills/vueuse-functions/references/useMemory.md +70 -0
  499. package/skills/vueuse-functions/references/useMin.md +36 -0
  500. package/skills/vueuse-functions/references/useMounted.md +38 -0
  501. package/skills/vueuse-functions/references/useMouse.md +113 -0
  502. package/skills/vueuse-functions/references/useMouseInElement.md +132 -0
  503. package/skills/vueuse-functions/references/useMousePressed.md +116 -0
  504. package/skills/vueuse-functions/references/useMutationObserver.md +60 -0
  505. package/skills/vueuse-functions/references/useNProgress.md +78 -0
  506. package/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  507. package/skills/vueuse-functions/references/useNetwork.md +106 -0
  508. package/skills/vueuse-functions/references/useNow.md +83 -0
  509. package/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  510. package/skills/vueuse-functions/references/useObservable.md +91 -0
  511. package/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  512. package/skills/vueuse-functions/references/useOnline.md +41 -0
  513. package/skills/vueuse-functions/references/usePageLeave.md +43 -0
  514. package/skills/vueuse-functions/references/useParallax.md +58 -0
  515. package/skills/vueuse-functions/references/useParentElement.md +54 -0
  516. package/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  517. package/skills/vueuse-functions/references/usePermission.md +78 -0
  518. package/skills/vueuse-functions/references/usePointer.md +91 -0
  519. package/skills/vueuse-functions/references/usePointerLock.md +59 -0
  520. package/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  521. package/skills/vueuse-functions/references/usePrecision.md +49 -0
  522. package/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  523. package/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  524. package/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  525. package/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  526. package/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  527. package/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  528. package/skills/vueuse-functions/references/usePrevious.md +40 -0
  529. package/skills/vueuse-functions/references/useProjection.md +38 -0
  530. package/skills/vueuse-functions/references/useQRCode.md +53 -0
  531. package/skills/vueuse-functions/references/useRTDB.md +83 -0
  532. package/skills/vueuse-functions/references/useRafFn.md +68 -0
  533. package/skills/vueuse-functions/references/useRefHistory.md +285 -0
  534. package/skills/vueuse-functions/references/useResizeObserver.md +108 -0
  535. package/skills/vueuse-functions/references/useRound.md +31 -0
  536. package/skills/vueuse-functions/references/useRouteHash.md +27 -0
  537. package/skills/vueuse-functions/references/useRouteParams.md +38 -0
  538. package/skills/vueuse-functions/references/useRouteQuery.md +79 -0
  539. package/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  540. package/skills/vueuse-functions/references/useScreenOrientation.md +98 -0
  541. package/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  542. package/skills/vueuse-functions/references/useScriptTag.md +116 -0
  543. package/skills/vueuse-functions/references/useScroll.md +238 -0
  544. package/skills/vueuse-functions/references/useScrollLock.md +66 -0
  545. package/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  546. package/skills/vueuse-functions/references/useShare.md +67 -0
  547. package/skills/vueuse-functions/references/useSortable.md +276 -0
  548. package/skills/vueuse-functions/references/useSorted.md +90 -0
  549. package/skills/vueuse-functions/references/useSpeechRecognition.md +90 -0
  550. package/skills/vueuse-functions/references/useSpeechSynthesis.md +101 -0
  551. package/skills/vueuse-functions/references/useStepper.md +137 -0
  552. package/skills/vueuse-functions/references/useStorage.md +278 -0
  553. package/skills/vueuse-functions/references/useStorageAsync.md +136 -0
  554. package/skills/vueuse-functions/references/useStyleTag.md +131 -0
  555. package/skills/vueuse-functions/references/useSubject.md +77 -0
  556. package/skills/vueuse-functions/references/useSubscription.md +33 -0
  557. package/skills/vueuse-functions/references/useSum.md +36 -0
  558. package/skills/vueuse-functions/references/useSupported.md +29 -0
  559. package/skills/vueuse-functions/references/useSwipe.md +75 -0
  560. package/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  561. package/skills/vueuse-functions/references/useTextDirection.md +75 -0
  562. package/skills/vueuse-functions/references/useTextSelection.md +43 -0
  563. package/skills/vueuse-functions/references/useTextareaAutosize.md +94 -0
  564. package/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  565. package/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  566. package/skills/vueuse-functions/references/useTimeAgo.md +154 -0
  567. package/skills/vueuse-functions/references/useTimeAgoIntl.md +117 -0
  568. package/skills/vueuse-functions/references/useTimeout.md +113 -0
  569. package/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  570. package/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  571. package/skills/vueuse-functions/references/useTimestamp.md +93 -0
  572. package/skills/vueuse-functions/references/useTitle.md +115 -0
  573. package/skills/vueuse-functions/references/useToNumber.md +54 -0
  574. package/skills/vueuse-functions/references/useToString.md +34 -0
  575. package/skills/vueuse-functions/references/useToggle.md +103 -0
  576. package/skills/vueuse-functions/references/useTransition.md +265 -0
  577. package/skills/vueuse-functions/references/useTrunc.md +33 -0
  578. package/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  579. package/skills/vueuse-functions/references/useUserMedia.md +96 -0
  580. package/skills/vueuse-functions/references/useVModel.md +182 -0
  581. package/skills/vueuse-functions/references/useVModels.md +67 -0
  582. package/skills/vueuse-functions/references/useVibrate.md +86 -0
  583. package/skills/vueuse-functions/references/useVirtualList.md +182 -0
  584. package/skills/vueuse-functions/references/useWakeLock.md +51 -0
  585. package/skills/vueuse-functions/references/useWebNotification.md +175 -0
  586. package/skills/vueuse-functions/references/useWebSocket.md +299 -0
  587. package/skills/vueuse-functions/references/useWebWorker.md +60 -0
  588. package/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  589. package/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  590. package/skills/vueuse-functions/references/useWindowScroll.md +46 -0
  591. package/skills/vueuse-functions/references/useWindowSize.md +78 -0
  592. package/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  593. package/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  594. package/skills/vueuse-functions/references/watchArray.md +53 -0
  595. package/skills/vueuse-functions/references/watchAtMost.md +63 -0
  596. package/skills/vueuse-functions/references/watchDebounced.md +101 -0
  597. package/skills/vueuse-functions/references/watchDeep.md +54 -0
  598. package/skills/vueuse-functions/references/watchExtractedObservable.md +192 -0
  599. package/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  600. package/skills/vueuse-functions/references/watchImmediate.md +44 -0
  601. package/skills/vueuse-functions/references/watchOnce.md +41 -0
  602. package/skills/vueuse-functions/references/watchPausable.md +86 -0
  603. package/skills/vueuse-functions/references/watchThrottled.md +108 -0
  604. package/skills/vueuse-functions/references/watchTriggerable.md +98 -0
  605. package/skills/vueuse-functions/references/watchWithFilter.md +54 -0
  606. package/skills/vueuse-functions/references/whenever.md +108 -0
  607. package/skills/web-design-guidelines/SKILL.md +39 -0
  608. package/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,54 @@
1
+ ---
2
+ category: Watch
3
+ ---
4
+
5
+ # watchDeep
6
+
7
+ Shorthand for watching value with `{deep: true}`
8
+
9
+ ## Usage
10
+
11
+ Similar to `watch`, but with `{ deep: true }`
12
+
13
+ ```ts
14
+ import { watchDeep } from '@vueuse/core'
15
+
16
+ const nestedObject = ref({ foo: { bar: { deep: 5 } } })
17
+
18
+ watchDeep(nestedObject, (updated) => {
19
+ console.log(updated)
20
+ })
21
+
22
+ onMounted(() => {
23
+ nestedObject.value.foo.bar.deep = 10
24
+ })
25
+ ```
26
+
27
+ ## Type Declarations
28
+
29
+ ```ts
30
+ export declare function watchDeep<
31
+ T,
32
+ Immediate extends Readonly<boolean> = false,
33
+ >(
34
+ source: WatchSource<T>,
35
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
36
+ options?: Omit<WatchOptions<Immediate>, "deep">,
37
+ ): WatchHandle
38
+ export declare function watchDeep<
39
+ T extends Readonly<MultiWatchSources>,
40
+ Immediate extends Readonly<boolean> = false,
41
+ >(
42
+ source: [...T],
43
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,
44
+ options?: Omit<WatchOptions<Immediate>, "deep">,
45
+ ): WatchHandle
46
+ export declare function watchDeep<
47
+ T extends object,
48
+ Immediate extends Readonly<boolean> = false,
49
+ >(
50
+ source: T,
51
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
52
+ options?: Omit<WatchOptions<Immediate>, "deep">,
53
+ ): WatchHandle
54
+ ```
@@ -0,0 +1,192 @@
1
+ ---
2
+ category: '@RxJS'
3
+ ---
4
+
5
+ # watchExtractedObservable
6
+
7
+ Watch the values of an RxJS [`Observable`](https://rxjs.dev/guide/observable) as extracted from one or more composables.
8
+
9
+ Automatically unsubscribe on observable change, and automatically unsubscribe from it when the component is unmounted.
10
+
11
+ Supports all overloads of [`watch`](https://vuejs.org/guide/essentials/watchers.html#basic-example).
12
+
13
+ ## Usage
14
+
15
+ <!-- TODO: import rxjs error if enable twoslash -->
16
+
17
+ ```ts no-twoslash
18
+ import { watchExtractedObservable } from '@vueuse/rxjs'
19
+ import { computed, reactive, useTemplateRef } from 'vue'
20
+ import { AudioPlayer } from '../my/libs/AudioPlayer'
21
+
22
+ // setup()
23
+
24
+ const audio = useTemplateRef('audio')
25
+ const player = computed(() => (audio.value ? new AudioPlayer(audio.value) : null))
26
+ const state = reactive({
27
+ progress: 0,
28
+ })
29
+
30
+ watchExtractedObservable(player, p => p.progress$, (percentage) => {
31
+ state.progress = percentage * 100
32
+ })
33
+ ```
34
+
35
+ If you want to add custom error handling to an `Observable` that might error, you can supply an optional `onError` configuration. Without this, RxJS will treat any error in the supplied `Observable` as an "unhandled error" and it will be thrown in a new call stack and reported to `window.onerror` (or `process.on('error')` if you happen to be in Node).
36
+
37
+ You can also supply an optional `onComplete` configuration if you need to attach special behavior when the watched observable completes.
38
+
39
+ ```ts no-twoslash
40
+ import { watchExtractedObservable } from '@vueuse/rxjs'
41
+ import { computed, reactive, useTemplateRef } from 'vue'
42
+ import { AudioPlayer } from '../my/libs/AudioPlayer'
43
+
44
+ // setup()
45
+
46
+ const audio = useTemplateRef('audio')
47
+ const player = computed(() => (audio.value ? new AudioPlayer(audio.value) : null))
48
+ const state = reactive({
49
+ progress: 0,
50
+ })
51
+
52
+ watchExtractedObservable(player, p => p.progress$, (percentage) => {
53
+ state.progress = percentage * 100
54
+ }, {
55
+ onError: (err: unknown) => {
56
+ console.error(err)
57
+ },
58
+ onComplete: () => {
59
+ state.progress = 100 // or 0, or whatever
60
+ },
61
+ })
62
+ ```
63
+
64
+ If you want, you can also pass `watch` options as the last argument:
65
+
66
+ ```ts no-twoslash
67
+ import { watchExtractedObservable } from '@vueuse/rxjs'
68
+ import { computed, reactive, useTemplateRef } from 'vue'
69
+ import { AudioPlayer } from '../my/libs/AudioPlayer'
70
+
71
+ // setup()
72
+
73
+ const audio = useTemplateRef('audio')
74
+ const player = computed(() => (audio.value ? new AudioPlayer(audio.value) : null))
75
+ const state = reactive({
76
+ progress: 0,
77
+ })
78
+
79
+ watchExtractedObservable(player, p => p.progress$, (percentage) => {
80
+ state.progress = percentage * 100
81
+ }, {
82
+ onError: (err: unknown) => {
83
+ console.error(err)
84
+ }
85
+ }, {
86
+ immediate: true
87
+ })
88
+ ```
89
+
90
+ ## Subscription Options
91
+
92
+ | Option | Type | Description |
93
+ | ------------ | ------------------------ | ------------------------------------ |
94
+ | `onError` | `(err: unknown) => void` | Error handler for Observable errors |
95
+ | `onComplete` | `() => void` | Called when the Observable completes |
96
+
97
+ ## Return Value
98
+
99
+ Returns a `WatchHandle` that can be used to stop watching:
100
+
101
+ ```ts no-twoslash
102
+ import { watchExtractedObservable } from '@vueuse/rxjs'
103
+ import { ref } from 'vue'
104
+
105
+ const source = ref({ data$: null })
106
+
107
+ const stop = watchExtractedObservable(source, s => s.data$, (data) => {
108
+ console.log(data)
109
+ })
110
+
111
+ // Later, stop watching
112
+ stop()
113
+ ```
114
+
115
+ ## Type Declarations
116
+
117
+ ```ts
118
+ export type OnCleanup = (cleanupFn: () => void) => void
119
+ export type WatchExtractedObservableCallback<
120
+ Value,
121
+ OldValue,
122
+ ObservableElement,
123
+ > = (
124
+ value: NonNullable<Value>,
125
+ oldValue: OldValue,
126
+ onCleanup: OnCleanup,
127
+ ) => Observable<ObservableElement>
128
+ export interface WatchExtractedObservableOptions {
129
+ onError?: (err: unknown) => void
130
+ onComplete?: () => void
131
+ }
132
+ export declare function watchExtractedObservable<
133
+ T extends MultiWatchSources,
134
+ E,
135
+ Immediate extends Readonly<boolean> = false,
136
+ >(
137
+ sources: [...T],
138
+ extractor: WatchExtractedObservableCallback<
139
+ MapSources<T>,
140
+ MapOldSources<T, Immediate>,
141
+ E
142
+ >,
143
+ callback: (snapshot: E) => void,
144
+ subscriptionOptions?: WatchExtractedObservableOptions,
145
+ watchOptions?: WatchOptions<Immediate>,
146
+ ): WatchHandle
147
+ export declare function watchExtractedObservable<
148
+ T extends Readonly<MultiWatchSources>,
149
+ E,
150
+ Immediate extends Readonly<boolean> = false,
151
+ >(
152
+ source: T,
153
+ extractor: WatchExtractedObservableCallback<
154
+ MapSources<T>,
155
+ MapOldSources<T, Immediate>,
156
+ E
157
+ >,
158
+ callback: (snapshot: E) => void,
159
+ subscriptionOptions?: WatchExtractedObservableOptions,
160
+ watchOptions?: WatchOptions<Immediate>,
161
+ ): WatchHandle
162
+ export declare function watchExtractedObservable<
163
+ T,
164
+ E,
165
+ Immediate extends Readonly<boolean> = false,
166
+ >(
167
+ source: WatchSource<T>,
168
+ extractor: WatchExtractedObservableCallback<
169
+ T,
170
+ Immediate extends true ? T | undefined : T,
171
+ E
172
+ >,
173
+ callback: (snapshot: E) => void,
174
+ subscriptionOptions?: WatchExtractedObservableOptions,
175
+ watchOptions?: WatchOptions<Immediate>,
176
+ ): WatchHandle
177
+ export declare function watchExtractedObservable<
178
+ T extends object,
179
+ E,
180
+ Immediate extends Readonly<boolean> = false,
181
+ >(
182
+ source: T,
183
+ extractor: WatchExtractedObservableCallback<
184
+ T,
185
+ Immediate extends true ? T | undefined : T,
186
+ E
187
+ >,
188
+ callback: (snapshot: E) => void,
189
+ subscriptionOptions?: WatchExtractedObservableOptions,
190
+ watchOptions?: WatchOptions<Immediate>,
191
+ ): WatchHandle
192
+ ```
@@ -0,0 +1,120 @@
1
+ ---
2
+ category: Watch
3
+ alias: ignorableWatch
4
+ ---
5
+
6
+ # watchIgnorable
7
+
8
+ Ignorable watch
9
+
10
+ ## Usage
11
+
12
+ Extended `watch` that returns extra `ignoreUpdates(updater)` and `ignorePrevAsyncUpdates()` to ignore particular updates to the source.
13
+
14
+ ```ts
15
+ import { watchIgnorable } from '@vueuse/core'
16
+ import { nextTick, shallowRef } from 'vue'
17
+
18
+ const source = shallowRef('foo')
19
+
20
+ const { stop, ignoreUpdates } = watchIgnorable(
21
+ source,
22
+ v => console.log(`Changed to ${v}!`),
23
+ )
24
+
25
+ source.value = 'bar'
26
+ await nextTick() // logs: Changed to bar!
27
+
28
+ ignoreUpdates(() => {
29
+ source.value = 'foobar'
30
+ })
31
+ await nextTick() // (nothing happened)
32
+
33
+ source.value = 'hello'
34
+ await nextTick() // logs: Changed to hello!
35
+
36
+ ignoreUpdates(() => {
37
+ source.value = 'ignored'
38
+ })
39
+ source.value = 'logged'
40
+
41
+ await nextTick() // logs: Changed to logged!
42
+ ```
43
+
44
+ ## WatchOptionFlush timing
45
+
46
+ `watchIgnorable` accepts the same options as `watch` and uses the same defaults.
47
+ So, by default the composable works using `flush: 'pre'`.
48
+
49
+ ## `ignorePrevAsyncUpdates`
50
+
51
+ This feature is only for async flush `'pre'` and `'post'`. If `flush: 'sync'` is used, `ignorePrevAsyncUpdates()` is a no-op as the watch will trigger immediately after each update to the source. It is still provided for sync flush so the code can be more generic.
52
+
53
+ ```ts
54
+ import { watchIgnorable } from '@vueuse/core'
55
+ import { nextTick, shallowRef } from 'vue'
56
+
57
+ const source = shallowRef('foo')
58
+
59
+ const { ignorePrevAsyncUpdates } = watchIgnorable(
60
+ source,
61
+ v => console.log(`Changed to ${v}!`),
62
+ )
63
+
64
+ source.value = 'bar'
65
+ await nextTick() // logs: Changed to bar!
66
+
67
+ source.value = 'good'
68
+ source.value = 'by'
69
+ ignorePrevAsyncUpdates()
70
+
71
+ await nextTick() // (nothing happened)
72
+
73
+ source.value = 'prev'
74
+ ignorePrevAsyncUpdates()
75
+ source.value = 'after'
76
+
77
+ await nextTick() // logs: Changed to after!
78
+ ```
79
+
80
+ ## Recommended Readings
81
+
82
+ - [Ignorable Watch](https://patak.dev/vue/ignorable-watch.html) - by [@patak-dev](https://github.com/patak-dev)
83
+
84
+ ## Type Declarations
85
+
86
+ ```ts
87
+ export type IgnoredUpdater = (updater: () => void) => void
88
+ export type IgnoredPrevAsyncUpdates = () => void
89
+ export interface WatchIgnorableReturn {
90
+ ignoreUpdates: IgnoredUpdater
91
+ ignorePrevAsyncUpdates: IgnoredPrevAsyncUpdates
92
+ stop: WatchStopHandle
93
+ }
94
+ export declare function watchIgnorable<
95
+ T,
96
+ Immediate extends Readonly<boolean> = false,
97
+ >(
98
+ source: WatchSource<T>,
99
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
100
+ options?: WatchWithFilterOptions<Immediate>,
101
+ ): WatchIgnorableReturn
102
+ export declare function watchIgnorable<
103
+ T extends Readonly<MultiWatchSources>,
104
+ Immediate extends Readonly<boolean> = false,
105
+ >(
106
+ sources: [...T],
107
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,
108
+ options?: WatchWithFilterOptions<Immediate>,
109
+ ): WatchIgnorableReturn
110
+ export declare function watchIgnorable<
111
+ T extends object,
112
+ Immediate extends Readonly<boolean> = false,
113
+ >(
114
+ source: T,
115
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
116
+ options?: WatchWithFilterOptions<Immediate>,
117
+ ): WatchIgnorableReturn
118
+ /** @deprecated use `watchIgnorable` instead */
119
+ export declare const ignorableWatch: typeof watchIgnorable
120
+ ```
@@ -0,0 +1,44 @@
1
+ ---
2
+ category: Watch
3
+ ---
4
+
5
+ # watchImmediate
6
+
7
+ Shorthand for watching value with `{immediate: true}`
8
+
9
+ ## Usage
10
+
11
+ Similar to `watch`, but with `{ immediate: true }`
12
+
13
+ ```ts
14
+ import { watchImmediate } from '@vueuse/core'
15
+
16
+ const obj = ref('vue-use')
17
+
18
+ // changing the value from some external store/composables
19
+ obj.value = 'VueUse'
20
+
21
+ watchImmediate(obj, (updated) => {
22
+ console.log(updated) // Console.log will be logged twice
23
+ })
24
+ ```
25
+
26
+ ## Type Declarations
27
+
28
+ ```ts
29
+ export declare function watchImmediate<T>(
30
+ source: WatchSource<T>,
31
+ cb: WatchCallback<T, T | undefined>,
32
+ options?: Omit<WatchOptions<true>, "immediate">,
33
+ ): WatchHandle
34
+ export declare function watchImmediate<T extends Readonly<MultiWatchSources>>(
35
+ source: [...T],
36
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, true>>,
37
+ options?: Omit<WatchOptions<true>, "immediate">,
38
+ ): WatchHandle
39
+ export declare function watchImmediate<T extends object>(
40
+ source: T,
41
+ cb: WatchCallback<T, T | undefined>,
42
+ options?: Omit<WatchOptions<true>, "immediate">,
43
+ ): WatchHandle
44
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ category: Watch
3
+ ---
4
+
5
+ # watchOnce
6
+
7
+ Shorthand for watching value with `{ once: true }`. Once the callback fires once, the watcher will be stopped.
8
+ See [Vue's docs](https://vuejs.org/guide/essentials/watchers.html#once-watchers) for full details.
9
+
10
+ ## Usage
11
+
12
+ Similar to `watch`, but with `{ once: true }`
13
+
14
+ ```ts
15
+ import { watchOnce } from '@vueuse/core'
16
+
17
+ watchOnce(source, () => {
18
+ // triggers only once
19
+ console.log('source changed!')
20
+ })
21
+ ```
22
+
23
+ ## Type Declarations
24
+
25
+ ```ts
26
+ export declare function watchOnce<T>(
27
+ source: WatchSource<T>,
28
+ cb: WatchCallback<T, T | undefined>,
29
+ options?: Omit<WatchOptions<true>, "once">,
30
+ ): WatchHandle
31
+ export declare function watchOnce<T extends Readonly<MultiWatchSources>>(
32
+ source: [...T],
33
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, true>>,
34
+ options?: Omit<WatchOptions<true>, "once">,
35
+ ): WatchHandle
36
+ export declare function watchOnce<T extends object>(
37
+ source: T,
38
+ cb: WatchCallback<T, T | undefined>,
39
+ options?: Omit<WatchOptions<true>, "once">,
40
+ ): WatchHandle
41
+ ```
@@ -0,0 +1,86 @@
1
+ ---
2
+ category: Watch
3
+ alias: pausableWatch
4
+ ---
5
+
6
+ # watchPausable
7
+
8
+ Pausable watch
9
+
10
+ ::: info
11
+ This function will be removed in future version.
12
+ :::
13
+
14
+ ::: tip
15
+
16
+ [Pausable Watcher](https://vuejs.org/api/reactivity-core.html#watch) has been added to Vue [since 3.5](https://github.com/vuejs/core/pull/9651), use `const { stop, pause, resume } = watch(watchSource, callback)` instead.
17
+
18
+ :::
19
+
20
+ ## Usage
21
+
22
+ Use as normal the `watch`, but return extra `pause()` and `resume()` functions to control.
23
+
24
+ ```ts
25
+ import { watchPausable } from '@vueuse/core'
26
+ import { nextTick, shallowRef } from 'vue'
27
+
28
+ const source = shallowRef('foo')
29
+
30
+ const { stop, pause, resume } = watchPausable(
31
+ source,
32
+ v => console.log(`Changed to ${v}!`),
33
+ )
34
+
35
+ source.value = 'bar'
36
+ await nextTick() // Changed to bar!
37
+
38
+ pause()
39
+
40
+ source.value = 'foobar'
41
+ await nextTick() // (nothing happend)
42
+
43
+ resume()
44
+
45
+ source.value = 'hello'
46
+ await nextTick() // Changed to hello!
47
+ ```
48
+
49
+ ## Type Declarations
50
+
51
+ ```ts
52
+ export interface WatchPausableReturn extends Pausable {
53
+ stop: WatchStopHandle
54
+ }
55
+ export type WatchPausableOptions<Immediate> =
56
+ WatchWithFilterOptions<Immediate> & PausableFilterOptions
57
+ /** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */
58
+ export declare function watchPausable<
59
+ T,
60
+ Immediate extends Readonly<boolean> = false,
61
+ >(
62
+ source: WatchSource<T>,
63
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
64
+ options?: WatchPausableOptions<Immediate>,
65
+ ): WatchPausableReturn
66
+ /** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */
67
+ export declare function watchPausable<
68
+ T extends Readonly<MultiWatchSources>,
69
+ Immediate extends Readonly<boolean> = false,
70
+ >(
71
+ sources: [...T],
72
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,
73
+ options?: WatchPausableOptions<Immediate>,
74
+ ): WatchPausableReturn
75
+ /** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */
76
+ export declare function watchPausable<
77
+ T extends object,
78
+ Immediate extends Readonly<boolean> = false,
79
+ >(
80
+ source: T,
81
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
82
+ options?: WatchPausableOptions<Immediate>,
83
+ ): WatchPausableReturn
84
+ /** @deprecated Use Vue's built-in `watch` instead. This function will be removed in future version. */
85
+ export declare const pausableWatch: typeof watchPausable
86
+ ```
@@ -0,0 +1,108 @@
1
+ ---
2
+ category: Watch
3
+ alias: throttledWatch
4
+ ---
5
+
6
+ # watchThrottled
7
+
8
+ Throttled watch. The callback will be invoked at most once per specified duration.
9
+
10
+ ## Usage
11
+
12
+ Similar to `watch`, but offering extra options `throttle`, `trailing`, and `leading` which will be applied to the callback function.
13
+
14
+ ```ts
15
+ import { watchThrottled } from '@vueuse/core'
16
+
17
+ watchThrottled(
18
+ source,
19
+ () => { console.log('changed!') },
20
+ { throttle: 500 },
21
+ )
22
+ ```
23
+
24
+ ### Options
25
+
26
+ | Option | Type | Default | Description |
27
+ | ---------- | -------------------------- | ------- | ----------------------------------------- |
28
+ | `throttle` | `MaybeRefOrGetter<number>` | `0` | Throttle interval in ms (can be reactive) |
29
+ | `trailing` | `boolean` | `true` | Invoke on the trailing edge |
30
+ | `leading` | `boolean` | `true` | Invoke on the leading edge |
31
+
32
+ All standard `watch` options (`deep`, `immediate`, `flush`, etc.) are also supported.
33
+
34
+ ### Leading and Trailing
35
+
36
+ Control when the callback is invoked:
37
+
38
+ ```ts
39
+ import { watchThrottled } from '@vueuse/core'
40
+
41
+ // Only invoke at the start of each throttle period
42
+ watchThrottled(source, callback, {
43
+ throttle: 500,
44
+ leading: true,
45
+ trailing: false,
46
+ })
47
+
48
+ // Only invoke at the end of each throttle period
49
+ watchThrottled(source, callback, {
50
+ throttle: 500,
51
+ leading: false,
52
+ trailing: true,
53
+ })
54
+ ```
55
+
56
+ ## How It Works
57
+
58
+ It's essentially a shorthand for the following code:
59
+
60
+ ```ts
61
+ import { throttleFilter, watchWithFilter } from '@vueuse/core'
62
+
63
+ watchWithFilter(
64
+ source,
65
+ () => { console.log('changed!') },
66
+ {
67
+ eventFilter: throttleFilter(500),
68
+ },
69
+ )
70
+ ```
71
+
72
+ ## Type Declarations
73
+
74
+ ```ts
75
+ export interface WatchThrottledOptions<
76
+ Immediate,
77
+ > extends WatchOptions<Immediate> {
78
+ throttle?: MaybeRefOrGetter<number>
79
+ trailing?: boolean
80
+ leading?: boolean
81
+ }
82
+ export declare function watchThrottled<
83
+ T,
84
+ Immediate extends Readonly<boolean> = false,
85
+ >(
86
+ source: WatchSource<T>,
87
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
88
+ options?: WatchThrottledOptions<Immediate>,
89
+ ): WatchHandle
90
+ export declare function watchThrottled<
91
+ T extends Readonly<MultiWatchSources>,
92
+ Immediate extends Readonly<boolean> = false,
93
+ >(
94
+ sources: [...T],
95
+ cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,
96
+ options?: WatchThrottledOptions<Immediate>,
97
+ ): WatchHandle
98
+ export declare function watchThrottled<
99
+ T extends object,
100
+ Immediate extends Readonly<boolean> = false,
101
+ >(
102
+ source: T,
103
+ cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,
104
+ options?: WatchThrottledOptions<Immediate>,
105
+ ): WatchHandle
106
+ /** @deprecated use `watchThrottled` instead */
107
+ export declare const throttledWatch: typeof watchThrottled
108
+ ```