feat:node-modules
This commit is contained in:
21
node_modules/pinia-plugin-persist-uni/LICENSE
generated
vendored
Normal file
21
node_modules/pinia-plugin-persist-uni/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2022 Allen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
114
node_modules/pinia-plugin-persist-uni/README.md
generated
vendored
Normal file
114
node_modules/pinia-plugin-persist-uni/README.md
generated
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
# pinia-plugin-persist-uni
|
||||
|
||||
[](https://www.npmjs.com/package/pinia-plugin-persist-uni)
|
||||
[](https://npmjs.com/package/pinia-plugin-persist-uni)
|
||||
|
||||
# 前言
|
||||
|
||||
> 尤雨溪在 3 月 24 日晚与掘金合作的直播中提到[传送门](https://live.juejin.cn/4354/vue3),pinia 就是实际上的 vuex5,作为新一代的状态管理器,更友好的 ts 支持,更轻量的打包体积,更简化的模块管理,无疑会在将来的市场中备受欢迎。
|
||||
|
||||
pinia 的优点相比也不用多说了,但也正是由于其处于一个新生的阶段,周边生态还不够完善,在本人搭建项目的过程中便遇到了 pinia 在 uniapp 中数据持久化的问题。
|
||||
|
||||
市场上目前也有一些数据持久化的插件,例如 `vuex-persistedstate`,`pinia-plugin-persist`,但是服务于 pinia 和 uniapp 的却没有,其中`pinia-plugin-persist`虽然同样可以满足需求,但是由于其默认数据持久化的方式是 sessionStorage,使用时需要重复的配置,作为一个有手的程序员,当然不能忍,于是便有了`pinia-plugin-persist-uni`。
|
||||
|
||||
# 使用说明
|
||||
|
||||
## 安装
|
||||
|
||||
`npm i pinia-plugin-persist-uni`
|
||||
|
||||
## 配置
|
||||
|
||||
### Vue2
|
||||
|
||||
```typescript
|
||||
import Vue from 'vue'
|
||||
import vueCompositionApi from '@vue/composition-api'
|
||||
import { createPinia } from 'pinia'
|
||||
import piniaPersist from 'pinia-plugin-persist-uni'
|
||||
import App from './App.vue'
|
||||
|
||||
const pinia = createPinia()
|
||||
pinia.use(piniaPersist)
|
||||
|
||||
Vue.use(vueCompositionApi)
|
||||
Vue.use(pinia)
|
||||
|
||||
new Vue({
|
||||
pinia,
|
||||
render: (h) => h(App),
|
||||
}).$mount('#app')
|
||||
```
|
||||
|
||||
### Vue3
|
||||
|
||||
```typescript
|
||||
import { createApp } from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
import piniaPersist from 'pinia-plugin-persist-uni'
|
||||
|
||||
const pinia = createPinia()
|
||||
pinia.use(piniaPersist)
|
||||
|
||||
createApp({}).use(pinia).mount('#app')
|
||||
```
|
||||
|
||||
### Typescript
|
||||
|
||||
```json
|
||||
// tsconfig.json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"types": ["pinia-plugin-persist-uni"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 基本用法
|
||||
|
||||
通过在你的 stroe 中配置 persist, 将会通过 uniAppStorage 来持久化存储你的数据.
|
||||
|
||||
请配置 id,用于持久化存储时的 key。
|
||||
|
||||
```typescript
|
||||
// store/user.ts
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
export const useUserStore = defineStore('storeUser', {
|
||||
state: () => {
|
||||
id: 'user',
|
||||
return {
|
||||
firstName: 'allen',
|
||||
lastName: 'ttk',
|
||||
accessToken: 'xxxxxxxxxxxxx',
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setToken(value: string) {
|
||||
this.accessToken = value
|
||||
},
|
||||
},
|
||||
persist: {
|
||||
enabled: true,
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
## 总结
|
||||
|
||||
新技术会带给我们更良好的开发体验,但是我们同样应该关注其社区环境,并力所能及的贡献出自己的一份力量。本插件开发的新路历程也是基于目前`pinia`的生态环境中没有专门服务于`uniapp`的`数据持久化`插件。
|
||||
|
||||
该项目也是参考了`vuex-persistedstate`和`pinia-plugin-persist`,保持了使用习惯的同时又简化了使用配置。同时在搭建项目的过程中也接触到了`github-pages`以及`github actions`的配置使用,实现了说明文档自动部署和 npm 自动发包,可谓是收获满满。
|
||||
|
||||
## 相关内容
|
||||
|
||||
- [掘金文章](https://juejin.cn/post/7081275565008748552)
|
||||
- [说明文档](https://allen-1998.github.io/pinia-plugin-persist-uni/)
|
||||
- [使用案例](https://github.com/Allen-1998/uni-vue3-vite-ts-pinia)
|
||||
|
||||
对你有帮助或者喜欢的话请点个 Star。
|
||||
|
||||
## 参考
|
||||
|
||||
- [vuex-persistedstate](https://github.com/robinvdvleuten/vuex-persistedstate)
|
||||
- [pinia-plugin-persist](https://github.com/Seb-L/pinia-plugin-persist)
|
||||
20
node_modules/pinia-plugin-persist-uni/dist/index.d.ts
generated
vendored
Normal file
20
node_modules/pinia-plugin-persist-uni/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import { PiniaPluginContext } from 'pinia';
|
||||
export interface PersistStrategy {
|
||||
key?: string;
|
||||
storage?: Storage;
|
||||
paths?: string[];
|
||||
}
|
||||
export interface PersistOptions {
|
||||
enabled: true;
|
||||
detached?: true;
|
||||
enforceCustomStorage?: boolean;
|
||||
H5Storage?: Storage;
|
||||
strategies?: PersistStrategy[];
|
||||
}
|
||||
declare module 'pinia' {
|
||||
interface DefineStoreOptionsBase<S, Store> {
|
||||
persist?: PersistOptions;
|
||||
}
|
||||
}
|
||||
declare const _default: ({ options, store }: PiniaPluginContext) => void;
|
||||
export default _default;
|
||||
55
node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.es.js
generated
vendored
Normal file
55
node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.es.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
var _a, _b;
|
||||
const isH5 = typeof uni !== "undefined" ? ["web", "h5", void 0].includes((_b = (_a = uni == null ? void 0 : uni.getSystemInfoSync()) == null ? void 0 : _a.uniPlatform) == null ? void 0 : _b.toLocaleLowerCase()) : true;
|
||||
const updateStorage = (strategy, store, options) => {
|
||||
const storage = strategy.storage;
|
||||
const storeKey = strategy.key || store.$id;
|
||||
const isCustomStorage = isH5 || (options == null ? void 0 : options.enforceCustomStorage);
|
||||
if (strategy.paths) {
|
||||
const partialState = strategy.paths.reduce((finalObj, key) => {
|
||||
finalObj[key] = store.$state[key];
|
||||
return finalObj;
|
||||
}, {});
|
||||
if (isCustomStorage && storage) {
|
||||
storage.setItem(storeKey, JSON.stringify(partialState));
|
||||
} else {
|
||||
uni.setStorage({ key: storeKey, data: JSON.stringify(partialState) });
|
||||
}
|
||||
} else if (isCustomStorage && storage) {
|
||||
storage.setItem(storeKey, JSON.stringify(store.$state));
|
||||
} else {
|
||||
uni.setStorage({ key: storeKey, data: JSON.stringify(store.$state) });
|
||||
}
|
||||
};
|
||||
var index = ({ options, store }) => {
|
||||
var _a2, _b2, _c, _d, _e, _f;
|
||||
if ((_a2 = options.persist) == null ? void 0 : _a2.enabled) {
|
||||
const defaultStrat = [
|
||||
{
|
||||
key: store.$id,
|
||||
storage: ((_b2 = options.persist) == null ? void 0 : _b2.H5Storage) || (window == null ? void 0 : window.sessionStorage)
|
||||
}
|
||||
];
|
||||
const strategies = ((_d = (_c = options.persist) == null ? void 0 : _c.strategies) == null ? void 0 : _d.length) ? (_e = options.persist) == null ? void 0 : _e.strategies : defaultStrat;
|
||||
strategies.forEach((strategy) => {
|
||||
var _a3, _b3;
|
||||
const storage = strategy.storage || ((_a3 = options.persist) == null ? void 0 : _a3.H5Storage) || (window == null ? void 0 : window.sessionStorage);
|
||||
const storeKey = strategy.key || store.$id;
|
||||
let storageResult;
|
||||
if (isH5 || ((_b3 = options.persist) == null ? void 0 : _b3.enforceCustomStorage)) {
|
||||
storageResult = storage.getItem(storeKey);
|
||||
} else {
|
||||
storageResult = uni.getStorageSync(storeKey);
|
||||
}
|
||||
if (storageResult) {
|
||||
store.$patch(JSON.parse(storageResult));
|
||||
updateStorage(strategy, store, options.persist);
|
||||
}
|
||||
});
|
||||
store.$subscribe(() => {
|
||||
strategies.forEach((strategy) => {
|
||||
updateStorage(strategy, store, options.persist);
|
||||
});
|
||||
}, { detached: ((_f = options.persist) == null ? void 0 : _f.detached) ? true : false });
|
||||
}
|
||||
};
|
||||
export { index as default };
|
||||
1
node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.umd.js
generated
vendored
Normal file
1
node_modules/pinia-plugin-persist-uni/dist/pinia-persist-uni.umd.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(r,a){typeof exports=="object"&&typeof module!="undefined"?module.exports=a():typeof define=="function"&&define.amd?define(a):(r=typeof globalThis!="undefined"?globalThis:r||self,r.piniaPersist=a())})(this,function(){var S,l;"use strict";const r=typeof uni!="undefined"?["web","h5",void 0].includes((l=(S=uni==null?void 0:uni.getSystemInfoSync())==null?void 0:S.uniPlatform)==null?void 0:l.toLocaleLowerCase()):!0,a=(e,t,n)=>{const s=e.storage,i=e.key||t.$id,d=r||(n==null?void 0:n.enforceCustomStorage);if(e.paths){const f=e.paths.reduce((u,o)=>(u[o]=t.$state[o],u),{});d&&s?s.setItem(i,JSON.stringify(f)):uni.setStorage({key:i,data:JSON.stringify(f)})}else d&&s?s.setItem(i,JSON.stringify(t.$state)):uni.setStorage({key:i,data:JSON.stringify(t.$state)})};var $=({options:e,store:t})=>{var n,s,i,d,f,u;if((n=e.persist)!=null&&n.enabled){const o=[{key:t.$id,storage:((s=e.persist)==null?void 0:s.H5Storage)||(window==null?void 0:window.sessionStorage)}],h=(d=(i=e.persist)==null?void 0:i.strategies)!=null&&d.length?(f=e.persist)==null?void 0:f.strategies:o;h.forEach(c=>{var p,y;const w=c.storage||((p=e.persist)==null?void 0:p.H5Storage)||(window==null?void 0:window.sessionStorage),m=c.key||t.$id;let g;r||((y=e.persist)==null?void 0:y.enforceCustomStorage)?g=w.getItem(m):g=uni.getStorageSync(m),g&&(t.$patch(JSON.parse(g)),a(c,t,e.persist))}),t.$subscribe(()=>{h.forEach(c=>{a(c,t,e.persist)})},{detached:!!((u=e.persist)!=null&&u.detached)})}};return $});
|
||||
16
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix
generated
vendored
Normal file
16
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../vue-demi/bin/vue-demi-fix.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../vue-demi/bin/vue-demi-fix.js" "$@"
|
||||
fi
|
||||
17
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix.cmd
generated
vendored
Normal file
17
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vue-demi\bin\vue-demi-fix.js" %*
|
||||
28
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix.ps1
generated
vendored
Normal file
28
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-fix.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vue-demi/bin/vue-demi-fix.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
16
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch
generated
vendored
Normal file
16
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../vue-demi/bin/vue-demi-switch.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../vue-demi/bin/vue-demi-switch.js" "$@"
|
||||
fi
|
||||
17
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch.cmd
generated
vendored
Normal file
17
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vue-demi\bin\vue-demi-switch.js" %*
|
||||
28
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch.ps1
generated
vendored
Normal file
28
node_modules/pinia-plugin-persist-uni/node_modules/.bin/vue-demi-switch.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vue-demi/bin/vue-demi-switch.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
21
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/LICENSE
generated
vendored
Normal file
21
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020-present, Anthony Fu
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
217
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/README.md
generated
vendored
Normal file
217
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/README.md
generated
vendored
Normal file
@@ -0,0 +1,217 @@
|
||||
<p align="center">
|
||||
<img src="https://github.com/vueuse/vue-demi/blob/master/assets/banner.png?raw=true" width="600"/>
|
||||
<br>
|
||||
<a href='https://www.npmjs.com/package/vue-demi'><img src='https://img.shields.io/npm/v/vue-demi?color=42b883' alt='npm'></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<b>Vue Demi</b> (<i>half</i> in French) is a developing utility<br> allows you to write <b>Universal Vue Libraries</b> for Vue 2 & 3<br>
|
||||
<i>See more details in <a href='https://antfu.me/posts/make-libraries-working-with-vue-2-and-3'>this blog post</a></i>
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
<br>
|
||||
|
||||
## Usage
|
||||
|
||||
Install this as your plugin's dependency:
|
||||
|
||||
```bash
|
||||
npm i vue-demi
|
||||
# or
|
||||
yarn add vue-demi
|
||||
```
|
||||
|
||||
Add `vue` and `@vue/composition-api` to your plugin's peer dependencies to specify what versions you support.
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"dependencies": {
|
||||
"vue-demi": "latest"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^2.0.0 || >=3.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"vue": "^3.0.0" // or "^2.6.0" base on your preferred working environment
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Import everything related to Vue from it, it will redirect to `vue@2` + `@vue/composition-api` or `vue@3` based on users' environments.
|
||||
|
||||
```ts
|
||||
import { ref, reactive, defineComponent } from 'vue-demi'
|
||||
```
|
||||
|
||||
Publish your plugin and all is done!
|
||||
|
||||
> When using with [Vite](https://vitejs.dev), you will need to opt-out the pre-bundling to get `vue-demi` work properly by
|
||||
> ```js
|
||||
> // vite.config.js
|
||||
> export default defineConfig({
|
||||
> optimizeDeps: {
|
||||
> exclude: ['vue-demi']
|
||||
> }
|
||||
> })
|
||||
> ```
|
||||
|
||||
### Extra APIs
|
||||
|
||||
`Vue Demi` provides extra APIs to help distinguish users' environments and to do some version-specific logic.
|
||||
|
||||
### `isVue2` `isVue3`
|
||||
|
||||
```ts
|
||||
import { isVue2, isVue3 } from 'vue-demi'
|
||||
|
||||
if (isVue2) {
|
||||
// Vue 2 only
|
||||
} else {
|
||||
// Vue 3 only
|
||||
}
|
||||
```
|
||||
|
||||
### `Vue2`
|
||||
|
||||
To avoid bringing in all the tree-shakable modules, we provide a `Vue2` export to support access to Vue 2's global API. (See [#41](https://github.com/vueuse/vue-demi/issues/41).)
|
||||
|
||||
```ts
|
||||
import { Vue2 } from 'vue-demi'
|
||||
|
||||
if (Vue2) {
|
||||
Vue2.config.ignoredElements.push('x-foo')
|
||||
}
|
||||
```
|
||||
|
||||
### `install()`
|
||||
|
||||
Composition API in Vue 2 is provided as a plugin and needs to be installed on the Vue instance before using. Normally, `vue-demi` will try to install it automatically. For some usages where you might need to ensure the plugin gets installed correctly, the `install()` API is exposed to as a safe version of `Vue.use(CompositionAPI)`. `install()` in the Vue 3 environment will be an empty function (no-op).
|
||||
|
||||
```ts
|
||||
import { install } from 'vue-demi'
|
||||
|
||||
install()
|
||||
```
|
||||
|
||||
## CLI
|
||||
|
||||
### Manually Switch Versions
|
||||
|
||||
To explicitly switch the redirecting version, you can use these commands in your project's root.
|
||||
|
||||
```bash
|
||||
npx vue-demi-switch 2
|
||||
# or
|
||||
npx vue-demi-switch 3
|
||||
```
|
||||
|
||||
### Package Aliasing
|
||||
|
||||
If you would like to import `vue` under an alias, you can use the following command
|
||||
|
||||
```bash
|
||||
npx vue-demi-switch 2 vue2
|
||||
# or
|
||||
npx vue-demi-switch 3 vue3
|
||||
```
|
||||
|
||||
Then `vue-demi` will redirect APIs from the alias name you specified, for example:
|
||||
|
||||
```ts
|
||||
import * as Vue from 'vue3'
|
||||
|
||||
var isVue2 = false
|
||||
var isVue3 = true
|
||||
var Vue2 = undefined
|
||||
|
||||
export * from 'vue3'
|
||||
export {
|
||||
Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
}
|
||||
```
|
||||
|
||||
### Auto Fix
|
||||
|
||||
If the `postinstall` hook doesn't get triggered or you have updated the Vue version, try to run the following command to resolve the redirecting.
|
||||
|
||||
```bash
|
||||
npx vue-demi-fix
|
||||
```
|
||||
|
||||
### Isomorphic Testings
|
||||
|
||||
You can support testing for both versions by adding npm alias in your dev dependencies. For example:
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"test:2": "vue-demi-switch 2 vue2 && jest",
|
||||
"test:3": "vue-demi-switch 3 && jest",
|
||||
},
|
||||
"devDependencies": {
|
||||
"vue": "^3.0.0",
|
||||
"vue2": "npm:vue@2"
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```json
|
||||
{
|
||||
"scripts": {
|
||||
"test:2": "vue-demi-switch 2 && jest",
|
||||
"test:3": "vue-demi-switch 3 vue3 && jest",
|
||||
},
|
||||
"devDependencies": {
|
||||
"vue": "^2.6.0",
|
||||
"vue3": "npm:vue@3"
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
See [examples](./examples).
|
||||
|
||||
## Who is using this?
|
||||
|
||||
- [VueUse](https://github.com/antfu/vueuse) - Collection of Composition API utils
|
||||
- [@vue/apollo-composable](https://github.com/vuejs/vue-apollo/tree/v4/packages/vue-apollo-composable) - Apollo GraphQL functions for Vue Composition API
|
||||
- [vuelidate](https://github.com/vuelidate/vuelidate) - Simple, lightweight model-based validation
|
||||
- [vue-composition-test-utils](https://github.com/ariesjia/vue-composition-test-utils) - Simple vue composition api unit test utilities
|
||||
- [vue-use-stripe](https://github.com/frandiox/vue-use-stripe) - Stripe Elements wrapper for Vue.js
|
||||
- [@opd/g2plot-vue](https://github.com/open-data-plan/g2plot-vue) - G2plot for vue
|
||||
- [vue-echarts](https://github.com/ecomfe/vue-echarts) - Vue.js component for Apache ECharts.
|
||||
- [fluent-vue](https://github.com/Demivan/fluent-vue) - Vue.js integration for [Fluent.js](https://github.com/projectfluent/fluent.js) - JavaScript implementation of [Project Fluent](https://projectfluent.org)
|
||||
- [vue-datatable-url-sync](https://github.com/socotecio/vue-datatable-url-sync) - Synchronize datatable options and filters with the url to keep user preference even after refresh or navigation
|
||||
- [vue-insta-stories](https://github.com/UnevenSoftware/vue-insta-stories) - Instagram stories in your vue projects.
|
||||
- [vue-tiny-validate](https://github.com/FrontLabsOfficial/vue-tiny-validate) - Tiny Vue Validate Composition
|
||||
- [v-perfect-signature](https://github.com/wobsoriano/v-perfect-signature) - Pressure-sensitive signature drawing for Vue 2 and 3
|
||||
- [vue-winbox](https://github.com/wobsoriano/vue-winbox) - A wrapper component for WinBox.js that adds the ability to mount Vue components.
|
||||
- [vue-word-highlighter](https://github.com/kawamataryo/vue-word-highlighter) - The word highlighter library for Vue 2 and Vue 3
|
||||
- [vue-chart-3](https://github.com/victorgarciaesgi/vue-chart-3) - Vue.js component for Chart.js
|
||||
- [json-editor-vue](https://github.com/cloydlau/json-editor-vue) - JSON editor & viewer for Vue 2 and 3.
|
||||
- [kidar-echarts](https://github.com/kidarjs/kidar-echarts) - A simpler echarts component for Vue 2 and 3.
|
||||
- [vue3-sketch-ruler](https://github.com/kakajun/vue3-sketch-ruler) - The zoom operation used for page presentation for Vue 2 and 3( Replace render function with template )
|
||||
- [vue-rough-notation](https://github.com/Leecason/vue-rough-notation) - RoughNotation wrapper component for Vue 2 and 3.
|
||||
> open a PR to add your library ;)
|
||||
|
||||
## Underhood
|
||||
|
||||
See [the blog post](https://antfu.me/posts/make-libraries-working-with-vue-2-and-3/#-introducing-vue-demi).
|
||||
|
||||
## License
|
||||
|
||||
MIT License © 2020 [Anthony Fu](https://github.com/antfu)
|
||||
3
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/bin/vue-demi-fix.js
generated
vendored
Normal file
3
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/bin/vue-demi-fix.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict'
|
||||
require('../scripts/postinstall')
|
||||
3
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/bin/vue-demi-switch.js
generated
vendored
Normal file
3
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/bin/vue-demi-switch.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env node
|
||||
'use strict'
|
||||
require('../scripts/switch-cli')
|
||||
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.cjs
generated
vendored
Normal file
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
var Vue = require('vue')
|
||||
var VueCompositionAPI = require('@vue/composition-api')
|
||||
|
||||
function install(_vue) {
|
||||
var vueLib = _vue || Vue
|
||||
if (vueLib && 'default' in vueLib) {
|
||||
vueLib = vueLib.default
|
||||
}
|
||||
|
||||
if (vueLib && !vueLib['__composition_api_installed__']) {
|
||||
if (VueCompositionAPI && 'default' in VueCompositionAPI)
|
||||
vueLib.use(VueCompositionAPI.default)
|
||||
else if (VueCompositionAPI)
|
||||
vueLib.use(VueCompositionAPI)
|
||||
}
|
||||
}
|
||||
|
||||
install(Vue)
|
||||
|
||||
Object.keys(VueCompositionAPI).forEach(function(key) {
|
||||
exports[key] = VueCompositionAPI[key]
|
||||
})
|
||||
|
||||
exports.Vue = Vue
|
||||
exports.Vue2 = Vue
|
||||
exports.isVue2 = true
|
||||
exports.isVue3 = false
|
||||
exports.install = install
|
||||
exports.version = Vue.version
|
||||
31
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.d.ts
generated
vendored
Normal file
31
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
import Vue from 'vue'
|
||||
import type { PluginFunction, PluginObject } from 'vue'
|
||||
declare const isVue2: boolean
|
||||
declare const isVue3: boolean
|
||||
declare const Vue2: Vue | undefined
|
||||
declare const version: string
|
||||
declare const install: (vue?: Vue) => void
|
||||
/**
|
||||
* @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
|
||||
* Refer to https://github.com/vueuse/vue-demi/issues/41
|
||||
*/
|
||||
declare const V: Vue
|
||||
|
||||
/**
|
||||
* DebuggerEvent is a Vue 3 development only feature. This type cannot exist in Vue 2.
|
||||
*/
|
||||
export declare type DebuggerEvent = never
|
||||
|
||||
// accept no generic because Vue 3 doesn't accept any
|
||||
// https://github.com/vuejs/vue-next/pull/2758/
|
||||
export declare type Plugin = PluginObject<any> | PluginFunction<any>
|
||||
export type { VNode } from 'vue'
|
||||
export * from '@vue/composition-api'
|
||||
export {
|
||||
V as Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
version,
|
||||
install,
|
||||
}
|
||||
61
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.iife.js
generated
vendored
Normal file
61
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.iife.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
;var VueDemi = (function (VueDemi, Vue, VueCompositionAPI) {
|
||||
if (VueDemi.install) {
|
||||
return VueDemi
|
||||
}
|
||||
if (Vue) {
|
||||
if (Vue.version.slice(0, 2) === '2.') {
|
||||
if (VueCompositionAPI) {
|
||||
for (var key in VueCompositionAPI) {
|
||||
VueDemi[key] = VueCompositionAPI[key]
|
||||
}
|
||||
VueDemi.isVue2 = true
|
||||
VueDemi.isVue3 = false
|
||||
VueDemi.install = function (){}
|
||||
VueDemi.Vue = Vue
|
||||
VueDemi.Vue2 = Vue
|
||||
VueDemi.version = Vue.version
|
||||
} else {
|
||||
console.error(
|
||||
'[vue-demi] no VueCompositionAPI instance found, please be sure to import `@vue/composition-api` before `vue-demi`.'
|
||||
)
|
||||
}
|
||||
} else if (Vue.version.slice(0, 2) === '3.') {
|
||||
for (var key in Vue) {
|
||||
VueDemi[key] = Vue[key]
|
||||
}
|
||||
VueDemi.isVue2 = false
|
||||
VueDemi.isVue3 = true
|
||||
VueDemi.install = function (){}
|
||||
VueDemi.Vue = Vue
|
||||
VueDemi.Vue2 = undefined
|
||||
VueDemi.version = Vue.version
|
||||
VueDemi.set = function(target, key, val) {
|
||||
if (Array.isArray(target)) {
|
||||
target.length = Math.max(target.length, key)
|
||||
target.splice(key, 1, val)
|
||||
return val
|
||||
}
|
||||
target[key] = val
|
||||
return val
|
||||
}
|
||||
VueDemi.del = function(target, key) {
|
||||
if (Array.isArray(target)) {
|
||||
target.splice(key, 1)
|
||||
return
|
||||
}
|
||||
delete target[key]
|
||||
}
|
||||
} else {
|
||||
console.error('[vue-demi] Vue version ' + Vue.version + ' is unsupported.')
|
||||
}
|
||||
} else {
|
||||
console.error(
|
||||
'[vue-demi] no Vue instance found, please be sure to import `vue` before `vue-demi`.'
|
||||
)
|
||||
}
|
||||
return VueDemi
|
||||
})(
|
||||
this.VueDemi = this.VueDemi || (typeof VueDemi !== "undefined" ? VueDemi : {}),
|
||||
this.Vue || (typeof Vue !== "undefined" ? Vue : undefined),
|
||||
this.VueCompositionAPI || (typeof VueCompositionAPI !== "undefined" ? VueCompositionAPI : undefined)
|
||||
);
|
||||
28
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.mjs
generated
vendored
Normal file
28
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
import Vue from 'vue'
|
||||
import VueCompositionAPI from '@vue/composition-api/dist/vue-composition-api.mjs'
|
||||
|
||||
function install(_vue) {
|
||||
_vue = _vue || Vue
|
||||
if (_vue && !_vue['__composition_api_installed__'])
|
||||
Vue.use(VueCompositionAPI)
|
||||
}
|
||||
|
||||
install(Vue)
|
||||
|
||||
var isVue2 = true
|
||||
var isVue3 = false
|
||||
var Vue2 = Vue
|
||||
var version = Vue.version
|
||||
|
||||
/**VCA-EXPORTS**/
|
||||
export * from '@vue/composition-api/dist/vue-composition-api.mjs'
|
||||
/**VCA-EXPORTS**/
|
||||
|
||||
export {
|
||||
Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
version,
|
||||
install,
|
||||
}
|
||||
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.cjs
generated
vendored
Normal file
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
var Vue = require('vue')
|
||||
var VueCompositionAPI = require('@vue/composition-api')
|
||||
|
||||
function install(_vue) {
|
||||
var vueLib = _vue || Vue
|
||||
if (vueLib && 'default' in vueLib) {
|
||||
vueLib = vueLib.default
|
||||
}
|
||||
|
||||
if (vueLib && !vueLib['__composition_api_installed__']) {
|
||||
if (VueCompositionAPI && 'default' in VueCompositionAPI)
|
||||
vueLib.use(VueCompositionAPI.default)
|
||||
else if (VueCompositionAPI)
|
||||
vueLib.use(VueCompositionAPI)
|
||||
}
|
||||
}
|
||||
|
||||
install(Vue)
|
||||
|
||||
Object.keys(VueCompositionAPI).forEach(function(key) {
|
||||
exports[key] = VueCompositionAPI[key]
|
||||
})
|
||||
|
||||
exports.Vue = Vue
|
||||
exports.Vue2 = Vue
|
||||
exports.isVue2 = true
|
||||
exports.isVue3 = false
|
||||
exports.install = install
|
||||
exports.version = Vue.version
|
||||
31
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.d.ts
generated
vendored
Normal file
31
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
import Vue from 'vue'
|
||||
import type { PluginFunction, PluginObject } from 'vue'
|
||||
declare const isVue2: boolean
|
||||
declare const isVue3: boolean
|
||||
declare const Vue2: Vue | undefined
|
||||
declare const version: string
|
||||
declare const install: (vue?: Vue) => void
|
||||
/**
|
||||
* @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
|
||||
* Refer to https://github.com/vueuse/vue-demi/issues/41
|
||||
*/
|
||||
declare const V: Vue
|
||||
|
||||
/**
|
||||
* DebuggerEvent is a Vue 3 development only feature. This type cannot exist in Vue 2.
|
||||
*/
|
||||
export declare type DebuggerEvent = never
|
||||
|
||||
// accept no generic because Vue 3 doesn't accept any
|
||||
// https://github.com/vuejs/vue-next/pull/2758/
|
||||
export declare type Plugin = PluginObject<any> | PluginFunction<any>
|
||||
export type { VNode } from 'vue'
|
||||
export * from '@vue/composition-api'
|
||||
export {
|
||||
V as Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
version,
|
||||
install,
|
||||
}
|
||||
28
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.mjs
generated
vendored
Normal file
28
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v2/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
import Vue from 'vue'
|
||||
import VueCompositionAPI from '@vue/composition-api/dist/vue-composition-api.mjs'
|
||||
|
||||
function install(_vue) {
|
||||
_vue = _vue || Vue
|
||||
if (_vue && !_vue['__composition_api_installed__'])
|
||||
Vue.use(VueCompositionAPI)
|
||||
}
|
||||
|
||||
install(Vue)
|
||||
|
||||
var isVue2 = true
|
||||
var isVue3 = false
|
||||
var Vue2 = Vue
|
||||
var version = Vue.version
|
||||
|
||||
/**VCA-EXPORTS**/
|
||||
export * from '@vue/composition-api/dist/vue-composition-api.mjs'
|
||||
/**VCA-EXPORTS**/
|
||||
|
||||
export {
|
||||
Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
version,
|
||||
install,
|
||||
}
|
||||
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.cjs
generated
vendored
Normal file
29
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
var Vue = require('vue')
|
||||
|
||||
Object.keys(Vue).forEach(function(key) {
|
||||
exports[key] = Vue[key]
|
||||
})
|
||||
|
||||
exports.set = function(target, key, val) {
|
||||
if (Array.isArray(target)) {
|
||||
target.length = Math.max(target.length, key)
|
||||
target.splice(key, 1, val)
|
||||
return val
|
||||
}
|
||||
target[key] = val
|
||||
return val
|
||||
}
|
||||
|
||||
exports.del = function(target, key) {
|
||||
if (Array.isArray(target)) {
|
||||
target.splice(key, 1)
|
||||
return
|
||||
}
|
||||
delete target[key]
|
||||
}
|
||||
|
||||
exports.Vue = Vue
|
||||
exports.Vue2 = undefined
|
||||
exports.isVue2 = false
|
||||
exports.isVue3 = true
|
||||
exports.install = function(){}
|
||||
22
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.d.ts
generated
vendored
Normal file
22
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
import * as Vue from 'vue'
|
||||
declare const isVue2: boolean
|
||||
declare const isVue3: boolean
|
||||
declare const Vue2: any
|
||||
declare const install: (vue?: any) => void
|
||||
/**
|
||||
* @deprecated To avoid bringing in all the tree-shakable modules, this API has been deprecated. Use `Vue2` or named exports instead.
|
||||
* Refer to https://github.com/vueuse/vue-demi/issues/41
|
||||
*/
|
||||
declare const V: typeof Vue
|
||||
|
||||
export function set<T>(target: any, key: any, val: T): T
|
||||
export function del(target: any, key: any): void
|
||||
|
||||
export * from 'vue'
|
||||
export {
|
||||
V as Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
install,
|
||||
}
|
||||
34
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.mjs
generated
vendored
Normal file
34
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/lib/v3/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
import * as Vue from 'vue'
|
||||
|
||||
var isVue2 = false
|
||||
var isVue3 = true
|
||||
var Vue2 = undefined
|
||||
|
||||
function install() {}
|
||||
|
||||
export function set(target, key, val) {
|
||||
if (Array.isArray(target)) {
|
||||
target.length = Math.max(target.length, key)
|
||||
target.splice(key, 1, val)
|
||||
return val
|
||||
}
|
||||
target[key] = val
|
||||
return val
|
||||
}
|
||||
|
||||
export function del(target, key) {
|
||||
if (Array.isArray(target)) {
|
||||
target.splice(key, 1)
|
||||
return
|
||||
}
|
||||
delete target[key]
|
||||
}
|
||||
|
||||
export * from 'vue'
|
||||
export {
|
||||
Vue,
|
||||
Vue2,
|
||||
isVue2,
|
||||
isVue3,
|
||||
install,
|
||||
}
|
||||
46
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/package.json
generated
vendored
Normal file
46
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/package.json
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "vue-demi",
|
||||
"version": "0.12.5",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"repository": "https://github.com/antfu/vue-demi.git",
|
||||
"funding": "https://github.com/sponsors/antfu",
|
||||
"license": "MIT",
|
||||
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
||||
"main": "lib/index.cjs",
|
||||
"jsdelivr": "lib/index.iife.js",
|
||||
"unpkg": "lib/index.iife.js",
|
||||
"module": "lib/index.mjs",
|
||||
"types": "lib/index.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"require": "./lib/index.cjs",
|
||||
"import": "./lib/index.mjs",
|
||||
"browser": "./lib/index.mjs"
|
||||
},
|
||||
"./*": "./*"
|
||||
},
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
"bin",
|
||||
"scripts"
|
||||
],
|
||||
"scripts": {
|
||||
"postinstall": "node ./scripts/postinstall.js",
|
||||
"release": "npx bumpp --tag --commit --push && npm publish"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
16
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/postinstall.js
generated
vendored
Normal file
16
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/postinstall.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
const { switchVersion, loadModule } = require('./utils')
|
||||
|
||||
const Vue = loadModule('vue')
|
||||
|
||||
if (!Vue || typeof Vue.version !== 'string') {
|
||||
console.warn('[vue-demi] Vue is not found. Please run "npm install vue" to install.')
|
||||
}
|
||||
else if (Vue.version.startsWith('2.')) {
|
||||
switchVersion(2)
|
||||
}
|
||||
else if (Vue.version.startsWith('3.')) {
|
||||
switchVersion(3)
|
||||
}
|
||||
else {
|
||||
console.warn(`[vue-demi] Vue version v${Vue.version} is not suppported.`)
|
||||
}
|
||||
15
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/switch-cli.js
generated
vendored
Normal file
15
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/switch-cli.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
const { switchVersion } = require('./utils')
|
||||
|
||||
const version = process.argv[2]
|
||||
const vueEntry = process.argv[3] || 'vue'
|
||||
|
||||
if (version == '2') {
|
||||
switchVersion(2, vueEntry)
|
||||
console.log(`[vue-demi] Switched for Vue 2 (entry: "${vueEntry}")`)
|
||||
} else if (version == '3') {
|
||||
switchVersion(3, vueEntry)
|
||||
console.log(`[vue-demi] Switched for Vue 3 (entry: "${vueEntry}")`)
|
||||
} else {
|
||||
console.warn(`[vue-demi] expecting version "2" or "3" but got "${version}"`)
|
||||
process.exit(1)
|
||||
}
|
||||
62
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/utils.js
generated
vendored
Normal file
62
node_modules/pinia-plugin-persist-uni/node_modules/vue-demi/scripts/utils.js
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const dir = path.resolve(__dirname, '..', 'lib')
|
||||
|
||||
function loadModule(name) {
|
||||
try {
|
||||
return require(name)
|
||||
} catch (e) {
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
function copy(name, version, vue) {
|
||||
vue = vue || 'vue'
|
||||
const src = path.join(dir, `v${version}`, name)
|
||||
const dest = path.join(dir, name)
|
||||
let content = fs.readFileSync(src, 'utf-8')
|
||||
content = content.replace(/'vue'/g, `'${vue}'`)
|
||||
// unlink for pnpm, #92
|
||||
try {
|
||||
fs.unlinkSync(dest)
|
||||
} catch (error) { }
|
||||
fs.writeFileSync(dest, content, 'utf-8')
|
||||
}
|
||||
|
||||
function updateVue2API() {
|
||||
const ignoreList = ['version', 'default']
|
||||
const VCA = loadModule('@vue/composition-api')
|
||||
if (!VCA) {
|
||||
console.warn('[vue-demi] Composition API plugin is not found. Please run "npm install @vue/composition-api" to install.')
|
||||
return
|
||||
}
|
||||
|
||||
const exports = Object.keys(VCA).filter(i => !ignoreList.includes(i))
|
||||
|
||||
const esmPath = path.join(dir, 'index.mjs')
|
||||
let content = fs.readFileSync(esmPath, 'utf-8')
|
||||
|
||||
content = content.replace(
|
||||
/\/\*\*VCA-EXPORTS\*\*\/[\s\S]+\/\*\*VCA-EXPORTS\*\*\//m,
|
||||
`/**VCA-EXPORTS**/
|
||||
export { ${exports.join(', ')} } from '@vue/composition-api/dist/vue-composition-api.mjs'
|
||||
/**VCA-EXPORTS**/`
|
||||
)
|
||||
|
||||
fs.writeFileSync(esmPath, content, 'utf-8')
|
||||
|
||||
}
|
||||
|
||||
function switchVersion(version, vue) {
|
||||
copy('index.cjs', version, vue)
|
||||
copy('index.mjs', version, vue)
|
||||
copy('index.d.ts', version, vue)
|
||||
|
||||
if (version === 2)
|
||||
updateVue2API()
|
||||
}
|
||||
|
||||
|
||||
module.exports.loadModule = loadModule
|
||||
module.exports.switchVersion = switchVersion
|
||||
59
node_modules/pinia-plugin-persist-uni/package.json
generated
vendored
Normal file
59
node_modules/pinia-plugin-persist-uni/package.json
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"name": "pinia-plugin-persist-uni",
|
||||
"version": "1.3.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Allen-1998/pinia-plugin-persist-uni.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "vite build && tsc",
|
||||
"lint": "eslint . --ext .ts",
|
||||
"docs": "vitepress dev docs",
|
||||
"docs:build": "vitepress build docs",
|
||||
"p": "git add . && git commit -m 'update' && git push",
|
||||
"v": "npm version patch && git push && git push origin --tags"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"types"
|
||||
],
|
||||
"main": "./dist/pinia-persist-uni.umd.js",
|
||||
"module": "./dist/pinia-persist-uni.es.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"import": "./dist/pinia-persist-uni.es.js",
|
||||
"require": "./dist/pinia-persist-uni.umd.js"
|
||||
}
|
||||
},
|
||||
"types": "./dist",
|
||||
"devDependencies": {
|
||||
"@babel/types": "^7.17.0",
|
||||
"@dcloudio/types": "^3.4.3",
|
||||
"@types/node": "^17.0.25",
|
||||
"@typescript-eslint/eslint-plugin": "^5.14.0",
|
||||
"@typescript-eslint/parser": "^5.14.0",
|
||||
"eslint": "^8.10.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-plugin-prettier": "^4.0.0",
|
||||
"pinia": "^2.0.0",
|
||||
"prettier": "^2.5.1",
|
||||
"typescript": "^4.5.4",
|
||||
"vite": "^2.8.0",
|
||||
"vitepress": "^0.22.3",
|
||||
"vue": "^3.2.31"
|
||||
},
|
||||
"dependencies": {
|
||||
"vue-demi": "^0.12.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0",
|
||||
"pinia": "^2.0.0",
|
||||
"vue": "^2.0.0 || >=3.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user