|
1 | | -import {Meta, MetaType} from "../types.ts"; |
2 | 1 | import {FunctionDefinition, ParameterDefinitionConnection} from "@code0-tech/sagittarius-graphql-types"; |
3 | 2 | import { |
4 | 3 | RuntimeFunctionDefinition as TucanaFunction, |
5 | 4 | RuntimeParameterDefinition |
6 | 5 | } from "@code0-tech/tucana/pb/shared.runtime_function_pb.ts"; |
7 | 6 | import {getDataTypeIdentifier, getTranslationConnection} from "./helper.ts"; |
| 7 | +import {ConstructedDataTypes} from "../parser.ts"; |
8 | 8 |
|
9 | | -function mapFunction(meta:Meta): FunctionDefinition | null { |
10 | | - if (meta.type != MetaType.RuntimeFunction) { |
11 | | - console.error(`Expected RuntimeFunction, got ${meta.type}`); |
12 | | - return null; |
13 | | - } |
14 | | - |
15 | | - const parsed = JSON.parse(meta.data) as TucanaFunction; |
| 9 | +function mapFunction(func: TucanaFunction, constructed: ConstructedDataTypes): FunctionDefinition | null { |
16 | 10 | return { |
17 | | - genericKeys: parsed.genericKeys, |
18 | | - names: getTranslationConnection(parsed.name), |
19 | | - descriptions: getTranslationConnection(parsed.description), |
20 | | - documentations: getTranslationConnection(parsed.documentation), |
21 | | - deprecationMessages: getTranslationConnection(parsed.deprecationMessage), |
22 | | - throwsError: parsed.throwsError, |
23 | | - returnType: getDataTypeIdentifier(parsed.returnTypeIdentifier), |
24 | | - parameterDefinitions: getParameterDefinitionConnection(parsed.runtimeParameterDefinitions), |
| 11 | + genericKeys: func.genericKeys, |
| 12 | + names: getTranslationConnection(func.name), |
| 13 | + descriptions: getTranslationConnection(func.description), |
| 14 | + documentations: getTranslationConnection(func.documentation), |
| 15 | + deprecationMessages: getTranslationConnection(func.deprecationMessage), |
| 16 | + throwsError: func.throwsError, |
| 17 | + returnType: getDataTypeIdentifier(func.returnTypeIdentifier, constructed), |
| 18 | + parameterDefinitions: getParameterDefinitionConnection(func.runtimeParameterDefinitions, constructed), |
25 | 19 | } |
26 | 20 | } |
27 | 21 |
|
28 | | -function getParameterDefinitionConnection(def: RuntimeParameterDefinition[]): ParameterDefinitionConnection { |
| 22 | +function getParameterDefinitionConnection(def: RuntimeParameterDefinition[], constructed: ConstructedDataTypes): ParameterDefinitionConnection { |
29 | 23 | return { |
30 | 24 | count: def.length, |
31 | 25 | nodes: def.map(node => { |
32 | 26 | return { |
33 | 27 | names: getTranslationConnection(node.name), |
34 | 28 | descriptions: getTranslationConnection(node.description), |
35 | 29 | documentations: getTranslationConnection(node.documentation), |
36 | | - dataType: getDataTypeIdentifier(node.dataTypeIdentifier) |
| 30 | + dataType: getDataTypeIdentifier(node.dataTypeIdentifier, constructed) |
37 | 31 | } |
38 | 32 | }) |
39 | 33 | } |
|
0 commit comments