@mxpicture/gcp-functions-generator 1.1.74 → 1.1.75
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.
|
@@ -59,10 +59,11 @@ export interface TaskConfig {
|
|
|
59
59
|
region: string;
|
|
60
60
|
serviceAccount: string;
|
|
61
61
|
queueId: string;
|
|
62
|
+
targetUrl: string;
|
|
62
63
|
}
|
|
63
|
-
export interface
|
|
64
|
+
export interface TaskScheduleParams extends TaskConfig {
|
|
64
65
|
days: number;
|
|
65
|
-
payload
|
|
66
|
-
|
|
66
|
+
payload?: string;
|
|
67
|
+
taskId?: string;
|
|
67
68
|
}
|
|
68
69
|
//# 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;
|
|
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;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { CloudTasksClient } from "@google-cloud/tasks";
|
|
2
|
-
import {
|
|
3
|
-
export declare const scheduleTask: (
|
|
2
|
+
import { TaskConfig, TaskScheduleParams } from "../common/types.common.js";
|
|
3
|
+
export declare const scheduleTask: (params: TaskScheduleParams) => Promise<string | null>;
|
|
4
4
|
export declare class TaskHandler {
|
|
5
5
|
protected readonly config: TaskConfig;
|
|
6
6
|
protected tasksClient: CloudTasksClient;
|
|
7
7
|
constructor(config: TaskConfig);
|
|
8
|
-
|
|
8
|
+
ensureTaskName(taskId: string | undefined | null): string | null;
|
|
9
|
+
add(days: number, payload?: string, taskId?: string): Promise<string | null>;
|
|
9
10
|
/**
|
|
10
11
|
* Returns a Date in UTC in the allowed window (23:00–06:00).
|
|
11
12
|
* 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,
|
|
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,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,eAAO,MAAM,YAAY,GACvB,QAAQ,kBAAkB,KACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CACiD,CAAC;AAE1E,qBAAa,WAAW;IAGH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU;IAFxD,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBAEF,MAAM,EAAE,UAAU;IAIjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAO1D,GAAG,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA2CzB;;;;;;;OAOG;IACI,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAkBpD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAIlC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CloudTasksClient } from "@google-cloud/tasks";
|
|
2
|
-
export const scheduleTask = async (
|
|
2
|
+
export const scheduleTask = async (params) => new TaskHandler(params).add(params.days, params.payload, params.taskId);
|
|
3
3
|
export class TaskHandler {
|
|
4
4
|
config;
|
|
5
5
|
tasksClient;
|
|
@@ -7,22 +7,38 @@ export class TaskHandler {
|
|
|
7
7
|
this.config = config;
|
|
8
8
|
this.tasksClient = new CloudTasksClient();
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
ensureTaskName(taskId) {
|
|
11
|
+
if (!taskId)
|
|
12
|
+
return null;
|
|
13
|
+
const prefix = `projects/${this.config.projectId}/locations/${this.config.region}/queues/${this.config.queueId}/tasks/`;
|
|
14
|
+
if (taskId.startsWith(prefix))
|
|
15
|
+
return taskId;
|
|
16
|
+
return `${prefix}${taskId}`;
|
|
17
|
+
}
|
|
18
|
+
async add(days, payload, taskId) {
|
|
19
|
+
this.assertDays(days);
|
|
20
|
+
const name = this.ensureTaskName(taskId);
|
|
21
|
+
const base = new Date(Date.now() + days * 24 * 60 * 60 * 1000);
|
|
13
22
|
const targetAt = this.computeNightScheduleTimeUtc(base);
|
|
14
23
|
const queuePath = this.tasksClient.queuePath(this.config.projectId, this.config.region, this.config.queueId);
|
|
24
|
+
let body = null;
|
|
25
|
+
let headers = null;
|
|
26
|
+
if (payload) {
|
|
27
|
+
body = Buffer.from(payload, "utf8").toString("base64");
|
|
28
|
+
headers = {
|
|
29
|
+
"Content-Type": "application/json",
|
|
30
|
+
};
|
|
31
|
+
}
|
|
15
32
|
const [task] = await this.tasksClient.createTask({
|
|
16
33
|
parent: queuePath,
|
|
17
34
|
task: {
|
|
18
35
|
scheduleTime: { seconds: Math.floor(targetAt.getTime() / 1000) },
|
|
36
|
+
name,
|
|
19
37
|
httpRequest: {
|
|
20
38
|
httpMethod: "POST",
|
|
21
|
-
url:
|
|
22
|
-
headers
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
body: p.payload,
|
|
39
|
+
url: this.config.targetUrl,
|
|
40
|
+
headers,
|
|
41
|
+
body,
|
|
26
42
|
oidcToken: {
|
|
27
43
|
serviceAccountEmail: this.config.serviceAccount,
|
|
28
44
|
// Optional: set audience; often leave unset, or set to the URL depending on your auth expectations
|
|
@@ -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,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,
|
|
1
|
+
{"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"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"}
|
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.75",
|
|
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.75",
|
|
42
|
+
"@mxpicture/gcp-functions-common": "^1.1.75",
|
|
43
|
+
"@mxpicture/gcp-functions-frontend": "^1.1.75",
|
|
44
44
|
"google-auth-library": "^10.6.2",
|
|
45
45
|
"googleapis": "^171.4.0",
|
|
46
46
|
"json5": "^2.2.3"
|