@kingsworld/plugin-cron 1.3.0 → 1.4.1
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/README.md +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/{index.d.ts → index.d.cts} +15 -0
- package/dist/cjs/lib/CronTaskHandler.cjs +2 -0
- package/dist/cjs/lib/CronTaskHandler.cjs.map +1 -1
- package/dist/cjs/lib/structures/CronTaskStore.cjs +4 -2
- package/dist/cjs/lib/structures/CronTaskStore.cjs.map +1 -1
- package/dist/esm/index.d.mts +15 -0
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/lib/CronTaskHandler.mjs +2 -0
- package/dist/esm/lib/CronTaskHandler.mjs.map +1 -1
- package/dist/esm/lib/structures/CronTaskStore.mjs +4 -2
- package/dist/esm/lib/structures/CronTaskStore.mjs.map +1 -1
- package/package.json +11 -9
- /package/dist/cjs/{register.d.ts → register.d.cts} +0 -0
package/README.md
CHANGED
package/dist/cjs/index.cjs
CHANGED
@@ -6,7 +6,7 @@ var CronTaskStore_cjs = require('./lib/structures/CronTaskStore.cjs');
|
|
6
6
|
var CronTaskTypes_cjs = require('./lib/types/CronTaskTypes.cjs');
|
7
7
|
|
8
8
|
// src/index.ts
|
9
|
-
var version = "1.
|
9
|
+
var version = "1.4.1";
|
10
10
|
|
11
11
|
exports.version = version;
|
12
12
|
Object.keys(CronTaskHandler_cjs).forEach(function (k) {
|
package/dist/cjs/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAwBP,IAAM,UAAkB","sourcesContent":["import type { CronTaskStore } from \"./lib/structures/CronTaskStore\";\nimport type { CronTaskHandler } from \"./lib/CronTaskHandler\";\nimport type { CronTaskHandlerOptions } from \"./lib/types/CronTaskTypes\";\n\nexport * from \"./lib/CronTaskHandler\";\nexport * from \"./lib/structures/CronTask\";\nexport * from \"./lib/structures/CronTaskStore\";\nexport * from \"./lib/types/CronTaskTypes\";\n\ndeclare module \"@sapphire/pieces\" {\n interface Container {\n cron: CronTaskHandler;\n }\n\n interface StoreRegistryEntries {\n \"cron-tasks\": CronTaskStore;\n }\n}\n\ndeclare module \"discord.js\" {\n export interface ClientOptions {\n cron?: CronTaskHandlerOptions;\n }\n}\n\n/**\n * The [@kingsworld/plugin-cron](https://github.com/Kings-World/sapphire-plugins/tree/main/packages/cron) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\nexport const version: string =
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAwBP,IAAM,UAAkB","sourcesContent":["import type { CronTaskStore } from \"./lib/structures/CronTaskStore\";\nimport type { CronTaskHandler } from \"./lib/CronTaskHandler\";\nimport type { CronTaskHandlerOptions } from \"./lib/types/CronTaskTypes\";\n\nexport * from \"./lib/CronTaskHandler\";\nexport * from \"./lib/structures/CronTask\";\nexport * from \"./lib/structures/CronTaskStore\";\nexport * from \"./lib/types/CronTaskTypes\";\n\ndeclare module \"@sapphire/pieces\" {\n interface Container {\n cron: CronTaskHandler;\n }\n\n interface StoreRegistryEntries {\n \"cron-tasks\": CronTaskStore;\n }\n}\n\ndeclare module \"discord.js\" {\n export interface ClientOptions {\n cron?: CronTaskHandlerOptions;\n }\n}\n\n/**\n * The [@kingsworld/plugin-cron](https://github.com/Kings-World/sapphire-plugins/tree/main/packages/cron) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\nexport const version: string = \"1.4.1\";\n"]}
|
@@ -1,9 +1,23 @@
|
|
1
1
|
import { Piece, Store } from '@sapphire/pieces';
|
2
2
|
import { CronJobParams, CronJob } from 'cron';
|
3
3
|
import { Awaitable } from '@sapphire/framework';
|
4
|
+
import Sentry from '@sentry/node';
|
4
5
|
|
5
6
|
interface CronTaskHandlerOptions {
|
7
|
+
/**
|
8
|
+
* The default timezone to use for all cron tasks.
|
9
|
+
* You can override this per task, using the timeZone option.
|
10
|
+
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
11
|
+
* @default "UTC"
|
12
|
+
*/
|
6
13
|
defaultTimezone?: string;
|
14
|
+
/**
|
15
|
+
* The Sentry instance to use for instrumenting cron jobs.
|
16
|
+
* If you don't use Sentry, you can ignore this option.
|
17
|
+
* @see https://docs.sentry.io/product/crons/
|
18
|
+
* @default undefined
|
19
|
+
*/
|
20
|
+
sentry?: typeof Sentry;
|
7
21
|
}
|
8
22
|
type CronJobOptions = Omit<CronJobParams<null, CronTask>, "onTick" | "onComplete" | "start" | "context" | "utcOffset">;
|
9
23
|
|
@@ -35,6 +49,7 @@ declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
|
|
35
49
|
|
36
50
|
declare class CronTaskHandler {
|
37
51
|
defaultTimezone?: CronTaskHandlerOptions["defaultTimezone"];
|
52
|
+
sentry?: CronTaskHandlerOptions["sentry"];
|
38
53
|
constructor(options?: CronTaskHandlerOptions);
|
39
54
|
startAll(): void;
|
40
55
|
stopAll(): void;
|
@@ -12,7 +12,9 @@ var __publicField = (obj, key, value) => {
|
|
12
12
|
var _CronTaskHandler = class _CronTaskHandler {
|
13
13
|
constructor(options) {
|
14
14
|
__publicField(this, "defaultTimezone");
|
15
|
+
__publicField(this, "sentry");
|
15
16
|
this.defaultTimezone = options?.defaultTimezone;
|
17
|
+
this.sentry = options?.sentry;
|
16
18
|
}
|
17
19
|
startAll() {
|
18
20
|
this.store.startAll();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,iBAAiB;AAGnB,IAAM,mBAAN,MAAM,iBAAgB;AAAA,
|
1
|
+
{"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,iBAAiB;AAGnB,IAAM,mBAAN,MAAM,iBAAgB;AAAA,EAIzB,YAAY,SAAkC;AAH9C;AACA;AAGI,SAAK,kBAAkB,SAAS;AAChC,SAAK,SAAS,SAAS;AAAA,EAC3B;AAAA,EAEA,WAAW;AACP,SAAK,MAAM,SAAS;AAAA,EACxB;AAAA,EAEA,UAAU;AACN,SAAK,MAAM,QAAQ;AAAA,EACvB;AAAA,EAEA,IAAY,QAAQ;AAChB,WAAO,UAAU,OAAO,IAAI,YAAY;AAAA,EAC5C;AACJ;AApB6B;AAAtB,IAAM,kBAAN","sourcesContent":["import { container } from \"@sapphire/framework\";\nimport type { CronTaskHandlerOptions } from \"./types/CronTaskTypes\";\n\nexport class CronTaskHandler {\n defaultTimezone?: CronTaskHandlerOptions[\"defaultTimezone\"];\n sentry?: CronTaskHandlerOptions[\"sentry\"];\n\n constructor(options?: CronTaskHandlerOptions) {\n this.defaultTimezone = options?.defaultTimezone;\n this.sentry = options?.sentry;\n }\n\n startAll() {\n this.store.startAll();\n }\n\n stopAll() {\n this.store.stopAll();\n }\n\n private get store() {\n return container.stores.get(\"cron-tasks\");\n }\n}\n"]}
|
@@ -34,13 +34,15 @@ var _CronTaskStore = class _CronTaskStore extends pieces.Store {
|
|
34
34
|
}
|
35
35
|
set(key, value) {
|
36
36
|
const options = value.options;
|
37
|
+
const { sentry, defaultTimezone } = this.container.cron;
|
38
|
+
const cronJob = sentry ? sentry.cron.instrumentCron(cron.CronJob, key) : cron.CronJob;
|
37
39
|
try {
|
38
|
-
value.job =
|
40
|
+
value.job = cronJob.from({
|
39
41
|
...options,
|
40
42
|
onTick: () => void value.run.bind(value)(),
|
41
43
|
start: false,
|
42
44
|
context: value,
|
43
|
-
timeZone: options.timeZone ??
|
45
|
+
timeZone: options.timeZone ?? defaultTimezone
|
44
46
|
});
|
45
47
|
} catch (error) {
|
46
48
|
value.error(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAEjB,IAAM,iBAAN,MAAM,uBAAsB,MAA8B;AAAA,EAC7D,cAAc;AACV,UAAM,UAAU,EAAE,MAAM,aAAa,CAAC;AAAA,EAC1C;AAAA,EAEA,WAAW;AACP,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK;AAAS;AACnB,WAAK,IAAI,MAAM;AAAA,IACnB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU;AACN,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK,IAAI;AAAS;AACvB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAES,IAAI,KAAa,OAAuB;AAC7C,UAAM,UAAU,MAAM;AAEtB,QAAI;AACA,YAAM,MAAM,QAAQ,KAAK;AAAA,QACrB,GAAG;AAAA,QACH,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE;AAAA,QACzC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,
|
1
|
+
{"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;AAAA,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAEjB,IAAM,iBAAN,MAAM,uBAAsB,MAA8B;AAAA,EAC7D,cAAc;AACV,UAAM,UAAU,EAAE,MAAM,aAAa,CAAC;AAAA,EAC1C;AAAA,EAEA,WAAW;AACP,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK;AAAS;AACnB,WAAK,IAAI,MAAM;AAAA,IACnB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU;AACN,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK,IAAI;AAAS;AACvB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAES,IAAI,KAAa,OAAuB;AAC7C,UAAM,UAAU,MAAM;AAEtB,UAAM,EAAE,QAAQ,gBAAgB,IAAI,KAAK,UAAU;AACnD,UAAM,UAAU,SACV,OAAO,KAAK,eAAe,SAAS,GAAG,IACvC;AAEN,QAAI;AACA,YAAM,MAAM,QAAQ,KAAK;AAAA,QACrB,GAAG;AAAA,QACH,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE;AAAA,QACzC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,UAAU,QAAQ,YAAY;AAAA,MAClC,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,YAAM;AAAA,QACF;AAAA,QACA;AAAA,MACJ;AACA,YAAM,OAAO;AAAA,IACjB;AAEA,WAAO,MAAM,IAAI,KAAK,KAAK;AAAA,EAC/B;AAAA,EAES,OAAO,KAAa;AACzB,UAAM,OAAO,KAAK,IAAI,GAAG;AACzB,QAAI,MAAM,IAAI,SAAS;AACnB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,WAAO,MAAM,OAAO,GAAG;AAAA,EAC3B;AAAA,EAES,QAAQ;AACb,SAAK,QAAQ;AACb,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;AArEiE;AAA1D,IAAM,gBAAN","sourcesContent":["import { Store } from \"@sapphire/pieces\";\nimport { CronTask } from \"./CronTask\";\nimport { CronJob } from \"cron\";\n\nexport class CronTaskStore extends Store<CronTask, \"cron-tasks\"> {\n constructor() {\n super(CronTask, { name: \"cron-tasks\" });\n }\n\n startAll() {\n for (const task of this.values()) {\n if (!task.enabled) continue;\n task.job.start();\n }\n\n Store.logger?.(\n `[STORE => ${this.name}] [START] Started all cronjob tasks.`,\n );\n return this;\n }\n\n stopAll() {\n for (const task of this.values()) {\n if (!task.job.running) continue;\n task.job.stop();\n }\n\n Store.logger?.(\n `[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`,\n );\n return this;\n }\n\n override set(key: string, value: CronTask): this {\n const options = value.options;\n\n const { sentry, defaultTimezone } = this.container.cron;\n const cronJob = sentry\n ? sentry.cron.instrumentCron(CronJob, key)\n : CronJob;\n\n try {\n value.job = cronJob.from({\n ...options,\n onTick: () => void value.run.bind(value)(),\n start: false,\n context: value,\n timeZone: options.timeZone ?? defaultTimezone,\n });\n } catch (error) {\n value.error(\n \"Encountered an error while creating the cron job\",\n error,\n );\n value.unload();\n }\n\n return super.set(key, value);\n }\n\n override delete(key: string) {\n const task = this.get(key);\n if (task?.job.running) {\n task.job.stop();\n }\n\n return super.delete(key);\n }\n\n override clear() {\n this.stopAll();\n return super.clear();\n }\n}\n"]}
|
package/dist/esm/index.d.mts
CHANGED
@@ -1,9 +1,23 @@
|
|
1
1
|
import { Piece, Store } from '@sapphire/pieces';
|
2
2
|
import { CronJobParams, CronJob } from 'cron';
|
3
3
|
import { Awaitable } from '@sapphire/framework';
|
4
|
+
import Sentry from '@sentry/node';
|
4
5
|
|
5
6
|
interface CronTaskHandlerOptions {
|
7
|
+
/**
|
8
|
+
* The default timezone to use for all cron tasks.
|
9
|
+
* You can override this per task, using the timeZone option.
|
10
|
+
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
11
|
+
* @default "UTC"
|
12
|
+
*/
|
6
13
|
defaultTimezone?: string;
|
14
|
+
/**
|
15
|
+
* The Sentry instance to use for instrumenting cron jobs.
|
16
|
+
* If you don't use Sentry, you can ignore this option.
|
17
|
+
* @see https://docs.sentry.io/product/crons/
|
18
|
+
* @default undefined
|
19
|
+
*/
|
20
|
+
sentry?: typeof Sentry;
|
7
21
|
}
|
8
22
|
type CronJobOptions = Omit<CronJobParams<null, CronTask>, "onTick" | "onComplete" | "start" | "context" | "utcOffset">;
|
9
23
|
|
@@ -35,6 +49,7 @@ declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
|
|
35
49
|
|
36
50
|
declare class CronTaskHandler {
|
37
51
|
defaultTimezone?: CronTaskHandlerOptions["defaultTimezone"];
|
52
|
+
sentry?: CronTaskHandlerOptions["sentry"];
|
38
53
|
constructor(options?: CronTaskHandlerOptions);
|
39
54
|
startAll(): void;
|
40
55
|
stopAll(): void;
|
package/dist/esm/index.mjs
CHANGED
package/dist/esm/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAwBP,IAAM,UAAkB","sourcesContent":["import type { CronTaskStore } from \"./lib/structures/CronTaskStore\";\nimport type { CronTaskHandler } from \"./lib/CronTaskHandler\";\nimport type { CronTaskHandlerOptions } from \"./lib/types/CronTaskTypes\";\n\nexport * from \"./lib/CronTaskHandler\";\nexport * from \"./lib/structures/CronTask\";\nexport * from \"./lib/structures/CronTaskStore\";\nexport * from \"./lib/types/CronTaskTypes\";\n\ndeclare module \"@sapphire/pieces\" {\n interface Container {\n cron: CronTaskHandler;\n }\n\n interface StoreRegistryEntries {\n \"cron-tasks\": CronTaskStore;\n }\n}\n\ndeclare module \"discord.js\" {\n export interface ClientOptions {\n cron?: CronTaskHandlerOptions;\n }\n}\n\n/**\n * The [@kingsworld/plugin-cron](https://github.com/Kings-World/sapphire-plugins/tree/main/packages/cron) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\nexport const version: string =
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;AAIA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAwBP,IAAM,UAAkB","sourcesContent":["import type { CronTaskStore } from \"./lib/structures/CronTaskStore\";\nimport type { CronTaskHandler } from \"./lib/CronTaskHandler\";\nimport type { CronTaskHandlerOptions } from \"./lib/types/CronTaskTypes\";\n\nexport * from \"./lib/CronTaskHandler\";\nexport * from \"./lib/structures/CronTask\";\nexport * from \"./lib/structures/CronTaskStore\";\nexport * from \"./lib/types/CronTaskTypes\";\n\ndeclare module \"@sapphire/pieces\" {\n interface Container {\n cron: CronTaskHandler;\n }\n\n interface StoreRegistryEntries {\n \"cron-tasks\": CronTaskStore;\n }\n}\n\ndeclare module \"discord.js\" {\n export interface ClientOptions {\n cron?: CronTaskHandlerOptions;\n }\n}\n\n/**\n * The [@kingsworld/plugin-cron](https://github.com/Kings-World/sapphire-plugins/tree/main/packages/cron) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\nexport const version: string = \"1.4.1\";\n"]}
|
@@ -4,7 +4,9 @@ import { container } from '@sapphire/framework';
|
|
4
4
|
var _CronTaskHandler = class _CronTaskHandler {
|
5
5
|
constructor(options) {
|
6
6
|
__publicField(this, "defaultTimezone");
|
7
|
+
__publicField(this, "sentry");
|
7
8
|
this.defaultTimezone = options?.defaultTimezone;
|
9
|
+
this.sentry = options?.sentry;
|
8
10
|
}
|
9
11
|
startAll() {
|
10
12
|
this.store.startAll();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,iBAAiB;AAGnB,IAAM,mBAAN,MAAM,iBAAgB;AAAA,
|
1
|
+
{"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,iBAAiB;AAGnB,IAAM,mBAAN,MAAM,iBAAgB;AAAA,EAIzB,YAAY,SAAkC;AAH9C;AACA;AAGI,SAAK,kBAAkB,SAAS;AAChC,SAAK,SAAS,SAAS;AAAA,EAC3B;AAAA,EAEA,WAAW;AACP,SAAK,MAAM,SAAS;AAAA,EACxB;AAAA,EAEA,UAAU;AACN,SAAK,MAAM,QAAQ;AAAA,EACvB;AAAA,EAEA,IAAY,QAAQ;AAChB,WAAO,UAAU,OAAO,IAAI,YAAY;AAAA,EAC5C;AACJ;AApB6B;AAAtB,IAAM,kBAAN","sourcesContent":["import { container } from \"@sapphire/framework\";\nimport type { CronTaskHandlerOptions } from \"./types/CronTaskTypes\";\n\nexport class CronTaskHandler {\n defaultTimezone?: CronTaskHandlerOptions[\"defaultTimezone\"];\n sentry?: CronTaskHandlerOptions[\"sentry\"];\n\n constructor(options?: CronTaskHandlerOptions) {\n this.defaultTimezone = options?.defaultTimezone;\n this.sentry = options?.sentry;\n }\n\n startAll() {\n this.store.startAll();\n }\n\n stopAll() {\n this.store.stopAll();\n }\n\n private get store() {\n return container.stores.get(\"cron-tasks\");\n }\n}\n"]}
|
@@ -31,13 +31,15 @@ var _CronTaskStore = class _CronTaskStore extends Store {
|
|
31
31
|
}
|
32
32
|
set(key, value) {
|
33
33
|
const options = value.options;
|
34
|
+
const { sentry, defaultTimezone } = this.container.cron;
|
35
|
+
const cronJob = sentry ? sentry.cron.instrumentCron(CronJob, key) : CronJob;
|
34
36
|
try {
|
35
|
-
value.job =
|
37
|
+
value.job = cronJob.from({
|
36
38
|
...options,
|
37
39
|
onTick: () => void value.run.bind(value)(),
|
38
40
|
start: false,
|
39
41
|
context: value,
|
40
|
-
timeZone: options.timeZone ??
|
42
|
+
timeZone: options.timeZone ?? defaultTimezone
|
41
43
|
});
|
42
44
|
} catch (error) {
|
43
45
|
value.error(
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAEjB,IAAM,iBAAN,MAAM,uBAAsB,MAA8B;AAAA,EAC7D,cAAc;AACV,UAAM,UAAU,EAAE,MAAM,aAAa,CAAC;AAAA,EAC1C;AAAA,EAEA,WAAW;AACP,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK;AAAS;AACnB,WAAK,IAAI,MAAM;AAAA,IACnB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU;AACN,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK,IAAI;AAAS;AACvB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAES,IAAI,KAAa,OAAuB;AAC7C,UAAM,UAAU,MAAM;AAEtB,QAAI;AACA,YAAM,MAAM,QAAQ,KAAK;AAAA,QACrB,GAAG;AAAA,QACH,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE;AAAA,QACzC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,
|
1
|
+
{"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AAEjB,IAAM,iBAAN,MAAM,uBAAsB,MAA8B;AAAA,EAC7D,cAAc;AACV,UAAM,UAAU,EAAE,MAAM,aAAa,CAAC;AAAA,EAC1C;AAAA,EAEA,WAAW;AACP,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK;AAAS;AACnB,WAAK,IAAI,MAAM;AAAA,IACnB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU;AACN,eAAW,QAAQ,KAAK,OAAO,GAAG;AAC9B,UAAI,CAAC,KAAK,IAAI;AAAS;AACvB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,UAAM;AAAA,MACF,aAAa,KAAK,IAAI;AAAA,IAC1B;AACA,WAAO;AAAA,EACX;AAAA,EAES,IAAI,KAAa,OAAuB;AAC7C,UAAM,UAAU,MAAM;AAEtB,UAAM,EAAE,QAAQ,gBAAgB,IAAI,KAAK,UAAU;AACnD,UAAM,UAAU,SACV,OAAO,KAAK,eAAe,SAAS,GAAG,IACvC;AAEN,QAAI;AACA,YAAM,MAAM,QAAQ,KAAK;AAAA,QACrB,GAAG;AAAA,QACH,QAAQ,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,EAAE;AAAA,QACzC,OAAO;AAAA,QACP,SAAS;AAAA,QACT,UAAU,QAAQ,YAAY;AAAA,MAClC,CAAC;AAAA,IACL,SAAS,OAAO;AACZ,YAAM;AAAA,QACF;AAAA,QACA;AAAA,MACJ;AACA,YAAM,OAAO;AAAA,IACjB;AAEA,WAAO,MAAM,IAAI,KAAK,KAAK;AAAA,EAC/B;AAAA,EAES,OAAO,KAAa;AACzB,UAAM,OAAO,KAAK,IAAI,GAAG;AACzB,QAAI,MAAM,IAAI,SAAS;AACnB,WAAK,IAAI,KAAK;AAAA,IAClB;AAEA,WAAO,MAAM,OAAO,GAAG;AAAA,EAC3B;AAAA,EAES,QAAQ;AACb,SAAK,QAAQ;AACb,WAAO,MAAM,MAAM;AAAA,EACvB;AACJ;AArEiE;AAA1D,IAAM,gBAAN","sourcesContent":["import { Store } from \"@sapphire/pieces\";\nimport { CronTask } from \"./CronTask\";\nimport { CronJob } from \"cron\";\n\nexport class CronTaskStore extends Store<CronTask, \"cron-tasks\"> {\n constructor() {\n super(CronTask, { name: \"cron-tasks\" });\n }\n\n startAll() {\n for (const task of this.values()) {\n if (!task.enabled) continue;\n task.job.start();\n }\n\n Store.logger?.(\n `[STORE => ${this.name}] [START] Started all cronjob tasks.`,\n );\n return this;\n }\n\n stopAll() {\n for (const task of this.values()) {\n if (!task.job.running) continue;\n task.job.stop();\n }\n\n Store.logger?.(\n `[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`,\n );\n return this;\n }\n\n override set(key: string, value: CronTask): this {\n const options = value.options;\n\n const { sentry, defaultTimezone } = this.container.cron;\n const cronJob = sentry\n ? sentry.cron.instrumentCron(CronJob, key)\n : CronJob;\n\n try {\n value.job = cronJob.from({\n ...options,\n onTick: () => void value.run.bind(value)(),\n start: false,\n context: value,\n timeZone: options.timeZone ?? defaultTimezone,\n });\n } catch (error) {\n value.error(\n \"Encountered an error while creating the cron job\",\n error,\n );\n value.unload();\n }\n\n return super.set(key, value);\n }\n\n override delete(key: string) {\n const task = this.get(key);\n if (task?.job.running) {\n task.job.stop();\n }\n\n return super.delete(key);\n }\n\n override clear() {\n this.stopAll();\n return super.clear();\n }\n}\n"]}
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kingsworld/plugin-cron",
|
3
3
|
"description": "A simple @sapphire/framework plugin that aims to make use of the cron package and allow users to make cron jobs within their Sapphire discord bot.",
|
4
|
-
"version": "1.
|
4
|
+
"version": "1.4.1",
|
5
5
|
"author": "Seren_Modz 21 <seren@kings-world.net>",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/cjs/index.cjs",
|
8
8
|
"module": "dist/esm/index.mjs",
|
9
|
-
"types": "dist/cjs/index.d.
|
9
|
+
"types": "dist/cjs/index.d.cts",
|
10
10
|
"exports": {
|
11
11
|
".": {
|
12
12
|
"import": {
|
@@ -14,7 +14,7 @@
|
|
14
14
|
"default": "./dist/esm/index.mjs"
|
15
15
|
},
|
16
16
|
"require": {
|
17
|
-
"types": "./dist/cjs/index.d.
|
17
|
+
"types": "./dist/cjs/index.d.cts",
|
18
18
|
"default": "./dist/cjs/index.cjs"
|
19
19
|
}
|
20
20
|
},
|
@@ -24,7 +24,7 @@
|
|
24
24
|
"default": "./dist/esm/register.mjs"
|
25
25
|
},
|
26
26
|
"require": {
|
27
|
-
"types": "./dist/cjs/register.d.
|
27
|
+
"types": "./dist/cjs/register.d.cts",
|
28
28
|
"default": "./dist/cjs/register.cjs"
|
29
29
|
}
|
30
30
|
}
|
@@ -34,22 +34,24 @@
|
|
34
34
|
"./dist/esm/register.mjs"
|
35
35
|
],
|
36
36
|
"scripts": {
|
37
|
-
"build": "tsup && yarn build:types",
|
37
|
+
"build": "tsup && yarn build:types && yarn build:rename-cjs-register",
|
38
38
|
"build:types": "concurrently \"yarn:build:types:*\"",
|
39
|
-
"build:types:cjs": "rollup-type-bundler -d dist/cjs",
|
39
|
+
"build:types:cjs": "rollup-type-bundler -d dist/cjs -ot .cts",
|
40
40
|
"build:types:esm": "rollup-type-bundler -d dist/esm -t .mts",
|
41
41
|
"build:types:cleanup": "tsx ../../scripts/clean-register-imports.mts",
|
42
|
+
"build:rename-cjs-register": "tsx ../../scripts/rename-cjs-register.mts",
|
42
43
|
"typecheck": "tsc -b src"
|
43
44
|
},
|
44
45
|
"dependencies": {
|
45
46
|
"cron": "^3.1.6"
|
46
47
|
},
|
47
48
|
"devDependencies": {
|
48
|
-
"@favware/rollup-type-bundler": "^3.
|
49
|
-
"@
|
49
|
+
"@favware/rollup-type-bundler": "^3.3.0",
|
50
|
+
"@sentry/node": "^7.100.1",
|
51
|
+
"@types/node": "^20.11.6",
|
50
52
|
"concurrently": "^8.2.2",
|
51
53
|
"tsup": "^8.0.1",
|
52
|
-
"tsx": "^4.
|
54
|
+
"tsx": "^4.7.0",
|
53
55
|
"typescript": "^5.3.3"
|
54
56
|
},
|
55
57
|
"homepage": "https://github.com/Kings-World/sapphire-plugins",
|
File without changes
|