@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 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']>>): Task<O>;
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;IAdxF,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;IAMxF,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CACxD;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,GACnC,IAAI,CAAC,CAAC,CAAC,CAAA;CACX,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,OAAO,IAAI,CAAA"}
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.2.3",
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.2",
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