From 0fdbbf4f255050cbaf901f3841c99edb6e5e2061 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 12 Aug 2022 16:09:57 +0800 Subject: [PATCH] fix(shared): resolve internal circular reference --- .eslintrc.js | 40 +++++++++++++------ .gitignore | 1 + package.json | 8 ++-- packages/ecosystem.md | 2 +- .../demo/useCounterStore.ts | 2 +- packages/shared/refAutoReset/index.ts | 4 +- packages/shared/useArrayEvery/index.ts | 4 +- packages/shared/useArrayFilter/index.ts | 4 +- packages/shared/useArrayFind/index.ts | 4 +- packages/shared/useArrayFindIndex/index.ts | 4 +- packages/shared/useArrayJoin/index.ts | 4 +- packages/shared/useArrayMap/index.ts | 4 +- packages/shared/useArrayReduce/index.ts | 4 +- packages/shared/useArraySome/index.ts | 4 +- packages/shared/useDateFormat/index.ts | 4 +- packages/shared/useDebounceFn/index.ts | 3 +- packages/shared/useTimeoutFn/index.ts | 5 +-- pnpm-lock.yaml | 10 ++--- 18 files changed, 63 insertions(+), 48 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 48be9904bc6..55c7a7e4251 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,19 @@ const { resolve } = require('path') +const restricted = [ + 'vue', + '@vue/composition-api', + '..', + '../..', + resolve(__dirname, 'packages/core/index.ts'), + resolve(__dirname, 'packages/shared/index.ts'), + { + name: 'vue-demi', + importNames: ['onMounted', 'onUnmounted'], + message: 'Use tryOnMounted and tryOnScopeDispose instead.', + }, +] + module.exports = { root: true, env: { @@ -19,18 +33,7 @@ module.exports = { 'no-restricted-imports': [ 'error', { - paths: [ - 'vue', - '@vue/composition-api', - '..', - '../..', - resolve(__dirname, 'packages/core/index.ts'), - { - name: 'vue-demi', - importNames: ['onMounted', 'onUnmounted'], - message: 'Use tryOnMounted and tryOnScopeDispose instead.', - }, - ], + paths: restricted, }, ], 'node/no-callback-literal': 'off', @@ -40,6 +43,19 @@ module.exports = { 'import/no-named-as-default-member': 'off', }, overrides: [ + { + files: ['packages/shared/**/*.ts'], + rules: { + 'no-restricted-imports': ['error', + { + paths: [ + ...restricted, + '@vueuse/shared', + ], + }, + ], + }, + }, { files: ['**/*.md', '**/*.md/*.*', 'demo.vue', 'scripts/*.ts', '*.test.ts'], rules: { diff --git a/.gitignore b/.gitignore index 9fbfae5de79..af36a040b8b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,6 @@ packages/*/LICENSE packages/contributing.md packages/core/README.md packages/public/badge-* +packages/*/index.mjs playgrounds/*/pnpm-lock.yaml types diff --git a/package.json b/package.json index 5f9660c9c31..d41b0b452cc 100644 --- a/package.json +++ b/package.json @@ -50,10 +50,10 @@ "@vitest/ui": "^0.18.1", "@vue/compiler-sfc": "^3.2.37", "@vue/test-utils": "^2.0.2", - "@vueuse/core": "link:packages/core", - "@vueuse/integrations": "link:packages/integrations", - "@vueuse/math": "link:packages/math", - "@vueuse/shared": "link:packages/shared", + "@vueuse/core": "workspace:*", + "@vueuse/integrations": "workspace:*", + "@vueuse/math": "workspace:*", + "@vueuse/shared": "workspace:*", "axios": "^0.27.2", "bumpp": "^8.2.1", "consola": "^2.15.3", diff --git a/packages/ecosystem.md b/packages/ecosystem.md index bb4d702e2a3..66f93fd1ee7 100644 --- a/packages/ecosystem.md +++ b/packages/ecosystem.md @@ -26,7 +26,7 @@ import * as console from 'vue-chemistry/console' const a = ref(1) const b = ref(2) -let c = sum(a, b) // c = a + b = 3 +const c = sum(a, b) // c = a + b = 3 set(a, 2) // shorthand for a.value = 2 diff --git a/packages/shared/createInjectionState/demo/useCounterStore.ts b/packages/shared/createInjectionState/demo/useCounterStore.ts index 68f2e096cd2..53a542d38cf 100644 --- a/packages/shared/createInjectionState/demo/useCounterStore.ts +++ b/packages/shared/createInjectionState/demo/useCounterStore.ts @@ -1,5 +1,5 @@ import { computed, ref } from 'vue-demi' -import { createInjectionState } from '@vueuse/shared' +import { createInjectionState } from '../../createInjectionState' const [useProvideCounterStore, useCounterStore] = createInjectionState((initialValue: number) => { // state diff --git a/packages/shared/refAutoReset/index.ts b/packages/shared/refAutoReset/index.ts index 4ac8f94be49..6a9efc115a1 100644 --- a/packages/shared/refAutoReset/index.ts +++ b/packages/shared/refAutoReset/index.ts @@ -1,7 +1,7 @@ import type { Ref } from 'vue-demi' import { customRef } from 'vue-demi' -import { resolveUnref } from '@vueuse/shared' -import type { MaybeComputedRef } from '@vueuse/shared' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' import { tryOnScopeDispose } from '../tryOnScopeDispose' /** diff --git a/packages/shared/useArrayEvery/index.ts b/packages/shared/useArrayEvery/index.ts index ec5514c34f2..ccbeee8a7fa 100644 --- a/packages/shared/useArrayEvery/index.ts +++ b/packages/shared/useArrayEvery/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.every` diff --git a/packages/shared/useArrayFilter/index.ts b/packages/shared/useArrayFilter/index.ts index e8feaa91338..9edfdde1122 100644 --- a/packages/shared/useArrayFilter/index.ts +++ b/packages/shared/useArrayFilter/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.filter` diff --git a/packages/shared/useArrayFind/index.ts b/packages/shared/useArrayFind/index.ts index b2df7cd90e9..8218aca5b23 100644 --- a/packages/shared/useArrayFind/index.ts +++ b/packages/shared/useArrayFind/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' -import { resolveUnref } from '@vueuse/shared' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.find` diff --git a/packages/shared/useArrayFindIndex/index.ts b/packages/shared/useArrayFindIndex/index.ts index c3625caee78..1a8d351a6ae 100644 --- a/packages/shared/useArrayFindIndex/index.ts +++ b/packages/shared/useArrayFindIndex/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.findIndex` diff --git a/packages/shared/useArrayJoin/index.ts b/packages/shared/useArrayJoin/index.ts index f6231fc7f56..5d6f7d21bbe 100644 --- a/packages/shared/useArrayJoin/index.ts +++ b/packages/shared/useArrayJoin/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.join` diff --git a/packages/shared/useArrayMap/index.ts b/packages/shared/useArrayMap/index.ts index 6ea4fce0ae9..33d1a04fff2 100644 --- a/packages/shared/useArrayMap/index.ts +++ b/packages/shared/useArrayMap/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.map` diff --git a/packages/shared/useArrayReduce/index.ts b/packages/shared/useArrayReduce/index.ts index b091efb5469..cbc925fe0c5 100644 --- a/packages/shared/useArrayReduce/index.ts +++ b/packages/shared/useArrayReduce/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' export type UseArrayReducer = (previousValue: PV, currentValue: CV, currentIndex: number) => R diff --git a/packages/shared/useArraySome/index.ts b/packages/shared/useArraySome/index.ts index 18af2b0fa8a..988888b3ffb 100644 --- a/packages/shared/useArraySome/index.ts +++ b/packages/shared/useArraySome/index.ts @@ -1,7 +1,7 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import type { ComputedRef } from 'vue-demi' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' /** * Reactive `Array.some` diff --git a/packages/shared/useDateFormat/index.ts b/packages/shared/useDateFormat/index.ts index 9fa89cdfb3a..d632c35383d 100644 --- a/packages/shared/useDateFormat/index.ts +++ b/packages/shared/useDateFormat/index.ts @@ -1,6 +1,6 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' import { computed } from 'vue-demi' +import type { MaybeComputedRef } from '../utils' +import { resolveUnref } from '../resolveUnref' export type DateLike = Date | number | string | undefined diff --git a/packages/shared/useDebounceFn/index.ts b/packages/shared/useDebounceFn/index.ts index 64feef14e73..7048c0e5dd9 100644 --- a/packages/shared/useDebounceFn/index.ts +++ b/packages/shared/useDebounceFn/index.ts @@ -1,5 +1,4 @@ -import type { MaybeComputedRef } from '@vueuse/shared' -import type { DebounceFilterOptions, FunctionArgs } from '../utils' +import type { DebounceFilterOptions, FunctionArgs, MaybeComputedRef } from '../utils' import { createFilterWrapper, debounceFilter } from '../utils' /** diff --git a/packages/shared/useTimeoutFn/index.ts b/packages/shared/useTimeoutFn/index.ts index 7db4bd93304..409ef76b4b3 100644 --- a/packages/shared/useTimeoutFn/index.ts +++ b/packages/shared/useTimeoutFn/index.ts @@ -1,8 +1,7 @@ import { ref } from 'vue-demi' -import type { MaybeComputedRef } from '@vueuse/shared' -import { resolveUnref } from '@vueuse/shared' +import type { MaybeComputedRef, Stoppable } from '../utils' +import { resolveUnref } from '../resolveUnref' import { tryOnScopeDispose } from '../tryOnScopeDispose' -import type { Stoppable } from '../utils' import { isClient } from '../utils' export interface UseTimeoutFnOptions { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25d3c5abe1c..c81b8ce105d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,10 +26,10 @@ importers: '@vitest/ui': ^0.18.1 '@vue/compiler-sfc': ^3.2.37 '@vue/test-utils': ^2.0.2 - '@vueuse/core': link:packages/core - '@vueuse/integrations': link:packages/integrations - '@vueuse/math': link:packages/math - '@vueuse/shared': link:packages/shared + '@vueuse/core': workspace:* + '@vueuse/integrations': workspace:* + '@vueuse/math': workspace:* + '@vueuse/shared': workspace:* axios: ^0.27.2 bumpp: ^8.2.1 consola: ^2.15.3 @@ -9172,7 +9172,7 @@ packages: webpack: optional: true dependencies: - acorn: 8.8.0 + acorn: 8.7.1 chokidar: 3.5.3 rollup: 2.77.0 vite: 3.0.2