UNPKG

@lcap/asl

Version:

NetEase Application Specific Language

145 lines 4.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.genericTypeMap = exports.genericTypeList = exports.getGenericList = exports.getGenericTypeRef = void 0; const data_1 = require("../../service/data"); const __1 = require(".."); const dataTypeUtils_1 = require("./dataTypeUtils"); function getGenericTypeRef(typeName) { return `#/genericTypes/${typeName}`; } exports.getGenericTypeRef = getGenericTypeRef; async function getGenericList() { let list = []; try { list = await data_1.genericService.getGenericClassList(); } catch (err) { } const genericTypeList = []; const genericTypemap = {}; if (list) { list.forEach((item) => { const tempItem = Object.assign({}, item); __1.utils.traverse((current) => { if (current.node.type === 'genericType' || current.node.format !== undefined) { dataTypeUtils_1.convert2RefType(current.node); } }, { node: tempItem, }, { mode: 'anyObject', }); genericTypemap[`#/genericTypes/${tempItem.name}`] = tempItem; const listItem = { kind: 'genericType', type: 'genericType', text: `${item.name}<${(item.typeParams || []).map((param) => param.typeParamName).join(',')}>`, value: `#/genericTypes/${tempItem.name}`, typeInstantiation: { typeName: item.name, typeParams: (item.typeParams || []).map((param) => Object.assign({ typeParamValue: '' }, param)), }, }; genericTypeList.push(listItem); }); } return { genericTypeList, genericTypemap, }; } exports.getGenericList = getGenericList; exports.genericTypeList = [ { level: 'structure', name: 'PageOf', type: 'genericClass', typeParams: [ { type: 'typeParam', typeParamName: 'T' }, ], propertyList: [ { level: 'property', name: 'content', type: 'genericType', typeKey: '#/genericTypes/List', typeInstantiation: { typeName: 'List', typeParams: [ { level: 'typeParam', typeParamName: 'V', typeParamValue: { type: 'genericParam', typeParamName: 'T', }, }, ], }, }, { name: 'number', type: 'integer' }, { name: 'size', type: 'integer' }, { name: 'totalPages', type: 'integer' }, { name: 'totalElements', type: 'integer' }, ], }, ]; exports.genericTypeMap = { '#/genericTypes/PageOf': { name: 'PageOf', type: 'genericClass', typeParams: [ { type: 'typeParam', typeParamName: 'T' }, ], propertyList: [ { level: 'property', name: 'content', type: 'genericType', typeKey: '#/genericTypes/List', typeInstantiation: { typeName: 'List', typeParams: [ { level: 'typeParam', typeParamName: 'V', typeParamValue: { type: 'genericParam', typeParamName: 'T', }, }, ], }, }, { name: 'number', type: 'integer' }, { name: 'size', type: 'integer' }, { name: 'totalPages', type: 'integer' }, { name: 'totalElements', type: 'integer' }, ], }, '#/genericTypes/ScopeOf': { name: 'ScopeOf', type: 'genericClass', typeParams: [ { type: 'typeParam', typeParamName: 'T' }, ], propertyList: [ { name: 'item', type: 'genericParam', typeParamName: 'T' }, { name: 'index', type: 'integer' }, { name: 'rowIndex', type: 'integer' }, { name: 'columnIndex', type: 'integer' }, { name: 'value', type: 'string' }, ], }, '#/genericTypes/List': { name: 'List', type: 'genericClass', typeParams: [ { type: 'typeParam', typeParamName: 'T' }, ], propertyList: [ { name: 'length', type: 'integer' }, ], }, }; //# sourceMappingURL=genericTypes.js.map