Skip to content

Commit 4e5ccfe

Browse files
Port remaining tests and fix bugs
1 parent abd47f4 commit 4e5ccfe

23 files changed

+1616
-15
lines changed

ndc-lambda-sdk/.mocharc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"test/**/*.test.ts"
66
],
77
"watch-files": [
8-
"src"
8+
"src",
9+
"test"
910
]
1011
}

ndc-lambda-sdk/package-lock.json

Lines changed: 72 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ndc-lambda-sdk/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@
4343
"@types/chai": "^4.3.11",
4444
"@types/mocha": "^10.0.6",
4545
"chai": "^4.3.7",
46-
"mocha": "^10.2.0"
46+
"mocha": "^10.2.0",
47+
"node-emoji": "^2.1.3",
48+
"node-postgres": "^0.6.2"
4749
}
4850
}

ndc-lambda-sdk/src/execution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ function resolveArgumentValues(args: Record<string, sdk.Argument>, variableValue
9595
});
9696
}
9797

98-
function prepareArguments(args: Record<string, unknown>, functionDefinition: schema.FunctionDefinition, objectTypes: schema.ObjectTypeDefinitions): unknown[] {
98+
export function prepareArguments(args: Record<string, unknown>, functionDefinition: schema.FunctionDefinition, objectTypes: schema.ObjectTypeDefinitions): unknown[] {
9999
return functionDefinition.arguments.map(argDef => coerceArgumentValue(args[argDef.argumentName], argDef.type, [argDef.argumentName], objectTypes));
100100
}
101101

ndc-lambda-sdk/src/inference.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ function deriveSchemaTypeIfNullableType(tsType: ts.Type, typePath: TypePathSegme
300300
function deriveSchemaTypeIfObjectType(tsType: ts.Type, typePath: TypePathSegment[], context: TypeDerivationContext, recursionDepth: number): Result<DerivedSchemaType, string[]> | undefined {
301301
const info = getObjectTypeInfo(tsType, typePath, context.typeChecker, context.functionsFilePath);
302302
if (info) {
303-
// Shortcut recursion if the type has already been named
303+
// Short-circuit recursion if the type has already been named
304304
if (context.objectTypeDefinitions[info.generatedTypeName]) {
305305
return new Ok({ typeDefinition: { type: 'named', name: info.generatedTypeName, kind: "object" }, warnings: [] });
306306
}
@@ -316,10 +316,14 @@ function deriveSchemaTypeIfObjectType(tsType: ts.Type, typePath: TypePathSegment
316316
});
317317
});
318318

319-
return propertyResults.map(properties => {
320-
context.objectTypeDefinitions[info.generatedTypeName] = { properties }
321-
return { typeDefinition: { type: 'named', name: info.generatedTypeName, kind: "object" }, warnings }
322-
})
319+
if (propertyResults instanceof Ok) {
320+
context.objectTypeDefinitions[info.generatedTypeName] = { properties: propertyResults.data }
321+
return new Ok({ typeDefinition: { type: 'named', name: info.generatedTypeName, kind: "object" }, warnings })
322+
} else {
323+
// Remove the recursion short-circuit to ensure errors are raised if this type is encountered again
324+
delete context.objectTypeDefinitions[info.generatedTypeName];
325+
return new Err(propertyResults.error);
326+
}
323327
}
324328
}
325329

0 commit comments

Comments
 (0)