UNPKG

1.05 kBJavaScriptView Raw
1/**
2 * @copyright Copyright (c) 2019 Maxim Khorin <maksimovichu@gmail.com>
3 */
4'use strict';
5
6const Base = require('./MessageSource');
7
8module.exports = class FileMessageSource extends Base {
9
10 async load () {
11 this._messages = {};
12 return this.loadModuleMessages(this.module);
13 }
14
15 async loadModuleMessages (module) {
16 if (module.original) {
17 await this.loadModuleMessages(module.original);
18 }
19 const dir = module.resolvePath(this.basePath);
20 const stat = await FileHelper.getStat(dir);
21 if (stat && stat.isDirectory()) {
22 return FileHelper.handleChildFiles(dir, file => this.loadFile(file, dir));
23 }
24 }
25
26 loadFile (file, dir) {
27 const language = FileHelper.getBasename(file);
28 this._messages[language] = {
29 ...this._messages[language],
30 ...require(path.join(dir, file))
31 };
32 }
33};
34
35const path = require('path');
36const FileHelper = require('areto/helper/FileHelper');