MCPcopy Index your code
hub / github.com/simstudioai/sim / performCreateJob

Function performCreateJob

apps/sim/lib/workflows/schedules/orchestration.ts:129–263  ·  view source on GitHub ↗
(
  params: PerformCreateJobParams
)

Source from the content-addressed store, hash-verified

127}
128
129export async function performCreateJob(
130 params: PerformCreateJobParams
131): Promise<PerformScheduleResult> {
132 if (!params.prompt.trim()) {
133 return { success: false, error: 'prompt is required', errorCode: 'validation' }
134 }
135
136 const cronExpression = params.cronExpression || null
137 if (!cronExpression && !params.time) {
138 return {
139 success: false,
140 error: 'At least one of cronExpression or time must be provided',
141 errorCode: 'validation',
142 }
143 }
144
145 let endsAt: Date | null = null
146 if (params.endsAt) {
147 const parsedEndsAt = new Date(params.endsAt)
148 if (Number.isNaN(parsedEndsAt.getTime())) {
149 return {
150 success: false,
151 error: `Invalid endsAt value: ${params.endsAt}`,
152 errorCode: 'validation',
153 }
154 }
155 endsAt = parsedEndsAt
156 }
157
158 let nextRunAt: Date | null = null
159 if (cronExpression) {
160 const validation = validateCronExpression(cronExpression, params.timezone)
161 if (!validation.isValid) {
162 return {
163 success: false,
164 error: validation.error || 'Invalid cron expression',
165 errorCode: 'validation',
166 }
167 }
168 nextRunAt = computeNextRunAt({ cronExpression, timezone: params.timezone, endsAt })
169 }
170
171 if (params.time) {
172 const parsed = parseOneTimeRun(params.time, params.timezone)
173 if (!parsed) {
174 return {
175 success: false,
176 error: `Invalid time value: ${params.time}`,
177 errorCode: 'validation',
178 }
179 }
180 if (!cronExpression || parsed > new Date()) nextRunAt = parsed
181 }
182
183 if (params.startDate) {
184 const start = new Date(params.startDate)
185 if (start > new Date()) nextRunAt = start
186 }

Callers 2

executeCreateJobFunction · 0.90
route.tsFile · 0.90

Calls 10

validateCronExpressionFunction · 0.90
computeNextRunAtFunction · 0.90
generateIdFunction · 0.90
parseCronToHumanReadableFunction · 0.90
recordAuditFunction · 0.90
captureServerEventFunction · 0.90
toErrorFunction · 0.90
parseOneTimeRunFunction · 0.85
errorMethod · 0.80
eqFunction · 0.50

Tested by

no test coverage detected