@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 +0 -0
- package/README.md +105 -75
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +9 -9
- package/dist/cjs/lib/CronTaskHandler.cjs.map +1 -1
- package/dist/cjs/lib/structures/CronTask.cjs +5 -20
- package/dist/cjs/lib/structures/CronTask.cjs.map +1 -1
- package/dist/cjs/lib/structures/CronTaskStore.cjs +6 -13
- package/dist/cjs/lib/structures/CronTaskStore.cjs.map +1 -1
- package/dist/cjs/register.cjs +4 -16
- package/dist/cjs/register.cjs.map +1 -1
- package/dist/esm/index.d.mts +9 -9
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/lib/CronTaskHandler.mjs.map +1 -1
- package/dist/esm/lib/structures/CronTask.mjs +5 -20
- package/dist/esm/lib/structures/CronTask.mjs.map +1 -1
- package/dist/esm/lib/structures/CronTaskStore.mjs +6 -13
- package/dist/esm/lib/structures/CronTaskStore.mjs.map +1 -1
- package/dist/esm/register.mjs +4 -16
- package/dist/esm/register.mjs.map +1 -1
- package/package.json +6 -2
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
|
-
|
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
|
+
[](https://github.com/Kings-World/sapphire-plugins/blob/main/LICENSE.md)
|
8
|
+
[](https://pkg-size.dev/@kingsworld/plugin-cron)
|
9
|
+
[](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
|
-
|
31
|
+
npm install @kingsworld/plugin-cron @sapphire/framework
|
9
32
|
```
|
10
33
|
|
11
34
|
## Usage
|
12
35
|
|
13
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
68
|
+
This is a simple example of how to start a task from a service.
|
41
69
|
|
42
|
-
|
70
|
+
```typescript
|
71
|
+
import { container } from '@sapphire/framework';
|
43
72
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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
|
-
|
82
|
+
This is a simple example of how to start all tasks from a service.
|
53
83
|
|
54
|
-
```
|
55
|
-
import {
|
56
|
-
import { CronTask } from "@kingsworld/plugin-cron";
|
84
|
+
```typescript
|
85
|
+
import { container } from '@sapphire/framework';
|
57
86
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
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
|
-
|
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
|
-
|
71
|
-
|
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
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
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
|
-
###
|
119
|
+
### Logging Helpers
|
88
120
|
|
89
|
-
|
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
|
-
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
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
|
-
|
106
|
-
|
107
|
-
#### Getting started
|
142
|
+
## Contributors
|
108
143
|
|
109
|
-
|
144
|
+
Please make sure to read the [Contributing Guide][contributing] before making a pull request.
|
110
145
|
|
111
|
-
|
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
|
-
|
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
|
-
|
120
|
-
yarn # shorthand
|
121
|
-
yarn install # full command
|
122
|
-
```
|
152
|
+
[contributing]: https://github.com/Kings-World/sapphire-plugins/blob/main/.github/CONTRIBUTING.md
|
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 = "
|
9
|
+
var version = "2.0.0-next.06c51a6";
|
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":";;;;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.cjs","sourcesContent":["import type { CronTaskStore } from
|
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"]}
|
package/dist/cjs/index.d.cts
CHANGED
@@ -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>,
|
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,
|
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<
|
38
|
+
type LoaderContext = Piece.LoaderContext<'cron-tasks'>;
|
39
39
|
}
|
40
40
|
|
41
|
-
declare class CronTaskStore extends Store<CronTask,
|
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[
|
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
|
60
|
+
declare module '@sapphire/pieces' {
|
61
61
|
interface Container {
|
62
62
|
cron: CronTaskHandler;
|
63
63
|
}
|
64
64
|
interface StoreRegistryEntries {
|
65
|
-
|
65
|
+
'cron-tasks': CronTaskStore;
|
66
66
|
}
|
67
67
|
}
|
68
|
-
declare module
|
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,
|
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,
|
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
|
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
|
-
|
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,
|
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"]}
|
package/dist/cjs/register.cjs
CHANGED
@@ -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
|
-
|
27
|
-
|
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":";;;;;;;
|
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"]}
|
package/dist/esm/index.d.mts
CHANGED
@@ -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>,
|
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,
|
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<
|
38
|
+
type LoaderContext = Piece.LoaderContext<'cron-tasks'>;
|
39
39
|
}
|
40
40
|
|
41
|
-
declare class CronTaskStore extends Store<CronTask,
|
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[
|
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
|
60
|
+
declare module '@sapphire/pieces' {
|
61
61
|
interface Container {
|
62
62
|
cron: CronTaskHandler;
|
63
63
|
}
|
64
64
|
interface StoreRegistryEntries {
|
65
|
-
|
65
|
+
'cron-tasks': CronTaskStore;
|
66
66
|
}
|
67
67
|
}
|
68
|
-
declare module
|
68
|
+
declare module 'discord.js' {
|
69
69
|
interface ClientOptions {
|
70
70
|
cron?: CronTaskHandlerOptions;
|
71
71
|
}
|
package/dist/esm/index.mjs
CHANGED
@@ -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 = "
|
7
|
+
var version = "2.0.0-next.06c51a6";
|
8
8
|
|
9
9
|
export { version };
|
10
10
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AA+BO,IAAM,OAAkB,GAAA","file":"index.mjs","sourcesContent":["import type { CronTaskStore } from
|
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,
|
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,
|
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
|
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
|
-
|
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,
|
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"]}
|
package/dist/esm/register.mjs
CHANGED
@@ -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
|
-
|
24
|
-
|
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":";;;;
|
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": "
|
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",
|