@versatiledatakit/data-pipelines
Version:
Data Pipelines help Data Engineers develop, deploy, run, and manage data processing workloads (called 'Data Job')
41 lines • 3.79 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
import { Pipe } from '@angular/core';
import * as parser from 'cron-parser';
import * as i0 from "@angular/core";
export class ParseNextRunPipe {
/**
* @inheritDoc
*/
transform(cron, nextExecution) {
if (!cron) {
return null;
}
if (!nextExecution) {
nextExecution = 1;
}
let result;
try {
const parsedDate = parser.parseExpression(cron, { utc: true });
for (let i = 0; i < nextExecution; i++) {
result = parsedDate.next().toDate();
}
}
catch (e) {
result = null;
console.error('Error parsing next run', e);
}
return result;
}
}
ParseNextRunPipe.ɵfac = function ParseNextRunPipe_Factory(t) { return new (t || ParseNextRunPipe)(); };
ParseNextRunPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "parseNextRun", type: ParseNextRunPipe, pure: true });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ParseNextRunPipe, [{
type: Pipe,
args: [{
name: 'parseNextRun'
}]
}], null, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UtbmV4dC1ydW4ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtcGlwZWxpbmVzL3NyYy9saWIvc2hhcmVkL3BpcGVzL3BhcnNlLW5leHQtcnVuLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekI7O09BRUc7SUFDSCxTQUFTLENBQUMsSUFBWSxFQUFFLGFBQXNCO1FBQzFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixhQUFhLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxNQUFZLENBQUM7UUFDakIsSUFBSTtZQUNBLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDL0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDcEMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUN2QztTQUNKO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dGQXhCUSxnQkFBZ0I7cUZBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBSDVCLElBQUk7ZUFBQztnQkFDRixJQUFJLEVBQUUsY0FBYzthQUN2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMy0yMDI1IEJyb2FkY29tXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0ICogYXMgcGFyc2VyIGZyb20gJ2Nyb24tcGFyc2VyJztcblxuQFBpcGUoe1xuICAgIG5hbWU6ICdwYXJzZU5leHRSdW4nXG59KVxuZXhwb3J0IGNsYXNzIFBhcnNlTmV4dFJ1blBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKipcbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqL1xuICAgIHRyYW5zZm9ybShjcm9uOiBzdHJpbmcsIG5leHRFeGVjdXRpb24/OiBudW1iZXIpOiBEYXRlIHtcbiAgICAgICAgaWYgKCFjcm9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbmV4dEV4ZWN1dGlvbikge1xuICAgICAgICAgICAgbmV4dEV4ZWN1dGlvbiA9IDE7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzdWx0OiBEYXRlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHBhcnNlci5wYXJzZUV4cHJlc3Npb24oY3JvbiwgeyB1dGM6IHRydWUgfSk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5leHRFeGVjdXRpb247IGkrKykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlZERhdGUubmV4dCgpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyBuZXh0IHJ1bicsIGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19