@varlet/axle 0.1.2 → 0.2.0-alpha.1694529745774

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -202,15 +202,16 @@ import { createUseAxle } from '@varlet/axle/use'
202
202
 
203
203
  const axle = createAxle(/** @see https://axios-http.com **/)
204
204
  const useAxle = createUseAxle({
205
+ axle,
205
206
  // Optional value: Default onTransform of the useAxle
206
207
  onTransform: response => response
207
208
  })
208
209
 
209
210
  const [users, getUsers, { loading, error, uploadProgress, downloadProgress, abort }] = useAxle({
210
- // Request initial data
211
- data: [],
212
- // Request runner
213
- runner: axle.get,
211
+ // Request initial value
212
+ value: [],
213
+ // Request method
214
+ method: 'get',
214
215
  // Request url
215
216
  url: '/user',
216
217
  // Whether to send the request immediately, defaults false
@@ -267,20 +268,20 @@ Axle provides some parallel request processing tools, please refer to the follow
267
268
  ```html
268
269
  <script setup>
269
270
  import { createAxle } from '@varlet/axle'
270
- import { createUseAxle, useAllData, useAverageProgress, useHasLoading } from '@varlet/axle/use'
271
+ import { createUseAxle, useValues, useAverageProgress, useHasLoading } from '@varlet/axle/use'
271
272
 
272
273
  const axle = createAxle(/** @see https://axios-http.com **/)
273
- const useAxle = createUseAxle()
274
+ const useAxle = createUseAxle({ axle })
274
275
 
275
276
  const [users, getUsers, { loading: isUsersLoading, downloadProgress: usersDownloadProgress }] = useAxle({
276
- data: [],
277
- runner: axle.get,
277
+ value: [],
278
+ method: 'get',
278
279
  url: '/user',
279
280
  })
280
281
 
281
282
  const [roles, getRoles, { loading: isRolesLoading, downloadProgress: rolesDownloadProgress }] = useAxle({
282
- data: [],
283
- runner: axle.get,
283
+ value: [],
284
+ method: 'get',
284
285
  url: '/role',
285
286
  })
286
287
 
@@ -296,7 +297,7 @@ const downloadProgress = useAverageProgress(usersDownloadProgress, rolesDownload
296
297
  // Ref<[{ name: 'foo' }, { name: 'bar' }]>,
297
298
  // Ref<[{ role: 'admin' }, { role: 'user' }]>
298
299
  // ]
299
- const usersRoles = useAllData(users, roles)
300
+ const usersRoles = useValues(users, roles)
300
301
 
301
302
  function sendAllRequest() {
302
303
  // parallel
package/README.zh-CN.md CHANGED
@@ -202,15 +202,16 @@ import { createUseAxle } from '@varlet/axle/use'
202
202
 
203
203
  const axle = createAxle(/** @see https://axios-http.com **/)
204
204
  const useAxle = createUseAxle({
205
+ axle,
205
206
  // 可选项: useAxle 的默认 onTransform
206
207
  onTransform: response => response
207
208
  })
208
209
 
209
210
  const [users, getUsers, { loading, error, uploadProgress, downloadProgress, abort }] = useAxle({
210
211
  // 请求初始化数据
211
- data: [],
212
- // 请求函数
213
- runner: axle.get,
212
+ value: [],
213
+ // 请求方法
214
+ method: 'get',
214
215
  // 请求地址
215
216
  url: '/user',
216
217
  // 是否立即发送请求, 默认值: false
@@ -267,20 +268,20 @@ Axle 提供了一些并行请求处理工具,请参考以下示例。
267
268
  ```html
268
269
  <script setup>
269
270
  import { createAxle } from '@varlet/axle'
270
- import { createUseAxle, useAllData, useAverageProgress, useHasLoading } from '@varlet/axle/use'
271
+ import { createUseAxle, useValues, useAverageProgress, useHasLoading } from '@varlet/axle/use'
271
272
 
272
273
  const axle = createAxle(/** @see https://axios-http.com **/)
273
- const useAxle = createUseAxle()
274
+ const useAxle = createUseAxle({ axle })
274
275
 
275
276
  const [users, getUsers, { loading: isUsersLoading, downloadProgress: usersDownloadProgress }] = useAxle({
276
277
  data: [],
277
- runner: axle.get,
278
+ method: 'get',
278
279
  url: '/user',
279
280
  })
280
281
 
281
282
  const [roles, getRoles, { loading: isRolesLoading, downloadProgress: rolesDownloadProgress }] = useAxle({
282
283
  data: [],
283
- runner: axle.get,
284
+ method: 'get',
284
285
  url: '/role',
285
286
  })
286
287
 
@@ -296,7 +297,7 @@ const downloadProgress = useAverageProgress(usersDownloadProgress, rolesDownload
296
297
  // Ref<[{ name: 'foo' }, { name: 'bar' }]>,
297
298
  // Ref<[{ role: 'admin' }, { role: 'user' }]>
298
299
  // ]
299
- const usersRoles = useAllData(users, roles)
300
+ const usersRoles = useValues(users, roles)
300
301
 
301
302
  function sendAllRequest() {
302
303
  // parallel
package/es/instance.d.ts CHANGED
@@ -2,50 +2,51 @@ import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, HeadersDefaults,
2
2
  export type AxleRequestConfig = AxiosRequestConfig & {
3
3
  exceptionMessage?: any;
4
4
  };
5
- export type FetchHelper = <T = any, R = AxiosResponse<T>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
6
- export type ModifyHelper = <T = any, R = AxiosResponse<T>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
7
- export type FetchMethods = 'get' | 'delete' | 'options' | 'head';
8
- export type ModifyMethods = 'post' | 'put' | 'patch';
5
+ export type FetchRunner = <T = any, R = AxiosResponse<T>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
6
+ export type ModifyRunner = <T = any, R = AxiosResponse<T>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
7
+ export type FetchMethod = 'get' | 'delete' | 'options' | 'head';
8
+ export type ModifyMethod = 'post' | 'put' | 'patch';
9
+ export type RunnerMethod = keyof Omit<AxleInstance, 'axios' | 'getHeaders' | 'setHeader' | 'removeHeader'>;
9
10
  export type AxleInstance = {
10
- get: FetchHelper;
11
- getBlob: FetchHelper;
12
- getDocument: FetchHelper;
13
- getText: FetchHelper;
14
- getArrayBuffer: FetchHelper;
15
- getStream: FetchHelper;
16
- head: FetchHelper;
17
- headBlob: FetchHelper;
18
- headDocument: FetchHelper;
19
- headText: FetchHelper;
20
- headArrayBuffer: FetchHelper;
21
- headStream: FetchHelper;
22
- options: FetchHelper;
23
- optionsBlob: FetchHelper;
24
- optionsDocument: FetchHelper;
25
- optionsText: FetchHelper;
26
- optionsArrayBuffer: FetchHelper;
27
- optionsStream: FetchHelper;
28
- delete: FetchHelper;
29
- deleteBlob: FetchHelper;
30
- deleteDocument: FetchHelper;
31
- deleteText: FetchHelper;
32
- deleteArrayBuffer: FetchHelper;
33
- deleteStream: FetchHelper;
34
- post: ModifyHelper;
35
- postUrlEncode: ModifyHelper;
36
- postMultipart: ModifyHelper;
37
- put: ModifyHelper;
38
- putUrlEncode: ModifyHelper;
39
- putMultipart: ModifyHelper;
40
- patch: ModifyHelper;
41
- patchUrlEncode: ModifyHelper;
42
- patchMultipart: ModifyHelper;
11
+ get: FetchRunner;
12
+ getBlob: FetchRunner;
13
+ getDocument: FetchRunner;
14
+ getText: FetchRunner;
15
+ getArrayBuffer: FetchRunner;
16
+ getStream: FetchRunner;
17
+ head: FetchRunner;
18
+ headBlob: FetchRunner;
19
+ headDocument: FetchRunner;
20
+ headText: FetchRunner;
21
+ headArrayBuffer: FetchRunner;
22
+ headStream: FetchRunner;
23
+ options: FetchRunner;
24
+ optionsBlob: FetchRunner;
25
+ optionsDocument: FetchRunner;
26
+ optionsText: FetchRunner;
27
+ optionsArrayBuffer: FetchRunner;
28
+ optionsStream: FetchRunner;
29
+ delete: FetchRunner;
30
+ deleteBlob: FetchRunner;
31
+ deleteDocument: FetchRunner;
32
+ deleteText: FetchRunner;
33
+ deleteArrayBuffer: FetchRunner;
34
+ deleteStream: FetchRunner;
35
+ post: ModifyRunner;
36
+ postUrlEncode: ModifyRunner;
37
+ postMultipart: ModifyRunner;
38
+ put: ModifyRunner;
39
+ putUrlEncode: ModifyRunner;
40
+ putMultipart: ModifyRunner;
41
+ patch: ModifyRunner;
42
+ patchUrlEncode: ModifyRunner;
43
+ patchMultipart: ModifyRunner;
43
44
  getHeaders(): HeadersDefaults['common'];
44
45
  setHeader(key: string, value: string): void;
45
46
  removeHeader(key: string | string[]): void;
46
47
  axios: AxiosInstance;
47
48
  };
48
- export declare function createFetchHelper(service: AxiosInstance, method: FetchMethods, responseType: ResponseType): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
49
- export declare function createModifyHelper(service: AxiosInstance, method: ModifyMethods, contentType: 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded'): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
49
+ export declare function createFetchRunner(service: AxiosInstance, method: FetchMethod, responseType: ResponseType): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
50
+ export declare function createModifyRunner(service: AxiosInstance, method: ModifyMethod, contentType: 'application/json' | 'multipart/form-data' | 'application/x-www-form-urlencoded'): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
50
51
  export declare function download(url: string | Blob, filename: string): void;
51
52
  export declare function createAxle(config?: AxiosRequestConfig): AxleInstance;
package/es/instance.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import axios from 'axios';
2
2
  import qs from 'qs';
3
3
  import { inBrowser } from '@varlet/shared';
4
- export function createFetchHelper(service, method, responseType) {
4
+ export function createFetchRunner(service, method, responseType) {
5
5
  return function (url, params, config) {
6
6
  return service[method](url, Object.assign({ params,
7
7
  responseType }, config));
8
8
  };
9
9
  }
10
- export function createModifyHelper(service, method, contentType) {
10
+ export function createModifyRunner(service, method, contentType) {
11
11
  return function (url, params, config) {
12
12
  if (contentType === 'application/x-www-form-urlencoded') {
13
13
  params = qs.stringify(params);
@@ -52,39 +52,39 @@ export function createAxle(config = {}) {
52
52
  key.forEach((k) => Reflect.deleteProperty(service.defaults.headers['common'], k));
53
53
  }
54
54
  return {
55
- get: createFetchHelper(service, 'get', 'json'),
56
- getBlob: createFetchHelper(service, 'get', 'blob'),
57
- getDocument: createFetchHelper(service, 'get', 'document'),
58
- getArrayBuffer: createFetchHelper(service, 'get', 'arraybuffer'),
59
- getText: createFetchHelper(service, 'get', 'text'),
60
- getStream: createFetchHelper(service, 'get', 'stream'),
61
- head: createFetchHelper(service, 'head', 'json'),
62
- headBlob: createFetchHelper(service, 'head', 'blob'),
63
- headDocument: createFetchHelper(service, 'head', 'document'),
64
- headArrayBuffer: createFetchHelper(service, 'head', 'arraybuffer'),
65
- headText: createFetchHelper(service, 'head', 'text'),
66
- headStream: createFetchHelper(service, 'head', 'stream'),
67
- options: createFetchHelper(service, 'options', 'json'),
68
- optionsBlob: createFetchHelper(service, 'options', 'blob'),
69
- optionsDocument: createFetchHelper(service, 'options', 'document'),
70
- optionsArrayBuffer: createFetchHelper(service, 'options', 'arraybuffer'),
71
- optionsText: createFetchHelper(service, 'options', 'text'),
72
- optionsStream: createFetchHelper(service, 'options', 'stream'),
73
- delete: createFetchHelper(service, 'delete', 'json'),
74
- deleteBlob: createFetchHelper(service, 'delete', 'blob'),
75
- deleteDocument: createFetchHelper(service, 'delete', 'document'),
76
- deleteArrayBuffer: createFetchHelper(service, 'delete', 'arraybuffer'),
77
- deleteText: createFetchHelper(service, 'delete', 'text'),
78
- deleteStream: createFetchHelper(service, 'delete', 'stream'),
79
- post: createModifyHelper(service, 'post', 'application/json'),
80
- postUrlEncode: createModifyHelper(service, 'post', 'application/x-www-form-urlencoded'),
81
- postMultipart: createModifyHelper(service, 'post', 'multipart/form-data'),
82
- put: createModifyHelper(service, 'put', 'application/json'),
83
- putUrlEncode: createModifyHelper(service, 'put', 'application/x-www-form-urlencoded'),
84
- putMultipart: createModifyHelper(service, 'put', 'multipart/form-data'),
85
- patch: createModifyHelper(service, 'patch', 'application/json'),
86
- patchUrlEncode: createModifyHelper(service, 'patch', 'application/x-www-form-urlencoded'),
87
- patchMultipart: createModifyHelper(service, 'patch', 'multipart/form-data'),
55
+ get: createFetchRunner(service, 'get', 'json'),
56
+ getBlob: createFetchRunner(service, 'get', 'blob'),
57
+ getDocument: createFetchRunner(service, 'get', 'document'),
58
+ getArrayBuffer: createFetchRunner(service, 'get', 'arraybuffer'),
59
+ getText: createFetchRunner(service, 'get', 'text'),
60
+ getStream: createFetchRunner(service, 'get', 'stream'),
61
+ head: createFetchRunner(service, 'head', 'json'),
62
+ headBlob: createFetchRunner(service, 'head', 'blob'),
63
+ headDocument: createFetchRunner(service, 'head', 'document'),
64
+ headArrayBuffer: createFetchRunner(service, 'head', 'arraybuffer'),
65
+ headText: createFetchRunner(service, 'head', 'text'),
66
+ headStream: createFetchRunner(service, 'head', 'stream'),
67
+ options: createFetchRunner(service, 'options', 'json'),
68
+ optionsBlob: createFetchRunner(service, 'options', 'blob'),
69
+ optionsDocument: createFetchRunner(service, 'options', 'document'),
70
+ optionsArrayBuffer: createFetchRunner(service, 'options', 'arraybuffer'),
71
+ optionsText: createFetchRunner(service, 'options', 'text'),
72
+ optionsStream: createFetchRunner(service, 'options', 'stream'),
73
+ delete: createFetchRunner(service, 'delete', 'json'),
74
+ deleteBlob: createFetchRunner(service, 'delete', 'blob'),
75
+ deleteDocument: createFetchRunner(service, 'delete', 'document'),
76
+ deleteArrayBuffer: createFetchRunner(service, 'delete', 'arraybuffer'),
77
+ deleteText: createFetchRunner(service, 'delete', 'text'),
78
+ deleteStream: createFetchRunner(service, 'delete', 'stream'),
79
+ post: createModifyRunner(service, 'post', 'application/json'),
80
+ postUrlEncode: createModifyRunner(service, 'post', 'application/x-www-form-urlencoded'),
81
+ postMultipart: createModifyRunner(service, 'post', 'multipart/form-data'),
82
+ put: createModifyRunner(service, 'put', 'application/json'),
83
+ putUrlEncode: createModifyRunner(service, 'put', 'application/x-www-form-urlencoded'),
84
+ putMultipart: createModifyRunner(service, 'put', 'multipart/form-data'),
85
+ patch: createModifyRunner(service, 'patch', 'application/json'),
86
+ patchUrlEncode: createModifyRunner(service, 'patch', 'application/x-www-form-urlencoded'),
87
+ patchMultipart: createModifyRunner(service, 'patch', 'multipart/form-data'),
88
88
  getHeaders,
89
89
  setHeader,
90
90
  removeHeader,
package/es/use.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Ref } from 'vue';
2
- import { type AxleRequestConfig, createFetchHelper, createModifyHelper } from './instance.js';
2
+ import { type AxleRequestConfig, type RunnerMethod, type AxleInstance } from './instance.js';
3
3
  export interface RunOptions<P> {
4
4
  url?: string;
5
5
  params?: P;
@@ -7,29 +7,29 @@ export interface RunOptions<P> {
7
7
  _retryCount?: number;
8
8
  }
9
9
  export type Run<R, P> = (options?: RunOptions<P>) => Promise<R>;
10
- export interface UseAxleRefs<D> {
11
- data: Ref<D>;
10
+ export interface UseAxleRefs<V> {
11
+ value: Ref<V>;
12
12
  loading: Ref<boolean>;
13
13
  error: Ref<Error | undefined>;
14
14
  uploadProgress: Ref<number>;
15
15
  downloadProgress: Ref<number>;
16
16
  }
17
- export interface UseAxleOptions<D = any, R = any, P = Record<string, any>> {
17
+ export interface UseAxleOptions<V = any, R = any, P = Record<string, any>> {
18
18
  url: string;
19
- runner: ReturnType<typeof createFetchHelper> | ReturnType<typeof createModifyHelper>;
20
- data: D;
19
+ method: RunnerMethod;
20
+ value?: V;
21
21
  params?: P;
22
22
  retry?: number;
23
23
  config?: AxleRequestConfig;
24
24
  immediate?: boolean;
25
- onBefore?(refs: UseAxleRefs<D>): void;
26
- onAfter?(refs: UseAxleRefs<D>): void;
27
- onTransform?(response: R, refs: UseAxleRefs<D>): D;
28
- onSuccess?(response: R, refs: UseAxleRefs<D>): void;
29
- onError?(error: Error, refs: UseAxleRefs<D>): void;
25
+ onBefore?(refs: UseAxleRefs<V>): void;
26
+ onAfter?(refs: UseAxleRefs<V>): void;
27
+ onTransform?(response: R, refs: UseAxleRefs<V>): V;
28
+ onSuccess?(response: R, refs: UseAxleRefs<V>): void;
29
+ onError?(error: Error, refs: UseAxleRefs<V>): void;
30
30
  }
31
- export type UseAxleInstance<D, R, P> = [
32
- data: Ref<D>,
31
+ export type UseAxleInstance<V, R, P> = [
32
+ value: Ref<V>,
33
33
  run: Run<R, P>,
34
34
  extra: {
35
35
  uploadProgress: Ref<number>;
@@ -40,9 +40,10 @@ export type UseAxleInstance<D, R, P> = [
40
40
  }
41
41
  ];
42
42
  export interface CreateUseAxleOptions {
43
+ axle: AxleInstance;
43
44
  onTransform?(response: any, refs: any): any;
44
45
  }
45
- export declare function createUseAxle(options?: CreateUseAxleOptions): <D = any, R = any, P = Record<string, any>>(options: UseAxleOptions<D, R, P>) => UseAxleInstance<D, R, P>;
46
- export * from './useAllData.js';
46
+ export declare function createUseAxle(options: CreateUseAxleOptions): <V = any, R = any, P = Record<string, any>>(options: UseAxleOptions<V, R, P>) => UseAxleInstance<V, R, P>;
47
+ export * from './useValues.js';
47
48
  export * from './useHasLoading.js';
48
49
  export * from './useAverageProgress.js';
package/es/use.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import { ref } from 'vue';
2
- export function createUseAxle(options = {}) {
3
- const { onTransform: defaultOnTransform } = options;
2
+ export function createUseAxle(options) {
3
+ const { axle, onTransform: defaultOnTransform } = options;
4
4
  const useAxle = (options) => {
5
5
  var _a;
6
- const { url, runner, immediate, data: initialData, params: initialParams, config: initialConfig, retry = 0, onBefore = () => { }, onAfter = () => { }, onTransform = (_a = defaultOnTransform) !== null && _a !== void 0 ? _a : ((response) => response), onSuccess = () => { }, onError = () => { }, } = options;
6
+ const { url, method, immediate, value: initialValue, params: initialParams, config: initialConfig, retry = 0, onBefore = () => { }, onAfter = () => { }, onTransform = (_a = defaultOnTransform) !== null && _a !== void 0 ? _a : ((response) => response), onSuccess = () => { }, onError = () => { }, } = options;
7
7
  const initialUrl = url;
8
- const data = ref(initialData);
8
+ const value = ref(initialValue);
9
9
  const loading = ref(false);
10
10
  const error = ref();
11
11
  const downloadProgress = ref(0);
12
12
  const uploadProgress = ref(0);
13
13
  const shouldRetry = retry > 0;
14
14
  const refs = {
15
- data,
15
+ value,
16
16
  loading,
17
17
  error,
18
18
  downloadProgress,
@@ -30,7 +30,7 @@ export function createUseAxle(options = {}) {
30
30
  onBefore(refs);
31
31
  loading.value = true;
32
32
  try {
33
- const response = await runner(url, options.params, Object.assign({ signal: controller.signal, onUploadProgress(event) {
33
+ const response = await axle[method](url, options.params, Object.assign({ signal: controller.signal, onUploadProgress(event) {
34
34
  var _a;
35
35
  uploadProgress.value = (_a = event.progress) !== null && _a !== void 0 ? _a : 0;
36
36
  },
@@ -38,7 +38,7 @@ export function createUseAxle(options = {}) {
38
38
  var _a;
39
39
  downloadProgress.value = (_a = event.progress) !== null && _a !== void 0 ? _a : 0;
40
40
  } }, options.config));
41
- data.value = onTransform(response, refs);
41
+ value.value = onTransform(response, refs);
42
42
  error.value = undefined;
43
43
  onSuccess(response, refs);
44
44
  loading.value = false;
@@ -68,7 +68,7 @@ export function createUseAxle(options = {}) {
68
68
  });
69
69
  }
70
70
  return [
71
- data,
71
+ value,
72
72
  run,
73
73
  {
74
74
  loading,
@@ -81,6 +81,6 @@ export function createUseAxle(options = {}) {
81
81
  };
82
82
  return useAxle;
83
83
  }
84
- export * from './useAllData.js';
84
+ export * from './useValues.js';
85
85
  export * from './useHasLoading.js';
86
86
  export * from './useAverageProgress.js';
@@ -1,2 +1,2 @@
1
1
  import { type Ref, type WritableComputedRef } from 'vue';
2
- export declare function useAllData<T extends Ref<any>[]>(...dataCollection: T): WritableComputedRef<T[number]['value'][]>;
2
+ export declare function useValues<T extends Ref<any>[]>(...valueCollection: T): WritableComputedRef<T[number]['value'][]>;
@@ -0,0 +1,11 @@
1
+ import { computed } from 'vue';
2
+ export function useValues(...valueCollection) {
3
+ return computed({
4
+ get: () => valueCollection.map((value) => value.value),
5
+ set(values) {
6
+ valueCollection.forEach((value, index) => {
7
+ value.value = values[index];
8
+ });
9
+ },
10
+ });
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varlet/axle",
3
- "version": "0.1.2",
3
+ "version": "0.2.0-alpha.1694529745774",
4
4
  "description": "Progressive request tool based on axios",
5
5
  "type": "module",
6
6
  "main": "es/index.js",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/qs": "^6.9.7",
38
- "@varlet/cli": "^2.13.1",
38
+ "@varlet/cli": "^2.15.0",
39
39
  "rimraf": "^5.0.1",
40
40
  "typescript": "^5.1.5",
41
41
  "vue": "3.3.4"
package/es/useAllData.js DELETED
@@ -1,11 +0,0 @@
1
- import { computed } from 'vue';
2
- export function useAllData(...dataCollection) {
3
- return computed({
4
- get: () => dataCollection.map((data) => data.value),
5
- set(values) {
6
- dataCollection.forEach((data, index) => {
7
- data.value = values[index];
8
- });
9
- },
10
- });
11
- }