1- var own = { } . hasOwnProperty
1+ const own = { } . hasOwnProperty
22
33/**
4- * @typedef { Object } ToJsonOptions
4+ * @typedef ToJsonOptions
55 * @property {boolean } [log=true]
66 * @property {string } [delimiter=':']
77 * @property {string[]|string|false } [comment='%']
@@ -15,27 +15,23 @@ var own = {}.hasOwnProperty
1515 * @param {ToJsonOptions } [options={}]
1616 */
1717export function toJson ( value , options = { } ) {
18- var log =
18+ const log =
1919 options . log === null || options . log === undefined ? true : options . log
20- var comment =
20+ const comment =
2121 options . comment === null || options . comment === undefined
2222 ? '%'
2323 : options . comment
24- var comments = comment ? ( Array . isArray ( comment ) ? comment : [ comment ] ) : [ ]
25- var delimiter = options . delimiter || ':'
26- var forgiving = options . forgiving
27- var propertyOrValues = { }
28- /** @type {boolean } */
29- var isPropertyValuePair
30- /** @type {Array.<Array.<string>> } */
31- var pairs
24+ const comments = comment ? ( Array . isArray ( comment ) ? comment : [ comment ] ) : [ ]
25+ const delimiter = options . delimiter || ':'
26+ const forgiving = options . forgiving
27+ const propertyOrValues = { }
3228
33- var lines = value
29+ const lines = value
3430 . split ( '\n' )
3531 . map ( ( line ) => {
36- var commentIndex = - 1
32+ let commentIndex = - 1
3733 /** @type {number } */
38- var index
34+ let index
3935
4036 while ( ++ commentIndex < comments . length ) {
4137 index = line . indexOf ( comments [ commentIndex ] )
@@ -46,11 +42,11 @@ export function toJson(value, options = {}) {
4642 } )
4743 . filter ( Boolean )
4844
49- pairs = lines . map (
45+ const pairs = lines . map (
5046 // Transform `value` to a property--value tuple.
5147 function ( value ) {
52- var values = value . split ( delimiter )
53- var result = [ values . shift ( ) . trim ( ) ]
48+ const values = value . split ( delimiter )
49+ const result = [ values . shift ( ) . trim ( ) ]
5450
5551 if ( values . length > 0 ) {
5652 result . push ( values . join ( delimiter ) . trim ( ) )
@@ -60,8 +56,11 @@ export function toJson(value, options = {}) {
6056 }
6157 )
6258
63- pairs . forEach ( function ( line , index ) {
64- var currentLineIsPropertyValuePair = line . length === 2
59+ /** @type {boolean } */
60+ let isPropertyValuePair
61+
62+ for ( const [ index , line ] of pairs . entries ( ) ) {
63+ const currentLineIsPropertyValuePair = line . length === 2
6564
6665 if ( index === 0 ) {
6766 isPropertyValuePair = currentLineIsPropertyValuePair
@@ -111,7 +110,7 @@ export function toJson(value, options = {}) {
111110 }
112111
113112 propertyOrValues [ line [ 0 ] ] = line [ 1 ]
114- } )
113+ }
115114
116115 if ( isPropertyValuePair ) {
117116 pairs . sort ( sortOnFirstIndex )
@@ -123,8 +122,8 @@ export function toJson(value, options = {}) {
123122
124123/**
125124 * Sort on the first (`0`) index.
126- * @param {Array. <string> } a
127- * @param {Array. <string> } b
125+ * @param {Array<string> } a
126+ * @param {Array<string> } b
128127 */
129128function sortOnFirstIndex ( a , b ) {
130129 return a [ 0 ] . codePointAt ( 0 ) - b [ 0 ] . codePointAt ( 0 )
0 commit comments