11import fs from 'fs-extra'
22import _debug from 'debug'
33import type { Plugin } from 'vite'
4- import type { Options as PkgConfigOptions } from 'vite-plugin-package-config'
4+ import type { VitePluginPackageConfigPlugin } from 'vite-plugin-package-config'
55
66const debug = _debug ( 'vite-plugin-optimize-persist' )
77
@@ -21,28 +21,30 @@ export interface Options {
2121 filter ?: ( includeModule : string ) => boolean
2222}
2323
24- function VitePluginPackageConfig ( { delay = 1000 , filter = ( ) => true } : Options = { } ) : Plugin {
25-
26- return < Plugin > {
24+ function VitePluginOptimizePersist ( { delay = 1000 , filter = ( ) => true } : Options = { } ) : Plugin {
25+ return {
2726 name : 'hi' ,
2827 apply : 'serve' ,
2928 configureServer ( server ) {
30- const pkgConfig : Required < PkgConfigOptions > = ( server . config . plugins as any ) . find ( ( i : any ) => i . name === 'vite-plugin-package-config' ) ?. api . options
29+ const vitePluginPackageConfigPlugin = server . config . plugins . find ( plugin => plugin . name === 'vite-plugin-package-config' ) as VitePluginPackageConfigPlugin | undefined
30+ const pkgConfig = vitePluginPackageConfigPlugin ?. api . options
3131
3232 if ( ! pkgConfig )
3333 throw new Error ( '[vite-config-optimize-persist] plugin "vite-plugin-package-config" not found, have you installed it ?' )
3434
35+ const { packageJsonPath, field } = pkgConfig
36+
3537 // @ts -expect-error
36- let optimizeDepsMetadata : any = server . _ssrExternals
38+ let optimizeDepsMetadata : { optimized : Record < string , string > } | undefined = server . _ssrExternals
3739 const forceIncluded = server . config ?. optimizeDeps ?. include || [ ]
3840 let newDeps : string [ ] = [ ]
39- let timer : any
41+ let timer : NodeJS . Timeout
4042
4143 function update ( ) {
4244 newDeps = Object . keys (
4345 optimizeDepsMetadata ?. optimized || { } ,
4446 )
45- . filter ( i => ! forceIncluded . includes ( i ) )
47+ . filter ( dep => ! forceIncluded . includes ( dep ) )
4648 . filter ( filter )
4749 debug ( 'newDeps' , newDeps )
4850
@@ -54,19 +56,19 @@ function VitePluginPackageConfig({ delay = 1000, filter = () => true }: Options
5456 if ( ! newDeps . length )
5557 return
5658
57- debug ( `writting to ${ pkgConfig . packageJsonPath } ` )
58- const pkg = await fs . readJSON ( pkgConfig . packageJsonPath )
59- pkg [ pkgConfig . field ] = pkg [ pkgConfig . field ] || { }
60- const extend = pkg [ pkgConfig . field ]
59+ debug ( `writting to ${ packageJsonPath } ` )
60+ const pkg = await fs . readJSON ( packageJsonPath )
61+ pkg [ field ] = pkg [ field ] || { }
62+ const extend = pkg [ field ]
6163 extend . optimizeDeps = extend . optimizeDeps || { }
6264 extend . optimizeDeps . include = Array . from ( new Set ( [
6365 ...( extend . optimizeDeps . include || [ ] ) ,
6466 ...newDeps ,
6567 ] ) )
6668 extend . optimizeDeps . include . sort ( )
67- server . watcher . unwatch ( pkgConfig . packageJsonPath )
68- await fs . writeJSON ( pkgConfig . packageJsonPath , pkg , { spaces : 2 } )
69- server . watcher . add ( pkgConfig . packageJsonPath )
69+ server . watcher . unwatch ( packageJsonPath )
70+ await fs . writeJSON ( packageJsonPath , pkg , { spaces : 2 } )
71+ server . watcher . add ( packageJsonPath )
7072 debug ( 'written' )
7173 }
7274
@@ -83,4 +85,4 @@ function VitePluginPackageConfig({ delay = 1000, filter = () => true }: Options
8385 }
8486}
8587
86- export default VitePluginPackageConfig
88+ export default VitePluginOptimizePersist
0 commit comments