bfg-common 1.4.301 → 1.4.303

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -133,72 +133,48 @@ watch(
133
133
  },
134
134
  { deep: true }
135
135
  )
136
- /* TODO рефакторинг все методы надо рефакторить */
137
- const generateOnceCronExpression = (date: Date): any => {
138
- if (!date) return
139
-
140
- const minutes = date.getMinutes()
141
- const hours = date.getHours()
142
- const day = date.getDate()
143
- const month = date.getMonth() + 1 // В cron месяцы начинаются с 1 (январь = 1)
144
- const dayOfWeek = '*' // Для одноразовой задачи день недели неважен
145
136
 
146
- // Генерируем cron-выражение
147
- return `${minutes} ${hours} ${day} ${month} ${dayOfWeek} once`
148
- }
137
+ /* TODO рефакторинг все методы надо рефакторить */
149
138
  const generateHourlyCronExpression = (
150
139
  data: UI_I_ScheduleNewTasksForm
151
140
  ): string => {
152
- if (!date) return
153
-
154
- const startOnTimestamp = Math.floor(
141
+ const startTimestamp = Math.floor(
155
142
  new Date(data.frg_start_on_time).getTime() / 1000
156
143
  )
157
144
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
158
145
 
159
- // const minutes = date.getMinutes()
160
- // const hours = date.getHours()
161
-
162
146
  // Генерируем cron-выражение
163
- // return `${minutes} ${hours}/${delay} * * *`
164
147
  return endTimestamp
165
- ? `0 */${data.frg_interval} * * * start=${startOnTimestamp},end=${endTimestamp}`
166
- : `0 */${data.frg_interval} * * * start=${startOnTimestamp}`
148
+ ? `* * * * * ${startTimestamp}-${endTimestamp}:${data.frg_interval}-0-0-0`
149
+ : `* * * * * ${startTimestamp}:${data.frg_interval}-0-0-0`
167
150
  }
168
- const generateDaylyCronExpression = (
151
+ const generateDailyCronExpression = (
169
152
  data: UI_I_ScheduleNewTasksForm
170
153
  ): string => {
171
- if (!date) return
172
-
173
- const startOnTimestamp = Math.floor(
154
+ const startTimestamp = Math.floor(
174
155
  new Date(data.frg_start_on_time).getTime() / 1000
175
156
  )
176
157
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
177
158
 
178
159
  // Генерируем cron-выражение
179
160
  return endTimestamp
180
- ? `0 0 */${data.frg_interval} * * start=${startOnTimestamp},end=${endTimestamp}`
181
- : `0 0 */${data.frg_interval} * * start=${startOnTimestamp}`
182
-
183
- // return `${minutes} ${hours} ${day}/${delay} * *`
161
+ ? `* * * * * ${startTimestamp}-${endTimestamp}:0-${data.frg_interval}-0-0`
162
+ : `* * * * * ${startTimestamp}:0-${data.frg_interval}-0-0`
184
163
  }
185
164
  const generateWeeklyCronExpression = (
186
165
  data: UI_I_ScheduleNewTasksForm
187
166
  ): string => {
188
167
  const { frg_on_week_days } = data
189
168
 
190
- const startOnTimestamp = Math.floor(
169
+ const startTimestamp = Math.floor(
191
170
  new Date(data.frg_start_on_time).getTime() / 1000
192
171
  )
193
172
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
173
+ const daysOfWeek = frg_on_week_days.join(',')
194
174
 
195
175
  return endTimestamp
196
- ? `* * * * ${frg_on_week_days.join(',')}/${
197
- data.frg_interval
198
- } start=${startOnTimestamp},end=${endTimestamp}`
199
- : `* * * * ${frg_on_week_days.join(',')}/${
200
- data.frg_interval
201
- } start=${startOnTimestamp}`
176
+ ? `* * * * ${daysOfWeek} ${startTimestamp}-${endTimestamp}:0-0-0-${data.frg_interval}`
177
+ : `* * * * ${daysOfWeek} ${startTimestamp}:0-0-0-${data.frg_interval}`
202
178
  }
203
179
 
204
180
  const generateMonthlyCronExpression = (
@@ -207,19 +183,21 @@ const generateMonthlyCronExpression = (
207
183
  const { frg_interval, frg_monthly_day, frq_week_day, frq_ordinal_number } =
208
184
  data
209
185
 
210
- const startOnTimestamp = Math.floor(
186
+ const startTimestamp = Math.floor(
211
187
  new Date(data.frg_start_on_time).getTime() / 1000
212
188
  )
213
189
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
214
190
 
215
- const month = data.frg_monthly_mode === 'week' ? '*' : frg_monthly_day
216
- const cronWeekly = `${frq_week_day}#${frq_ordinal_number}`
217
- const dayOfWeek = data.frg_monthly_mode === 'week' ? cronWeekly : '*'
191
+ const daysOfWeek = `${frq_week_day}#${frq_ordinal_number}`
192
+
193
+ const timestamp = endTimestamp
194
+ ? `${startTimestamp}-${endTimestamp}`
195
+ : startTimestamp
218
196
 
219
197
  // Генерируем cron-выражение
220
- return endTimestamp
221
- ? `* * ${month} */${frg_interval} ${dayOfWeek} start=${startOnTimestamp},end=${endTimestamp}`
222
- : `* * ${month} */${frg_interval} ${dayOfWeek} start=${startOnTimestamp}`
198
+ return data.frg_monthly_mode === 'week'
199
+ ? `* * * * * ${timestamp}:0-0-${frg_interval}-${daysOfWeek}`
200
+ : `* * ${frg_monthly_day} */${frg_interval} * ${timestamp}:0-0-0-0`
223
201
  }
224
202
 
225
203
  const generateCronExpression = (
@@ -231,9 +209,10 @@ const generateCronExpression = (
231
209
  // Генерируем cron-выражение на основе runType
232
210
  switch (runType) {
233
211
  case 'once':
234
- cronExpression = generateOnceCronExpression(
235
- new Date(interval.frg_on_time)
212
+ const timestamp = Math.floor(
213
+ new Date(interval.frg_on_time).getTime() / 1000
236
214
  )
215
+ cronExpression = `* * * * * ${timestamp}:0-0-0-0:once`
237
216
  break
238
217
  case 'after-startup':
239
218
  const suffixDelay =
@@ -244,7 +223,7 @@ const generateCronExpression = (
244
223
  cronExpression = generateHourlyCronExpression(interval)
245
224
  break
246
225
  case 'day':
247
- cronExpression = generateDaylyCronExpression(interval)
226
+ cronExpression = generateDailyCronExpression(interval)
248
227
  break
249
228
  case 'week':
250
229
  cronExpression = generateWeeklyCronExpression(interval)
@@ -17,7 +17,7 @@ export const scheduledTaskDefaultFormFunc = (): UI_I_ScheduleNewTasksForm => {
17
17
  frg_monthly_day: 0,
18
18
  frq_week_day: '',
19
19
  frq_ordinal_number: '',
20
- frg_on_time: null,
20
+ frg_on_time: '',
21
21
  frg_on_week_days: [],
22
22
  }
23
23
  }
@@ -15,7 +15,7 @@ export interface UI_I_ScheduleNewTasksForm {
15
15
  frg_monthly_day: number
16
16
  frq_ordinal_number: string
17
17
  frq_week_day: UI_T_FrequencyWeeksDays
18
- frg_on_time: number | null
18
+ frg_on_time: string
19
19
  frg_on_week_days: number[]
20
20
  cron: string
21
21
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.4.301",
4
+ "version": "1.4.303",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",