@tryghost/adapter-base-scheduling 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +63 -11
- package/build/base.d.ts +1 -0
- package/build/base.d.ts.map +1 -1
- package/build/base.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# @tryghost/adapter-base-scheduling
|
|
2
|
+
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Added support for idempotency key in scheduling adapter interface
|
|
8
|
+
|
|
9
|
+
## 0.1.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated README documentation
|
|
14
|
+
|
|
15
|
+
- Update @tryghost deps to latest
|
package/README.md
CHANGED
|
@@ -1,6 +1,65 @@
|
|
|
1
1
|
# @tryghost/adapter-base-scheduling
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Base class for Ghost scheduling adapters. A scheduling adapter is responsible
|
|
4
|
+
for firing Ghost's time-based jobs — publishing scheduled posts, sending
|
|
5
|
+
scheduled newsletters, automations, gift reminders — by calling back into
|
|
6
|
+
Ghost's API at the requested time.
|
|
7
|
+
|
|
8
|
+
See the [Ghost adapters documentation](https://docs.ghost.org/config#adapters)
|
|
9
|
+
for how adapters are configured and loaded.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
Install the base class alongside your adapter:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @tryghost/adapter-base-scheduling
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Extend `SchedulingBase` and implement every method listed in `requiredFns`:
|
|
20
|
+
`run`, `schedule`, and `unschedule`. `register` and `rescheduleAll` are
|
|
21
|
+
inherited from the base class.
|
|
22
|
+
|
|
23
|
+
Each job has a `time` (unix timestamp), a `url` to call back (carrying a
|
|
24
|
+
JWT-signed admin token), and an `extra` object holding the `httpMethod` to use.
|
|
25
|
+
At `time`, the adapter fires the HTTP request described by the job.
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
const {SchedulingBase} = require('@tryghost/adapter-base-scheduling');
|
|
29
|
+
|
|
30
|
+
class MyScheduler extends SchedulingBase {
|
|
31
|
+
constructor(options) {
|
|
32
|
+
super();
|
|
33
|
+
// `options` is the settings block from your Ghost config
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Called on boot. Fire any jobs whose time has already passed and start
|
|
37
|
+
// watching for upcoming ones.
|
|
38
|
+
run() { /* ... */ }
|
|
39
|
+
|
|
40
|
+
// Queue `job` to fire at job.time via job.extra.httpMethod against job.url.
|
|
41
|
+
schedule(job) { /* ... */ }
|
|
42
|
+
|
|
43
|
+
// Remove a previously-scheduled job.
|
|
44
|
+
unschedule(job, options) { /* ... */ }
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = MyScheduler;
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Installing and activating
|
|
51
|
+
|
|
52
|
+
Place the adapter at `content/adapters/scheduling/MyScheduler/index.js` and
|
|
53
|
+
activate it in your Ghost config:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"scheduling": {
|
|
58
|
+
"active": "MyScheduler",
|
|
59
|
+
"MyScheduler": {}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
```
|
|
4
63
|
|
|
5
64
|
## Develop
|
|
6
65
|
|
|
@@ -12,18 +71,11 @@ pnpm --filter @tryghost/adapter-base-scheduling test # type-check + unit test
|
|
|
12
71
|
pnpm --filter @tryghost/adapter-base-scheduling dev # rebuild on change
|
|
13
72
|
```
|
|
14
73
|
|
|
15
|
-
In-monorepo consumers resolve this package via the `source` export condition
|
|
16
|
-
(raw `src/*.ts`, no build needed in dev/test). Production and any published
|
|
17
|
-
tarball use the compiled `build/` output.
|
|
18
|
-
|
|
19
74
|
This package is ESM-only and compiled with `tsc` (`module: nodenext`). Relative
|
|
20
75
|
imports in `src/` must carry an explicit extension; write the real `.ts` one —
|
|
21
76
|
`import {x} from './x.ts'` — and `tsc` rewrites it to `.js` on emit
|
|
22
77
|
(`rewriteRelativeImportExtensions`).
|
|
23
78
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
package's module graph — it makes the graph async and `require()` of it throws
|
|
28
|
-
`ERR_REQUIRE_ASYNC_MODULE`. Keep module-level initialization synchronous. (An
|
|
29
|
-
ESLint rule enforces this.)
|
|
79
|
+
# Copyright & License
|
|
80
|
+
|
|
81
|
+
Copyright (c) 2013-2026 Ghost Foundation - Released under the [MIT license](LICENSE). Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our [trademark policy](https://ghost.org/trademark/) for info on acceptable usage.
|
package/build/base.d.ts
CHANGED
package/build/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;CACL;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5C;AAED,8BAAsB,cAAe,YAAW,gBAAgB;;IAC5D,SAAiB,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAIzE,cAKC;IAED,QAAQ,CAAC,WAAW,EAAE,WAAW,QAEhC;IAED;;;OAGG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,yCAiBxC;IAED,QAAQ,CAAC,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7F"}
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;CACL;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,WAAW,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IACxB,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CAC5C;AAED,8BAAsB,cAAe,YAAW,gBAAgB;;IAC5D,SAAiB,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAIzE,cAKC;IAED,QAAQ,CAAC,WAAW,EAAE,WAAW,QAEhC;IAED;;;OAGG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,yCAiBxC;IAED,QAAQ,CAAC,GAAG,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7F"}
|
package/build/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAkDxC,MAAM,OAAgB,cAAc;IAGhC,aAAa,GAAG,IAAI,GAAG,EAAe,CAAC;IAEvC;QACI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;YACvC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACvD,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAA;IACN,CAAC;IAED,QAAQ,CAAC,WAAwB;QAC7B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,IAAqB;QACrC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACpC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,OAAO,CAAC,KAAK,CAAC;oBACV,KAAK,EAAE,EAAC,IAAI,EAAE,iCAAiC,EAAC;oBAChD,GAAG,EAAE,MAAM,CAAC,MAAM;oBAClB,WAAW,EAAE,YAAY,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,IAAI,IAAI,SAAS;iBAC/D,EAAE,oBAAoB,CAAC,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;CAKJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tryghost/adapter-base-scheduling",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "The adapter-base-scheduling package for Ghost.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"build"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@tryghost/logging": "
|
|
25
|
+
"@tryghost/logging": "5.3.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc",
|