UNPKG

genezio

Version:

Command line utility to interact with Genezio infrastructure.

63 lines (62 loc) 2.7 kB
import { TriggerType } from "../../projectConfiguration/yaml/models.js"; export function getAstSummary(classesInfo) { const classes = classesInfo .filter((classConfiguration) => { const body = classConfiguration.program.body; // filter if body is undefined if (body === undefined) { return false; } return true; }) .map((classConfiguration) => { const body = classConfiguration.program.body; // get the class definition const classElem = body?.find((elem) => { return elem.type === "ClassDefinition"; }); // get the types const types = body?.filter((elem) => { return elem.type !== "ClassDefinition"; }) || []; const methods = classElem.methods.map((method) => { const params = method.params.map((param) => { return { name: param.name, type: param.paramType, optional: param.optional, }; }); const methodConfiguration = classConfiguration.classConfiguration.methods.find((m) => m.name === method.name); const methodInfo = { name: method.name, type: methodConfiguration?.type || classConfiguration.classConfiguration.type || TriggerType.jsonrpc, params: params, docString: method.docString, returnType: method.returnType, }; return methodInfo; }); const classInfo = { name: classElem.name, path: classConfiguration.classConfiguration.path, language: classConfiguration.classConfiguration.language, methods: methods, types: types, docString: classElem.docString, timeout: classConfiguration.classConfiguration.timeout, storageSize: classConfiguration.classConfiguration.storageSize, instanceSize: classConfiguration.classConfiguration.instanceSize, vcpuCount: classConfiguration.classConfiguration.vcpuCount, memoryMb: classConfiguration.classConfiguration.memoryMb, maxConcurrentRequestsPerInstance: classConfiguration.classConfiguration.maxConcurrentRequestsPerInstance, maxConcurrentInstances: classConfiguration.classConfiguration.maxConcurrentInstances, cooldownTime: classConfiguration.classConfiguration.cooldownTime, persistent: classConfiguration.classConfiguration.persistent, }; return classInfo; }); return classes; }