@lcap/asl
Version:
NetEase Application Specific Language
145 lines • 4.9 kB
JavaScript
;
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