locales.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const path = require('path')
  2. const glob = require('glob')
  3. const handleBars = require('handlebars')
  4. const { readFile, writeFile, watch } = require('./util')
  5. const { getCorePkgStruct } = require('./pkg-struct')
  6. const { src, dest, parallel } = require('gulp')
  7. let corePkg = getCorePkgStruct()
  8. const LOCALES_GLOB = 'locales/*.js'
  9. const writeLocales = parallel(copyLocalesFromTsc, generateLocalesAll)
  10. function watchLocales() {
  11. return watch(LOCALES_GLOB, { cwd: corePkg.srcDir }, writeLocales)
  12. }
  13. exports.writeLocales = writeLocales
  14. exports.watchLocales = watchLocales
  15. function copyLocalesFromTsc() { // to core's dist dir
  16. return src(LOCALES_GLOB, { cwd: corePkg.tscDir, base: corePkg.tscDir })
  17. .pipe(dest(corePkg.distDir))
  18. }
  19. async function generateLocalesAll() {
  20. let templateText = await readFile(path.join(corePkg.dir, 'locales-all.js.tpl'))
  21. let template = handleBars.compile(templateText)
  22. let localePaths = glob.sync('./' + LOCALES_GLOB, { cwd: corePkg.srcDir }) // starting ./ for import statements
  23. let jsText = template({
  24. localePaths
  25. })
  26. return writeFile(
  27. path.join(corePkg.distDir, 'locales-all.js'),
  28. jsText
  29. )
  30. }