@dotcom-tool-kit/base 1.0.0 → 1.1.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 +24 -0
- package/lib/hook.d.ts +12 -4
- package/lib/hook.d.ts.map +1 -1
- package/lib/hook.js +2 -1
- package/lib/task.d.ts +6 -2
- package/lib/task.d.ts.map +1 -1
- package/lib/type-utils.d.ts +2 -0
- package/lib/type-utils.d.ts.map +1 -0
- package/lib/type-utils.js +2 -0
- package/package.json +5 -3
- package/src/hook.ts +20 -3
- package/src/task.ts +6 -2
- package/src/type-utils.ts +1 -0
- package/tsconfig.json +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0](https://github.com/Financial-Times/dotcom-tool-kit/compare/base-v1.0.0...base-v1.1.0) (2024-12-09)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* pass config into taskruncontext ([435ffbc](https://github.com/Financial-Times/dotcom-tool-kit/commit/435ffbc74a81bdd159d4ea01943c6614ed1d3471))
|
|
9
|
+
* pass current command into task run context ([e4cf21c](https://github.com/Financial-Times/dotcom-tool-kit/commit/e4cf21c8c4e502b02918736b8b127097dba27572))
|
|
10
|
+
* pass task cwd through via TaskRunContext ([b12fe30](https://github.com/Financial-Times/dotcom-tool-kit/commit/b12fe30916e99e157e131a99fca6c59960b89f3a))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* freeze the config before passing it into tasks ([a0283b9](https://github.com/Financial-Times/dotcom-tool-kit/commit/a0283b9b5a48314a26ce04ce4c176ab5f4aacc07))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Dependencies
|
|
19
|
+
|
|
20
|
+
* The following workspace dependencies were updated
|
|
21
|
+
* dependencies
|
|
22
|
+
* @dotcom-tool-kit/validated bumped from ^1.0.0 to ^1.0.1
|
|
23
|
+
* devDependencies
|
|
24
|
+
* @dotcom-tool-kit/config bumped from ^1.0.2 to ^1.0.3
|
|
25
|
+
* @dotcom-tool-kit/logger bumped from ^4.0.0 to ^4.0.1
|
|
26
|
+
|
|
3
27
|
## 1.0.0 (2024-09-10)
|
|
4
28
|
|
|
5
29
|
|
package/lib/hook.d.ts
CHANGED
|
@@ -4,28 +4,36 @@ import { typeSymbol } from './symbols';
|
|
|
4
4
|
import type { z } from 'zod';
|
|
5
5
|
import type { Plugin } from '@dotcom-tool-kit/plugin';
|
|
6
6
|
import { Conflict } from '@dotcom-tool-kit/conflict';
|
|
7
|
+
import type { Default } from './type-utils';
|
|
7
8
|
export interface HookInstallation<Options = Record<string, unknown>> {
|
|
8
9
|
options: Options;
|
|
9
10
|
plugin: Plugin;
|
|
10
11
|
forHook: string;
|
|
11
12
|
hookConstructor: HookConstructor;
|
|
12
13
|
}
|
|
13
|
-
export declare abstract class Hook<Options extends
|
|
14
|
+
export declare abstract class Hook<Options extends {
|
|
15
|
+
hook?: z.ZodTypeAny;
|
|
16
|
+
plugin?: z.ZodTypeAny;
|
|
17
|
+
} = Record<never, never>, State = unknown> extends Base {
|
|
14
18
|
id: string;
|
|
15
|
-
options: z.output<Options
|
|
19
|
+
options: z.output<Default<Options['hook'], z.ZodObject<Record<string, never>>>>;
|
|
20
|
+
pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>;
|
|
16
21
|
logger: Logger;
|
|
17
22
|
installGroup?: string;
|
|
18
23
|
static get [typeSymbol](): symbol;
|
|
19
24
|
get [typeSymbol](): symbol;
|
|
20
25
|
static mergeChildInstallations(plugin: Plugin, childInstallations: (HookInstallation | Conflict<HookInstallation>)[]): (HookInstallation | Conflict<HookInstallation>)[];
|
|
21
26
|
static overrideChildInstallations(plugin: Plugin, parentInstallation: HookInstallation, _childInstallations: (HookInstallation | Conflict<HookInstallation>)[]): (HookInstallation | Conflict<HookInstallation>)[];
|
|
22
|
-
constructor(logger: Logger, id: string, options: z.output<Options
|
|
27
|
+
constructor(logger: Logger, id: string, options: z.output<Default<Options['hook'], z.ZodObject<Record<string, never>>>>, pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>);
|
|
23
28
|
abstract isInstalled(): Promise<boolean>;
|
|
24
29
|
abstract install(state?: State): Promise<State>;
|
|
25
30
|
commitInstall(_state: State): Promise<void>;
|
|
26
31
|
}
|
|
27
32
|
export type HookConstructor = {
|
|
28
|
-
new
|
|
33
|
+
new <O extends {
|
|
34
|
+
plugin: z.ZodTypeAny;
|
|
35
|
+
hook: z.ZodTypeAny;
|
|
36
|
+
}>(logger: Logger, id: string, options: z.infer<O['hook']>, pluginOptions: z.infer<O['plugin']>): Hook<O, unknown>;
|
|
29
37
|
};
|
|
30
38
|
export type HookClass = HookConstructor & typeof Hook;
|
|
31
39
|
//# sourceMappingURL=hook.d.ts.map
|
package/lib/hook.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAc,UAAU,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAc,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../src/hook.ts"],"names":[],"mappings":"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"}
|
package/lib/hook.js
CHANGED
|
@@ -22,10 +22,11 @@ class Hook extends base_1.Base {
|
|
|
22
22
|
static overrideChildInstallations(plugin, parentInstallation, _childInstallations) {
|
|
23
23
|
return [parentInstallation];
|
|
24
24
|
}
|
|
25
|
-
constructor(logger, id, options) {
|
|
25
|
+
constructor(logger, id, options, pluginOptions) {
|
|
26
26
|
super();
|
|
27
27
|
this.id = id;
|
|
28
28
|
this.options = options;
|
|
29
|
+
this.pluginOptions = pluginOptions;
|
|
29
30
|
this.logger = logger.child({ hook: this.constructor.name });
|
|
30
31
|
}
|
|
31
32
|
async commitInstall(_state) {
|
package/lib/task.d.ts
CHANGED
|
@@ -2,9 +2,14 @@ import type { z } from 'zod';
|
|
|
2
2
|
import { Base } from './base';
|
|
3
3
|
import { typeSymbol } from './symbols';
|
|
4
4
|
import type { Logger } from 'winston';
|
|
5
|
-
type
|
|
5
|
+
import type { ValidConfig } from '@dotcom-tool-kit/config';
|
|
6
|
+
import type { Default } from './type-utils';
|
|
7
|
+
import type { ReadonlyDeep } from 'type-fest';
|
|
6
8
|
export type TaskRunContext = {
|
|
7
9
|
files?: string[];
|
|
10
|
+
command: string;
|
|
11
|
+
cwd: string;
|
|
12
|
+
config: ReadonlyDeep<ValidConfig>;
|
|
8
13
|
};
|
|
9
14
|
export declare abstract class Task<Options extends {
|
|
10
15
|
plugin?: z.ZodTypeAny;
|
|
@@ -26,5 +31,4 @@ export type TaskConstructor = {
|
|
|
26
31
|
}>(logger: Logger, id: string, pluginOptions: Partial<z.infer<O['plugin']>>, options: Partial<z.infer<O['task']>>): Task<O>;
|
|
27
32
|
};
|
|
28
33
|
export type TaskClass = TaskConstructor & typeof Task;
|
|
29
|
-
export {};
|
|
30
34
|
//# 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;
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../src/type-utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,CAAC,GAAG,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dotcom-tool-kit/base",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib",
|
|
6
6
|
"scripts": {
|
|
@@ -11,13 +11,15 @@
|
|
|
11
11
|
"license": "ISC",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@dotcom-tool-kit/conflict": "^1.0.0",
|
|
14
|
-
"@dotcom-tool-kit/validated": "^1.0.
|
|
14
|
+
"@dotcom-tool-kit/validated": "^1.0.1",
|
|
15
15
|
"semver": "^7.5.4",
|
|
16
16
|
"winston": "^3.11.0"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@dotcom-tool-kit/
|
|
19
|
+
"@dotcom-tool-kit/config": "^1.0.3",
|
|
20
|
+
"@dotcom-tool-kit/logger": "^4.0.1",
|
|
20
21
|
"@dotcom-tool-kit/plugin": "^1.0.0",
|
|
22
|
+
"type-fest": "^4.29.1",
|
|
21
23
|
"winston": "^3.11.0",
|
|
22
24
|
"zod": "^3.22.4"
|
|
23
25
|
},
|
package/src/hook.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { hookSymbol, typeSymbol } from './symbols'
|
|
|
4
4
|
import type { z } from 'zod'
|
|
5
5
|
import type { Plugin } from '@dotcom-tool-kit/plugin'
|
|
6
6
|
import { Conflict, isConflict } from '@dotcom-tool-kit/conflict'
|
|
7
|
+
import type { Default } from './type-utils'
|
|
7
8
|
|
|
8
9
|
export interface HookInstallation<Options = Record<string, unknown>> {
|
|
9
10
|
options: Options
|
|
@@ -12,7 +13,13 @@ export interface HookInstallation<Options = Record<string, unknown>> {
|
|
|
12
13
|
hookConstructor: HookConstructor
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
export abstract class Hook<
|
|
16
|
+
export abstract class Hook<
|
|
17
|
+
Options extends {
|
|
18
|
+
hook?: z.ZodTypeAny
|
|
19
|
+
plugin?: z.ZodTypeAny
|
|
20
|
+
} = Record<never, never>,
|
|
21
|
+
State = unknown
|
|
22
|
+
> extends Base {
|
|
16
23
|
logger: Logger
|
|
17
24
|
// This field is used to collect hooks that share state when running their
|
|
18
25
|
// install methods. All hooks in the same group will run their install method
|
|
@@ -50,7 +57,12 @@ export abstract class Hook<Options extends z.ZodTypeAny = z.ZodTypeAny, State =
|
|
|
50
57
|
return [parentInstallation]
|
|
51
58
|
}
|
|
52
59
|
|
|
53
|
-
constructor(
|
|
60
|
+
constructor(
|
|
61
|
+
logger: Logger,
|
|
62
|
+
public id: string,
|
|
63
|
+
public options: z.output<Default<Options['hook'], z.ZodObject<Record<string, never>>>>,
|
|
64
|
+
public pluginOptions: z.output<Default<Options['plugin'], z.ZodObject<Record<string, never>>>>
|
|
65
|
+
) {
|
|
54
66
|
super()
|
|
55
67
|
this.logger = logger.child({ hook: this.constructor.name })
|
|
56
68
|
}
|
|
@@ -63,7 +75,12 @@ export abstract class Hook<Options extends z.ZodTypeAny = z.ZodTypeAny, State =
|
|
|
63
75
|
}
|
|
64
76
|
|
|
65
77
|
export type HookConstructor = {
|
|
66
|
-
new
|
|
78
|
+
new <O extends { plugin: z.ZodTypeAny; hook: z.ZodTypeAny }>(
|
|
79
|
+
logger: Logger,
|
|
80
|
+
id: string,
|
|
81
|
+
options: z.infer<O['hook']>,
|
|
82
|
+
pluginOptions: z.infer<O['plugin']>
|
|
83
|
+
): Hook<O, unknown>
|
|
67
84
|
}
|
|
68
85
|
|
|
69
86
|
export type HookClass = HookConstructor & typeof Hook
|
package/src/task.ts
CHANGED
|
@@ -2,11 +2,15 @@ import type { z } from 'zod'
|
|
|
2
2
|
import { Base } from './base'
|
|
3
3
|
import { taskSymbol, typeSymbol } from './symbols'
|
|
4
4
|
import type { Logger } from 'winston'
|
|
5
|
-
|
|
6
|
-
type Default
|
|
5
|
+
import type { ValidConfig } from '@dotcom-tool-kit/config'
|
|
6
|
+
import type { Default } from './type-utils'
|
|
7
|
+
import type { ReadonlyDeep } from 'type-fest'
|
|
7
8
|
|
|
8
9
|
export type TaskRunContext = {
|
|
9
10
|
files?: string[]
|
|
11
|
+
command: string
|
|
12
|
+
cwd: string
|
|
13
|
+
config: ReadonlyDeep<ValidConfig>
|
|
10
14
|
}
|
|
11
15
|
|
|
12
16
|
export abstract class Task<
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Default<T, D> = T extends undefined ? D : T
|