@versatiledatakit/data-pipelines
Version:
Data Pipelines help Data Engineers develop, deploy, run, and manage data processing workloads (called 'Data Job')
41 lines • 5.18 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { CollectionsUtil } from '@versatiledatakit/shared';
/**
* ** Executions Status filter criteria.
*/
export class ExecutionsStatusCriteria {
/**
* ** Constructor.
*/
constructor(dataJobExecutionStatusesSerialized) {
this._dataJobExecutionStatuses = ExecutionsStatusCriteria._deserializeExecutionStatuses(dataJobExecutionStatusesSerialized);
}
/**
* @inheritDoc
*/
meetCriteria(executions) {
return [...(executions ?? [])].filter((execution) => {
const status = execution.status;
if (this._dataJobExecutionStatuses.length === 0) {
return true;
}
return this._dataJobExecutionStatuses.includes(status);
});
}
static _deserializeExecutionStatuses(dataJobExecutionStatusesSerialized) {
try {
if (!CollectionsUtil.isStringWithContent(dataJobExecutionStatusesSerialized)) {
return [];
}
return dataJobExecutionStatusesSerialized.toUpperCase().split(',');
}
catch (e) {
console.error(`ExecutionsStatusCriteria: failed to deserialize Data Job Execution Statuses.`);
return [];
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9ucy1zdGF0dXMuY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLXBpcGVsaW5lcy9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1qb2IvcGFnZXMvZXhlY3V0aW9ucy9kYXRhLWpvYi1leGVjdXRpb25zLWdyaWQvY3JpdGVyaWEvc3RhdHVzL2V4ZWN1dGlvbnMtc3RhdHVzLmNyaXRlcmlhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQU1yRTs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFHakM7O09BRUc7SUFDSCxZQUFZLGtDQUEwQztRQUNsRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsd0JBQXdCLENBQUMsNkJBQTZCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNoSSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsVUFBa0M7UUFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBRWhDLElBQUksSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sTUFBTSxDQUFDLDZCQUE2QixDQUFDLGtDQUEwQztRQUNuRixJQUFJO1lBQ0EsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFO2dCQUMxRSxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBRUQsT0FBTyxrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUE2QixDQUFDO1NBQ2xHO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLDhFQUE4RSxDQUFDLENBQUM7WUFFOUYsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMy0yMDI1IEJyb2FkY29tXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IENvbGxlY3Rpb25zVXRpbCwgQ3JpdGVyaWEgfSBmcm9tICdAdmVyc2F0aWxlZGF0YWtpdC9zaGFyZWQnO1xuXG5pbXBvcnQgeyBEYXRhSm9iRXhlY3V0aW9uU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWwnO1xuXG5pbXBvcnQgeyBHcmlkRGF0YUpvYkV4ZWN1dGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVsJztcblxuLyoqXG4gKiAqKiBFeGVjdXRpb25zIFN0YXR1cyBmaWx0ZXIgY3JpdGVyaWEuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25zU3RhdHVzQ3JpdGVyaWEgaW1wbGVtZW50cyBDcml0ZXJpYTxHcmlkRGF0YUpvYkV4ZWN1dGlvbj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFKb2JFeGVjdXRpb25TdGF0dXNlczogRGF0YUpvYkV4ZWN1dGlvblN0YXR1c1tdO1xuXG4gICAgLyoqXG4gICAgICogKiogQ29uc3RydWN0b3IuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZGF0YUpvYkV4ZWN1dGlvblN0YXR1c2VzU2VyaWFsaXplZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2RhdGFKb2JFeGVjdXRpb25TdGF0dXNlcyA9IEV4ZWN1dGlvbnNTdGF0dXNDcml0ZXJpYS5fZGVzZXJpYWxpemVFeGVjdXRpb25TdGF0dXNlcyhkYXRhSm9iRXhlY3V0aW9uU3RhdHVzZXNTZXJpYWxpemVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIG1lZXRDcml0ZXJpYShleGVjdXRpb25zOiBHcmlkRGF0YUpvYkV4ZWN1dGlvbltdKTogR3JpZERhdGFKb2JFeGVjdXRpb25bXSB7XG4gICAgICAgIHJldHVybiBbLi4uKGV4ZWN1dGlvbnMgPz8gW10pXS5maWx0ZXIoKGV4ZWN1dGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gZXhlY3V0aW9uLnN0YXR1cztcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2RhdGFKb2JFeGVjdXRpb25TdGF0dXNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFKb2JFeGVjdXRpb25TdGF0dXNlcy5pbmNsdWRlcyhzdGF0dXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfZGVzZXJpYWxpemVFeGVjdXRpb25TdGF0dXNlcyhkYXRhSm9iRXhlY3V0aW9uU3RhdHVzZXNTZXJpYWxpemVkOiBzdHJpbmcpOiBEYXRhSm9iRXhlY3V0aW9uU3RhdHVzW10ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCFDb2xsZWN0aW9uc1V0aWwuaXNTdHJpbmdXaXRoQ29udGVudChkYXRhSm9iRXhlY3V0aW9uU3RhdHVzZXNTZXJpYWxpemVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRhdGFKb2JFeGVjdXRpb25TdGF0dXNlc1NlcmlhbGl6ZWQudG9VcHBlckNhc2UoKS5zcGxpdCgnLCcpIGFzIERhdGFKb2JFeGVjdXRpb25TdGF0dXNbXTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXhlY3V0aW9uc1N0YXR1c0NyaXRlcmlhOiBmYWlsZWQgdG8gZGVzZXJpYWxpemUgRGF0YSBKb2IgRXhlY3V0aW9uIFN0YXR1c2VzLmApO1xuXG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=