@lcap/asl
Version:
NetEase Application Specific Language
34 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.genFinalCode = exports.entitiesMap = exports.vertexsMap = void 0;
exports.vertexsMap = new Map();
exports.entitiesMap = new Map();
function genFinalCode(code, finalCode = true) {
if (!finalCode)
return code;
if (typeof code !== 'string')
return code;
// ID_ENUMVALUE_只需要返回ENUM的item的value值
if (code.includes('ID_ENUMVALUE_')) {
code = code.replace(/ID_([\w-]+).ID_ENUMVALUE_([\w-]+)/g, (m) => {
const id = m.split('.').pop().replace('ID_ENUMVALUE_', '');
const param = exports.vertexsMap.get(id);
return param && `'${param.value}'` || `'${id}'`;
});
}
if (code.includes('ID_ENUM_LIST_')) {
code = code.replace(/ID_ENUM_LIST_([\w-]+)/g, (m, id) => {
const param = exports.vertexsMap.get(id);
return `$utils.EnumList('${param && param.name}')`;
});
}
// @TODO: 最好后端把 ID 中的 - 都去掉
return code.replace(/ID_([\w-]+)/g, (m, id) => {
const param = exports.vertexsMap.get(id);
return param?.name
|| param?.asName
|| id;
});
}
exports.genFinalCode = genFinalCode;
//# sourceMappingURL=cacheData.js.map