@kingsworld/plugin-cron 1.5.2 → 2.0.0-next.06c51a6

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/CHANGELOG.md ADDED
File without changes
package/README.md CHANGED
@@ -1,122 +1,152 @@
1
+ <div align="center">
2
+
1
3
  # @kingsworld/plugin-cron
2
4
 
3
- A simple [@sapphire/framework](https://www.npmjs.com/package/@sapphire/framework) plugin that aims to make use of the [cron](https://www.npmjs.com/package/cron) package and allow users to make cron jobs within their Sapphire discord bot.
5
+ **Plugin for <a href="https://github.com/sapphiredev/framework">@sapphire/framework</a> to add support for cron tasks using <a href="https://github.com/kelektiv/node-cron">cron</a>.**
6
+
7
+ [![GitHub](https://img.shields.io/github/license/Kings-World/sapphire-plugins)](https://github.com/Kings-World/sapphire-plugins/blob/main/LICENSE.md)
8
+ [![npm bundle size](https://pkg-size.dev/badge/bundle/83411)](https://pkg-size.dev/@kingsworld/plugin-cron)
9
+ [![npm](https://img.shields.io/npm/v/@kingsworld/plugin-cron?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/@kingsworld/plugin-cron)
10
+
11
+ </div>
12
+
13
+ ## Description
14
+
15
+ This plugin adds support for cron tasks to the Sapphire framework. It uses the [cron](ttps://www.npmjs.com/package/@kingsworld/plugin-cron) package to create and manage cron tasks.
16
+
17
+ ## Features
18
+
19
+ - Full TypeScript support
20
+ - Includes ESM entrypoint
4
21
 
5
22
  ## Installation
6
23
 
24
+ `@kingsworld/plugin-cron` depends on the following packages. Be sure to install these along with this package!
25
+
26
+ - [`@sapphire/framework`](https://www.npmjs.com/package/@sapphire/framework)
27
+
28
+ You can use the following command to install this package along with `cron`, or replace `npm install` with your package manager of choice.
29
+
7
30
  ```sh
8
- yarn add @kingsworld/plugin-cron @sapphire/framework
31
+ npm install @kingsworld/plugin-cron @sapphire/framework
9
32
  ```
10
33
 
11
34
  ## Usage
12
35
 
13
- Make sure to register the plugin before creating the client
36
+ This registers the necessary options and methods in the Sapphire client to be able to use the cron plugin.
14
37
 
15
38
  ```ts
16
- import "@kingsworld/plugin-cron/register";
39
+ // Main bot file
40
+ // Be sure to register the plugin before instantiating the client.
41
+ import '@kingsworld/plugin-cron/register';
17
42
  ```
18
43
 
19
- If you would like to set the default cron job timezone for all your cron jobs, you can do so within the client options. A list of TZ identifers can be found on [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
44
+ Then, you can configure the plugin in the configuration options in your SapphireClient extension class or initializer. This will either be located in your new SapphireClient constructor call, or super in your constructor method if you use an extension class.
20
45
 
21
46
  ```ts
22
- new SapphireClient({
23
- ...otherClientOptions,
24
- cron: {
25
- // the cron object is optional
26
- defaultTimezone: "Europe/London", // the cron package defaults to UTC
27
- },
28
- });
47
+ const options = {
48
+ ...otherClientOptionsGoHere,
49
+ cron: {
50
+ /**
51
+ * Whether to disable Sentry cron monitoring
52
+ * @default false
53
+ */
54
+ disableSentry: false,
55
+ /**
56
+ * The timezone to use for the cron tasks
57
+ * @default 'UTC'
58
+ */
59
+ timeZone: 'Europe/London'
60
+ }
61
+ };
29
62
  ```
30
63
 
31
- However, if you would like to do so for a single task, you can do so in the cron task options
64
+ - The `disableSentry` option is used to disable Sentry's cron monitoring. By default, it is set to `false`, which means Sentry cron monitoring is enabled if the `@sentry/node` package is installed and configured. This makes using Sentry an opt-in feature - you first opt in by installing `@sentry/node`. The `disableSentry` option then allows you to opt out in specific situations. You can set this to `true` to disable cron monitoring, which can be useful during development or if you haven't provided a Sentry DSN. If you don't use Sentry at all (i.e., `@sentry/node` is not installed), this option has no effect and can be safely ignored.
32
65
 
33
- ```js
34
- {
35
- cronTime: "* * * * *", // every minute
36
- timeZone: "Europe/London"
37
- }
38
- ```
66
+ In order to use the cron tasks anywhere other than a piece (commands, arguments, preconditions, etc.), you must first import the `container` property of `@sapphire/framework`. For pieces, you can simply use `this.container.cron` to access this plugin's methods.
39
67
 
40
- ### Creating a task
68
+ This is a simple example of how to start a task from a service.
41
69
 
42
- Cron Tasks come with their own store, just like Sapphire commands, listeners, and so on. They must be located within a `cron-tasks` directory that is located alongside your other stores.
70
+ ```typescript
71
+ import { container } from '@sapphire/framework';
43
72
 
44
- ```
45
- src
46
- ├── listeners
47
- | └── ready.ts
48
- └── cron-tasks
49
- └── ping.ts
73
+ export class MyAwesomeService {
74
+ public createAwesomeTask() {
75
+ const task = container.cron.store.get('my-awesome-task');
76
+
77
+ task.job.start();
78
+ }
79
+ }
50
80
  ```
51
81
 
52
- Using decorators from [@sapphire/decorators](https://www.npmjs.com/package/@sapphire/decorators):
82
+ This is a simple example of how to start all tasks from a service.
53
83
 
54
- ```ts
55
- import { ApplyOptions } from "@sapphire/decorators";
56
- import { CronTask } from "@kingsworld/plugin-cron";
84
+ ```typescript
85
+ import { container } from '@sapphire/framework';
57
86
 
58
- @ApplyOptions<CronTask.Options>({
59
- cronTime: "* * * * *",
60
- })
61
- export class PingPong extends CronTask {
62
- run() {
63
- this.container.logger.info("Ping Pong! 🏓");
64
- }
87
+ export class MyAwesomeService {
88
+ public createAwesomeTask() {
89
+ container.cron.startAll();
90
+ }
65
91
  }
66
92
  ```
67
93
 
68
- Using the class constructor:
94
+ It's important to note that the `startAll()` method is called automatically when the client is ready. Therefore, it's generally not necessary to call this method manually, unless you have a specific need to restart all cron tasks at some point after the client has been initialized.
69
95
 
70
- ```ts
71
- import { CronTask } from "@kingsworld/plugin-cron";
96
+ ### Create a task handler
97
+
98
+ Cron tasks use their own store, like other types of pieces. You can create a directory alongside your commands directory named `cron-tasks` and place your tasks there, but they must inherit from `CronTask`, like so.
99
+
100
+ ##### Creating the Piece:
101
+
102
+ ```typescript
103
+ import { CronTask } from '@kingsworld/plugin-cron';
72
104
 
73
105
  export class PingPong extends CronTask {
74
- constructor(context: CronTask.LoaderContext, options: CronTask.Options) {
75
- super(context, {
76
- ...options,
77
- cronTime: "* * * * *",
78
- });
79
- }
80
-
81
- run() {
82
- this.container.logger.info("Ping Pong! 🏓");
83
- }
106
+ public constructor(context: CronTask.LoaderContext, options: CronTask.Options) {
107
+ super(context, {
108
+ ...options,
109
+ cronTime: '* * * * *'
110
+ });
111
+ }
112
+
113
+ public run() {
114
+ this.container.logger.info('Ping Pong! 🏓');
115
+ }
84
116
  }
85
117
  ```
86
118
 
87
- ### Frequently Asked Questions
119
+ ### Logging Helpers
88
120
 
89
- ##### What does the `this.info()`, `this.error()`, `this.warn()`, `this.debug()`, and `this.trace()` methods do in the CronTask class?
121
+ The `CronTask` class provides logging helpers that are similar to the ones provided by the `Logger` class. These helpers are `info`, `error`, `warn`, `debug`, and `trace`. They all take a single string argument, which is the message to log.
90
122
 
91
- These methods are small helpers towards Sapphire's logger that prefixes logs with `CronTask[$name]`. The helpers are optional, however, I find them useful when using them in my own projects.
123
+ This is an example of how to use the `info` helper:
92
124
 
93
125
  ```ts
126
+ import { CronTask } from '@kingsworld/plugin-cron';
127
+
94
128
  export class PingPong extends CronTask {
95
- run() {
96
- this.info("Ping Pong! 🏓"); // INFO - CronTask[ping] Ping Pong! 🏓
97
- this.error("Ping Pong! 🏓"); // ERROR - CronTask[ping] Ping Pong! 🏓
98
- this.warn("Ping Pong! 🏓"); // WARN - CronTask[ping] Ping Pong! 🏓
99
- this.debug("Ping Pong! 🏓"); // DEBUG - CronTask[ping] Ping Pong! 🏓
100
- this.trace("Ping Pong! 🏓"); // TRACE - CronTask[ping] Ping Pong! 🏓
101
- }
129
+ public constructor(context: CronTask.LoaderContext, options: CronTask.Options) {
130
+ super(context, {
131
+ ...options,
132
+ cronTime: '* * * * *'
133
+ });
134
+ }
135
+
136
+ public run() {
137
+ this.info('Ping Pong! 🏓'); // CronTask[ping] Ping Pong! 🏓
138
+ }
102
139
  }
103
140
  ```
104
141
 
105
- ### Contributing
106
-
107
- #### Getting started
142
+ ## Contributors
108
143
 
109
- First, clone the repo using git SSH, the GitHub CLI, or HTTP
144
+ Please make sure to read the [Contributing Guide][contributing] before making a pull request.
110
145
 
111
- ```sh
112
- git clone git@github.com:Kings-World/sapphire-plugins.git # ssh
113
- git clone https://github.com/Kings-World/sapphire-plugins.git # http
114
- gh repo clone Kings-World/sapphire-plugins # github cli
115
- ```
146
+ Thank you to all the people who already contributed to Sapphire!
116
147
 
117
- Finally, install the dependencies using Yarn
148
+ <a href="https://github.com/Kings-World/sapphire-plugins/graphs/contributors">
149
+ <img src="https://contrib.rocks/image?repo=Kings-World/sapphire-plugins" />
150
+ </a>
118
151
 
119
- ```sh
120
- yarn # shorthand
121
- yarn install # full command
122
- ```
152
+ [contributing]: https://github.com/Kings-World/sapphire-plugins/blob/main/.github/CONTRIBUTING.md
@@ -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.5.1";
9
+ var version = "2.0.0-next.06c51a6";
10
10
 
11
11
  exports.version = version;
12
12
  Object.keys(CronTaskHandler_cjs).forEach(function (k) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.cjs","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.5.1\";\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.cjs","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\tinterface Container {\n\t\tcron: CronTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'cron-tasks': CronTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\tcron?: CronTaskHandlerOptions;\n\t}\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 = '2.0.0-next.06c51a6';\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Piece, Store } from '@sapphire/pieces';
2
- import { CronJobParams, CronJob } from 'cron';
3
2
  import { Awaitable } from '@sapphire/framework';
3
+ import { CronJobParams, CronJob } from 'cron';
4
4
  import Sentry from '@sentry/node';
5
5
 
6
6
  interface CronTaskHandlerOptions {
@@ -19,9 +19,9 @@ interface CronTaskHandlerOptions {
19
19
  */
20
20
  disableSentry?: boolean;
21
21
  }
22
- type CronJobOptions = Omit<CronJobParams<null, CronTask>, "onTick" | "onComplete" | "start" | "context" | "utcOffset">;
22
+ type CronJobOptions = Omit<CronJobParams<null, CronTask>, 'onTick' | 'onComplete' | 'start' | 'context' | 'utcOffset'>;
23
23
 
24
- declare abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, "cron-tasks"> {
24
+ declare abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, 'cron-tasks'> {
25
25
  job: CronJob<null, CronTask>;
26
26
  constructor(context: CronTask.LoaderContext, options: Options);
27
27
  abstract run(): Awaitable<unknown>;
@@ -35,10 +35,10 @@ declare namespace CronTask {
35
35
  type Options = Piece.Options & CronJobOptions;
36
36
  /** @deprecated Use {@linkcode LoaderContext} instead. */
37
37
  type Context = LoaderContext;
38
- type LoaderContext = Piece.LoaderContext<"cron-tasks">;
38
+ type LoaderContext = Piece.LoaderContext<'cron-tasks'>;
39
39
  }
40
40
 
41
- declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
41
+ declare class CronTaskStore extends Store<CronTask, 'cron-tasks'> {
42
42
  constructor();
43
43
  startAll(): this;
44
44
  stopAll(): this;
@@ -48,7 +48,7 @@ declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
48
48
  }
49
49
 
50
50
  declare class CronTaskHandler {
51
- defaultTimezone?: CronTaskHandlerOptions["defaultTimezone"];
51
+ defaultTimezone?: CronTaskHandlerOptions['defaultTimezone'];
52
52
  disableSentry?: boolean;
53
53
  sentry?: typeof Sentry;
54
54
  constructor(options?: CronTaskHandlerOptions);
@@ -57,15 +57,15 @@ declare class CronTaskHandler {
57
57
  private get store();
58
58
  }
59
59
 
60
- declare module "@sapphire/pieces" {
60
+ declare module '@sapphire/pieces' {
61
61
  interface Container {
62
62
  cron: CronTaskHandler;
63
63
  }
64
64
  interface StoreRegistryEntries {
65
- "cron-tasks": CronTaskStore;
65
+ 'cron-tasks': CronTaskStore;
66
66
  }
67
67
  }
68
- declare module "discord.js" {
68
+ declare module 'discord.js' {
69
69
  interface ClientOptions {
70
70
  cron?: CronTaskHandlerOptions;
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":["container"],"mappings":";;;;;;;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAKzB,YAAY,OAAkC,EAAA;AAJ9C,IAAA,aAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AAGI,IAAA,IAAA,CAAK,kBAAkB,OAAS,EAAA,eAAA,CAAA;AAChC,IAAA,IAAA,CAAK,gBAAgB,OAAS,EAAA,aAAA,CAAA;AAAA,GAClC;AAAA,EAEA,QAAW,GAAA;AACP,IAAA,IAAA,CAAK,MAAM,QAAS,EAAA,CAAA;AAAA,GACxB;AAAA,EAEA,OAAU,GAAA;AACN,IAAA,IAAA,CAAK,MAAM,OAAQ,EAAA,CAAA;AAAA,GACvB;AAAA,EAEA,IAAY,KAAQ,GAAA;AAChB,IAAO,OAAAA,mBAAA,CAAU,MAAO,CAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAAA,GAC5C;AACJ,CAAA,CAAA;AArB6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"CronTaskHandler.cjs","sourcesContent":["import { container } from \"@sapphire/framework\";\nimport type { CronTaskHandlerOptions } from \"./types/CronTaskTypes\";\nimport type Sentry from \"@sentry/node\";\n\nexport class CronTaskHandler {\n defaultTimezone?: CronTaskHandlerOptions[\"defaultTimezone\"];\n disableSentry?: boolean;\n sentry?: typeof Sentry;\n\n constructor(options?: CronTaskHandlerOptions) {\n this.defaultTimezone = options?.defaultTimezone;\n this.disableSentry = options?.disableSentry;\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"]}
1
+ {"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":["container"],"mappings":";;;;;;;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAKrB,YAAY,OAAkC,EAAA;AAJrD,IAAO,aAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AAGN,IAAA,IAAA,CAAK,kBAAkB,OAAS,EAAA,eAAA,CAAA;AAChC,IAAA,IAAA,CAAK,gBAAgB,OAAS,EAAA,aAAA,CAAA;AAAA,GAC/B;AAAA,EAEO,QAAW,GAAA;AACjB,IAAA,IAAA,CAAK,MAAM,QAAS,EAAA,CAAA;AAAA,GACrB;AAAA,EAEO,OAAU,GAAA;AAChB,IAAA,IAAA,CAAK,MAAM,OAAQ,EAAA,CAAA;AAAA,GACpB;AAAA,EAEA,IAAY,KAAQ,GAAA;AACnB,IAAO,OAAAA,mBAAA,CAAU,MAAO,CAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAAA,GACzC;AACD,CAAA,CAAA;AArB6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"CronTaskHandler.cjs","sourcesContent":["import { container } from '@sapphire/framework';\nimport type Sentry from '@sentry/node';\nimport type { CronTaskHandlerOptions } from './types/CronTaskTypes';\n\nexport class CronTaskHandler {\n\tpublic defaultTimezone?: CronTaskHandlerOptions['defaultTimezone'];\n\tpublic disableSentry?: boolean;\n\tpublic sentry?: typeof Sentry;\n\n\tpublic constructor(options?: CronTaskHandlerOptions) {\n\t\tthis.defaultTimezone = options?.defaultTimezone;\n\t\tthis.disableSentry = options?.disableSentry;\n\t}\n\n\tpublic startAll() {\n\t\tthis.store.startAll();\n\t}\n\n\tpublic stopAll() {\n\t\tthis.store.stopAll();\n\t}\n\n\tprivate get store() {\n\t\treturn container.stores.get('cron-tasks');\n\t}\n}\n"]}
@@ -9,34 +9,19 @@ var _CronTask = class _CronTask extends pieces.Piece {
9
9
  super(context, options);
10
10
  }
11
11
  info(message, ...other) {
12
- this.container.logger.info(
13
- `CronTask[${this.name}] ${message}`,
14
- ...other
15
- );
12
+ this.container.logger.info(`CronTask[${this.name}] ${message}`, ...other);
16
13
  }
17
14
  error(message, ...other) {
18
- this.container.logger.error(
19
- `CronTask[${this.name}] ${message}`,
20
- ...other
21
- );
15
+ this.container.logger.error(`CronTask[${this.name}] ${message}`, ...other);
22
16
  }
23
17
  warn(message, ...other) {
24
- this.container.logger.warn(
25
- `CronTask[${this.name}] ${message}`,
26
- ...other
27
- );
18
+ this.container.logger.warn(`CronTask[${this.name}] ${message}`, ...other);
28
19
  }
29
20
  debug(message, ...other) {
30
- this.container.logger.debug(
31
- `CronTask[${this.name}] ${message}`,
32
- ...other
33
- );
21
+ this.container.logger.debug(`CronTask[${this.name}] ${message}`, ...other);
34
22
  }
35
23
  trace(message, ...other) {
36
- this.container.logger.trace(
37
- `CronTask[${this.name}] ${message}`,
38
- ...other
39
- );
24
+ this.container.logger.trace(`CronTask[${this.name}] ${message}`, ...other);
40
25
  }
41
26
  };
42
27
  __name(_CronTask, "CronTask");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/CronTask.ts"],"names":["Piece"],"mappings":";;;;;;AAKO,IAAe,SAAA,GAAf,MAAe,SAAA,SAEZA,YAA6B,CAAA;AAAA,EAGnC,WAAA,CAAY,SAAiC,OAAkB,EAAA;AAC3D,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA,CAAA;AAAA,GAC1B;AAAA,EAIA,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACvC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACvC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AACJ,CAAA,CAAA;AA3CuC,MAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAFhC,IAAe,QAAf,GAAA","file":"CronTask.cjs","sourcesContent":["import { Piece } from \"@sapphire/pieces\";\nimport type { CronJob } from \"cron\";\nimport type { CronJobOptions } from \"../types/CronTaskTypes\";\nimport type { Awaitable } from \"@sapphire/framework\";\n\nexport abstract class CronTask<\n Options extends CronTask.Options = CronTask.Options,\n> extends Piece<Options, \"cron-tasks\"> {\n declare job: CronJob<null, CronTask>;\n\n constructor(context: CronTask.LoaderContext, options: Options) {\n super(context, options);\n }\n\n abstract run(): Awaitable<unknown>;\n\n info(message: string, ...other: unknown[]) {\n this.container.logger.info(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n error(message: string, ...other: unknown[]) {\n this.container.logger.error(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n warn(message: string, ...other: unknown[]) {\n this.container.logger.warn(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n debug(message: string, ...other: unknown[]) {\n this.container.logger.debug(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n trace(message: string, ...other: unknown[]) {\n this.container.logger.trace(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n}\n\nexport namespace CronTask {\n export type Options = Piece.Options & CronJobOptions;\n /** @deprecated Use {@linkcode LoaderContext} instead. */\n export type Context = LoaderContext;\n export type LoaderContext = Piece.LoaderContext<\"cron-tasks\">;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/CronTask.ts"],"names":["Piece"],"mappings":";;;;;;AAKO,IAAe,SAAA,GAAf,MAAe,SAAA,SAAsEA,YAA6B,CAAA;AAAA,EAGjH,WAAA,CAAY,SAAiC,OAAkB,EAAA;AACrE,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA,CAAA;AAAA,GACvB;AAAA,EAIO,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACjD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GACzE;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AAAA,EAEO,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACjD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GACzE;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AACD,CAAA,CAAA;AA5ByH,MAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAAlH,IAAe,QAAf,GAAA","file":"CronTask.cjs","sourcesContent":["import type { Awaitable } from '@sapphire/framework';\nimport { Piece } from '@sapphire/pieces';\nimport type { CronJob } from 'cron';\nimport type { CronJobOptions } from '../types/CronTaskTypes';\n\nexport abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, 'cron-tasks'> {\n\tpublic declare job: CronJob<null, CronTask>;\n\n\tpublic constructor(context: CronTask.LoaderContext, options: Options) {\n\t\tsuper(context, options);\n\t}\n\n\tpublic abstract run(): Awaitable<unknown>;\n\n\tpublic info(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.info(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic error(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.error(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic warn(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.warn(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic debug(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.debug(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic trace(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.trace(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n}\n\nexport namespace CronTask {\n\texport type Options = Piece.Options & CronJobOptions;\n\t/** @deprecated Use {@linkcode LoaderContext} instead. */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'cron-tasks'>;\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var pieces = require('@sapphire/pieces');
4
- var CronTask_cjs = require('./CronTask.cjs');
5
4
  var cron = require('cron');
5
+ var CronTask_cjs = require('./CronTask.cjs');
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
@@ -15,9 +15,7 @@ var _CronTaskStore = class _CronTaskStore extends pieces.Store {
15
15
  if (!task.enabled) continue;
16
16
  task.job.start();
17
17
  }
18
- pieces.Store.logger?.(
19
- `[STORE => ${this.name}] [START] Started all cronjob tasks.`
20
- );
18
+ pieces.Store.logger?.(`[STORE => ${this.name}] [START] Started all cronjob tasks.`);
21
19
  return this;
22
20
  }
23
21
  stopAll() {
@@ -25,13 +23,11 @@ var _CronTaskStore = class _CronTaskStore extends pieces.Store {
25
23
  if (!task.job.running) continue;
26
24
  task.job.stop();
27
25
  }
28
- pieces.Store.logger?.(
29
- `[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`
30
- );
26
+ pieces.Store.logger?.(`[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`);
31
27
  return this;
32
28
  }
33
29
  set(key, value) {
34
- const options = value.options;
30
+ const { options } = value;
35
31
  const { sentry, defaultTimezone } = this.container.cron;
36
32
  const cronJob = sentry ? sentry.cron.instrumentCron(cron.CronJob, key) : cron.CronJob;
37
33
  try {
@@ -43,11 +39,8 @@ var _CronTaskStore = class _CronTaskStore extends pieces.Store {
43
39
  timeZone: options.timeZone ?? defaultTimezone
44
40
  });
45
41
  } catch (error) {
46
- value.error(
47
- "Encountered an error while creating the cron job",
48
- error
49
- );
50
- value.unload();
42
+ value.error("Encountered an error while creating the cron job", error);
43
+ void value.unload();
51
44
  }
52
45
  return super.set(key, value);
53
46
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":["Store","CronTask","CronJob"],"mappings":";;;;;;;;AAIO,IAAM,cAAA,GAAN,MAAM,cAAA,SAAsBA,YAA8B,CAAA;AAAA,EAC7D,WAAc,GAAA;AACV,IAAA,KAAA,CAAMC,qBAAU,EAAA,EAAE,IAAM,EAAA,YAAA,EAAc,CAAA,CAAA;AAAA,GAC1C;AAAA,EAEA,QAAW,GAAA;AACP,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AAC9B,MAAI,IAAA,CAAC,KAAK,OAAS,EAAA,SAAA;AACnB,MAAA,IAAA,CAAK,IAAI,KAAM,EAAA,CAAA;AAAA,KACnB;AAEA,IAAMD,YAAA,CAAA,MAAA;AAAA,MACF,CAAA,UAAA,EAAa,KAAK,IAAI,CAAA,oCAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA,EAEA,OAAU,GAAA;AACN,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AAC9B,MAAI,IAAA,CAAC,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,SAAA;AACvB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KAClB;AAEA,IAAMA,YAAA,CAAA,MAAA;AAAA,MACF,CAAA,UAAA,EAAa,KAAK,IAAI,CAAA,mCAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA,EAES,GAAA,CAAI,KAAa,KAAuB,EAAA;AAC7C,IAAA,MAAM,UAAU,KAAM,CAAA,OAAA,CAAA;AAEtB,IAAA,MAAM,EAAE,MAAA,EAAQ,eAAgB,EAAA,GAAI,KAAK,SAAU,CAAA,IAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MACV,GAAA,MAAA,CAAO,KAAK,cAAe,CAAAE,YAAA,EAAS,GAAG,CACvC,GAAAA,YAAA,CAAA;AAEN,IAAI,IAAA;AACA,MAAM,KAAA,CAAA,GAAA,GAAM,QAAQ,IAAK,CAAA;AAAA,QACrB,GAAG,OAAA;AAAA,QACH,MAAA,+BAAc,KAAK,KAAA,CAAM,IAAI,IAAK,CAAA,KAAK,GAA/B,EAAA,QAAA,CAAA;AAAA,QACR,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA,KAAA;AAAA,QACT,QAAA,EAAU,QAAQ,QAAY,IAAA,eAAA;AAAA,OACjC,CAAA,CAAA;AAAA,aACI,KAAO,EAAA;AACZ,MAAM,KAAA,CAAA,KAAA;AAAA,QACF,kDAAA;AAAA,QACA,KAAA;AAAA,OACJ,CAAA;AACA,MAAA,KAAA,CAAM,MAAO,EAAA,CAAA;AAAA,KACjB;AAEA,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GAC/B;AAAA,EAES,OAAO,GAAa,EAAA;AACzB,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AACzB,IAAI,IAAA,IAAA,EAAM,IAAI,OAAS,EAAA;AACnB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KAClB;AAEA,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA,CAAA;AAAA,GAC3B;AAAA,EAES,KAAQ,GAAA;AACb,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AACb,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;AAAA,GACvB;AACJ,CAAA,CAAA;AArEiE,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA,CAAA;AAA1D,IAAM,aAAN,GAAA","file":"CronTaskStore.cjs","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"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":["Store","CronTask","CronJob"],"mappings":";;;;;;;;AAIO,IAAM,cAAA,GAAN,MAAM,cAAA,SAAsBA,YAA8B,CAAA;AAAA,EACzD,WAAc,GAAA;AACpB,IAAA,KAAA,CAAMC,qBAAU,EAAA,EAAE,IAAM,EAAA,YAAA,EAAc,CAAA,CAAA;AAAA,GACvC;AAAA,EAEO,QAAW,GAAA;AACjB,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AACjC,MAAI,IAAA,CAAC,KAAK,OAAS,EAAA,SAAA;AACnB,MAAA,IAAA,CAAK,IAAI,KAAM,EAAA,CAAA;AAAA,KAChB;AAEA,IAAAD,YAAA,CAAM,MAAS,GAAA,CAAA,UAAA,EAAa,IAAK,CAAA,IAAI,CAAsC,oCAAA,CAAA,CAAA,CAAA;AAC3E,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAAA,EAEO,OAAU,GAAA;AAChB,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AACjC,MAAI,IAAA,CAAC,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,SAAA;AACvB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KACf;AAEA,IAAAA,YAAA,CAAM,MAAS,GAAA,CAAA,UAAA,EAAa,IAAK,CAAA,IAAI,CAAqC,mCAAA,CAAA,CAAA,CAAA;AAC1E,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAAA,EAEgB,GAAA,CAAI,KAAa,KAAuB,EAAA;AACvD,IAAM,MAAA,EAAE,SAAY,GAAA,KAAA,CAAA;AAEpB,IAAA,MAAM,EAAE,MAAA,EAAQ,eAAgB,EAAA,GAAI,KAAK,SAAU,CAAA,IAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MAAS,GAAA,MAAA,CAAO,KAAK,cAAe,CAAAE,YAAA,EAAS,GAAG,CAAI,GAAAA,YAAA,CAAA;AAEpE,IAAI,IAAA;AACH,MAAM,KAAA,CAAA,GAAA,GAAM,QAAQ,IAAK,CAAA;AAAA,QACxB,GAAG,OAAA;AAAA,QACH,MAAA,+BAAc,KAAK,KAAA,CAAM,IAAI,IAAK,CAAA,KAAK,GAA/B,EAAA,QAAA,CAAA;AAAA,QACR,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA,KAAA;AAAA,QACT,QAAA,EAAU,QAAQ,QAAY,IAAA,eAAA;AAAA,OAC9B,CAAA,CAAA;AAAA,aACO,KAAO,EAAA;AACf,MAAM,KAAA,CAAA,KAAA,CAAM,oDAAoD,KAAK,CAAA,CAAA;AACrE,MAAA,KAAK,MAAM,MAAO,EAAA,CAAA;AAAA,KACnB;AAEA,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GAC5B;AAAA,EAEgB,OAAO,GAAa,EAAA;AACnC,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AACzB,IAAI,IAAA,IAAA,EAAM,IAAI,OAAS,EAAA;AACtB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KACf;AAEA,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA,CAAA;AAAA,GACxB;AAAA,EAEgB,KAAQ,GAAA;AACvB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AACb,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;AAAA,GACpB;AACD,CAAA,CAAA;AA5DiE,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA,CAAA;AAA1D,IAAM,aAAN,GAAA","file":"CronTaskStore.cjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { CronJob } from 'cron';\nimport { CronTask } from './CronTask';\n\nexport class CronTaskStore extends Store<CronTask, 'cron-tasks'> {\n\tpublic constructor() {\n\t\tsuper(CronTask, { name: 'cron-tasks' });\n\t}\n\n\tpublic startAll() {\n\t\tfor (const task of this.values()) {\n\t\t\tif (!task.enabled) continue;\n\t\t\ttask.job.start();\n\t\t}\n\n\t\tStore.logger?.(`[STORE => ${this.name}] [START] Started all cronjob tasks.`);\n\t\treturn this;\n\t}\n\n\tpublic stopAll() {\n\t\tfor (const task of this.values()) {\n\t\t\tif (!task.job.running) continue;\n\t\t\ttask.job.stop();\n\t\t}\n\n\t\tStore.logger?.(`[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`);\n\t\treturn this;\n\t}\n\n\tpublic override set(key: string, value: CronTask): this {\n\t\tconst { options } = value;\n\n\t\tconst { sentry, defaultTimezone } = this.container.cron;\n\t\tconst cronJob = sentry ? sentry.cron.instrumentCron(CronJob, key) : CronJob;\n\n\t\ttry {\n\t\t\tvalue.job = cronJob.from({\n\t\t\t\t...options,\n\t\t\t\tonTick: () => void value.run.bind(value)(),\n\t\t\t\tstart: false,\n\t\t\t\tcontext: value,\n\t\t\t\ttimeZone: options.timeZone ?? defaultTimezone\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tvalue.error('Encountered an error while creating the cron job', error);\n\t\t\tvoid value.unload();\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string) {\n\t\tconst task = this.get(key);\n\t\tif (task?.job.running) {\n\t\t\ttask.job.stop();\n\t\t}\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear() {\n\t\tthis.stopAll();\n\t\treturn super.clear();\n\t}\n}\n"]}
@@ -22,22 +22,10 @@ var _CronTaskPlugin = class _CronTaskPlugin extends framework.Plugin {
22
22
  };
23
23
  __name(_CronTaskPlugin, "CronTaskPlugin");
24
24
  var CronTaskPlugin = _CronTaskPlugin;
25
- framework.SapphireClient.plugins.registerPreGenericsInitializationHook(
26
- CronTaskPlugin[framework.preGenericsInitialization],
27
- "Cron-Task-PreGenericsInitialization"
28
- );
29
- framework.SapphireClient.plugins.registerPostInitializationHook(
30
- CronTaskPlugin[framework.postInitialization],
31
- "Cron-Task-PostInitialization"
32
- );
33
- framework.SapphireClient.plugins.registerPreLoginHook(
34
- CronTaskPlugin[framework.preLogin],
35
- "Cron-Task-PreLogin"
36
- );
37
- framework.SapphireClient.plugins.registerPostLoginHook(
38
- CronTaskPlugin[framework.postLogin],
39
- "Cron-Task-PostLogin"
40
- );
25
+ framework.SapphireClient.plugins.registerPreGenericsInitializationHook(CronTaskPlugin[framework.preGenericsInitialization], "Cron-Task-PreGenericsInitialization");
26
+ framework.SapphireClient.plugins.registerPostInitializationHook(CronTaskPlugin[framework.postInitialization], "Cron-Task-PostInitialization");
27
+ framework.SapphireClient.plugins.registerPreLoginHook(CronTaskPlugin[framework.preLogin], "Cron-Task-PreLogin");
28
+ framework.SapphireClient.plugins.registerPostLoginHook(CronTaskPlugin[framework.postLogin], "Cron-Task-PostLogin");
41
29
 
42
30
  exports.CronTaskPlugin = CronTaskPlugin;
43
31
  //# sourceMappingURL=register.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","container","CronTaskHandler","postInitialization","CronTaskStore","preLogin","postLogin","SapphireClient"],"mappings":";;;;;;;AAcO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,gBAAO,CAAA;AAAA,EACvC,QAAQC,mCAAyB,CAAA,CAE7B,OACF,EAAA;AACE,IAAAC,mBAAA,CAAU,IAAO,GAAA,IAAIC,yBAAgB,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,GACrD;AAAA,EAEA,QAAQC,4BAAkB,CAAwB,GAAA;AAC9C,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAIC,uBAAA,EAAe,CAAA,CAAA;AAAA,GAC5C;AAAA,EAEA,cAAcC,kBAAQ,CAAwB,GAAA;AAC1C,IAAI,IAAAJ,mBAAA,CAAU,KAAK,aAAe,EAAA,OAAA;AAClC,IAAAA,mBAAA,CAAU,IAAK,CAAA,MAAA,GAAS,MAAM,OAAO,cAAc,CAC9C,CAAA,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,OAAO,CACzB,CAAA,KAAA,CAAM,MAAM,KAAS,CAAA,CAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,QAAQK,mBAAS,CAAwB,GAAA;AACrC,IAAAL,mBAAA,CAAU,KAAK,QAAS,EAAA,CAAA;AAAA,GAC5B;AACJ,CAAA,CAAA;AAtB2C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAApC,IAAM,cAAN,GAAA,gBAAA;AAwBPM,wBAAA,CAAe,OAAQ,CAAA,qCAAA;AAAA,EACnB,eAAeP,mCAAyB,CAAA;AAAA,EACxC,qCAAA;AACJ,CAAA,CAAA;AAEAO,wBAAA,CAAe,OAAQ,CAAA,8BAAA;AAAA,EACnB,eAAeJ,4BAAkB,CAAA;AAAA,EACjC,8BAAA;AACJ,CAAA,CAAA;AAEAI,wBAAA,CAAe,OAAQ,CAAA,oBAAA;AAAA,EACnB,eAAeF,kBAAQ,CAAA;AAAA,EACvB,oBAAA;AACJ,CAAA,CAAA;AAEAE,wBAAA,CAAe,OAAQ,CAAA,qBAAA;AAAA,EACnB,eAAeD,mBAAS,CAAA;AAAA,EACxB,qBAAA;AACJ,CAAA","file":"register.cjs","sourcesContent":["import \"./index\";\n\nimport {\n container,\n Plugin,\n postInitialization,\n postLogin,\n preGenericsInitialization,\n preLogin,\n SapphireClient,\n} from \"@sapphire/framework\";\nimport type { ClientOptions } from \"discord.js\";\nimport { CronTaskHandler, CronTaskStore } from \"./index\";\n\nexport class CronTaskPlugin extends Plugin {\n static [preGenericsInitialization](\n this: SapphireClient,\n options: ClientOptions,\n ) {\n container.cron = new CronTaskHandler(options.cron);\n }\n\n static [postInitialization](this: SapphireClient) {\n this.stores.register(new CronTaskStore());\n }\n\n static async [preLogin](this: SapphireClient) {\n if (container.cron.disableSentry) return;\n container.cron.sentry = await import(\"@sentry/node\")\n .then((mod) => mod.default)\n .catch(() => undefined);\n }\n\n static [postLogin](this: SapphireClient) {\n container.cron.startAll();\n }\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n CronTaskPlugin[preGenericsInitialization],\n \"Cron-Task-PreGenericsInitialization\",\n);\n\nSapphireClient.plugins.registerPostInitializationHook(\n CronTaskPlugin[postInitialization],\n \"Cron-Task-PostInitialization\",\n);\n\nSapphireClient.plugins.registerPreLoginHook(\n CronTaskPlugin[preLogin],\n \"Cron-Task-PreLogin\",\n);\n\nSapphireClient.plugins.registerPostLoginHook(\n CronTaskPlugin[postLogin],\n \"Cron-Task-PostLogin\",\n);\n"]}
1
+ {"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","container","CronTaskHandler","postInitialization","CronTaskStore","preLogin","postLogin","SapphireClient"],"mappings":";;;;;;;AAMO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuBA,gBAAO,CAAA;AAAA,EAC1C,QAAeC,mCAAyB,CAAA,CAAwB,OAAwB,EAAA;AACvF,IAAAC,mBAAA,CAAU,IAAO,GAAA,IAAIC,yBAAgB,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,GAClD;AAAA,EAEA,QAAeC,4BAAkB,CAAwB,GAAA;AACxD,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAIC,uBAAA,EAAe,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,cAAqBC,kBAAQ,CAAwB,GAAA;AACpD,IAAI,IAAAJ,mBAAA,CAAU,KAAK,aAAe,EAAA,OAAA;AAClC,IAAAA,mBAAA,CAAU,IAAK,CAAA,MAAA,GAAS,MAAM,OAAO,cAAc,CAAE,CAAA,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,OAAO,CAAE,CAAA,KAAA,CAAM,MAAM,KAAS,CAAA,CAAA,CAAA;AAAA,GACtG;AAAA,EAEA,QAAeK,mBAAS,CAAwB,GAAA;AAC/C,IAAAL,mBAAA,CAAU,KAAK,QAAS,EAAA,CAAA;AAAA,GACzB;AACD,CAAA,CAAA;AAjB2C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAApC,IAAM,cAAN,GAAA,gBAAA;AAmBPM,wBAAA,CAAe,OAAQ,CAAA,qCAAA,CAAsC,cAAe,CAAAP,mCAAyB,GAAG,qCAAqC,CAAA,CAAA;AAE7IO,wBAAA,CAAe,OAAQ,CAAA,8BAAA,CAA+B,cAAe,CAAAJ,4BAAkB,GAAG,8BAA8B,CAAA,CAAA;AAExHI,wBAAA,CAAe,OAAQ,CAAA,oBAAA,CAAqB,cAAe,CAAAF,kBAAQ,GAAG,oBAAoB,CAAA,CAAA;AAE1FE,wBAAA,CAAe,OAAQ,CAAA,qBAAA,CAAsB,cAAe,CAAAD,mBAAS,GAAG,qBAAqB,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, preLogin, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { CronTaskHandler, CronTaskStore } from './index';\n\nexport class CronTaskPlugin extends Plugin {\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions) {\n\t\tcontainer.cron = new CronTaskHandler(options.cron);\n\t}\n\n\tpublic static [postInitialization](this: SapphireClient) {\n\t\tthis.stores.register(new CronTaskStore());\n\t}\n\n\tpublic static async [preLogin](this: SapphireClient) {\n\t\tif (container.cron.disableSentry) return;\n\t\tcontainer.cron.sentry = await import('@sentry/node').then((mod) => mod.default).catch(() => undefined);\n\t}\n\n\tpublic static [postLogin](this: SapphireClient) {\n\t\tcontainer.cron.startAll();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(CronTaskPlugin[preGenericsInitialization], 'Cron-Task-PreGenericsInitialization');\n\nSapphireClient.plugins.registerPostInitializationHook(CronTaskPlugin[postInitialization], 'Cron-Task-PostInitialization');\n\nSapphireClient.plugins.registerPreLoginHook(CronTaskPlugin[preLogin], 'Cron-Task-PreLogin');\n\nSapphireClient.plugins.registerPostLoginHook(CronTaskPlugin[postLogin], 'Cron-Task-PostLogin');\n"]}
@@ -1,6 +1,6 @@
1
1
  import { Piece, Store } from '@sapphire/pieces';
2
- import { CronJobParams, CronJob } from 'cron';
3
2
  import { Awaitable } from '@sapphire/framework';
3
+ import { CronJobParams, CronJob } from 'cron';
4
4
  import Sentry from '@sentry/node';
5
5
 
6
6
  interface CronTaskHandlerOptions {
@@ -19,9 +19,9 @@ interface CronTaskHandlerOptions {
19
19
  */
20
20
  disableSentry?: boolean;
21
21
  }
22
- type CronJobOptions = Omit<CronJobParams<null, CronTask>, "onTick" | "onComplete" | "start" | "context" | "utcOffset">;
22
+ type CronJobOptions = Omit<CronJobParams<null, CronTask>, 'onTick' | 'onComplete' | 'start' | 'context' | 'utcOffset'>;
23
23
 
24
- declare abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, "cron-tasks"> {
24
+ declare abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, 'cron-tasks'> {
25
25
  job: CronJob<null, CronTask>;
26
26
  constructor(context: CronTask.LoaderContext, options: Options);
27
27
  abstract run(): Awaitable<unknown>;
@@ -35,10 +35,10 @@ declare namespace CronTask {
35
35
  type Options = Piece.Options & CronJobOptions;
36
36
  /** @deprecated Use {@linkcode LoaderContext} instead. */
37
37
  type Context = LoaderContext;
38
- type LoaderContext = Piece.LoaderContext<"cron-tasks">;
38
+ type LoaderContext = Piece.LoaderContext<'cron-tasks'>;
39
39
  }
40
40
 
41
- declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
41
+ declare class CronTaskStore extends Store<CronTask, 'cron-tasks'> {
42
42
  constructor();
43
43
  startAll(): this;
44
44
  stopAll(): this;
@@ -48,7 +48,7 @@ declare class CronTaskStore extends Store<CronTask, "cron-tasks"> {
48
48
  }
49
49
 
50
50
  declare class CronTaskHandler {
51
- defaultTimezone?: CronTaskHandlerOptions["defaultTimezone"];
51
+ defaultTimezone?: CronTaskHandlerOptions['defaultTimezone'];
52
52
  disableSentry?: boolean;
53
53
  sentry?: typeof Sentry;
54
54
  constructor(options?: CronTaskHandlerOptions);
@@ -57,15 +57,15 @@ declare class CronTaskHandler {
57
57
  private get store();
58
58
  }
59
59
 
60
- declare module "@sapphire/pieces" {
60
+ declare module '@sapphire/pieces' {
61
61
  interface Container {
62
62
  cron: CronTaskHandler;
63
63
  }
64
64
  interface StoreRegistryEntries {
65
- "cron-tasks": CronTaskStore;
65
+ 'cron-tasks': CronTaskStore;
66
66
  }
67
67
  }
68
- declare module "discord.js" {
68
+ declare module 'discord.js' {
69
69
  interface ClientOptions {
70
70
  cron?: CronTaskHandlerOptions;
71
71
  }
@@ -4,7 +4,7 @@ export * from './lib/structures/CronTask.mjs';
4
4
  export * from './lib/structures/CronTaskStore.mjs';
5
5
  export * from './lib/types/CronTaskTypes.mjs';
6
6
 
7
- var version = "1.5.1";
7
+ var version = "2.0.0-next.06c51a6";
8
8
 
9
9
  export { version };
10
10
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.mjs","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.5.1\";\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.mjs","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\tinterface Container {\n\t\tcron: CronTaskHandler;\n\t}\n\n\tinterface StoreRegistryEntries {\n\t\t'cron-tasks': CronTaskStore;\n\t}\n}\n\ndeclare module 'discord.js' {\n\texport interface ClientOptions {\n\t\tcron?: CronTaskHandlerOptions;\n\t}\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 = '2.0.0-next.06c51a6';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAKzB,YAAY,OAAkC,EAAA;AAJ9C,IAAA,aAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AAGI,IAAA,IAAA,CAAK,kBAAkB,OAAS,EAAA,eAAA,CAAA;AAChC,IAAA,IAAA,CAAK,gBAAgB,OAAS,EAAA,aAAA,CAAA;AAAA,GAClC;AAAA,EAEA,QAAW,GAAA;AACP,IAAA,IAAA,CAAK,MAAM,QAAS,EAAA,CAAA;AAAA,GACxB;AAAA,EAEA,OAAU,GAAA;AACN,IAAA,IAAA,CAAK,MAAM,OAAQ,EAAA,CAAA;AAAA,GACvB;AAAA,EAEA,IAAY,KAAQ,GAAA;AAChB,IAAO,OAAA,SAAA,CAAU,MAAO,CAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAAA,GAC5C;AACJ,CAAA,CAAA;AArB6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"CronTaskHandler.mjs","sourcesContent":["import { container } from \"@sapphire/framework\";\nimport type { CronTaskHandlerOptions } from \"./types/CronTaskTypes\";\nimport type Sentry from \"@sentry/node\";\n\nexport class CronTaskHandler {\n defaultTimezone?: CronTaskHandlerOptions[\"defaultTimezone\"];\n disableSentry?: boolean;\n sentry?: typeof Sentry;\n\n constructor(options?: CronTaskHandlerOptions) {\n this.defaultTimezone = options?.defaultTimezone;\n this.disableSentry = options?.disableSentry;\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"]}
1
+ {"version":3,"sources":["../../../src/lib/CronTaskHandler.ts"],"names":[],"mappings":";;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAKrB,YAAY,OAAkC,EAAA;AAJrD,IAAO,aAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AAGN,IAAA,IAAA,CAAK,kBAAkB,OAAS,EAAA,eAAA,CAAA;AAChC,IAAA,IAAA,CAAK,gBAAgB,OAAS,EAAA,aAAA,CAAA;AAAA,GAC/B;AAAA,EAEO,QAAW,GAAA;AACjB,IAAA,IAAA,CAAK,MAAM,QAAS,EAAA,CAAA;AAAA,GACrB;AAAA,EAEO,OAAU,GAAA;AAChB,IAAA,IAAA,CAAK,MAAM,OAAQ,EAAA,CAAA;AAAA,GACpB;AAAA,EAEA,IAAY,KAAQ,GAAA;AACnB,IAAO,OAAA,SAAA,CAAU,MAAO,CAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAAA,GACzC;AACD,CAAA,CAAA;AArB6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"CronTaskHandler.mjs","sourcesContent":["import { container } from '@sapphire/framework';\nimport type Sentry from '@sentry/node';\nimport type { CronTaskHandlerOptions } from './types/CronTaskTypes';\n\nexport class CronTaskHandler {\n\tpublic defaultTimezone?: CronTaskHandlerOptions['defaultTimezone'];\n\tpublic disableSentry?: boolean;\n\tpublic sentry?: typeof Sentry;\n\n\tpublic constructor(options?: CronTaskHandlerOptions) {\n\t\tthis.defaultTimezone = options?.defaultTimezone;\n\t\tthis.disableSentry = options?.disableSentry;\n\t}\n\n\tpublic startAll() {\n\t\tthis.store.startAll();\n\t}\n\n\tpublic stopAll() {\n\t\tthis.store.stopAll();\n\t}\n\n\tprivate get store() {\n\t\treturn container.stores.get('cron-tasks');\n\t}\n}\n"]}
@@ -6,34 +6,19 @@ var _CronTask = class _CronTask extends Piece {
6
6
  super(context, options);
7
7
  }
8
8
  info(message, ...other) {
9
- this.container.logger.info(
10
- `CronTask[${this.name}] ${message}`,
11
- ...other
12
- );
9
+ this.container.logger.info(`CronTask[${this.name}] ${message}`, ...other);
13
10
  }
14
11
  error(message, ...other) {
15
- this.container.logger.error(
16
- `CronTask[${this.name}] ${message}`,
17
- ...other
18
- );
12
+ this.container.logger.error(`CronTask[${this.name}] ${message}`, ...other);
19
13
  }
20
14
  warn(message, ...other) {
21
- this.container.logger.warn(
22
- `CronTask[${this.name}] ${message}`,
23
- ...other
24
- );
15
+ this.container.logger.warn(`CronTask[${this.name}] ${message}`, ...other);
25
16
  }
26
17
  debug(message, ...other) {
27
- this.container.logger.debug(
28
- `CronTask[${this.name}] ${message}`,
29
- ...other
30
- );
18
+ this.container.logger.debug(`CronTask[${this.name}] ${message}`, ...other);
31
19
  }
32
20
  trace(message, ...other) {
33
- this.container.logger.trace(
34
- `CronTask[${this.name}] ${message}`,
35
- ...other
36
- );
21
+ this.container.logger.trace(`CronTask[${this.name}] ${message}`, ...other);
37
22
  }
38
23
  };
39
24
  __name(_CronTask, "CronTask");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/CronTask.ts"],"names":[],"mappings":";;;AAKO,IAAe,SAAA,GAAf,MAAe,SAAA,SAEZ,KAA6B,CAAA;AAAA,EAGnC,WAAA,CAAY,SAAiC,OAAkB,EAAA;AAC3D,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA,CAAA;AAAA,GAC1B;AAAA,EAIA,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACvC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACvC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,IAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AAAA,EAEA,KAAA,CAAM,YAAoB,KAAkB,EAAA;AACxC,IAAA,IAAA,CAAK,UAAU,MAAO,CAAA,KAAA;AAAA,MAClB,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA;AAAA,MACjC,GAAG,KAAA;AAAA,KACP,CAAA;AAAA,GACJ;AACJ,CAAA,CAAA;AA3CuC,MAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAFhC,IAAe,QAAf,GAAA","file":"CronTask.mjs","sourcesContent":["import { Piece } from \"@sapphire/pieces\";\nimport type { CronJob } from \"cron\";\nimport type { CronJobOptions } from \"../types/CronTaskTypes\";\nimport type { Awaitable } from \"@sapphire/framework\";\n\nexport abstract class CronTask<\n Options extends CronTask.Options = CronTask.Options,\n> extends Piece<Options, \"cron-tasks\"> {\n declare job: CronJob<null, CronTask>;\n\n constructor(context: CronTask.LoaderContext, options: Options) {\n super(context, options);\n }\n\n abstract run(): Awaitable<unknown>;\n\n info(message: string, ...other: unknown[]) {\n this.container.logger.info(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n error(message: string, ...other: unknown[]) {\n this.container.logger.error(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n warn(message: string, ...other: unknown[]) {\n this.container.logger.warn(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n debug(message: string, ...other: unknown[]) {\n this.container.logger.debug(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n\n trace(message: string, ...other: unknown[]) {\n this.container.logger.trace(\n `CronTask[${this.name}] ${message}`,\n ...other,\n );\n }\n}\n\nexport namespace CronTask {\n export type Options = Piece.Options & CronJobOptions;\n /** @deprecated Use {@linkcode LoaderContext} instead. */\n export type Context = LoaderContext;\n export type LoaderContext = Piece.LoaderContext<\"cron-tasks\">;\n}\n"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/CronTask.ts"],"names":[],"mappings":";;;AAKO,IAAe,SAAA,GAAf,MAAe,SAAA,SAAsE,KAA6B,CAAA;AAAA,EAGjH,WAAA,CAAY,SAAiC,OAAkB,EAAA;AACrE,IAAA,KAAA,CAAM,SAAS,OAAO,CAAA,CAAA;AAAA,GACvB;AAAA,EAIO,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACjD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GACzE;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AAAA,EAEO,IAAA,CAAK,YAAoB,KAAkB,EAAA;AACjD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GACzE;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AAAA,EAEO,KAAA,CAAM,YAAoB,KAAkB,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,KAAA,CAAM,CAAY,SAAA,EAAA,IAAA,CAAK,IAAI,CAAK,EAAA,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,KAAK,CAAA,CAAA;AAAA,GAC1E;AACD,CAAA,CAAA;AA5ByH,MAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;AAAlH,IAAe,QAAf,GAAA","file":"CronTask.mjs","sourcesContent":["import type { Awaitable } from '@sapphire/framework';\nimport { Piece } from '@sapphire/pieces';\nimport type { CronJob } from 'cron';\nimport type { CronJobOptions } from '../types/CronTaskTypes';\n\nexport abstract class CronTask<Options extends CronTask.Options = CronTask.Options> extends Piece<Options, 'cron-tasks'> {\n\tpublic declare job: CronJob<null, CronTask>;\n\n\tpublic constructor(context: CronTask.LoaderContext, options: Options) {\n\t\tsuper(context, options);\n\t}\n\n\tpublic abstract run(): Awaitable<unknown>;\n\n\tpublic info(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.info(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic error(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.error(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic warn(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.warn(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic debug(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.debug(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n\n\tpublic trace(message: string, ...other: unknown[]) {\n\t\tthis.container.logger.trace(`CronTask[${this.name}] ${message}`, ...other);\n\t}\n}\n\nexport namespace CronTask {\n\texport type Options = Piece.Options & CronJobOptions;\n\t/** @deprecated Use {@linkcode LoaderContext} instead. */\n\texport type Context = LoaderContext;\n\texport type LoaderContext = Piece.LoaderContext<'cron-tasks'>;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __name } from '../../chunk-2JTKI4GS.mjs';
2
2
  import { Store } from '@sapphire/pieces';
3
- import { CronTask } from './CronTask.mjs';
4
3
  import { CronJob } from 'cron';
4
+ import { CronTask } from './CronTask.mjs';
5
5
 
6
6
  var _CronTaskStore = class _CronTaskStore extends Store {
7
7
  constructor() {
@@ -12,9 +12,7 @@ var _CronTaskStore = class _CronTaskStore extends Store {
12
12
  if (!task.enabled) continue;
13
13
  task.job.start();
14
14
  }
15
- Store.logger?.(
16
- `[STORE => ${this.name}] [START] Started all cronjob tasks.`
17
- );
15
+ Store.logger?.(`[STORE => ${this.name}] [START] Started all cronjob tasks.`);
18
16
  return this;
19
17
  }
20
18
  stopAll() {
@@ -22,13 +20,11 @@ var _CronTaskStore = class _CronTaskStore extends Store {
22
20
  if (!task.job.running) continue;
23
21
  task.job.stop();
24
22
  }
25
- Store.logger?.(
26
- `[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`
27
- );
23
+ Store.logger?.(`[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`);
28
24
  return this;
29
25
  }
30
26
  set(key, value) {
31
- const options = value.options;
27
+ const { options } = value;
32
28
  const { sentry, defaultTimezone } = this.container.cron;
33
29
  const cronJob = sentry ? sentry.cron.instrumentCron(CronJob, key) : CronJob;
34
30
  try {
@@ -40,11 +36,8 @@ var _CronTaskStore = class _CronTaskStore extends Store {
40
36
  timeZone: options.timeZone ?? defaultTimezone
41
37
  });
42
38
  } catch (error) {
43
- value.error(
44
- "Encountered an error while creating the cron job",
45
- error
46
- );
47
- value.unload();
39
+ value.error("Encountered an error while creating the cron job", error);
40
+ void value.unload();
48
41
  }
49
42
  return super.set(key, value);
50
43
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,cAAA,GAAN,MAAM,cAAA,SAAsB,KAA8B,CAAA;AAAA,EAC7D,WAAc,GAAA;AACV,IAAA,KAAA,CAAM,QAAU,EAAA,EAAE,IAAM,EAAA,YAAA,EAAc,CAAA,CAAA;AAAA,GAC1C;AAAA,EAEA,QAAW,GAAA;AACP,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AAC9B,MAAI,IAAA,CAAC,KAAK,OAAS,EAAA,SAAA;AACnB,MAAA,IAAA,CAAK,IAAI,KAAM,EAAA,CAAA;AAAA,KACnB;AAEA,IAAM,KAAA,CAAA,MAAA;AAAA,MACF,CAAA,UAAA,EAAa,KAAK,IAAI,CAAA,oCAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA,EAEA,OAAU,GAAA;AACN,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AAC9B,MAAI,IAAA,CAAC,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,SAAA;AACvB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KAClB;AAEA,IAAM,KAAA,CAAA,MAAA;AAAA,MACF,CAAA,UAAA,EAAa,KAAK,IAAI,CAAA,mCAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA,EAES,GAAA,CAAI,KAAa,KAAuB,EAAA;AAC7C,IAAA,MAAM,UAAU,KAAM,CAAA,OAAA,CAAA;AAEtB,IAAA,MAAM,EAAE,MAAA,EAAQ,eAAgB,EAAA,GAAI,KAAK,SAAU,CAAA,IAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MACV,GAAA,MAAA,CAAO,KAAK,cAAe,CAAA,OAAA,EAAS,GAAG,CACvC,GAAA,OAAA,CAAA;AAEN,IAAI,IAAA;AACA,MAAM,KAAA,CAAA,GAAA,GAAM,QAAQ,IAAK,CAAA;AAAA,QACrB,GAAG,OAAA;AAAA,QACH,MAAA,+BAAc,KAAK,KAAA,CAAM,IAAI,IAAK,CAAA,KAAK,GAA/B,EAAA,QAAA,CAAA;AAAA,QACR,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA,KAAA;AAAA,QACT,QAAA,EAAU,QAAQ,QAAY,IAAA,eAAA;AAAA,OACjC,CAAA,CAAA;AAAA,aACI,KAAO,EAAA;AACZ,MAAM,KAAA,CAAA,KAAA;AAAA,QACF,kDAAA;AAAA,QACA,KAAA;AAAA,OACJ,CAAA;AACA,MAAA,KAAA,CAAM,MAAO,EAAA,CAAA;AAAA,KACjB;AAEA,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GAC/B;AAAA,EAES,OAAO,GAAa,EAAA;AACzB,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AACzB,IAAI,IAAA,IAAA,EAAM,IAAI,OAAS,EAAA;AACnB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KAClB;AAEA,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA,CAAA;AAAA,GAC3B;AAAA,EAES,KAAQ,GAAA;AACb,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AACb,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;AAAA,GACvB;AACJ,CAAA,CAAA;AArEiE,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA,CAAA;AAA1D,IAAM,aAAN,GAAA","file":"CronTaskStore.mjs","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"]}
1
+ {"version":3,"sources":["../../../../src/lib/structures/CronTaskStore.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,cAAA,GAAN,MAAM,cAAA,SAAsB,KAA8B,CAAA;AAAA,EACzD,WAAc,GAAA;AACpB,IAAA,KAAA,CAAM,QAAU,EAAA,EAAE,IAAM,EAAA,YAAA,EAAc,CAAA,CAAA;AAAA,GACvC;AAAA,EAEO,QAAW,GAAA;AACjB,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AACjC,MAAI,IAAA,CAAC,KAAK,OAAS,EAAA,SAAA;AACnB,MAAA,IAAA,CAAK,IAAI,KAAM,EAAA,CAAA;AAAA,KAChB;AAEA,IAAA,KAAA,CAAM,MAAS,GAAA,CAAA,UAAA,EAAa,IAAK,CAAA,IAAI,CAAsC,oCAAA,CAAA,CAAA,CAAA;AAC3E,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAAA,EAEO,OAAU,GAAA;AAChB,IAAW,KAAA,MAAA,IAAA,IAAQ,IAAK,CAAA,MAAA,EAAU,EAAA;AACjC,MAAI,IAAA,CAAC,IAAK,CAAA,GAAA,CAAI,OAAS,EAAA,SAAA;AACvB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KACf;AAEA,IAAA,KAAA,CAAM,MAAS,GAAA,CAAA,UAAA,EAAa,IAAK,CAAA,IAAI,CAAqC,mCAAA,CAAA,CAAA,CAAA;AAC1E,IAAO,OAAA,IAAA,CAAA;AAAA,GACR;AAAA,EAEgB,GAAA,CAAI,KAAa,KAAuB,EAAA;AACvD,IAAM,MAAA,EAAE,SAAY,GAAA,KAAA,CAAA;AAEpB,IAAA,MAAM,EAAE,MAAA,EAAQ,eAAgB,EAAA,GAAI,KAAK,SAAU,CAAA,IAAA,CAAA;AACnD,IAAA,MAAM,UAAU,MAAS,GAAA,MAAA,CAAO,KAAK,cAAe,CAAA,OAAA,EAAS,GAAG,CAAI,GAAA,OAAA,CAAA;AAEpE,IAAI,IAAA;AACH,MAAM,KAAA,CAAA,GAAA,GAAM,QAAQ,IAAK,CAAA;AAAA,QACxB,GAAG,OAAA;AAAA,QACH,MAAA,+BAAc,KAAK,KAAA,CAAM,IAAI,IAAK,CAAA,KAAK,GAA/B,EAAA,QAAA,CAAA;AAAA,QACR,KAAO,EAAA,KAAA;AAAA,QACP,OAAS,EAAA,KAAA;AAAA,QACT,QAAA,EAAU,QAAQ,QAAY,IAAA,eAAA;AAAA,OAC9B,CAAA,CAAA;AAAA,aACO,KAAO,EAAA;AACf,MAAM,KAAA,CAAA,KAAA,CAAM,oDAAoD,KAAK,CAAA,CAAA;AACrE,MAAA,KAAK,MAAM,MAAO,EAAA,CAAA;AAAA,KACnB;AAEA,IAAO,OAAA,KAAA,CAAM,GAAI,CAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,GAC5B;AAAA,EAEgB,OAAO,GAAa,EAAA;AACnC,IAAM,MAAA,IAAA,GAAO,IAAK,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AACzB,IAAI,IAAA,IAAA,EAAM,IAAI,OAAS,EAAA;AACtB,MAAA,IAAA,CAAK,IAAI,IAAK,EAAA,CAAA;AAAA,KACf;AAEA,IAAO,OAAA,KAAA,CAAM,OAAO,GAAG,CAAA,CAAA;AAAA,GACxB;AAAA,EAEgB,KAAQ,GAAA;AACvB,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AACb,IAAA,OAAO,MAAM,KAAM,EAAA,CAAA;AAAA,GACpB;AACD,CAAA,CAAA;AA5DiE,MAAA,CAAA,cAAA,EAAA,eAAA,CAAA,CAAA;AAA1D,IAAM,aAAN,GAAA","file":"CronTaskStore.mjs","sourcesContent":["import { Store } from '@sapphire/pieces';\nimport { CronJob } from 'cron';\nimport { CronTask } from './CronTask';\n\nexport class CronTaskStore extends Store<CronTask, 'cron-tasks'> {\n\tpublic constructor() {\n\t\tsuper(CronTask, { name: 'cron-tasks' });\n\t}\n\n\tpublic startAll() {\n\t\tfor (const task of this.values()) {\n\t\t\tif (!task.enabled) continue;\n\t\t\ttask.job.start();\n\t\t}\n\n\t\tStore.logger?.(`[STORE => ${this.name}] [START] Started all cronjob tasks.`);\n\t\treturn this;\n\t}\n\n\tpublic stopAll() {\n\t\tfor (const task of this.values()) {\n\t\t\tif (!task.job.running) continue;\n\t\t\ttask.job.stop();\n\t\t}\n\n\t\tStore.logger?.(`[STORE => ${this.name}] [STOP] Stopped all cronjob tasks.`);\n\t\treturn this;\n\t}\n\n\tpublic override set(key: string, value: CronTask): this {\n\t\tconst { options } = value;\n\n\t\tconst { sentry, defaultTimezone } = this.container.cron;\n\t\tconst cronJob = sentry ? sentry.cron.instrumentCron(CronJob, key) : CronJob;\n\n\t\ttry {\n\t\t\tvalue.job = cronJob.from({\n\t\t\t\t...options,\n\t\t\t\tonTick: () => void value.run.bind(value)(),\n\t\t\t\tstart: false,\n\t\t\t\tcontext: value,\n\t\t\t\ttimeZone: options.timeZone ?? defaultTimezone\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tvalue.error('Encountered an error while creating the cron job', error);\n\t\t\tvoid value.unload();\n\t\t}\n\n\t\treturn super.set(key, value);\n\t}\n\n\tpublic override delete(key: string) {\n\t\tconst task = this.get(key);\n\t\tif (task?.job.running) {\n\t\t\ttask.job.stop();\n\t\t}\n\n\t\treturn super.delete(key);\n\t}\n\n\tpublic override clear() {\n\t\tthis.stopAll();\n\t\treturn super.clear();\n\t}\n}\n"]}
@@ -19,22 +19,10 @@ var _CronTaskPlugin = class _CronTaskPlugin extends Plugin {
19
19
  };
20
20
  __name(_CronTaskPlugin, "CronTaskPlugin");
21
21
  var CronTaskPlugin = _CronTaskPlugin;
22
- SapphireClient.plugins.registerPreGenericsInitializationHook(
23
- CronTaskPlugin[preGenericsInitialization],
24
- "Cron-Task-PreGenericsInitialization"
25
- );
26
- SapphireClient.plugins.registerPostInitializationHook(
27
- CronTaskPlugin[postInitialization],
28
- "Cron-Task-PostInitialization"
29
- );
30
- SapphireClient.plugins.registerPreLoginHook(
31
- CronTaskPlugin[preLogin],
32
- "Cron-Task-PreLogin"
33
- );
34
- SapphireClient.plugins.registerPostLoginHook(
35
- CronTaskPlugin[postLogin],
36
- "Cron-Task-PostLogin"
37
- );
22
+ SapphireClient.plugins.registerPreGenericsInitializationHook(CronTaskPlugin[preGenericsInitialization], "Cron-Task-PreGenericsInitialization");
23
+ SapphireClient.plugins.registerPostInitializationHook(CronTaskPlugin[postInitialization], "Cron-Task-PostInitialization");
24
+ SapphireClient.plugins.registerPreLoginHook(CronTaskPlugin[preLogin], "Cron-Task-PreLogin");
25
+ SapphireClient.plugins.registerPostLoginHook(CronTaskPlugin[postLogin], "Cron-Task-PostLogin");
38
26
 
39
27
  export { CronTaskPlugin };
40
28
  //# sourceMappingURL=register.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAcO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,MAAO,CAAA;AAAA,EACvC,QAAQ,yBAAyB,CAAA,CAE7B,OACF,EAAA;AACE,IAAA,SAAA,CAAU,IAAO,GAAA,IAAI,eAAgB,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,GACrD;AAAA,EAEA,QAAQ,kBAAkB,CAAwB,GAAA;AAC9C,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAI,aAAA,EAAe,CAAA,CAAA;AAAA,GAC5C;AAAA,EAEA,cAAc,QAAQ,CAAwB,GAAA;AAC1C,IAAI,IAAA,SAAA,CAAU,KAAK,aAAe,EAAA,OAAA;AAClC,IAAA,SAAA,CAAU,IAAK,CAAA,MAAA,GAAS,MAAM,OAAO,cAAc,CAC9C,CAAA,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,OAAO,CACzB,CAAA,KAAA,CAAM,MAAM,KAAS,CAAA,CAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,QAAQ,SAAS,CAAwB,GAAA;AACrC,IAAA,SAAA,CAAU,KAAK,QAAS,EAAA,CAAA;AAAA,GAC5B;AACJ,CAAA,CAAA;AAtB2C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAApC,IAAM,cAAN,GAAA,gBAAA;AAwBP,cAAA,CAAe,OAAQ,CAAA,qCAAA;AAAA,EACnB,eAAe,yBAAyB,CAAA;AAAA,EACxC,qCAAA;AACJ,CAAA,CAAA;AAEA,cAAA,CAAe,OAAQ,CAAA,8BAAA;AAAA,EACnB,eAAe,kBAAkB,CAAA;AAAA,EACjC,8BAAA;AACJ,CAAA,CAAA;AAEA,cAAA,CAAe,OAAQ,CAAA,oBAAA;AAAA,EACnB,eAAe,QAAQ,CAAA;AAAA,EACvB,oBAAA;AACJ,CAAA,CAAA;AAEA,cAAA,CAAe,OAAQ,CAAA,qBAAA;AAAA,EACnB,eAAe,SAAS,CAAA;AAAA,EACxB,qBAAA;AACJ,CAAA","file":"register.mjs","sourcesContent":["import \"./index\";\n\nimport {\n container,\n Plugin,\n postInitialization,\n postLogin,\n preGenericsInitialization,\n preLogin,\n SapphireClient,\n} from \"@sapphire/framework\";\nimport type { ClientOptions } from \"discord.js\";\nimport { CronTaskHandler, CronTaskStore } from \"./index\";\n\nexport class CronTaskPlugin extends Plugin {\n static [preGenericsInitialization](\n this: SapphireClient,\n options: ClientOptions,\n ) {\n container.cron = new CronTaskHandler(options.cron);\n }\n\n static [postInitialization](this: SapphireClient) {\n this.stores.register(new CronTaskStore());\n }\n\n static async [preLogin](this: SapphireClient) {\n if (container.cron.disableSentry) return;\n container.cron.sentry = await import(\"@sentry/node\")\n .then((mod) => mod.default)\n .catch(() => undefined);\n }\n\n static [postLogin](this: SapphireClient) {\n container.cron.startAll();\n }\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(\n CronTaskPlugin[preGenericsInitialization],\n \"Cron-Task-PreGenericsInitialization\",\n);\n\nSapphireClient.plugins.registerPostInitializationHook(\n CronTaskPlugin[postInitialization],\n \"Cron-Task-PostInitialization\",\n);\n\nSapphireClient.plugins.registerPreLoginHook(\n CronTaskPlugin[preLogin],\n \"Cron-Task-PreLogin\",\n);\n\nSapphireClient.plugins.registerPostLoginHook(\n CronTaskPlugin[postLogin],\n \"Cron-Task-PostLogin\",\n);\n"]}
1
+ {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAMO,IAAM,eAAA,GAAN,MAAM,eAAA,SAAuB,MAAO,CAAA;AAAA,EAC1C,QAAe,yBAAyB,CAAA,CAAwB,OAAwB,EAAA;AACvF,IAAA,SAAA,CAAU,IAAO,GAAA,IAAI,eAAgB,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,GAClD;AAAA,EAEA,QAAe,kBAAkB,CAAwB,GAAA;AACxD,IAAA,IAAA,CAAK,MAAO,CAAA,QAAA,CAAS,IAAI,aAAA,EAAe,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,cAAqB,QAAQ,CAAwB,GAAA;AACpD,IAAI,IAAA,SAAA,CAAU,KAAK,aAAe,EAAA,OAAA;AAClC,IAAA,SAAA,CAAU,IAAK,CAAA,MAAA,GAAS,MAAM,OAAO,cAAc,CAAE,CAAA,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,OAAO,CAAE,CAAA,KAAA,CAAM,MAAM,KAAS,CAAA,CAAA,CAAA;AAAA,GACtG;AAAA,EAEA,QAAe,SAAS,CAAwB,GAAA;AAC/C,IAAA,SAAA,CAAU,KAAK,QAAS,EAAA,CAAA;AAAA,GACzB;AACD,CAAA,CAAA;AAjB2C,MAAA,CAAA,eAAA,EAAA,gBAAA,CAAA,CAAA;AAApC,IAAM,cAAN,GAAA,gBAAA;AAmBP,cAAA,CAAe,OAAQ,CAAA,qCAAA,CAAsC,cAAe,CAAA,yBAAyB,GAAG,qCAAqC,CAAA,CAAA;AAE7I,cAAA,CAAe,OAAQ,CAAA,8BAAA,CAA+B,cAAe,CAAA,kBAAkB,GAAG,8BAA8B,CAAA,CAAA;AAExH,cAAA,CAAe,OAAQ,CAAA,oBAAA,CAAqB,cAAe,CAAA,QAAQ,GAAG,oBAAoB,CAAA,CAAA;AAE1F,cAAA,CAAe,OAAQ,CAAA,qBAAA,CAAsB,cAAe,CAAA,SAAS,GAAG,qBAAqB,CAAA","file":"register.mjs","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, preLogin, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { CronTaskHandler, CronTaskStore } from './index';\n\nexport class CronTaskPlugin extends Plugin {\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions) {\n\t\tcontainer.cron = new CronTaskHandler(options.cron);\n\t}\n\n\tpublic static [postInitialization](this: SapphireClient) {\n\t\tthis.stores.register(new CronTaskStore());\n\t}\n\n\tpublic static async [preLogin](this: SapphireClient) {\n\t\tif (container.cron.disableSentry) return;\n\t\tcontainer.cron.sentry = await import('@sentry/node').then((mod) => mod.default).catch(() => undefined);\n\t}\n\n\tpublic static [postLogin](this: SapphireClient) {\n\t\tcontainer.cron.startAll();\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(CronTaskPlugin[preGenericsInitialization], 'Cron-Task-PreGenericsInitialization');\n\nSapphireClient.plugins.registerPostInitializationHook(CronTaskPlugin[postInitialization], 'Cron-Task-PostInitialization');\n\nSapphireClient.plugins.registerPreLoginHook(CronTaskPlugin[preLogin], 'Cron-Task-PreLogin');\n\nSapphireClient.plugins.registerPostLoginHook(CronTaskPlugin[postLogin], 'Cron-Task-PostLogin');\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
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.5.2",
4
+ "version": "2.0.0-next.06c51a6",
5
5
  "author": "Seren_Modz 21 <seren@kings-world.net>",
6
6
  "license": "MIT",
7
7
  "main": "dist/cjs/index.cjs",
@@ -40,12 +40,16 @@
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
42
  "build:rename-cjs-register": "tsx ../../scripts/rename-cjs-register.mts",
43
- "typecheck": "tsc -b src"
43
+ "typecheck": "tsc -b src",
44
+ "prepack": "yarn build",
45
+ "bump": "cliff-jumper",
46
+ "check-update": "cliff-jumper --dry-run"
44
47
  },
45
48
  "dependencies": {
46
49
  "cron": "^3.1.7"
47
50
  },
48
51
  "devDependencies": {
52
+ "@favware/cliff-jumper": "^4.1.0",
49
53
  "@favware/rollup-type-bundler": "^3.3.0",
50
54
  "@sentry/node": "^7.119.0",
51
55
  "@types/node": "^20.16.2",