|
|
|
/* eslint-disable import/no-dynamic-require */
|
|
|
|
const fs = require('fs')
|
|
|
|
const path = require('path')
|
|
|
|
const promisify = require('pify')
|
|
|
|
const enLocaleMessages = require('../app/_locales/en/messages.json')
|
|
|
|
|
|
|
|
const writeFile = promisify(fs.writeFile)
|
|
|
|
|
|
|
|
start().catch(console.error)
|
|
|
|
|
|
|
|
async function start () {
|
|
|
|
const statesPath = path.join(__dirname, 'states')
|
|
|
|
const stateFilesNames = await promisify(fs.readdir)(statesPath)
|
|
|
|
const states = {}
|
|
|
|
await Promise.all(stateFilesNames.map(async (stateFileName) => {
|
|
|
|
const stateFilePath = path.join(__dirname, 'states', stateFileName)
|
|
|
|
const state = require(stateFilePath)
|
|
|
|
|
|
|
|
state.localeMessages = { en: enLocaleMessages, current: {} }
|
|
|
|
|
|
|
|
const stateName = stateFileName.split('.')[0].replace(/-/g, ' ', 'g')
|
|
|
|
states[stateName] = state
|
|
|
|
}))
|
|
|
|
const generatedFileContent = `module.exports = ${JSON.stringify(states)}`
|
|
|
|
const generatedFilePath = path.join(__dirname, 'states.js')
|
|
|
|
await writeFile(generatedFilePath, generatedFileContent)
|
|
|
|
}
|