@wbg-mde/r-factory
Version:
Metadata editor R integration module
87 lines (86 loc) • 4.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const repository_1 = require("@wbg-mde/repository");
var _ = require('lodash');
class TestUtility {
static formatVariable(filePath, outPath, outProps) {
const formatDatum = function (fields) {
return function (obj) {
var datum = {};
fields.forEach(function (field) {
switch (field) {
case 'val':
{
let catgry = new Array();
if (obj.catgry) {
catgry = _.map(obj.catgry, (category) => {
if (category && category.catValu && category.catValu instanceof Array && category.catValu.length > 0) {
return category.catValu[0];
}
});
}
datum[field] = catgry;
}
break;
case 'catgry':
{
let catgry = new Array();
if (obj.catgry) {
catgry = _.map(obj.catgry, (category) => {
let ctg = new Object();
if (category) {
if (category.catValu && category.catValu instanceof Array && category.catValu.length > 0) {
ctg.catValu = category.catValu[0];
}
if (category.labl && category.labl instanceof Array && category.labl.length > 0) {
ctg.labl = category.labl[0];
}
if (category.catStat) {
ctg.catStat = new Object();
if (category.catStat.type && category.catStat.type instanceof Array && category.catStat.type.length > 0) {
ctg.catStat.type = category.catStat.type[0];
}
if (category.catStat.text && category.catStat.text instanceof Array && category.catStat.text.length > 0) {
ctg.catStat.text = category.catStat.text[0];
}
}
}
return ctg;
});
}
datum[field] = catgry;
}
break;
case 'internalName':
datum[field] = obj['name'];
break;
case 'type':
datum[field] = (obj.varFormat) ? obj.varFormat.type : ["numeric"];
break;
case 'dataType':
datum[field] = obj.varType;
break;
case 'width':
datum[field] = (obj.location) ? obj.location.width : [0];
break;
case 'StartPos':
case 'EndPos':
datum[field] = obj.location[field];
break;
default:
datum[field] = obj[field];
break;
}
});
return datum;
};
};
let outstream = repository_1.Repository_Utility
.readFile(filePath)
.toString();
let jsonData = JSON.parse(outstream);
let formattedDataset = jsonData.map(formatDatum(outProps));
repository_1.Repository_Utility.writeFile(outPath, JSON.stringify(formattedDataset));
}
}
exports.TestUtility = TestUtility;