@@ -107,13 +107,13 @@ export async function translateObject(props: {
107107 const keys = key . split ( '.' )
108108 let targetObj = allTranslatedTranslationsObject ?. [ targetLang ] . translations
109109 for ( let i = 0 ; i < keys . length - 1 ; i += 1 ) {
110- const nextObj = targetObj [ keys [ i ] ]
110+ const nextObj = targetObj [ keys [ i ] ! ]
111111 if ( typeof nextObj !== 'object' ) {
112112 throw new Error ( `Key ${ keys [ i ] } is not an object in ${ targetLang } (1)` )
113113 }
114114 targetObj = nextObj
115115 }
116- delete targetObj [ keys [ keys . length - 1 ] ]
116+ delete targetObj [ keys [ keys . length - 1 ] ! ]
117117 }
118118
119119 if ( ! allTranslatedTranslationsObject ?. [ targetLang ] . translations ) {
@@ -128,7 +128,10 @@ export async function translateObject(props: {
128128
129129 for ( const missingKey of missingKeys ) {
130130 const keys : string [ ] = missingKey . split ( '.' )
131- const sourceText = keys . reduce ( ( acc , key ) => acc [ key ] , fromTranslationsObject )
131+ const sourceText = keys . reduce (
132+ ( acc , key ) => acc [ key ] ! as GenericTranslationsObject ,
133+ fromTranslationsObject ,
134+ )
132135 if ( ! sourceText || typeof sourceText !== 'string' ) {
133136 throw new Error (
134137 `Missing key ${ missingKey } or key not "leaf" in fromTranslationsObject for lang ${ targetLang } . (2)` ,
@@ -147,20 +150,20 @@ export async function translateObject(props: {
147150 }
148151 let targetObj = allOnlyNewTranslatedTranslationsObject ?. [ targetLang ]
149152 for ( let i = 0 ; i < keys . length - 1 ; i += 1 ) {
150- if ( ! targetObj [ keys [ i ] ] ) {
151- targetObj [ keys [ i ] ] = { }
153+ if ( ! targetObj [ keys [ i ] ! ] ) {
154+ targetObj [ keys [ i ] ! ] = { }
152155 }
153- const nextObj = targetObj [ keys [ i ] ]
156+ const nextObj = targetObj [ keys [ i ] ! ]
154157 if ( typeof nextObj !== 'object' ) {
155158 throw new Error ( `Key ${ keys [ i ] } is not an object in ${ targetLang } (3)` )
156159 }
157160 targetObj = nextObj
158161 }
159- targetObj [ keys [ keys . length - 1 ] ] = translated
162+ targetObj [ keys [ keys . length - 1 ] ! ] = translated
160163
161- allTranslatedTranslationsObject [ targetLang ] . translations = sortKeys (
164+ allTranslatedTranslationsObject [ targetLang ] ! . translations = sortKeys (
162165 deepMergeSimple (
163- allTranslatedTranslationsObject [ targetLang ] . translations ,
166+ allTranslatedTranslationsObject [ targetLang ] ! . translations ,
164167 allOnlyNewTranslatedTranslationsObject [ targetLang ] ,
165168 ) ,
166169 )
@@ -180,9 +183,10 @@ export async function translateObject(props: {
180183 console . log ( 'New translations:' , allOnlyNewTranslatedTranslationsObject )
181184
182185 if ( inlineFile ?. length ) {
183- const simpleTranslationsObject = { }
186+ const simpleTranslationsObject : Record < string , GenericTranslationsObject > = { }
184187 for ( const lang in allTranslatedTranslationsObject ) {
185- simpleTranslationsObject [ lang ] = allTranslatedTranslationsObject [ lang ] . translations
188+ simpleTranslationsObject [ lang ] =
189+ allTranslatedTranslationsObject [ lang as AcceptedLanguages ] ! . translations
186190 }
187191
188192 // write allTranslatedTranslationsObject
@@ -218,10 +222,10 @@ export async function translateObject(props: {
218222 const filePath = path . resolve ( targetFolder , `${ sanitizedKey } .ts` )
219223
220224 // prefix & translations
221- let fileContent : string = `${ tsFilePrefix . replace ( '{{locale}}' , sanitizedKey ) } ${ generateTsObjectLiteral ( allTranslatedTranslationsObject [ key ] . translations ) } \n`
225+ let fileContent : string = `${ tsFilePrefix . replace ( '{{locale}}' , sanitizedKey ) } ${ generateTsObjectLiteral ( allTranslatedTranslationsObject [ key ] ! . translations ) } \n`
222226
223227 // suffix
224- fileContent += `${ tsFileSuffix . replaceAll ( '{{locale}}' , sanitizedKey ) . replaceAll ( '{{dateFNSKey}}' , `'${ allTranslatedTranslationsObject [ key ] . dateFNSKey } '` ) } \n`
228+ fileContent += `${ tsFileSuffix . replaceAll ( '{{locale}}' , sanitizedKey ) . replaceAll ( '{{dateFNSKey}}' , `'${ allTranslatedTranslationsObject [ key ] ! . dateFNSKey } '` ) } \n`
225229
226230 // eslint
227231 fileContent = await applyEslintFixes ( fileContent , filePath )
0 commit comments