Use custom value provider from parent when token key doesn't have one (#49)

This commit is contained in:
Laura Yu
2022-12-13 14:41:29 -08:00
committed by GitHub
parent 5c052e96a8
commit 63ebc92dec
+8 -9
View File
@@ -129,21 +129,20 @@ async function getValues(
const existingValues = getExistingValues(token, parent);
if (keyToken?.definition?.key) {
const customValues = await valueProviderConfig?.[keyToken.definition.key]?.get(workflowContext);
// Use the value providers from the parent if the current key is null
const valueProviderToken = keyToken || parent;
const customValueProvider = valueProviderToken?.definition?.key && valueProviderConfig?.[valueProviderToken.definition.key]
if (customValueProvider) {
const customValues = await customValueProvider.get(workflowContext);
if (customValues) {
return filterAndSortCompletionOptions(customValues, existingValues);
}
}
// Use the value provider from the parent if we don't have a value provider for the current key
const valueProvider =
(keyToken?.definition?.key && defaultValueProviders[keyToken.definition.key]) ||
(parent.definition?.key && defaultValueProviders[parent.definition.key]);
if (valueProvider) {
const values = await valueProvider.get(workflowContext);
const defaultValueProvider = valueProviderToken?.definition?.key && defaultValueProviders[valueProviderToken.definition.key]
if (defaultValueProvider) {
const values = await defaultValueProvider.get(workflowContext);
return filterAndSortCompletionOptions(values, existingValues);
}