in libs/designer/src/lib/core/actions/bjsworkflow/settings.ts [232:433]
value: getShouldFailOperation(operation),
},
};
};
/**
* Checks whether the given option is part of the listed operationOptions.
* @arg {string} operationOption - The operation option.
* @arg {string} operationOptions - The list of operation options.
* @return {boolean}
*/
const isOperationOptionSet = (operationOption: string, operationOptions: string | undefined): boolean => {
const deserializedOperationOptions = (operationOptions || '').split(',').map((option) => option.trim().toLowerCase());
return deserializedOperationOptions.indexOf(operationOption.toLowerCase()) > -1;
};
const getAsynchronous = (definition?: LogicAppsV2.OperationDefinition): boolean => {
const operationOptions = definition && definition.operationOptions;
return isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.ASYNCHRONOUS, operationOptions);
};
const getShouldFailOperation = (definition?: LogicAppsV2.OperationDefinition): boolean => {
const operationOptions = definition && definition.operationOptions;
return isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.FAILWHENLIMITSREACHED, operationOptions);
};
const isAsynchronousSupported = (isTrigger: boolean, nodeType: string, manifest?: OperationManifest): boolean => {
if (manifest) {
const operationOptionSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as OperationManifestSetting<
OperationOptions[]
>;
return (
isSettingSupportedFromOperationManifest(operationOptionSetting, isTrigger) &&
!!operationOptionSetting.options &&
operationOptionSetting.options.indexOf(OperationOptions.Asynchronous) > -1
);
}
return equals(nodeType, Constants.NODE.TYPE.RESPONSE);
};
const isShouldFailOperationSupported = (isTrigger: boolean, nodeType: string, manifest?: OperationManifest): boolean => {
if (manifest) {
const operationOptionSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as OperationManifestSetting<
OperationOptions[]
>;
return (
isSettingSupportedFromOperationManifest(operationOptionSetting, isTrigger) &&
!!operationOptionSetting.options &&
operationOptionSetting.options.indexOf(OperationOptions.FailWhenLimitsReached) > -1
);
}
return false;
};
const getSplitOnConfiguration = (definition?: LogicAppsV2.TriggerDefinition): SplitOnConfiguration | undefined => {
return definition ? definition.splitOnConfiguration : undefined;
};
const getCorrelationSettings = (definition?: LogicAppsV2.TriggerDefinition): CorrelationSettings | undefined => {
return definition ? definition.correlation : undefined;
};
const isCorrelationSupported = (isTrigger: boolean, manifest?: OperationManifest): boolean => {
if (manifest) {
const correlationSetting = getOperationSettingFromManifest(manifest, 'correlation') as
| OperationManifestSetting<CorrelationSettings>
| undefined;
return isSettingSupportedFromOperationManifest(correlationSetting, isTrigger);
}
return isTrigger;
};
const isDisableAsyncPatternSupported = (isTrigger: boolean, nodeType: string, manifest?: OperationManifest): boolean => {
if (manifest && !equals(Constants.NODE.TYPE.OPEN_API_CONNECTION, nodeType)) {
const operationOptionsSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as
| OperationManifestSetting<OperationOptions[]>
| undefined;
return isSettingSupportedFromOperationManifest(operationOptionsSetting, isTrigger) && operationOptionsSetting?.options
? operationOptionsSetting.options.indexOf(OperationOptions.DisableAsyncPattern) > -1
: false;
}
const supportedTypes = [Constants.NODE.TYPE.API_CONNECTION, Constants.NODE.TYPE.HTTP];
return !isTrigger && supportedTypes.indexOf(nodeType.toLowerCase()) > -1;
};
const getDisableAsyncPattern = (definition?: LogicAppsV2.OperationDefinition): boolean => {
const operationOptions = definition && definition.operationOptions;
return isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.DISABLE_ASYNC, operationOptions);
};
const getDisableAutomaticDecompression = (
isTrigger: boolean,
nodeType: string,
manifest?: OperationManifest,
definition?: LogicAppsV2.OperationDefinition
): boolean | undefined => {
const supported = isDisableAutomaticDecompressionSupported(isTrigger, nodeType, manifest);
const operationOptions = definition && definition.operationOptions;
return supported
? isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.DISABLE_AUTOMATIC_DECOMPRESSION, operationOptions)
: undefined;
};
const isDisableAutomaticDecompressionSupported = (isTrigger: boolean, nodeType: string, manifest?: OperationManifest): boolean => {
if (manifest && !equals(Constants.NODE.TYPE.OPEN_API_CONNECTION, nodeType)) {
const operationOptionsSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as
| OperationManifestSetting<OperationOptions[]>
| undefined;
return isSettingSupportedFromOperationManifest(operationOptionsSetting, isTrigger) && operationOptionsSetting?.options
? operationOptionsSetting.options.indexOf(OperationOptions.DisableAutomaticDecompression) > -1
: false;
}
const supportedTypes = [Constants.NODE.TYPE.API_CONNECTION, Constants.NODE.TYPE.HTTP];
return !isTrigger && supportedTypes.indexOf(nodeType.toLowerCase()) > -1;
};
const getSuppressWorkflowHeaders = (
isTrigger: boolean,
nodeType: string,
manifest?: OperationManifest,
definition?: LogicAppsV2.OperationDefinition
): boolean | undefined => {
const supported = isSuppressWorkflowHeadersSupported(isTrigger, nodeType, manifest);
const operationOptions = definition && definition.operationOptions;
return supported ? isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.SUPPRESS_WORKFLOW_HEADERS, operationOptions) : undefined;
};
const isSuppressWorkflowHeadersSupported = (isTrigger: boolean, nodeType: string, manifest?: OperationManifest): boolean => {
if (manifest) {
const operationOptionsSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as
| OperationManifestSetting<OperationOptions[]>
| undefined;
return isSettingSupportedFromOperationManifest(operationOptionsSetting, isTrigger) && operationOptionsSetting?.options
? operationOptionsSetting.options.indexOf(OperationOptions.SuppressWorkflowHeaders) > -1
: false;
}
const supportedTypes = [Constants.NODE.TYPE.HTTP];
return !isTrigger && supportedTypes.indexOf(nodeType.toLowerCase()) > -1;
};
const getSuppressWorkflowHeadersOnResponse = (definition?: LogicAppsV2.OperationDefinition): boolean | undefined => {
const operationOptions = definition && definition.operationOptions;
return isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.SUPPRESS_WORKFLOW_HEADERS_ON_RESPONSE, operationOptions);
};
const isSuppressWorkflowHeadersOnResponseSupported = (isTrigger: boolean, manifest?: OperationManifest): boolean => {
if (manifest) {
const operationOptionsSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as
| OperationManifestSetting<OperationOptions[]>
| undefined;
return (
isSettingSupportedFromOperationManifest(operationOptionsSetting, isTrigger) &&
(operationOptionsSetting && operationOptionsSetting.options
? operationOptionsSetting.options.indexOf(OperationOptions.SuppressWorkflowHeadersOnResponse) > -1
: false)
);
}
return false;
};
const getRequestSchemaValidation = (definition?: LogicAppsV2.OperationDefinition): boolean | undefined => {
const operationOptions = definition && definition.operationOptions;
return definition !== undefined
? isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.REQUEST_SCHEMA_VALIDATION, operationOptions)
: undefined;
};
const isRequestSchemaValidationSupported = (isTrigger: boolean, manifest?: OperationManifest): boolean => {
if (manifest) {
const operationOptionsSetting = getOperationSettingFromManifest(manifest, 'operationOptions') as
| OperationManifestSetting<OperationOptions[]>
| undefined;
return (
isSettingSupportedFromOperationManifest(operationOptionsSetting, isTrigger) &&
(operationOptionsSetting && operationOptionsSetting.options
? operationOptionsSetting.options.indexOf(OperationOptions.EnableSchemaValidation) > -1
: false)
);
}
return false;
};
const getConcurrency = (
isTrigger: boolean,
nodeType: string,
manifest?: OperationManifest,
definition?: LogicAppsV2.OperationDefinition
): ConcurrencySettings | undefined => {
if (!isConcurrencySupported(isTrigger, nodeType, manifest)) {
return undefined;
}
const operationOptions = definition && definition.operationOptions;
if (!isTrigger) {
if (isOperationOptionSet(Constants.SETTINGS.OPERATION_OPTIONS.SEQUENTIAL, operationOptions)) {