11import { isNullish , isPlainObject } from "remeda" ;
22
33import type { Options } from "prettier" ;
4- import type { ReadonlyTuple } from "type-fest " ;
4+ import { versionStrToNum } from "./utils/version " ;
55
66export interface Data {
77 version : number ;
@@ -37,13 +37,9 @@ export const getDefaultIgnorePatterns = (): string =>
3737` . trim ( ) ;
3838
3939export const getCurrentVersion = ( ) => {
40- const { version } = manifest ;
41- const [ major , minor , patch ] = version . split ( "." ) . map ( Number ) as unknown as ReadonlyTuple <
42- number ,
43- 3
44- > ;
40+ const version = versionStrToNum ( manifest . version ) ;
4541
46- return major * 10000 + minor * 100 + patch ;
42+ return version ;
4743} ;
4844
4945export const getDefaultSettings = ( ) : Settings => ( {
@@ -70,13 +66,28 @@ export const migrate = (data: unknown): Data => {
7066 if ( ! Object . hasOwn ( data , "version" ) ) {
7167 const dataV1 = data as unknown as Settings ;
7268 const dataV2 : Data = {
73- version : 20000 ,
69+ version : versionStrToNum ( "2.0.0" ) ,
7470 settings : { ...dataV1 , removeExtraSpaces : false } ,
7571 } ;
7672
7773 return migrate ( dataV2 ) ;
7874 }
7975
80- // 2.0.0
76+ // 2.0.0 -> 2.0.1
77+ if ( data . version === versionStrToNum ( "2.0.0" ) ) {
78+ const dataV2 = data as unknown as Data ;
79+ const dataV2_0_1 : Data = {
80+ version : versionStrToNum ( "2.0.1" ) ,
81+ settings : {
82+ // @ts -expect-error
83+ languageMappings : { } ,
84+ ...dataV2 . settings ,
85+ } ,
86+ } ;
87+
88+ return migrate ( dataV2_0_1 ) ;
89+ }
90+
91+ // 2.0.1
8192 return data as unknown as Data ;
8293} ;
0 commit comments