bfg-common 1.4.302 → 1.4.304

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,68 +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
- const startOnTimestamp = Math.floor(
141
+ const startTimestamp = Math.floor(
153
142
  new Date(data.frg_start_on_time).getTime() / 1000
154
143
  )
155
144
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
156
145
 
157
- // const minutes = date.getMinutes()
158
- // const hours = date.getHours()
159
-
160
146
  // Генерируем cron-выражение
161
- // return `${minutes} ${hours}/${delay} * * *`
162
147
  return endTimestamp
163
- ? `0 */${data.frg_interval} * * * start=${startOnTimestamp},end=${endTimestamp}`
164
- : `0 */${data.frg_interval} * * * start=${startOnTimestamp}`
148
+ ? `* * * * * ${startTimestamp}-${endTimestamp}:${data.frg_interval}-0-0-0`
149
+ : `* * * * * ${startTimestamp}:${data.frg_interval}-0-0-0`
165
150
  }
166
- const generateDaylyCronExpression = (
151
+ const generateDailyCronExpression = (
167
152
  data: UI_I_ScheduleNewTasksForm
168
153
  ): string => {
169
- const startOnTimestamp = Math.floor(
154
+ const startTimestamp = Math.floor(
170
155
  new Date(data.frg_start_on_time).getTime() / 1000
171
156
  )
172
157
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
173
158
 
174
159
  // Генерируем cron-выражение
175
160
  return endTimestamp
176
- ? `0 0 */${data.frg_interval} * * start=${startOnTimestamp},end=${endTimestamp}`
177
- : `0 0 */${data.frg_interval} * * start=${startOnTimestamp}`
178
-
179
- // return `${minutes} ${hours} ${day}/${delay} * *`
161
+ ? `* * * * * ${startTimestamp}-${endTimestamp}:0-${data.frg_interval}-0-0`
162
+ : `* * * * * ${startTimestamp}:0-${data.frg_interval}-0-0`
180
163
  }
181
164
  const generateWeeklyCronExpression = (
182
165
  data: UI_I_ScheduleNewTasksForm
183
166
  ): string => {
184
167
  const { frg_on_week_days } = data
185
168
 
186
- const startOnTimestamp = Math.floor(
169
+ const startTimestamp = Math.floor(
187
170
  new Date(data.frg_start_on_time).getTime() / 1000
188
171
  )
189
172
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
173
+ const daysOfWeek = frg_on_week_days.join(',')
190
174
 
191
175
  return endTimestamp
192
- ? `* * * * ${frg_on_week_days.join(',')}/${
193
- data.frg_interval
194
- } start=${startOnTimestamp},end=${endTimestamp}`
195
- : `* * * * ${frg_on_week_days.join(',')}/${
196
- data.frg_interval
197
- } start=${startOnTimestamp}`
176
+ ? `* * * * ${daysOfWeek} ${startTimestamp}-${endTimestamp}:0-0-0-${data.frg_interval}`
177
+ : `* * * * ${daysOfWeek} ${startTimestamp}:0-0-0-${data.frg_interval}`
198
178
  }
199
179
 
200
180
  const generateMonthlyCronExpression = (
@@ -203,19 +183,21 @@ const generateMonthlyCronExpression = (
203
183
  const { frg_interval, frg_monthly_day, frq_week_day, frq_ordinal_number } =
204
184
  data
205
185
 
206
- const startOnTimestamp = Math.floor(
186
+ const startTimestamp = Math.floor(
207
187
  new Date(data.frg_start_on_time).getTime() / 1000
208
188
  )
209
189
  const endTimestamp = Math.floor(new Date(data.frg_end_time).getTime() / 1000)
210
190
 
211
- const month = data.frg_monthly_mode === 'week' ? '*' : frg_monthly_day
212
- const cronWeekly = `${frq_week_day}#${frq_ordinal_number}`
213
- 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
214
196
 
215
197
  // Генерируем cron-выражение
216
- return endTimestamp
217
- ? `* * ${month} */${frg_interval} ${dayOfWeek} start=${startOnTimestamp},end=${endTimestamp}`
218
- : `* * ${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`
219
201
  }
220
202
 
221
203
  const generateCronExpression = (
@@ -227,9 +209,10 @@ const generateCronExpression = (
227
209
  // Генерируем cron-выражение на основе runType
228
210
  switch (runType) {
229
211
  case 'once':
230
- cronExpression = generateOnceCronExpression(
231
- new Date(interval.frg_on_time)
212
+ const timestamp = Math.floor(
213
+ new Date(interval.frg_on_time).getTime() / 1000
232
214
  )
215
+ cronExpression = `* * * * * ${timestamp}:0-0-0-0:once`
233
216
  break
234
217
  case 'after-startup':
235
218
  const suffixDelay =
@@ -240,7 +223,7 @@ const generateCronExpression = (
240
223
  cronExpression = generateHourlyCronExpression(interval)
241
224
  break
242
225
  case 'day':
243
- cronExpression = generateDaylyCronExpression(interval)
226
+ cronExpression = generateDailyCronExpression(interval)
244
227
  break
245
228
  case 'week':
246
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.302",
4
+ "version": "1.4.304",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",