will-core
Version:
core module
52 lines (51 loc) • 1.75 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LabelUtility = void 0;
const will_util_1 = require("will-util");
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
class LabelUtility {
constructor(labelname) {
this.labelname = labelname;
}
async load(workdir, labelpath = "label") {
let filename = this.labelname;
if (filename.lastIndexOf(".json") < 0)
filename += ".json";
if (!workdir)
workdir = will_util_1.Utilities.getWorkingDir(path_1.default.dirname(__dirname));
let fullfilename = path_1.default.join(workdir, labelpath, filename);
let existing = fs_1.default.existsSync(fullfilename);
if (existing) {
try {
let data = fs_1.default.readFileSync(fullfilename, "utf-8");
return JSON.parse(data);
}
catch (ex) {
console.error(ex);
}
}
return [];
}
build(ary) {
let result = {};
if (ary) {
for (let data of ary) {
let ds = {};
for (let item of data.label) {
ds[item.name] = item.value;
}
result[data.language] = ds;
}
}
return result;
}
async loadAndBuild(workdir, labelpath = "label") {
let ary = await this.load(workdir, labelpath);
return this.build(ary);
}
}
exports.LabelUtility = LabelUtility;