Skip to main content
Glama

mcp-google-sheets

delay-until-action.ts2.1 kB
import { createAction, Property } from '@activepieces/pieces-framework'; import { ExecutionType, PauseType } from '@activepieces/shared'; import dayjs from 'dayjs'; import { markdownDescription } from '../common'; export const delayUntilAction = createAction({ name: 'delay_until', displayName: 'Delay Until', description: 'Delays the execution of the next action until a given timestamp', errorHandlingOptions: { continueOnFailure: { hide: true, }, retryOnFailure: { hide: true, }, }, props: { markdown: Property.MarkDown({ value: markdownDescription, }), delayUntilTimestamp: Property.DateTime({ displayName: 'Date and Time', description: 'Specifies the date and time until which the execution of the next action should be delayed. It supports multiple formats, including ISO format.', required: true, }), }, async run(ctx) { const delayTill = new Date(ctx.propsValue.delayUntilTimestamp); const delayInMs = delayTill.getTime() - Date.now(); if (ctx.executionType == ExecutionType.RESUME) { return { delayTill: delayTill, success: true, }; } else if (delayInMs <= 0) { // resume immediately return { delayTill: delayTill, success: true, }; } else if (delayInMs > 1 * 60 * 1000) { // use flow pause const currentTime = new Date(); const futureTime = dayjs(currentTime.getTime() + delayInMs); ctx.run.pause({ pauseMetadata: { type: PauseType.DELAY, resumeDateTime: futureTime.toISOString(), }, }); return {}; // irrelevant as the flow is being paused, not completed } else { // use setTimeout for delayTill between 0 and 5 seconds await new Promise((resolve) => setTimeout(resolve, delayInMs)); return { delayTill: delayTill, success: true, }; } }, async test(ctx) { const delayTill = new Date(ctx.propsValue.delayUntilTimestamp); return { delayTill, success: true, }; } });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server