aozhiwei 9b3e5adec8 1
2022-01-17 19:14:39 +08:00

74 lines
1.5 KiB
JavaScript

var fs = require('fs');
var iconv = require('iconv-lite');
var metaClasses = [];
const MT_WEB3SERVEWR = 0;
const MT_CONTRACT = 1;
function registerMetaClass(fileName, idx, primKey)
{
metaClasses.push({
'fileName' : fileName,
'idx' : idx,
'primKey' : primKey,
'rawList' : [],
'nameHash' : {},
'idHash' : {},
});
}
function load()
{
metaClasses.forEach(function (meta) {
let jsondata = fs.readFileSync(meta['fileName'], "utf8");
let data = JSON.parse(jsondata);
});
}
function init()
{
registerMetaClass('web3server.json',
MT_WEB3SERVEWR,
''
);
registerMetaClass('contract.json',
MT_CONTRACT,
'name',
);
load();
}
function unInit()
{
}
function getMetaClass(metaIdx)
{
return metaIdx >= 0 && metaIdx < metaClasses.length ? metaClasses[metaIdx] : null;
}
function getMetaByName(metaIdx, name)
{
let metaClass = getMetaClass[metaIdx];
return metaClass && name in metaClass['nameHash'] ? metaClass['nameHash'][name] : null;
}
function getMetaById(metaIdx, id)
{
let metaClass = getMetaClass[metaIdx];
return metaClass && id in metaClass['idHash'] ? metaClass['idHash'][id] : null;
}
function getMetaList(metaIdx)
{
let metaClass = getMetaClass[metaIdx];
return metaClass ? metaClass['rawList'] : null;
}
exports.init = init;
exports.unInit = unInit;
exports.getMetaByName = getMetaByName;
exports.getMetaById = getMetaById;
exports.getMetaList = getMetaList;