@neofinancial/chrono 0.2.0 → 0.3.0
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/build/chrono.d.ts +5 -4
- package/build/chrono.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/build/scheduler.d.ts +0 -9
- package/build/scheduler.js +0 -21
- package/build/scheduler.js.map +0 -1
- package/build/task.d.ts +0 -33
- package/build/task.js +0 -10
- package/build/task.js.map +0 -1
package/build/chrono.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { EventEmitter } from 'node:stream';
|
|
|
2
2
|
import type { BackoffStrategyOptions } from './backoff-strategy';
|
|
3
3
|
import type { Datastore, ScheduleInput, Task } from './datastore';
|
|
4
4
|
import { type ChronoEventsMap } from './events';
|
|
5
|
-
import { type Processor } from './processors';
|
|
6
5
|
import type { ProcessorConfiguration } from './processors/create-processor';
|
|
6
|
+
import type { ProcessorEventsMap } from './processors/events';
|
|
7
7
|
export type TaskMappingBase = Record<string, unknown>;
|
|
8
8
|
export type ScheduleTaskInput<TaskKind, TaskData, DatastoreOptions> = ScheduleInput<TaskKind, TaskData, DatastoreOptions>;
|
|
9
9
|
export type RegisterTaskHandlerInput<TaskKind, TaskData> = {
|
|
@@ -12,6 +12,7 @@ export type RegisterTaskHandlerInput<TaskKind, TaskData> = {
|
|
|
12
12
|
backoffStrategyOptions?: BackoffStrategyOptions;
|
|
13
13
|
processorConfiguration?: ProcessorConfiguration;
|
|
14
14
|
};
|
|
15
|
+
export type RegisterTaskHandlerResponse<TaskKind extends keyof TaskMapping, TaskMapping extends TaskMappingBase> = EventEmitter<ProcessorEventsMap<TaskKind, TaskMapping>>;
|
|
15
16
|
/**
|
|
16
17
|
* This is a type that represents the mapping of task kinds to their respective data types.
|
|
17
18
|
*
|
|
@@ -24,13 +25,13 @@ export type RegisterTaskHandlerInput<TaskKind, TaskData> = {
|
|
|
24
25
|
*
|
|
25
26
|
*/
|
|
26
27
|
export declare class Chrono<TaskMapping extends TaskMappingBase, DatastoreOptions> extends EventEmitter<ChronoEventsMap> {
|
|
27
|
-
private datastore;
|
|
28
|
-
private processors;
|
|
28
|
+
private readonly datastore;
|
|
29
|
+
private readonly processors;
|
|
29
30
|
readonly exitTimeoutMs = 60000;
|
|
30
31
|
constructor(datastore: Datastore<TaskMapping, DatastoreOptions>);
|
|
31
32
|
start(): Promise<void>;
|
|
32
33
|
stop(): Promise<void>;
|
|
33
34
|
scheduleTask<TaskKind extends keyof TaskMapping>(input: ScheduleTaskInput<TaskKind, TaskMapping[TaskKind], DatastoreOptions>): Promise<Task<TaskKind, TaskMapping[TaskKind]>>;
|
|
34
35
|
deleteTask<TaskKind extends keyof TaskMapping>(taskId: string): Promise<Task<TaskKind, TaskMapping[TaskKind]> | undefined>;
|
|
35
|
-
registerTaskHandler<TaskKind extends Extract<keyof TaskMapping, string>>(input: RegisterTaskHandlerInput<TaskKind, TaskMapping[TaskKind]>):
|
|
36
|
+
registerTaskHandler<TaskKind extends Extract<keyof TaskMapping, string>>(input: RegisterTaskHandlerInput<TaskKind, TaskMapping[TaskKind]>): RegisterTaskHandlerResponse<TaskKind, TaskMapping>;
|
|
36
37
|
}
|
package/build/chrono.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrono.js","sourceRoot":"","sources":["../src/chrono.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAI3C,qCAA8D;AAC9D,6CAA+D;
|
|
1
|
+
{"version":3,"file":"chrono.js","sourceRoot":"","sources":["../src/chrono.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAI3C,qCAA8D;AAC9D,6CAA+D;AAG/D,yDAA2D;AAsB3D;;;;;;;;;;GAUG;AAEH,MAAa,MAA8D,SAAQ,0BAA6B;IAC7F,SAAS,CAA2C;IACpD,UAAU,GAAsE,IAAI,GAAG,EAAE,CAAC;IAElG,aAAa,GAAG,MAAM,CAAC;IAEhC,YAAY,SAAmD;QAC7D,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAY,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/F,IAAI,CAAC;YACH,MAAM,IAAA,kCAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,qBAAY,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,KAA2E;QAE3E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,MAAc;QAEd,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAW,MAAM,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,mBAAmB,CACxB,KAAgE;QAEhE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,4BAAe,EAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;YACpD,aAAa,EAAE,KAAK,CAAC,sBAAsB;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE3C,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAtED,wBAsEC"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Chrono, type ScheduleTaskInput, type TaskMappingBase } from './chrono';
|
|
1
|
+
export { Chrono, type ScheduleTaskInput, type TaskMappingBase, type RegisterTaskHandlerInput, type RegisterTaskHandlerResponse, } from './chrono';
|
|
2
2
|
export { ChronoEvents } from './events';
|
|
3
3
|
export { ProcessorEvents } from './processors';
|
|
4
4
|
export { TaskStatus, type ClaimTaskInput, type Datastore, type ScheduleInput, type Task, type DeleteInput, type DeleteOptions, type DeleteByIdempotencyKeyInput, } from './datastore';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAMkB;AALhB,gGAAA,MAAM,OAAA;AAMR,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,2CAA+C;AAAtC,6GAAA,eAAe,OAAA;AAExB,yCASqB;AARnB,uGAAA,UAAU,OAAA"}
|
package/package.json
CHANGED
package/build/scheduler.d.ts
DELETED
package/build/scheduler.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Scheduler = void 0;
|
|
4
|
-
class Scheduler {
|
|
5
|
-
#tasks = [];
|
|
6
|
-
constructor() {
|
|
7
|
-
this.#tasks = [];
|
|
8
|
-
}
|
|
9
|
-
async schedule(task) {
|
|
10
|
-
this.#tasks.push(task);
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
async run() {
|
|
14
|
-
for (const task of this.#tasks) {
|
|
15
|
-
task.run();
|
|
16
|
-
}
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.Scheduler = Scheduler;
|
|
21
|
-
//# sourceMappingURL=scheduler.js.map
|
package/build/scheduler.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":";;;AAIA,MAAa,SAAS;IACpB,MAAM,GAAc,EAAE,CAAC;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAa;QACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApBD,8BAoBC"}
|
package/build/task.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export declare const TaskStatus: {
|
|
2
|
-
readonly PENDING: "PENDING";
|
|
3
|
-
readonly CLAIMED: "CLAIMED";
|
|
4
|
-
readonly COMPLETED: "COMPLETED";
|
|
5
|
-
readonly FAILED: "FAILED";
|
|
6
|
-
};
|
|
7
|
-
export type TaskStatus = (typeof TaskStatus)[keyof typeof TaskStatus];
|
|
8
|
-
export type Task<TaskKind, TaskData> = {
|
|
9
|
-
/** A unique identifier for the task */
|
|
10
|
-
id: string;
|
|
11
|
-
/** A human-readable name or type for the task */
|
|
12
|
-
kind: TaskKind;
|
|
13
|
-
/** The current status of the task */
|
|
14
|
-
status: TaskStatus;
|
|
15
|
-
/** The payload or data associated with the task */
|
|
16
|
-
data: TaskData;
|
|
17
|
-
/** The priority level of the task (lower numbers can indicate higher priority) */
|
|
18
|
-
priority?: number;
|
|
19
|
-
/** A key used for idempotency to prevent duplicate processing */
|
|
20
|
-
idempotencyKey?: string;
|
|
21
|
-
/** The original scheduled date when the task was first intended to run */
|
|
22
|
-
originalScheduleDate: Date;
|
|
23
|
-
/** The current scheduled execution date, which may change if rescheduled */
|
|
24
|
-
scheduledAt: Date;
|
|
25
|
-
/** The date the task is mark 'claimed */
|
|
26
|
-
claimedAt?: Date;
|
|
27
|
-
/** The date the task is mark 'completed' */
|
|
28
|
-
completedAt?: Date;
|
|
29
|
-
/** The date when the task was last executed (if any) */
|
|
30
|
-
lastExecutedAt?: Date;
|
|
31
|
-
/** A counter to track the number of times the task has been retried */
|
|
32
|
-
retryCount: number;
|
|
33
|
-
};
|
package/build/task.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskStatus = void 0;
|
|
4
|
-
exports.TaskStatus = {
|
|
5
|
-
PENDING: "PENDING",
|
|
6
|
-
CLAIMED: "CLAIMED",
|
|
7
|
-
COMPLETED: "COMPLETED",
|
|
8
|
-
FAILED: "FAILED",
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=task.js.map
|
package/build/task.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAC"}
|