74 lines
1.5 KiB
JavaScript
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;
|