@@ -30,16 +30,35 @@ export class ReplexicaOutputProcessor {
3030 this . _saveObject ( filePath , newData ) ;
3131 }
3232
33+ public saveFullSourceLocaleData ( data : ReplexicaCompilerData ) {
34+ const fileName = `${ this . options . sourceLocale } .json` ;
35+ this . _saveSourceLocaleData ( data , fileName ) ;
36+ }
37+
38+ public saveClientSourceLocaleData ( data : ReplexicaCompilerData ) {
39+ const fileName = `${ this . options . sourceLocale } .client.json` ;
40+ this . _saveSourceLocaleData (
41+ data ,
42+ fileName ,
43+ ( fileData ) => fileData . context . isClient ,
44+ ) ;
45+ }
3346
34- public saveSourceLocaleData ( data : ReplexicaCompilerData ) {
47+ private _saveSourceLocaleData (
48+ data : ReplexicaCompilerData ,
49+ fileName : string ,
50+ fileDataPredicate : ( fileData : ReplexicaCompilerData [ '' ] ) => boolean = ( ) => true ,
51+ ) {
3552 const existingData : ReplexicaLocaleData =
36- this . _loadObject < ReplexicaLocaleData > ( path . join ( this . _outDir , ` ${ this . options . sourceLocale } .json` ) ) ||
53+ this . _loadObject < ReplexicaLocaleData > ( path . join ( this . _outDir , fileName ) ) ||
3754 this . _createEmptyLocaleData ( ) ;
3855
3956 const newLocaleData : ReplexicaLocaleData = {
4057 ...existingData ,
4158 } ;
4259 for ( const [ fileId , fileData ] of Object . entries ( data ) ) {
60+ if ( ! fileDataPredicate ( fileData ) ) { continue ; }
61+
4362 newLocaleData [ fileId ] = { } ;
4463 for ( const [ scopeId , scopeData ] of Object . entries ( fileData . data ) ) {
4564 for ( const [ chunkId , value ] of Object . entries ( scopeData . data ) ) {
@@ -56,7 +75,7 @@ export class ReplexicaOutputProcessor {
5675 delete newLocaleData [ fileId ] ;
5776 }
5877 }
59- const filePath = path . join ( this . _outDir , ` ${ this . options . sourceLocale } .json` ) ;
78+ const filePath = path . join ( this . _outDir , fileName ) ;
6079 this . _saveObject ( filePath , newLocaleData ) ;
6180 }
6281
0 commit comments