@dotcom-tool-kit/base 1.2.3 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/lib/task.d.ts +5 -2
- package/lib/task.d.ts.map +1 -1
- package/lib/task.js +6 -1
- package/package.json +2 -2
- package/src/task.ts +9 -2
package/CHANGELOG.md
CHANGED
|
@@ -66,6 +66,20 @@
|
|
|
66
66
|
* dependencies
|
|
67
67
|
* @dotcom-tool-kit/logger bumped from ^4.1.1 to ^4.2.0
|
|
68
68
|
|
|
69
|
+
## [1.3.1](https://github.com/Financial-Times/dotcom-tool-kit/compare/base-v1.3.0...base-v1.3.1) (2025-10-09)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Bug Fixes
|
|
73
|
+
|
|
74
|
+
* bump semver from 7.7.2 to 7.7.3 ([f37e915](https://github.com/Financial-Times/dotcom-tool-kit/commit/f37e915f184786c24dfe6095d3a54267c0738e5b))
|
|
75
|
+
|
|
76
|
+
## [1.3.0](https://github.com/Financial-Times/dotcom-tool-kit/compare/base-v1.2.3...base-v1.3.0) (2025-08-12)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Features
|
|
80
|
+
|
|
81
|
+
* add a Task.stop method and stop parallel tasks on error ([9d33d02](https://github.com/Financial-Times/dotcom-tool-kit/commit/9d33d02e734c04886d7e491e47bdac9f839ed509))
|
|
82
|
+
|
|
69
83
|
## [1.2.3](https://github.com/Financial-Times/dotcom-tool-kit/compare/base-v1.2.2...base-v1.2.3) (2025-05-20)
|
|
70
84
|
|
|
71
85
|
|
package/lib/task.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Base } from './base';
|
|
|
3
3
|
import { typeSymbol } from './symbols';
|
|
4
4
|
import type { Logger } from 'winston';
|
|
5
5
|
import type { ValidConfig } from '@dotcom-tool-kit/config';
|
|
6
|
+
import { Plugin } from '@dotcom-tool-kit/plugin';
|
|
6
7
|
import type { Default } from './type-utils';
|
|
7
8
|
import type { ReadonlyDeep } from 'type-fest';
|
|
8
9
|
export type TaskRunContext = {
|
|
@@ -18,17 +19,19 @@ export declare abstract class Task<Options extends {
|
|
|
18
19
|
id: string;
|
|
19
20
|
pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>;
|
|
20
21
|
options: z.output<Default<Options['task'], z.ZodObject<Record<string, never>>>>;
|
|
22
|
+
plugin: Plugin;
|
|
21
23
|
static get [typeSymbol](): symbol;
|
|
22
24
|
get [typeSymbol](): symbol;
|
|
23
25
|
logger: Logger;
|
|
24
|
-
constructor(logger: Logger, id: string, pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>, options: z.output<Default<Options['task'], z.ZodObject<Record<string, never
|
|
26
|
+
constructor(logger: Logger, id: string, pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>, options: z.output<Default<Options['task'], z.ZodObject<Record<string, never>>>>, plugin: Plugin);
|
|
25
27
|
abstract run(runContext: TaskRunContext): Promise<void>;
|
|
28
|
+
stop(): Promise<void>;
|
|
26
29
|
}
|
|
27
30
|
export type TaskConstructor = {
|
|
28
31
|
new <O extends {
|
|
29
32
|
plugin: z.ZodTypeAny;
|
|
30
33
|
task: z.ZodTypeAny;
|
|
31
|
-
}>(logger: Logger, id: string, pluginOptions: Partial<z.infer<O['plugin']>>, options: Partial<z.infer<O['task']
|
|
34
|
+
}>(logger: Logger, id: string, pluginOptions: Partial<z.infer<O['plugin']>>, options: Partial<z.infer<O['task']>>, plugin: Plugin): Task<O>;
|
|
32
35
|
};
|
|
33
36
|
export type TaskClass = TaskConstructor & typeof Task;
|
|
34
37
|
//# sourceMappingURL=task.d.ts.map
|
package/lib/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAc,UAAU,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;CAClC,CAAA;AAED,8BAAsB,IAAI,CACxB,OAAO,SAAS;IACd,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;IACrB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;CACpB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CACxB,SAAQ,IAAI;IAaH,EAAE,EAAE,MAAM;IACV,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAc,UAAU,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;CAClC,CAAA;AAED,8BAAsB,IAAI,CACxB,OAAO,SAAS;IACd,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;IACrB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;CACpB,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CACxB,SAAQ,IAAI;IAaH,EAAE,EAAE,MAAM;IACV,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,EAAE,MAAM;IAfvB,MAAM,KAAK,CAAC,UAAU,CAAC,IAAI,MAAM,CAEhC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAEzB;IAED,MAAM,EAAE,MAAM,CAAA;gBAGZ,MAAM,EAAE,MAAM,EACP,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EACvF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAC/E,MAAM,EAAE,MAAM;IAMvB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,SAAS;QAAE,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;KAAE,EACzD,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC5C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACpC,MAAM,EAAE,MAAM,GACb,IAAI,CAAC,CAAC,CAAC,CAAA;CACX,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,OAAO,IAAI,CAAA"}
|
package/lib/task.js
CHANGED
|
@@ -7,6 +7,7 @@ class Task extends base_1.Base {
|
|
|
7
7
|
id;
|
|
8
8
|
pluginOptions;
|
|
9
9
|
options;
|
|
10
|
+
plugin;
|
|
10
11
|
static get [symbols_1.typeSymbol]() {
|
|
11
12
|
return symbols_1.taskSymbol;
|
|
12
13
|
}
|
|
@@ -14,12 +15,16 @@ class Task extends base_1.Base {
|
|
|
14
15
|
return symbols_1.taskSymbol;
|
|
15
16
|
}
|
|
16
17
|
logger;
|
|
17
|
-
constructor(logger, id, pluginOptions, options) {
|
|
18
|
+
constructor(logger, id, pluginOptions, options, plugin) {
|
|
18
19
|
super();
|
|
19
20
|
this.id = id;
|
|
20
21
|
this.pluginOptions = pluginOptions;
|
|
21
22
|
this.options = options;
|
|
23
|
+
this.plugin = plugin;
|
|
22
24
|
this.logger = logger.child({ task: id });
|
|
23
25
|
}
|
|
26
|
+
// not abstract for default behaviour of doing nothing
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
28
|
+
async stop() { }
|
|
24
29
|
}
|
|
25
30
|
exports.Task = Task;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotcom-tool-kit/base",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@dotcom-tool-kit/conflict": "^1.0.1",
|
|
14
14
|
"@dotcom-tool-kit/logger": "^4.2.2",
|
|
15
15
|
"@dotcom-tool-kit/validated": "^1.0.3",
|
|
16
|
-
"semver": "^7.7.
|
|
16
|
+
"semver": "^7.7.3",
|
|
17
17
|
"winston": "^3.17.0"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
package/src/task.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { Base } from './base'
|
|
|
3
3
|
import { taskSymbol, typeSymbol } from './symbols'
|
|
4
4
|
import type { Logger } from 'winston'
|
|
5
5
|
import type { ValidConfig } from '@dotcom-tool-kit/config'
|
|
6
|
+
import { Plugin } from '@dotcom-tool-kit/plugin'
|
|
6
7
|
import type { Default } from './type-utils'
|
|
7
8
|
import type { ReadonlyDeep } from 'type-fest'
|
|
8
9
|
|
|
@@ -33,13 +34,18 @@ export abstract class Task<
|
|
|
33
34
|
logger: Logger,
|
|
34
35
|
public id: string,
|
|
35
36
|
public pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>,
|
|
36
|
-
public options: z.output<Default<Options['task'], z.ZodObject<Record<string, never
|
|
37
|
+
public options: z.output<Default<Options['task'], z.ZodObject<Record<string, never>>>>,
|
|
38
|
+
public plugin: Plugin
|
|
37
39
|
) {
|
|
38
40
|
super()
|
|
39
41
|
this.logger = logger.child({ task: id })
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
abstract run(runContext: TaskRunContext): Promise<void>
|
|
45
|
+
|
|
46
|
+
// not abstract for default behaviour of doing nothing
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
48
|
+
async stop(): Promise<void> {}
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
export type TaskConstructor = {
|
|
@@ -47,7 +53,8 @@ export type TaskConstructor = {
|
|
|
47
53
|
logger: Logger,
|
|
48
54
|
id: string,
|
|
49
55
|
pluginOptions: Partial<z.infer<O['plugin']>>,
|
|
50
|
-
options: Partial<z.infer<O['task']
|
|
56
|
+
options: Partial<z.infer<O['task']>>,
|
|
57
|
+
plugin: Plugin
|
|
51
58
|
): Task<O>
|
|
52
59
|
}
|
|
53
60
|
|