From: Eduardo San Martin Morote Date: Mon, 5 Feb 2024 10:12:18 +0000 (+0100) Subject: style: format X-Git-Tag: @pinia/nuxt@0.5.2-beta.0~53 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=54dbb0720aecb879160570f43bf5003bfbb9bf7b;p=thirdparty%2Fvuejs%2Fpinia.git style: format --- diff --git a/.gitignore b/.gitignore index c05a9e6e..88d6c50c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ packages/docs/api .yalc yalc.lock .idea +.vitepress/cache diff --git a/.prettierignore b/.prettierignore index 0442789c..a81df651 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,5 @@ __build__ dist coverage +.vitepress/cache +temp diff --git a/packages/pinia/__tests__/hmr.spec.ts b/packages/pinia/__tests__/hmr.spec.ts index 3f84db9c..261c0b52 100644 --- a/packages/pinia/__tests__/hmr.spec.ts +++ b/packages/pinia/__tests__/hmr.spec.ts @@ -9,7 +9,7 @@ import { } from '../src' function defineOptions< - O extends Omit, 'id'> + O extends Omit, 'id'>, >(options: O): O { return options } diff --git a/packages/pinia/__tests__/pinia/stores/cart.ts b/packages/pinia/__tests__/pinia/stores/cart.ts index b0504268..045044d4 100644 --- a/packages/pinia/__tests__/pinia/stores/cart.ts +++ b/packages/pinia/__tests__/pinia/stores/cart.ts @@ -8,17 +8,20 @@ export const useCartStore = defineStore('cart', { }), getters: { items: (state) => - state.rawItems.reduce((items, item) => { - const existingItem = items.find((it) => it.name === item) + state.rawItems.reduce( + (items, item) => { + const existingItem = items.find((it) => it.name === item) - if (!existingItem) { - items.push({ name: item, amount: 1 }) - } else { - existingItem.amount++ - } + if (!existingItem) { + items.push({ name: item, amount: 1 }) + } else { + existingItem.amount++ + } - return items - }, [] as { name: string; amount: number }[]), + return items + }, + [] as { name: string; amount: number }[] + ), }, actions: { diff --git a/packages/pinia/src/devtools/file-saver.ts b/packages/pinia/src/devtools/file-saver.ts index 29232672..69a8ed5b 100644 --- a/packages/pinia/src/devtools/file-saver.ts +++ b/packages/pinia/src/devtools/file-saver.ts @@ -15,12 +15,12 @@ const _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window ? window : typeof self === 'object' && self.self === self - ? self - : typeof global === 'object' && global.global === global - ? global - : typeof globalThis === 'object' - ? globalThis - : { HTMLElement: null })() + ? self + : typeof global === 'object' && global.global === global + ? global + : typeof globalThis === 'object' + ? globalThis + : { HTMLElement: null })() export interface Options { autoBom?: boolean @@ -112,15 +112,15 @@ export type SaveAs = export const saveAs: SaveAs = !IS_CLIENT ? () => {} // noop : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program - typeof HTMLAnchorElement !== 'undefined' && - 'download' in HTMLAnchorElement.prototype && - !isMacOSWebView - ? downloadSaveAs - : // Use msSaveOrOpenBlob as a second approach - 'msSaveOrOpenBlob' in _navigator - ? msSaveAs - : // Fallback to using FileReader and a popup - fileSaverSaveAs + typeof HTMLAnchorElement !== 'undefined' && + 'download' in HTMLAnchorElement.prototype && + !isMacOSWebView + ? downloadSaveAs + : // Use msSaveOrOpenBlob as a second approach + 'msSaveOrOpenBlob' in _navigator + ? msSaveAs + : // Fallback to using FileReader and a popup + fileSaverSaveAs function downloadSaveAs(blob: Blob, name: string = 'download', opts?: Options) { const a = document.createElement('a') diff --git a/packages/pinia/src/devtools/formatting.ts b/packages/pinia/src/devtools/formatting.ts index 0f2eeb8e..651c9ef3 100644 --- a/packages/pinia/src/devtools/formatting.ts +++ b/packages/pinia/src/devtools/formatting.ts @@ -53,10 +53,13 @@ export function formatStoreForInspectorState( return { editable: false, key: id, - value: store._getters!.reduce((getters, key) => { - getters[key] = store[key] - return getters - }, {} as Record), + value: store._getters!.reduce( + (getters, key) => { + getters[key] = store[key] + return getters + }, + {} as Record + ), } }), } diff --git a/packages/pinia/src/devtools/plugin.ts b/packages/pinia/src/devtools/plugin.ts index 646b3956..82d36bd8 100644 --- a/packages/pinia/src/devtools/plugin.ts +++ b/packages/pinia/src/devtools/plugin.ts @@ -556,7 +556,7 @@ export function devtoolsPlugin< Id extends string = string, S extends StateTree = StateTree, G extends object = _GettersTree, - A extends object = _ActionsTree + A extends object = _ActionsTree, >({ app, store, options }: PiniaPluginContext) { // HMR module if (store.$id.startsWith('__hot:')) { diff --git a/packages/pinia/src/hmr.ts b/packages/pinia/src/hmr.ts index 5424b178..b5798d49 100644 --- a/packages/pinia/src/hmr.ts +++ b/packages/pinia/src/hmr.ts @@ -82,7 +82,7 @@ export function acceptHMRUpdate< Id extends string = string, S extends StateTree = StateTree, G extends _GettersTree = _GettersTree, - A = _ActionsTree + A = _ActionsTree, >(initialUseStore: StoreDefinition, hot: any) { // strip as much as possible from iife.prod if (!__DEV__) { diff --git a/packages/pinia/src/mapHelpers.ts b/packages/pinia/src/mapHelpers.ts index 33803a00..c33d8fbf 100644 --- a/packages/pinia/src/mapHelpers.ts +++ b/packages/pinia/src/mapHelpers.ts @@ -22,33 +22,34 @@ export interface MapStoresCustomization { /** * For internal use **only**. */ -export type _StoreObject = S extends StoreDefinition< - infer Ids, - infer State, - infer Getters, - infer Actions -> - ? { - [Id in `${Ids}${MapStoresCustomization extends Record< - 'suffix', - infer Suffix - > - ? Suffix - : 'Store'}`]: () => Store< - Id extends `${infer RealId}${MapStoresCustomization extends Record< +export type _StoreObject = + S extends StoreDefinition< + infer Ids, + infer State, + infer Getters, + infer Actions + > + ? { + [Id in `${Ids}${MapStoresCustomization extends Record< 'suffix', infer Suffix > ? Suffix - : 'Store'}` - ? RealId - : string, - State, - Getters, - Actions - > - } - : {} + : 'Store'}`]: () => Store< + Id extends `${infer RealId}${MapStoresCustomization extends Record< + 'suffix', + infer Suffix + > + ? Suffix + : 'Store'}` + ? RealId + : string, + State, + Getters, + Actions + > + } + : {} /** * For internal use **only**. @@ -128,7 +129,7 @@ export function mapStores( export type _MapStateReturn< S extends StateTree, G extends _GettersTree, - Keys extends keyof S | keyof G = keyof S | keyof G + Keys extends keyof S | keyof G = keyof S | keyof G, > = { // [key in keyof S | keyof G]: () => key extends keyof S // ? S[key] @@ -149,13 +150,13 @@ export type _MapStateObjectReturn< T extends Record< string, keyof S | keyof G | ((store: Store) => any) - > = {} + > = {}, > = { [key in keyof T]: () => T[key] extends (store: any) => infer R ? R : T[key] extends keyof Store - ? Store[T[key]] - : never + ? Store[T[key]] + : never } /** @@ -202,7 +203,7 @@ export function mapState< KeyMapper extends Record< string, keyof S | keyof G | ((store: Store) => any) - > + >, >( useStore: StoreDefinition, keyMapper: KeyMapper @@ -236,7 +237,7 @@ export function mapState< S extends StateTree, G extends _GettersTree, A, - Keys extends keyof S | keyof G + Keys extends keyof S | keyof G, >( useStore: StoreDefinition, keys: readonly Keys[] @@ -254,31 +255,40 @@ export function mapState< Id extends string, S extends StateTree, G extends _GettersTree, - A + A, >( useStore: StoreDefinition, keysOrMapper: any ): _MapStateReturn | _MapStateObjectReturn { return Array.isArray(keysOrMapper) - ? keysOrMapper.reduce((reduced, key) => { - reduced[key] = function (this: ComponentPublicInstance) { - return useStore(this.$pinia)[key] - } as () => any - return reduced - }, {} as _MapStateReturn) - : Object.keys(keysOrMapper).reduce((reduced, key: string) => { - // @ts-expect-error - reduced[key] = function (this: ComponentPublicInstance) { - const store = useStore(this.$pinia) - const storeKey = keysOrMapper[key] - // for some reason TS is unable to infer the type of storeKey to be a - // function - return typeof storeKey === 'function' - ? (storeKey as (store: Store) => any).call(this, store) - : store[storeKey] - } - return reduced - }, {} as _MapStateObjectReturn) + ? keysOrMapper.reduce( + (reduced, key) => { + reduced[key] = function (this: ComponentPublicInstance) { + return useStore(this.$pinia)[key] + } as () => any + return reduced + }, + {} as _MapStateReturn + ) + : Object.keys(keysOrMapper).reduce( + (reduced, key: string) => { + // @ts-expect-error + reduced[key] = function (this: ComponentPublicInstance) { + const store = useStore(this.$pinia) + const storeKey = keysOrMapper[key] + // for some reason TS is unable to infer the type of storeKey to be a + // function + return typeof storeKey === 'function' + ? (storeKey as (store: Store) => any).call( + this, + store + ) + : store[storeKey] + } + return reduced + }, + {} as _MapStateObjectReturn + ) } /** @@ -331,7 +341,7 @@ export function mapActions< S extends StateTree, G extends _GettersTree, A, - KeyMapper extends Record + KeyMapper extends Record, >( useStore: StoreDefinition, keyMapper: KeyMapper @@ -363,7 +373,7 @@ export function mapActions< Id extends string, S extends StateTree, G extends _GettersTree, - A + A, >( useStore: StoreDefinition, keys: Array @@ -381,7 +391,7 @@ export function mapActions< S extends StateTree, G extends _GettersTree, A, - KeyMapper extends Record + KeyMapper extends Record, >( useStore: StoreDefinition, keysOrMapper: Array | KeyMapper @@ -397,16 +407,19 @@ export function mapActions< } return reduced }, {} as _MapActionsReturn) - : Object.keys(keysOrMapper).reduce((reduced, key: keyof KeyMapper) => { - // @ts-expect-error - reduced[key] = function ( - this: ComponentPublicInstance, - ...args: any[] - ) { - return useStore(this.$pinia)[keysOrMapper[key]](...args) - } - return reduced - }, {} as _MapActionsObjectReturn) + : Object.keys(keysOrMapper).reduce( + (reduced, key: keyof KeyMapper) => { + // @ts-expect-error + reduced[key] = function ( + this: ComponentPublicInstance, + ...args: any[] + ) { + return useStore(this.$pinia)[keysOrMapper[key]](...args) + } + return reduced + }, + {} as _MapActionsObjectReturn + ) } /** @@ -424,7 +437,7 @@ export type _MapWritableStateReturn = { */ export type _MapWritableStateObjectReturn< S extends StateTree, - T extends Record + T extends Record, > = { [key in keyof T]: { get: () => S[T[key]] @@ -445,7 +458,7 @@ export function mapWritableState< S extends StateTree, G extends _GettersTree, A, - KeyMapper extends Record + KeyMapper extends Record, >( useStore: StoreDefinition, keyMapper: KeyMapper @@ -463,7 +476,7 @@ export function mapWritableState< S extends StateTree, G extends _GettersTree, A, - Keys extends keyof S + Keys extends keyof S, >( useStore: StoreDefinition, keys: readonly Keys[] @@ -486,7 +499,7 @@ export function mapWritableState< S extends StateTree, G extends _GettersTree, A, - KeyMapper extends Record + KeyMapper extends Record, >( useStore: StoreDefinition, keysOrMapper: Array | KeyMapper @@ -505,17 +518,20 @@ export function mapWritableState< } return reduced }, {} as _MapWritableStateReturn) - : Object.keys(keysOrMapper).reduce((reduced, key: keyof KeyMapper) => { - // @ts-ignore - reduced[key] = { - get(this: ComponentPublicInstance) { - return useStore(this.$pinia)[keysOrMapper[key]] - }, - set(this: ComponentPublicInstance, value) { - // it's easier to type it here as any - return (useStore(this.$pinia)[keysOrMapper[key]] = value as any) - }, - } - return reduced - }, {} as _MapWritableStateObjectReturn) + : Object.keys(keysOrMapper).reduce( + (reduced, key: keyof KeyMapper) => { + // @ts-ignore + reduced[key] = { + get(this: ComponentPublicInstance) { + return useStore(this.$pinia)[keysOrMapper[key]] + }, + set(this: ComponentPublicInstance, value) { + // it's easier to type it here as any + return (useStore(this.$pinia)[keysOrMapper[key]] = value as any) + }, + } + return reduced + }, + {} as _MapWritableStateObjectReturn + ) } diff --git a/packages/pinia/src/rootStore.ts b/packages/pinia/src/rootStore.ts index 1ee39576..1b30996a 100644 --- a/packages/pinia/src/rootStore.ts +++ b/packages/pinia/src/rootStore.ts @@ -110,7 +110,7 @@ export interface PiniaPluginContext< Id extends string = string, S extends StateTree = StateTree, G /* extends _GettersTree */ = _GettersTree, - A /* extends _ActionsTree */ = _ActionsTree + A /* extends _ActionsTree */ = _ActionsTree, > { /** * pinia instance. @@ -143,9 +143,9 @@ export interface PiniaPlugin { * * @param context - Context */ - (context: PiniaPluginContext): Partial< - PiniaCustomProperties & PiniaCustomStateProperties - > | void + ( + context: PiniaPluginContext + ): Partial | void } /** diff --git a/packages/pinia/src/store.ts b/packages/pinia/src/store.ts index e781da0d..68e67f55 100644 --- a/packages/pinia/src/store.ts +++ b/packages/pinia/src/store.ts @@ -57,7 +57,7 @@ const fallbackRunWithContext = (fn: () => unknown) => fn() type _ArrayType = AT extends Array ? T : never function mergeReactiveObjects< - T extends Record | Map | Set + T extends Record | Map | Set, >(target: T, patchToApply: _DeepPartial): T { // Handle Map instances if (target instanceof Map && patchToApply instanceof Map) { @@ -135,7 +135,7 @@ function createOptionsStore< Id extends string, S extends StateTree, G extends _GettersTree, - A extends _ActionsTree + A extends _ActionsTree, >( id: Id, options: DefineStoreOptions, @@ -168,31 +168,34 @@ function createOptionsStore< return assign( localState, actions, - Object.keys(getters || {}).reduce((computedGetters, name) => { - if (__DEV__ && name in localState) { - console.warn( - `[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".` - ) - } + Object.keys(getters || {}).reduce( + (computedGetters, name) => { + if (__DEV__ && name in localState) { + console.warn( + `[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".` + ) + } - computedGetters[name] = markRaw( - computed(() => { - setActivePinia(pinia) - // it was created just before - const store = pinia._s.get(id)! + computedGetters[name] = markRaw( + computed(() => { + setActivePinia(pinia) + // it was created just before + const store = pinia._s.get(id)! - // allow cross using stores - /* istanbul ignore if */ - if (isVue2 && !store._r) return + // allow cross using stores + /* istanbul ignore if */ + if (isVue2 && !store._r) return - // @ts-expect-error - // return getters![name].call(context, context) - // TODO: avoid reading the getter while assigning with a global variable - return getters![name].call(store, store) - }) - ) - return computedGetters - }, {} as Record) + // @ts-expect-error + // return getters![name].call(context, context) + // TODO: avoid reading the getter while assigning with a global variable + return getters![name].call(store, store) + }) + ) + return computedGetters + }, + {} as Record + ) ) } @@ -206,7 +209,7 @@ function createSetupStore< SS extends Record, S extends StateTree, G extends Record, - A extends _ActionsTree + A extends _ActionsTree, >( $id: Id, setup: () => SS, @@ -334,13 +337,13 @@ function createSetupStore< }) } : /* istanbul ignore next */ - __DEV__ - ? () => { - throw new Error( - `🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().` - ) - } - : noop + __DEV__ + ? () => { + throw new Error( + `🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().` + ) + } + : noop function $dispose() { scope.stop() @@ -760,40 +763,28 @@ function createSetupStore< * Extract the actions of a store type. Works with both a Setup Store or an * Options Store. */ -export type StoreActions = SS extends Store< - string, - StateTree, - _GettersTree, - infer A -> - ? A - : _ExtractActionsFromSetupStore +export type StoreActions = + SS extends Store, infer A> + ? A + : _ExtractActionsFromSetupStore /** * Extract the getters of a store type. Works with both a Setup Store or an * Options Store. */ -export type StoreGetters = SS extends Store< - string, - StateTree, - infer G, - _ActionsTree -> - ? _StoreWithGetters - : _ExtractGettersFromSetupStore +export type StoreGetters = + SS extends Store + ? _StoreWithGetters + : _ExtractGettersFromSetupStore /** * Extract the state of a store type. Works with both a Setup Store or an * Options Store. Note this unwraps refs. */ -export type StoreState = SS extends Store< - string, - infer S, - _GettersTree, - _ActionsTree -> - ? UnwrapRef - : _ExtractStateFromSetupStore +export type StoreState = + SS extends Store, _ActionsTree> + ? UnwrapRef + : _ExtractStateFromSetupStore // type a1 = _ExtractStateFromSetupStore<{ a: Ref; action: () => void }> // type a2 = _ExtractActionsFromSetupStore<{ a: Ref; action: () => void }> @@ -814,7 +805,7 @@ export function defineStore< S extends StateTree = {}, G extends _GettersTree = {}, // cannot extends ActionsTree because we loose the typings - A /* extends ActionsTree */ = {} + A /* extends ActionsTree */ = {}, >( id: Id, options: Omit, 'id'> @@ -830,7 +821,7 @@ export function defineStore< S extends StateTree = {}, G extends _GettersTree = {}, // cannot extends ActionsTree because we loose the typings - A /* extends ActionsTree */ = {} + A /* extends ActionsTree */ = {}, >(options: DefineStoreOptions): StoreDefinition /** diff --git a/packages/pinia/src/types.ts b/packages/pinia/src/types.ts index 3eb11800..0c3359cd 100644 --- a/packages/pinia/src/types.ts +++ b/packages/pinia/src/types.ts @@ -162,10 +162,10 @@ export type SubscriptionCallback = ( export type _Awaited = T extends null | undefined ? T // special case for `null | undefined` when not in `--strictNullChecks` mode : T extends object & { then(onfulfilled: infer F): any } // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped - ? F extends (value: infer V, ...args: any) => any // if the argument to `then` is callable, extracts the first argument - ? _Awaited // recursively unwrap the value - : never // the argument to `then` was not callable - : T // non-object or non-thenable + ? F extends (value: infer V, ...args: any) => any // if the argument to `then` is callable, extracts the first argument + ? _Awaited // recursively unwrap the value + : never // the argument to `then` was not callable + : T // non-object or non-thenable /** * Actual type for {@link StoreOnActionListenerContext}. Exists for refactoring @@ -175,7 +175,7 @@ export type _Awaited = T extends null | undefined export interface _StoreOnActionListenerContext< Store, ActionName extends string, - A + A, > { /** * Name of the action @@ -219,7 +219,7 @@ export type StoreOnActionListenerContext< Id extends string, S extends StateTree, G /* extends GettersTree */, - A /* extends ActionsTree */ + A /* extends ActionsTree */, > = _ActionsTree extends A ? _StoreOnActionListenerContext : { @@ -235,7 +235,7 @@ export type StoreOnActionListener< Id extends string, S extends StateTree, G /* extends GettersTree */, - A /* extends ActionsTree */ + A /* extends ActionsTree */, > = ( context: StoreOnActionListenerContext< Id, @@ -318,7 +318,7 @@ export interface _StoreWithState< Id extends string, S extends StateTree, G /* extends GettersTree */, - A /* extends ActionsTree */ + A /* extends ActionsTree */, > extends StoreProperties { /** * State of the Store. Setting it will internally call `$patch()` to update the state. @@ -465,7 +465,7 @@ export type Store< S extends StateTree = {}, G /* extends GettersTree*/ = {}, // has the actions without the context (this) for typings - A /* extends ActionsTree */ = {} + A /* extends ActionsTree */ = {}, > = _StoreWithState & UnwrapRef & _StoreWithGetters & @@ -493,7 +493,7 @@ export interface StoreDefinition< Id extends string = string, S extends StateTree = StateTree, G /* extends GettersTree*/ = _GettersTree, - A /* extends ActionsTree */ = _ActionsTree + A /* extends ActionsTree */ = _ActionsTree, > { /** * Returns a store, creates it if necessary. @@ -523,7 +523,7 @@ export interface PiniaCustomProperties< Id extends string = string, S extends StateTree = StateTree, G /* extends GettersTree */ = _GettersTree, - A /* extends ActionsTree */ = _ActionsTree + A /* extends ActionsTree */ = _ActionsTree, > {} /** @@ -583,8 +583,8 @@ export type _UnwrapAll = { [K in keyof SS]: UnwrapRef } export type _ExtractStateFromSetupStore = SS extends undefined | void ? {} : _ExtractStateFromSetupStore_Keys extends keyof SS - ? _UnwrapAll>> - : never + ? _UnwrapAll>> + : never /** * For internal use **only** @@ -592,8 +592,8 @@ export type _ExtractStateFromSetupStore = SS extends undefined | void export type _ExtractActionsFromSetupStore = SS extends undefined | void ? {} : _ExtractActionsFromSetupStore_Keys extends keyof SS - ? Pick> - : never + ? Pick> + : never /** * For internal use **only** @@ -601,8 +601,8 @@ export type _ExtractActionsFromSetupStore = SS extends undefined | void export type _ExtractGettersFromSetupStore = SS extends undefined | void ? {} : _ExtractGettersFromSetupStore_Keys extends keyof SS - ? Pick> - : never + ? Pick> + : never /** * Options passed to `defineStore()` that are common between option and setup @@ -619,7 +619,7 @@ export interface DefineStoreOptions< Id extends string, S extends StateTree, G /* extends GettersTree */, - A /* extends Record */ + A /* extends Record */, > extends DefineStoreOptionsBase> { /** * Unique string key to identify the store across the application. @@ -687,7 +687,7 @@ export interface DefineSetupStoreOptions< // NOTE: Passing SS seems to make TS crash S extends StateTree, G, - A /* extends ActionsTree */ + A /* extends ActionsTree */, > extends DefineStoreOptionsBase> { /** * Extracted actions. Added by useStore(). SHOULD NOT be added by the user when @@ -704,7 +704,7 @@ export interface DefineStoreOptionsInPlugin< Id extends string, S extends StateTree, G, - A + A, > extends Omit, 'id' | 'actions'> { /** * Extracted object of actions. Added by useStore() when the store is built diff --git a/packages/playground/src/stores/cart.ts b/packages/playground/src/stores/cart.ts index 1adeaba7..210b6056 100644 --- a/packages/playground/src/stores/cart.ts +++ b/packages/playground/src/stores/cart.ts @@ -8,17 +8,20 @@ export const useCartStore = defineStore({ }), getters: { items: (state) => - state.rawItems.reduce((items, item) => { - const existingItem = items.find((it) => it.name === item) + state.rawItems.reduce( + (items, item) => { + const existingItem = items.find((it) => it.name === item) - if (!existingItem) { - items.push({ name: item, amount: 1 }) - } else { - existingItem.amount++ - } + if (!existingItem) { + items.push({ name: item, amount: 1 }) + } else { + existingItem.amount++ + } - return items - }, [] as Array<{ name: string; amount: number }>), + return items + }, + [] as Array<{ name: string; amount: number }> + ), }, actions: { addItem(name: string) {