@@ -5,6 +5,7 @@ import chalk from 'chalk';
55import findUp from 'find-up' ;
66import inquirer from 'inquirer' ;
77import { PluginManager , PluginManagerOptions } from 'live-plugin-manager' ;
8+ import { installPackage } from '@antfu/install-pkg' ;
89
910import * as core from '@hypermod/core' ;
1011import { CodeshiftConfig } from '@hypermod/types' ;
@@ -15,6 +16,14 @@ import { fetchPackages } from './utils/fetch-package';
1516import { mergeConfigs } from './utils/merge-configs' ;
1617import { getConfigPrompt , getMultiConfigPrompt } from './prompt' ;
1718
19+ const ExperimentalModuleLoader = ( ) => ( {
20+ install : async ( packageName : string ) => await installPackage ( packageName ) ,
21+ require : ( packageName : string ) => require ( packageName ) ,
22+ getInfo : ( packageName : string ) => ( {
23+ location : require . resolve ( packageName ) ,
24+ } ) ,
25+ } ) ;
26+
1827export default async function main (
1928 paths : string [ ] ,
2029 flags : Partial < core . Flags > ,
@@ -41,7 +50,9 @@ export default async function main(
4150 } ;
4251 }
4352
44- const packageManager = new PluginManager ( pluginManagerConfig ) ;
53+ const packageManager = flags . experimentalLoader
54+ ? ExperimentalModuleLoader ( )
55+ : new PluginManager ( pluginManagerConfig ) ;
4556
4657 let transforms : string [ ] = [ ] ;
4758
@@ -193,6 +204,7 @@ export default async function main(
193204
194205 const { community, remote } = await fetchPackages (
195206 pkgName ,
207+ // @ts -expect-error Experimental loader
196208 packageManager ,
197209 ) ;
198210
0 commit comments