UNPKG

@wbg-mde/r-factory

Version:

Metadata editor R integration module

87 lines (86 loc) 4.56 kB
"use strict"; 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;