@@ -136,7 +136,7 @@ const DEFAULT_DATE_FORMAT = 'YYYY.0M.0D';
136136type BumpType = 'major' | 'minor' | 'micro' ;
137137
138138function determineBumpType (
139- tokens : CalVerSegment [ 'type' ] [ ] ,
139+ tokens : CalVerToken [ ] ,
140140 hasBreaking : boolean ,
141141 hasFeatures : boolean
142142) : BumpType {
@@ -158,20 +158,22 @@ interface ParsedCalVer {
158158 build ?: string ;
159159}
160160
161+ type CalVerToken =
162+ | 'YYYY'
163+ | 'YY'
164+ | '0Y'
165+ | 'MM'
166+ | '0M'
167+ | 'WW'
168+ | '0W'
169+ | 'DD'
170+ | '0D'
171+ | 'MAJOR'
172+ | 'MINOR'
173+ | 'MICRO' ;
174+
161175interface CalVerSegment {
162- type :
163- | 'YYYY'
164- | 'YY'
165- | '0Y'
166- | 'MM'
167- | '0M'
168- | 'WW'
169- | '0W'
170- | 'DD'
171- | '0D'
172- | 'MAJOR'
173- | 'MINOR'
174- | 'MICRO' ;
176+ type : CalVerToken ;
175177 value : number ;
176178 originalString : string ;
177179}
@@ -227,7 +229,7 @@ class CalendarVersionUpdate implements VersionUpdater {
227229
228230 private parseAndValidate (
229231 version : Version ,
230- tokens : CalVerSegment [ 'type' ] [ ]
232+ tokens : CalVerToken [ ]
231233 ) : ParsedCalVer {
232234 const parsed = parseVersionString ( version . toString ( ) , this . format ) ;
233235 if ( ! parsed ) {
@@ -248,7 +250,7 @@ class CalendarVersionUpdate implements VersionUpdater {
248250 }
249251
250252 private buildNewSegments (
251- tokens : CalVerSegment [ 'type' ] [ ] ,
253+ tokens : CalVerToken [ ] ,
252254 oldSegments : CalVerSegment [ ]
253255 ) : CalVerSegment [ ] {
254256 const state : SegmentProcessingState = {
@@ -267,7 +269,7 @@ class CalendarVersionUpdate implements VersionUpdater {
267269 }
268270
269271 private processDateSegment (
270- tokenType : CalVerSegment [ 'type' ] ,
272+ tokenType : CalVerToken ,
271273 oldSegment : CalVerSegment | undefined ,
272274 state : SegmentProcessingState
273275 ) : CalVerSegment {
@@ -288,7 +290,7 @@ class CalendarVersionUpdate implements VersionUpdater {
288290 }
289291
290292 private processSemanticSegment (
291- tokenType : CalVerSegment [ 'type' ] ,
293+ tokenType : CalVerToken ,
292294 oldSegment : CalVerSegment | undefined ,
293295 state : SegmentProcessingState
294296 ) : CalVerSegment {
@@ -305,7 +307,7 @@ class CalendarVersionUpdate implements VersionUpdater {
305307 }
306308
307309 private computeValueSameDate (
308- tokenType : CalVerSegment [ 'type' ] ,
310+ tokenType : CalVerToken ,
309311 oldValue : number ,
310312 state : SegmentProcessingState
311313 ) : number {
@@ -322,7 +324,7 @@ class CalendarVersionUpdate implements VersionUpdater {
322324 return oldValue ;
323325 }
324326
325- private isTargetSegmentForBump ( tokenType : CalVerSegment [ 'type' ] ) : boolean {
327+ private isTargetSegmentForBump ( tokenType : CalVerToken ) : boolean {
326328 return tokenType . toLowerCase ( ) === this . bumpType ;
327329 }
328330}
@@ -349,7 +351,7 @@ function isDateSegment(
349351
350352function extractDateFromSegments (
351353 segments : CalVerSegment [ ] ,
352- tokens : CalVerSegment [ 'type' ] [ ]
354+ tokens : CalVerToken [ ]
353355) : Date | null {
354356 const values = extractDateValues ( segments , tokens ) ;
355357
@@ -369,7 +371,7 @@ interface DateValues {
369371
370372function extractDateValues (
371373 segments : CalVerSegment [ ] ,
372- tokens : CalVerSegment [ 'type' ] [ ]
374+ tokens : CalVerToken [ ]
373375) : DateValues {
374376 const values : DateValues = { year : null , month : null , day : null , week : null } ;
375377
@@ -460,7 +462,7 @@ const SEGMENT_FORMATTERS: Record<string, SegmentFormatter> = {
460462 '0D' : parts => parts . day . toString ( ) . padStart ( 2 , '0' ) ,
461463} ;
462464
463- function formatSegment ( type : CalVerSegment [ 'type' ] , date : Date ) : string {
465+ function formatSegment ( type : CalVerToken , date : Date ) : string {
464466 const formatter = SEGMENT_FORMATTERS [ type ] ;
465467 return formatter ? formatter ( getDateParts ( date ) ) : '' ;
466468}
@@ -487,9 +489,9 @@ const PLACEHOLDER_PATTERN = new RegExp(
487489 'g'
488490) ;
489491
490- function parseFormat ( format : string ) : CalVerSegment [ 'type' ] [ ] {
492+ function parseFormat ( format : string ) : CalVerToken [ ] {
491493 return [ ...format . matchAll ( PLACEHOLDER_PATTERN ) ] . map (
492- m => m [ 0 ] as CalVerSegment [ 'type' ]
494+ m => m [ 0 ] as CalVerToken
493495 ) ;
494496}
495497
0 commit comments