@budibase/backend-core 3.4.2 → 3.4.4

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.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "3.4.2",
3
+ "version": "3.4.4",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -110,5 +110,5 @@
110
110
  }
111
111
  }
112
112
  },
113
- "gitHead": "af99325eb2c8659214b1458b83fe7914c32efe5f"
113
+ "gitHead": "5206c3baf1a9bc204b236a692cf22add10fcbb20"
114
114
  }
@@ -34,7 +34,8 @@ export declare function isViewId(id: string): boolean;
34
34
  /**
35
35
  * Check if a given ID is that of a datasource or datasource plus.
36
36
  */
37
- export declare const isDatasourceId: (id: string) => boolean;
37
+ export declare function isDatasourceId(id: string): boolean;
38
+ export declare function isQueryId(id: string): boolean;
38
39
  /**
39
40
  * Gets parameters for retrieving workspaces.
40
41
  */
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPluginParams = exports.isDatasourceId = exports.isTableId = void 0;
3
+ exports.getPluginParams = exports.isTableId = void 0;
4
4
  exports.getDocParams = getDocParams;
5
5
  exports.getRowParams = getRowParams;
6
6
  exports.getQueryIndex = getQueryIndex;
7
7
  exports.isViewId = isViewId;
8
+ exports.isDatasourceId = isDatasourceId;
9
+ exports.isQueryId = isQueryId;
8
10
  exports.getWorkspaceParams = getWorkspaceParams;
9
11
  exports.getGlobalUserParams = getGlobalUserParams;
10
12
  exports.getUserMetadataParams = getUserMetadataParams;
@@ -70,11 +72,13 @@ function isViewId(id) {
70
72
  /**
71
73
  * Check if a given ID is that of a datasource or datasource plus.
72
74
  */
73
- const isDatasourceId = (id) => {
75
+ function isDatasourceId(id) {
74
76
  // this covers both datasources and datasource plus
75
77
  return !!id && id.startsWith(`${constants_1.DocumentType.DATASOURCE}${constants_1.SEPARATOR}`);
76
- };
77
- exports.isDatasourceId = isDatasourceId;
78
+ }
79
+ function isQueryId(id) {
80
+ return !!id && id.startsWith(`${constants_1.DocumentType.QUERY}${constants_1.SEPARATOR}`);
81
+ }
78
82
  /**
79
83
  * Gets parameters for retrieving workspaces.
80
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/docIds/params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/docIds/params.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,27 @@
1
1
  import { Queue, QueueOptions, JobOptions } from "./queue";
2
- interface JobMessage {
2
+ import { Job, JobId, JobInformation } from "bull";
3
+ interface JobMessage<T = any> extends Partial<Job<T>> {
3
4
  id: string;
4
5
  timestamp: number;
5
- queue: string;
6
+ queue: Queue<T>;
6
7
  data: any;
7
8
  opts?: JobOptions;
8
9
  }
9
10
  /**
10
- * This is designed to replicate Bull (https://github.com/OptimalBits/bull) in memory as a sort of mock.
11
- * It is relatively simple, using an event emitter internally to register when messages are available
12
- * to the consumers - in can support many inputs and many consumers.
11
+ * This is designed to replicate Bull (https://github.com/OptimalBits/bull) in
12
+ * memory as a sort of mock. It is relatively simple, using an event emitter
13
+ * internally to register when messages are available to the consumers - in can
14
+ * support many inputs and many consumers.
13
15
  */
14
16
  declare class InMemoryQueue implements Partial<Queue> {
15
17
  _name: string;
16
18
  _opts?: QueueOptions;
17
19
  _messages: JobMessage[];
18
20
  _queuedJobIds: Set<string>;
19
- _emitter: NodeJS.EventEmitter;
21
+ _emitter: NodeJS.EventEmitter<{
22
+ message: [JobMessage];
23
+ completed: [Job];
24
+ }>;
20
25
  _runCount: number;
21
26
  _addCount: number;
22
27
  /**
@@ -54,16 +59,15 @@ declare class InMemoryQueue implements Partial<Queue> {
54
59
  * @param cronJobId The cron which is to be removed.
55
60
  */
56
61
  removeRepeatableByKey(cronJobId: string): Promise<void>;
57
- /**
58
- * Implemented for tests
59
- */
60
- getRepeatableJobs(): Promise<never[]>;
61
62
  removeJobs(_pattern: string): Promise<void>;
62
63
  /**
63
64
  * Implemented for tests
64
65
  */
65
66
  clean(): Promise<never[]>;
66
- getJob(): Promise<null>;
67
- on(): any;
67
+ getJob(id: JobId): Promise<Job<any> | null>;
68
+ on(event: string, callback: (...args: any[]) => void): Queue;
69
+ count(): Promise<number>;
70
+ getCompletedCount(): Promise<number>;
71
+ getRepeatableJobs(): Promise<JobInformation[]>;
68
72
  }
69
73
  export default InMemoryQueue;
@@ -14,28 +14,40 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const events_1 = __importDefault(require("events"));
16
16
  const utils_1 = require("../utils");
17
- /**
18
- * Bull works with a Job wrapper around all messages that contains a lot more information about
19
- * the state of the message, this object constructor implements the same schema of Bull jobs
20
- * for the sake of maintaining API consistency.
21
- * @param queue The name of the queue which the message will be carried on.
22
- * @param message The JSON message which will be passed back to the consumer.
23
- * @returns A new job which can now be put onto the queue, this is mostly an
24
- * internal structure so that an in memory queue can be easily swapped for a Bull queue.
25
- */
26
- function newJob(queue, message, opts) {
17
+ const shared_core_1 = require("@budibase/shared-core");
18
+ function jobToJobInformation(job) {
19
+ var _a;
20
+ let cron = "";
21
+ let every = -1;
22
+ let tz = undefined;
23
+ let endDate = undefined;
24
+ const repeat = (_a = job.opts) === null || _a === void 0 ? void 0 : _a.repeat;
25
+ if (repeat) {
26
+ endDate = repeat.endDate ? new Date(repeat.endDate).getTime() : Date.now();
27
+ tz = repeat.tz;
28
+ if ("cron" in repeat) {
29
+ cron = repeat.cron;
30
+ }
31
+ else {
32
+ every = repeat.every;
33
+ }
34
+ }
27
35
  return {
28
- id: (0, utils_1.newid)(),
29
- timestamp: Date.now(),
30
- queue: queue,
31
- data: message,
32
- opts,
36
+ id: job.id.toString(),
37
+ name: "",
38
+ key: job.id.toString(),
39
+ tz,
40
+ endDate,
41
+ cron,
42
+ every,
43
+ next: 0,
33
44
  };
34
45
  }
35
46
  /**
36
- * This is designed to replicate Bull (https://github.com/OptimalBits/bull) in memory as a sort of mock.
37
- * It is relatively simple, using an event emitter internally to register when messages are available
38
- * to the consumers - in can support many inputs and many consumers.
47
+ * This is designed to replicate Bull (https://github.com/OptimalBits/bull) in
48
+ * memory as a sort of mock. It is relatively simple, using an event emitter
49
+ * internally to register when messages are available to the consumers - in can
50
+ * support many inputs and many consumers.
39
51
  */
40
52
  class InMemoryQueue {
41
53
  /**
@@ -64,35 +76,32 @@ class InMemoryQueue {
64
76
  process(concurrencyOrFunc, func) {
65
77
  return __awaiter(this, void 0, void 0, function* () {
66
78
  func = typeof concurrencyOrFunc === "number" ? func : concurrencyOrFunc;
67
- this._emitter.on("message", () => __awaiter(this, void 0, void 0, function* () {
79
+ this._emitter.on("message", (message) => __awaiter(this, void 0, void 0, function* () {
68
80
  var _a, _b, _c;
69
- if (this._messages.length <= 0) {
70
- return;
71
- }
72
- let msg = this._messages.shift();
73
- let resp = func(msg);
81
+ let resp = func(message);
74
82
  function retryFunc(fnc) {
75
83
  return __awaiter(this, void 0, void 0, function* () {
76
84
  try {
77
85
  yield fnc;
78
86
  }
79
87
  catch (e) {
80
- yield new Promise(r => setTimeout(() => r(), 50));
81
- yield retryFunc(func(msg));
88
+ yield shared_core_1.helpers.wait(50);
89
+ yield retryFunc(func(message));
82
90
  }
83
91
  });
84
92
  }
85
93
  if (resp.then != null) {
86
94
  try {
87
95
  yield retryFunc(resp);
96
+ this._emitter.emit("completed", message);
88
97
  }
89
98
  catch (e) {
90
99
  console.error(e);
91
100
  }
92
101
  }
93
102
  this._runCount++;
94
- const jobId = (_b = (_a = msg === null || msg === void 0 ? void 0 : msg.opts) === null || _a === void 0 ? void 0 : _a.jobId) === null || _b === void 0 ? void 0 : _b.toString();
95
- if (jobId && ((_c = msg === null || msg === void 0 ? void 0 : msg.opts) === null || _c === void 0 ? void 0 : _c.removeOnComplete)) {
103
+ const jobId = (_b = (_a = message.opts) === null || _a === void 0 ? void 0 : _a.jobId) === null || _b === void 0 ? void 0 : _b.toString();
104
+ if (jobId && ((_c = message.opts) === null || _c === void 0 ? void 0 : _c.removeOnComplete)) {
96
105
  this._queuedJobIds.delete(jobId);
97
106
  }
98
107
  }));
@@ -127,9 +136,16 @@ class InMemoryQueue {
127
136
  this._queuedJobIds.add(jobId);
128
137
  }
129
138
  const pushMessage = () => {
130
- this._messages.push(newJob(this._name, data, opts));
139
+ const message = {
140
+ id: (0, utils_1.newid)(),
141
+ timestamp: Date.now(),
142
+ queue: this,
143
+ data,
144
+ opts,
145
+ };
146
+ this._messages.push(message);
131
147
  this._addCount++;
132
- this._emitter.emit("message");
148
+ this._emitter.emit("message", message);
133
149
  };
134
150
  const delay = opts === null || opts === void 0 ? void 0 : opts.delay;
135
151
  if (delay) {
@@ -157,14 +173,6 @@ class InMemoryQueue {
157
173
  console.log(cronJobId);
158
174
  });
159
175
  }
160
- /**
161
- * Implemented for tests
162
- */
163
- getRepeatableJobs() {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- return [];
166
- });
167
- }
168
176
  removeJobs(_pattern) {
169
177
  return __awaiter(this, void 0, void 0, function* () {
170
178
  // no-op
@@ -178,15 +186,36 @@ class InMemoryQueue {
178
186
  return [];
179
187
  });
180
188
  }
181
- getJob() {
189
+ getJob(id) {
182
190
  return __awaiter(this, void 0, void 0, function* () {
191
+ for (const message of this._messages) {
192
+ if (message.id === id) {
193
+ return message;
194
+ }
195
+ }
183
196
  return null;
184
197
  });
185
198
  }
186
- on() {
187
- // do nothing
199
+ on(event, callback) {
200
+ // @ts-expect-error - this callback can be one of many types
201
+ this._emitter.on(event, callback);
188
202
  return this;
189
203
  }
204
+ count() {
205
+ return __awaiter(this, void 0, void 0, function* () {
206
+ return this._messages.length;
207
+ });
208
+ }
209
+ getCompletedCount() {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ return this._runCount;
212
+ });
213
+ }
214
+ getRepeatableJobs() {
215
+ return __awaiter(this, void 0, void 0, function* () {
216
+ return this._messages.map(job => jobToJobInformation(job));
217
+ });
218
+ }
190
219
  }
191
220
  exports.default = InMemoryQueue;
192
221
  //# sourceMappingURL=inMemoryQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryQueue.js","sourceRoot":"","sources":["../../../src/queue/inMemoryQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inMemoryQueue.js","sourceRoot":"","sources":["../../../src/queue/inMemoryQueue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "3.4.2",
3
+ "version": "3.4.4",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -110,5 +110,5 @@
110
110
  }
111
111
  }
112
112
  },
113
- "gitHead": "af99325eb2c8659214b1458b83fe7914c32efe5f"
113
+ "gitHead": "5206c3baf1a9bc204b236a692cf22add10fcbb20"
114
114
  }