@@ -39,12 +39,14 @@ const cli = meow(
3939 --ignore Directories/files to ignore (can be used multiple times)
4040 --skip-upgrade Skip the upgrade step
4141 --release Name of the release you're upgrading to (e.g. core-3)
42+ --canary Upgrade to the latest canary version instead of the stable release
4243 --dry-run Show what would be done without making changes
4344
4445 Examples
4546 $ npx @clerk/upgrade
4647 $ npx @clerk/upgrade --sdk=nextjs
4748 $ npx @clerk/upgrade --dir=./src --ignore=**/test/**
49+ $ npx @clerk/upgrade --canary
4850 $ npx @clerk/upgrade --dry-run
4951
5052 Non-interactive mode:
@@ -59,6 +61,7 @@ const cli = meow(
5961 ignore : { type : 'string' , isMultiple : true } ,
6062 release : { type : 'string' } ,
6163 sdk : { type : 'string' } ,
64+ canary : { type : 'boolean' , default : false } ,
6265 skipCodemods : { type : 'boolean' , default : false } ,
6366 skipUpgrade : { type : 'boolean' , default : false } ,
6467 } ,
@@ -69,6 +72,7 @@ async function main() {
6972 renderHeader ( ) ;
7073
7174 const options = {
75+ canary : cli . flags . canary ,
7276 dir : cli . flags . dir ,
7377 dryRun : cli . flags . dryRun ,
7478 glob : cli . flags . glob ,
@@ -186,9 +190,9 @@ async function main() {
186190 if ( options . skipUpgrade ) {
187191 renderText ( 'Skipping package upgrade (--skip-upgrade flag)' , 'yellow' ) ;
188192 renderNewline ( ) ;
189- } else if ( config . alreadyUpgraded ) {
193+ } else if ( config . alreadyUpgraded && ! options . canary ) {
190194 renderSuccess ( `You're already on the latest major version of @clerk/${ sdk } ` ) ;
191- } else if ( config . needsUpgrade ) {
195+ } else if ( config . needsUpgrade || options . canary ) {
192196 await performUpgrade ( sdk , packageManager , config , options ) ;
193197 }
194198
@@ -214,7 +218,7 @@ async function main() {
214218async function performUpgrade ( sdk , packageManager , config , options ) {
215219 const targetPackage = getTargetPackageName ( sdk ) ;
216220 const oldPackage = getOldPackageName ( sdk ) ;
217- const targetVersion = config . sdkVersions ?. [ sdk ] ?. to ;
221+ const targetVersion = options . canary ? 'canary' : config . sdkVersions ?. [ sdk ] ?. to ;
218222
219223 if ( options . dryRun ) {
220224 renderText ( `[dry run] Would upgrade ${ targetPackage } to version ${ targetVersion } ` , 'yellow' ) ;
0 commit comments