Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/grumpy-hairs-shop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@tanstack/vue-store': major
---

Drop Vue 2 support from `@tanstack/vue-store`. The adapter now requires Vue 3 (`vue: ^3.0.0`) and imports Vue APIs and types directly, removing its `vue-demi` dependency and optional `@vue/composition-api` peer dependency.

Vue 2 applications must upgrade to Vue 3 or keep using a previous version of `@tanstack/vue-store`. The adapter's public hooks and their behavior are unchanged for Vue 3 applications.
4 changes: 1 addition & 3 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@
"typescript50",
"typescript51",
"typescript52",
"typescript53",
"vue2",
"vue2.7"
"typescript53"
]
}
2 changes: 1 addition & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ TanStack Store is compatible with Preact 10+.
npm install @tanstack/vue-store
```

TanStack Store is compatible with Vue 2 and 3.
TanStack Store is compatible with Vue 3.

## Angular

Expand Down
3 changes: 0 additions & 3 deletions knip.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
"workspaces": {
"packages/store": {
"entry": ["src/signal.ts"]
},
"packages/vue-store": {
"ignoreDependencies": ["vue2", "vue2.7"]
}
},
"ignoreWorkspaces": ["examples/**"]
Expand Down
22 changes: 4 additions & 18 deletions packages/vue-store/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,7 @@
"test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js",
"test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js",
"test:types:ts59": "tsc",
"test:lib": "pnpm run test:lib:3",
"test:lib:2": "vue-demi-switch 2 vue2 && vitest",
"test:lib:2.7": "vue-demi-switch 2.7 vue2.7 && vitest",
"test:lib:3": "vue-demi-switch 3 && vitest",
"test:lib:fixme": "pnpm run test:lib:2 && pnpm run test:lib:2.7 && pnpm run test:lib:3",
"test:lib": "vitest",
"test:lib:dev": "pnpm run test:lib --watch",
"test:build": "publint --strict",
"build": "tsdown --tsconfig tsconfig.build.json"
Expand All @@ -53,24 +49,14 @@
"src"
],
"dependencies": {
"@tanstack/store": "workspace:*",
"vue-demi": "^0.14.10"
"@tanstack/store": "workspace:*"
},
"devDependencies": {
"@testing-library/vue": "^8.1.0",
"@vitejs/plugin-vue": "^6.0.5",
"@vue/composition-api": "^1.7.2",
"vue": "^3.5.43",
"vue2": "npm:vue@2.6",
"vue2.7": "npm:vue@2.7"
"vue": "^3.5.43"
},
"peerDependencies": {
"@vue/composition-api": "^1.2.1",
"vue": "^2.5.0 || ^3.0.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
"vue": "^3.0.0"
}
}
2 changes: 1 addition & 1 deletion packages/vue-store/src/_useStore.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useSelector } from './useSelector'
import type { Ref } from 'vue-demi'
import type { Ref } from 'vue'
import type { Store, StoreActionMap } from '@tanstack/store'
import type { UseSelectorOptions } from './useSelector'

Expand Down
2 changes: 1 addition & 1 deletion packages/vue-store/src/useAtom.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useSelector } from './useSelector'
import type { Ref } from 'vue-demi'
import type { Ref } from 'vue'
import type { Atom } from '@tanstack/store'
import type { UseSelectorOptions } from './useSelector'

Expand Down
4 changes: 2 additions & 2 deletions packages/vue-store/src/useSelector.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { onScopeDispose, readonly, shallowRef, toRaw } from 'vue-demi'
import type { Ref } from 'vue-demi'
import { onScopeDispose, readonly, shallowRef, toRaw } from 'vue'
import type { Ref } from 'vue'

export interface UseSelectorOptions<TSelected> {
compare?: (a: TSelected, b: TSelected) => boolean
Expand Down
2 changes: 1 addition & 1 deletion packages/vue-store/src/useStore.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useSelector } from './useSelector'
import type { Ref } from 'vue-demi'
import type { Ref } from 'vue'

/**
* Deprecated alias for {@link useSelector}.
Expand Down
2 changes: 1 addition & 1 deletion packages/vue-store/tests/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, expect, it, test, vi } from 'vitest'
import { defineComponent, h } from 'vue-demi'
import { defineComponent, h } from 'vue'
import { render, waitFor } from '@testing-library/vue'
import { createAtom, createStore } from '@tanstack/store'
import { userEvent } from '@testing-library/user-event'
Expand Down
2 changes: 1 addition & 1 deletion packages/vue-store/tests/test.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { expectTypeOf, test } from 'vitest'
import { createAtom, createStore } from '@tanstack/store'
import { _useStore, useAtom, useSelector, useStore } from '../src'
import type { Ref } from 'vue-demi'
import type { Ref } from 'vue'
import type { Store } from '@tanstack/store'

test('useSelector works with derived state', () => {
Expand Down
78 changes: 1 addition & 77 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 0 additions & 10 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,7 @@ trustPolicyExclude:
- 'semver@5.7.2' # Socket: popular legacy line, 673M weekly downloads; alerts page returned no alert entries
- 'semver@6.3.1' # Socket: popular latest-6 line, 673M weekly downloads; alerts page returned no alert entries

peerDependencyRules:
allowedVersions:
'@vue/composition-api>vue': '>= 2.5'

packageExtensions:
'@vue/composition-api':
peerDependencies:
vue: '>= 2.5'
'@vue/test-utils@2.4.6':
peerDependencies:
# Use the consumer's Vue runtime for rendering and reactivity.
Expand All @@ -44,9 +37,6 @@ allowBuilds:
'@parcel/watcher': false # optional dep of @angular/build
lmdb: false # optional dep of @angular/build
msgpackr-extract: false # optional dep of @angular/build

# @tanstack/vue-store
vue-demi: true # only required for vue 2 support
minimumReleaseAgeExclude:
# Renovate security update: nx@22.7.7 || 22.7.10
- nx@22.7.7 || 22.7.10
Expand Down
Loading