Skip to content

Commit d8e3483

Browse files
author
nicosammito
committed
feat: update getNodeSuggestions function to include dataTypes parameter for enhanced functionality
1 parent 2334e70 commit d8e3483

2 files changed

Lines changed: 5 additions & 7 deletions

File tree

src/suggestion/getNodeSuggestions.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
import {FunctionDefinition, NodeFunction} from "@code0-tech/sagittarius-graphql-types";
1+
import {DataType, FunctionDefinition, NodeFunction} from "@code0-tech/sagittarius-graphql-types";
22
import {createCompilerHost, getSharedTypeDeclarations} from "../utils";
3-
import {DATA_TYPES} from "../../test/data";
43

54
/**
65
* Suggests NodeFunctions based on a given type and a list of available FunctionDefinitions.
76
* Returns functions whose return type is compatible with the target type.
87
*/
9-
//TODO: add dataTypes
10-
export function getNodeSuggestions(type: string, functions: FunctionDefinition[]): NodeFunction[] {
8+
export function getNodeSuggestions(type: string, functions: FunctionDefinition[], dataTypes: DataType[]): NodeFunction[] {
119
if (!type || !functions || functions.length === 0) {
1210
return [];
1311
}
@@ -18,7 +16,7 @@ export function getNodeSuggestions(type: string, functions: FunctionDefinition[]
1816
return match[1].split(',').map(s => s.trim()).filter(Boolean).length;
1917
}
2018

21-
const sharedTypes = getSharedTypeDeclarations(DATA_TYPES);
19+
const sharedTypes = getSharedTypeDeclarations(dataTypes);
2220
const sourceCode = `
2321
${sharedTypes}
2422
type TargetType = ${type};

test/nodeSuggestion.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {describe, expect, it} from "vitest";
22
import {getNodeSuggestions} from "../src/suggestion/getNodeSuggestions";
3-
import {FUNCTION_SIGNATURES} from "./data";
3+
import {DATA_TYPES, FUNCTION_SIGNATURES} from "./data";
44

55
describe("getNodeSuggestions", () => {
66
it("should suggest functions with compatible return types and prioritize exact matches", () => {
77

88
// We are looking for suggestions for a 'number' type
9-
const suggestions = getNodeSuggestions("STRING", FUNCTION_SIGNATURES);
9+
const suggestions = getNodeSuggestions("STRING", FUNCTION_SIGNATURES, DATA_TYPES);
1010

1111
const map = suggestions.map(s => s.functionDefinition?.id)
1212

0 commit comments

Comments
 (0)