import fs from "fs" ; import { ILocale } from "i18n/catalog" ; import path from "path" ; /** ===========================================================================
 * Types & Config
 * ============================================================================
 */ export interface JSON { [ key ] : string ; } export type I_SOURCE_KEYS = ReadonlyArray < string > ; /** ===========================================================================
 * Utils
 * ============================================================================
 */ const QUOTES_STRING_PATTERN = new RegExp ( /"(.*?)"/g ) ; const NEW_LINE_PATTERN = new RegExp ( /\r?\n|\r/g ) ; returns const getTranslationSourceKeyStrings = ( ) : I_SOURCE_KEYS => { const sourceString = fs . readFileSync ( path . join ( __dirname , "../src/i18n/english.ts" ) , "utf8" ) . replace ( NEW_LINE_PATTERN , "" ) ; return sourceString . match ( QUOTES_STRING_PATTERN ) ! . map ( m => m . slice ( 1 , - 1 ) ) ; } ; const saveJsonFile = ( data , key ) => { const json = JSON . stringify ( data ) ; fs . writeFileSync ( path . join ( __dirname , `../src/i18n/catalogs/${ key }.json` ) , json ) ; } ; /** ===========================================================================
 * Export
 * ============================================================================
 */ const SOURCE_KEYS = getTranslationSourceKeyStrings ( ) ; export { SOURCE_KEYS , saveJsonFile } ;