UNPKG

@lcap/asl

Version:

NetEase Application Specific Language

55 lines (48 loc) 1.67 kB
import * as utils from '../../types/utils'; export const ServiceType = { web: 'WEB', service: 'MICROSERVICE', micro: 'MICROSERVICE', external: 'EXTERNAL', export: 'EXPORT', entity: 'ENTITY', }; export const ReverseServiceType = {}; Object.keys(ServiceType).forEach((key) => ReverseServiceType[ServiceType[key]] = key); Object.keys(ServiceType).forEach((key) => ReverseServiceType[key] = key); export const createPreServiceType = (inWhich) => (info) => { const params = info.url[inWhich]; if (ServiceType[params?.serviceType]) params.serviceType = ServiceType[params.serviceType]; return info; }; /* 兼容接口的小写 */ export const postServiceType = (item) => { if (item.serviceType === 'microservice') { return item.serviceType = 'micro'; } return item.serviceType = ReverseServiceType[item.serviceType]; }; export const prePosIndex = (info) => { const body = info.url.body; utils.traverse((current) => { if (!current.node) return; if (current.node.level === 'element' && current.index !== undefined) { current.node._posIndex = current.index || 0; } }, { node: body }, { mode: 'anyObject' }); return info; }; export const preParentAttr = (info) => { const body = info.url.body; utils.traverse((current) => { if (!current.node) return; if (current.node.level === 'logicNode' || current.node.level === 'expressionNode') { if (!current.node.parentAttr) current.node.parentAttr = current.key; } }, { node: body }, { mode: 'anyObject' }); return info; };