@mxpicture/gcp-functions-generator 1.1.73 → 1.1.74
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.
|
@@ -60,7 +60,9 @@ export interface TaskConfig {
|
|
|
60
60
|
serviceAccount: string;
|
|
61
61
|
queueId: string;
|
|
62
62
|
}
|
|
63
|
-
export interface
|
|
64
|
-
|
|
63
|
+
export interface TaskAddParams {
|
|
64
|
+
days: number;
|
|
65
|
+
payload: string;
|
|
66
|
+
targetUrl: string;
|
|
65
67
|
}
|
|
66
68
|
//# sourceMappingURL=types.common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.common.d.ts","sourceRoot":"","sources":["../../src/common/types.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB,yCAAyC;IACzC,GAAG,EAAE,iBAAiB,CAAC;IACvB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB,EAAE,OAAO,CAAC;IAEjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.common.d.ts","sourceRoot":"","sources":["../../src/common/types.common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,EAAE,YAAY,CAAC;IACnB,yCAAyC;IACzC,GAAG,EAAE,iBAAiB,CAAC;IACvB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB,EAAE,OAAO,CAAC;IAEjC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { CloudTasksClient } from "@google-cloud/tasks";
|
|
2
|
-
import { TaskConfig } from "../common/types.common.js";
|
|
2
|
+
import { TaskAddParams, TaskConfig } from "../common/types.common.js";
|
|
3
|
+
export declare const scheduleTask: (config: TaskConfig, task: TaskAddParams) => Promise<string | null>;
|
|
3
4
|
export declare class TaskHandler {
|
|
4
5
|
protected readonly config: TaskConfig;
|
|
5
6
|
protected tasksClient: CloudTasksClient;
|
|
6
7
|
constructor(config: TaskConfig);
|
|
7
|
-
add(p:
|
|
8
|
-
days: number;
|
|
9
|
-
taskId: string;
|
|
10
|
-
payload: string;
|
|
11
|
-
targetUrl: string;
|
|
12
|
-
}): Promise<string | null>;
|
|
8
|
+
add(p: TaskAddParams): Promise<string | null>;
|
|
13
9
|
/**
|
|
14
10
|
* Returns a Date in UTC in the allowed window (23:00–06:00).
|
|
15
11
|
* Strategy:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskHandler.d.ts","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskHandler.d.ts","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,YAAY,GACvB,QAAQ,UAAU,EAClB,MAAM,aAAa,KAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAsC,CAAC;AAE/D,qBAAa,WAAW;IAGH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU;IAFxD,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAEF,MAAM,EAAE,UAAU;IAI3C,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkC1D;;;;;;;OAOG;IACI,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAkBpD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAIlC"}
|
|
@@ -1,45 +1,17 @@
|
|
|
1
1
|
import { CloudTasksClient } from "@google-cloud/tasks";
|
|
2
|
-
|
|
3
|
-
// taskName: string;
|
|
4
|
-
// days: number;
|
|
5
|
-
// targetAt: Date;
|
|
6
|
-
// status: string;
|
|
7
|
-
// }
|
|
2
|
+
export const scheduleTask = async (config, task) => new TaskHandler(config).add(task);
|
|
8
3
|
export class TaskHandler {
|
|
9
4
|
config;
|
|
10
5
|
tasksClient;
|
|
11
|
-
// protected store: Store<TaskDoc>;
|
|
12
6
|
constructor(config) {
|
|
13
7
|
this.config = config;
|
|
14
8
|
this.tasksClient = new CloudTasksClient();
|
|
15
|
-
// this.store = new Store<TaskDoc>("task", "common");
|
|
16
9
|
}
|
|
17
10
|
async add(p) {
|
|
18
11
|
this.assertDays(p.days);
|
|
19
12
|
const base = new Date(Date.now() + p.days * 24 * 60 * 60 * 1000);
|
|
20
13
|
const targetAt = this.computeNightScheduleTimeUtc(base);
|
|
21
|
-
// let prev: TaskDoc | null = null;
|
|
22
|
-
// try {
|
|
23
|
-
// prev = await this.readTask(taskId);
|
|
24
|
-
// } catch {}
|
|
25
|
-
// // delete previous task if any (best-effort)
|
|
26
|
-
// if (prev?.taskName) {
|
|
27
|
-
// try {
|
|
28
|
-
// await this.tasksClient.deleteTask({ name: prev.taskName });
|
|
29
|
-
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
30
|
-
// } catch (e: any) {
|
|
31
|
-
// // If already executed/deleted, ignore
|
|
32
|
-
// console.warn(
|
|
33
|
-
// `Failed to delete previous task ${prev.taskName}:`,
|
|
34
|
-
// e?.message || e,
|
|
35
|
-
// );
|
|
36
|
-
// }
|
|
37
|
-
// }
|
|
38
14
|
const queuePath = this.tasksClient.queuePath(this.config.projectId, this.config.region, this.config.queueId);
|
|
39
|
-
// const payload = Buffer.from(
|
|
40
|
-
// JSON.stringify({ taskId: p.taskId }),
|
|
41
|
-
// "utf8",
|
|
42
|
-
// ).toString("base64");
|
|
43
15
|
const [task] = await this.tasksClient.createTask({
|
|
44
16
|
parent: queuePath,
|
|
45
17
|
task: {
|
|
@@ -60,13 +32,6 @@ export class TaskHandler {
|
|
|
60
32
|
},
|
|
61
33
|
});
|
|
62
34
|
return task.name ?? null;
|
|
63
|
-
// await this.writeTask({
|
|
64
|
-
// id: taskId,
|
|
65
|
-
// days,
|
|
66
|
-
// targetAt,
|
|
67
|
-
// taskName: task.name ?? "unknown",
|
|
68
|
-
// status: "scheduled",
|
|
69
|
-
// });
|
|
70
35
|
}
|
|
71
36
|
/**
|
|
72
37
|
* Returns a Date in UTC in the allowed window (23:00–06:00).
|
|
@@ -90,16 +55,6 @@ export class TaskHandler {
|
|
|
90
55
|
const rounded = Math.ceil(ms / fiveMin) * fiveMin;
|
|
91
56
|
return new Date(rounded);
|
|
92
57
|
}
|
|
93
|
-
// protected async readTask(taskId: string): Promise<TaskDoc> {
|
|
94
|
-
// return this.store.get(taskId);
|
|
95
|
-
// }
|
|
96
|
-
// protected async writeTask(doc: TaskDoc): Promise<TaskDoc> {
|
|
97
|
-
// try {
|
|
98
|
-
// return await this.store.update(doc.id, doc);
|
|
99
|
-
// } catch {
|
|
100
|
-
// return await this.store.create(doc);
|
|
101
|
-
// }
|
|
102
|
-
// }
|
|
103
58
|
assertDays(days) {
|
|
104
59
|
if (!Number.isInteger(days) || days < 1 || days > 100)
|
|
105
60
|
throw new Error("days must be an integer between 1 and 100");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,
|
|
1
|
+
{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAkB,EAClB,IAAmB,EACK,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAE/D,MAAM,OAAO,WAAW;IAGgB;IAF5B,WAAW,CAAmB;IAExC,YAAsC,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,CAAgB;QAC/B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CACpB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YAC/C,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE;gBACJ,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;gBAChE,WAAW,EAAE;oBACX,UAAU,EAAE,MAAM;oBAClB,GAAG,EAAE,CAAC,CAAC,SAAS;oBAChB,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,CAAC,CAAC,OAAO;oBACf,SAAS,EAAE;wBACT,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc;wBAC/C,mGAAmG;wBACnG,+BAA+B;qBAChC;iBACF;aACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACI,2BAA2B,CAAC,IAAU;QAC3C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,gFAAgF;QAChF,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;QAClD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG;YACnD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mxpicture/gcp-functions-generator",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.74",
|
|
4
4
|
"description": "Tools for google cloud functions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "MXPicture",
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
"@google-cloud/scheduler": "^5.3.1",
|
|
39
39
|
"@google-cloud/tasks": "^6.2.1",
|
|
40
40
|
"@mxpicture/build-api": "^0.2.59",
|
|
41
|
-
"@mxpicture/gcp-functions-backend": "^1.1.
|
|
42
|
-
"@mxpicture/gcp-functions-common": "^1.1.
|
|
43
|
-
"@mxpicture/gcp-functions-frontend": "^1.1.
|
|
41
|
+
"@mxpicture/gcp-functions-backend": "^1.1.74",
|
|
42
|
+
"@mxpicture/gcp-functions-common": "^1.1.74",
|
|
43
|
+
"@mxpicture/gcp-functions-frontend": "^1.1.74",
|
|
44
44
|
"google-auth-library": "^10.6.2",
|
|
45
45
|
"googleapis": "^171.4.0",
|
|
46
46
|
"json5": "^2.2.3"
|