UNPKG

laraveltranslations

Version:

Package for load Laravel translations into JS

47 lines (37 loc) 1.37 kB
import { LangObject, ParseDir } from "../../types"; const _ = require("lodash"); const path = require("path"); const fs = require("fs"); import { FileParser } from "./FileParser"; export class JSONParser extends FileParser { /** * Parse json files */ public execute(): LangObject { this.dirs.forEach((parseDirObject: ParseDir) => { const basePath = parseDirObject.path; const files = fs.readdirSync(basePath).filter((file: string) => { return path.extname(file) === ".json"; }); if (files.length) { files.forEach((file: string) => { const lang: string = path.basename(file, ".json"), langObject: LangObject = JSON.parse(fs.readFileSync(path.join(basePath, file))); if (this.langContent[lang] === undefined) { this.langContent[lang] = <LangObject>{}; } if (langObject && Object.keys(langObject).length) { if (parseDirObject.namespace) { this.initNamespace(lang, parseDirObject.namespace); // @ts-ignore _.assign(this.langContent[lang][parseDirObject.namespace], langObject); } else { _.assign(this.langContent[lang], langObject); } } }); } }); return this.langContent; } }