@wpkernel/pipeline 0.12.3-beta.2 → 0.12.6-beta.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/README.md +130 -86
- package/dist/{async-utils.d.ts → core/async-utils.d.ts} +9 -0
- package/dist/core/async-utils.d.ts.map +1 -0
- package/dist/core/async-utils.js +46 -0
- package/dist/core/createExtension.d.ts.map +1 -0
- package/dist/core/dependency-graph.d.ts.map +1 -0
- package/dist/core/error-factory.d.ts.map +1 -0
- package/dist/{executor.d.ts → core/execution-utils.d.ts} +1 -1
- package/dist/core/execution-utils.d.ts.map +1 -0
- package/dist/core/executor.d.ts +2 -0
- package/dist/core/executor.d.ts.map +1 -0
- package/dist/{extensions → core/extensions}/index.d.ts +1 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/official.d.ts.map +1 -0
- package/dist/{extensions.d.ts → core/extensions/runner.d.ts} +2 -5
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +73 -0
- package/dist/core/helper.d.ts.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +36 -0
- package/dist/{internal → core/internal}/extension-coordinator.d.ts +1 -1
- package/dist/core/internal/extension-coordinator.d.ts.map +1 -0
- package/dist/{internal → core/internal}/extension-coordinator.js +7 -6
- package/dist/{internal → core/internal}/extension-coordinator.types.d.ts +14 -14
- package/dist/core/internal/extension-coordinator.types.d.ts.map +1 -0
- package/dist/core/makePipeline.d.ts +5 -0
- package/dist/core/makePipeline.d.ts.map +1 -0
- package/dist/core/makePipeline.js +147 -0
- package/dist/core/registration.d.ts.map +1 -0
- package/dist/core/registration.js +59 -0
- package/dist/core/rollback.d.ts.map +1 -0
- package/dist/core/runner/context.d.ts +13 -0
- package/dist/core/runner/context.d.ts.map +1 -0
- package/dist/core/runner/context.js +86 -0
- package/dist/core/runner/diagnostics.d.ts +48 -0
- package/dist/core/runner/diagnostics.d.ts.map +1 -0
- package/dist/core/runner/diagnostics.js +82 -0
- package/dist/core/runner/execution.d.ts +6 -0
- package/dist/core/runner/execution.d.ts.map +1 -0
- package/dist/core/runner/execution.js +66 -0
- package/dist/core/runner/index.d.ts +14 -0
- package/dist/core/runner/index.d.ts.map +1 -0
- package/dist/core/runner/index.js +9 -0
- package/dist/core/runner/program.d.ts +7 -0
- package/dist/core/runner/program.d.ts.map +1 -0
- package/dist/core/runner/program.js +146 -0
- package/dist/core/runner/rollback.d.ts +48 -0
- package/dist/core/runner/rollback.d.ts.map +1 -0
- package/dist/core/runner/rollback.js +75 -0
- package/dist/core/runner/stage-factories.d.ts +69 -0
- package/dist/core/runner/stage-factories.d.ts.map +1 -0
- package/dist/core/runner/stage-factories.js +121 -0
- package/dist/core/runner/types.d.ts +202 -0
- package/dist/core/runner/types.d.ts.map +1 -0
- package/dist/{types.d.ts → core/types.d.ts} +62 -97
- package/dist/core/types.d.ts.map +1 -0
- package/dist/extensions/index.js +6 -2
- package/dist/index.d.ts +20 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -17
- package/dist/standard-pipeline/createPipeline.d.ts +6 -0
- package/dist/standard-pipeline/createPipeline.d.ts.map +1 -0
- package/dist/standard-pipeline/createPipeline.js +7 -0
- package/dist/standard-pipeline/runner/index.d.ts +21 -0
- package/dist/standard-pipeline/runner/index.d.ts.map +1 -0
- package/dist/standard-pipeline/runner/index.js +244 -0
- package/dist/standard-pipeline/types.d.ts +150 -0
- package/dist/standard-pipeline/types.d.ts.map +1 -0
- package/package.json +16 -1
- package/dist/async-utils.d.ts.map +0 -1
- package/dist/async-utils.js +0 -40
- package/dist/createExtension.d.ts.map +0 -1
- package/dist/createPipeline.d.ts +0 -45
- package/dist/createPipeline.d.ts.map +0 -1
- package/dist/createPipeline.js +0 -122
- package/dist/dependency-graph.d.ts.map +0 -1
- package/dist/error-factory.d.ts.map +0 -1
- package/dist/executor.d.ts.map +0 -1
- package/dist/extensions/index.d.ts.map +0 -1
- package/dist/extensions/official.d.ts.map +0 -1
- package/dist/extensions.d.ts.map +0 -1
- package/dist/extensions.js +0 -88
- package/dist/helper.d.ts.map +0 -1
- package/dist/internal/diagnostic-manager.d.ts +0 -29
- package/dist/internal/diagnostic-manager.d.ts.map +0 -1
- package/dist/internal/diagnostic-manager.js +0 -90
- package/dist/internal/diagnostic-manager.types.d.ts +0 -70
- package/dist/internal/diagnostic-manager.types.d.ts.map +0 -1
- package/dist/internal/extension-coordinator.d.ts.map +0 -1
- package/dist/internal/extension-coordinator.types.d.ts.map +0 -1
- package/dist/internal/helper-execution.d.ts +0 -32
- package/dist/internal/helper-execution.d.ts.map +0 -1
- package/dist/internal/helper-execution.js +0 -33
- package/dist/internal/pipeline-program-utils.d.ts +0 -127
- package/dist/internal/pipeline-program-utils.d.ts.map +0 -1
- package/dist/internal/pipeline-program-utils.js +0 -161
- package/dist/internal/pipeline-runner.d.ts +0 -18
- package/dist/internal/pipeline-runner.d.ts.map +0 -1
- package/dist/internal/pipeline-runner.js +0 -343
- package/dist/internal/pipeline-runner.types.d.ts +0 -167
- package/dist/internal/pipeline-runner.types.d.ts.map +0 -1
- package/dist/registration.d.ts.map +0 -1
- package/dist/registration.js +0 -57
- package/dist/rollback.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- /package/dist/{createExtension.d.ts → core/createExtension.d.ts} +0 -0
- /package/dist/{createExtension.js → core/createExtension.js} +0 -0
- /package/dist/{dependency-graph.d.ts → core/dependency-graph.d.ts} +0 -0
- /package/dist/{dependency-graph.js → core/dependency-graph.js} +0 -0
- /package/dist/{error-factory.d.ts → core/error-factory.d.ts} +0 -0
- /package/dist/{error-factory.js → core/error-factory.js} +0 -0
- /package/dist/{executor.js → core/execution-utils.js} +0 -0
- /package/dist/{extensions → core/extensions}/official.d.ts +0 -0
- /package/dist/{extensions → core/extensions}/official.js +0 -0
- /package/dist/{helper.d.ts → core/helper.d.ts} +0 -0
- /package/dist/{helper.js → core/helper.js} +0 -0
- /package/dist/{registration.d.ts → core/registration.d.ts} +0 -0
- /package/dist/{rollback.d.ts → core/rollback.d.ts} +0 -0
- /package/dist/{rollback.js → core/rollback.js} +0 -0
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { maybeTry as g, maybeThen as H, isPromiseLike as S } from "../async-utils.js";
|
|
2
|
-
import { executeHelpers as x } from "../executor.js";
|
|
3
|
-
import { runRollbackStack as y } from "../rollback.js";
|
|
4
|
-
function O(r) {
|
|
5
|
-
return !!(r && typeof r == "object" && "__halt" in r && r.__halt === !0);
|
|
6
|
-
}
|
|
7
|
-
function C(r) {
|
|
8
|
-
const {
|
|
9
|
-
getOrder: t,
|
|
10
|
-
makeArgs: n,
|
|
11
|
-
invoke: o,
|
|
12
|
-
recordStep: l,
|
|
13
|
-
onVisited: a,
|
|
14
|
-
registerRollback: k
|
|
15
|
-
} = r, b = (c, i, p) => {
|
|
16
|
-
const s = o({ helper: c, args: i, next: p });
|
|
17
|
-
return k ? S(s) ? s.then((e) => {
|
|
18
|
-
k(c, e);
|
|
19
|
-
}) : (k(c, s), s) : s;
|
|
20
|
-
};
|
|
21
|
-
return (c) => {
|
|
22
|
-
const i = t(c), p = x(i, n(c), b, l);
|
|
23
|
-
return H(
|
|
24
|
-
p,
|
|
25
|
-
(s) => a(c, s)
|
|
26
|
-
);
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function T(r) {
|
|
30
|
-
const { isHalt: t, snapshotFragments: n, applyArtifact: o } = r;
|
|
31
|
-
return (l) => t(l) ? l : o(l, n(l));
|
|
32
|
-
}
|
|
33
|
-
function _(r) {
|
|
34
|
-
const { isHalt: t, execute: n } = r;
|
|
35
|
-
return (o) => t(o) ? o : n(o);
|
|
36
|
-
}
|
|
37
|
-
function z(r) {
|
|
38
|
-
const { isHalt: t, commit: n, rollbackToHalt: o } = r, l = (a) => {
|
|
39
|
-
const k = () => a;
|
|
40
|
-
return g(
|
|
41
|
-
() => H(n(a), k),
|
|
42
|
-
(c) => o(a, c)
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
return (a) => t(a) ? a : l(a);
|
|
46
|
-
}
|
|
47
|
-
function V(r) {
|
|
48
|
-
const { isHalt: t, finalize: n } = r;
|
|
49
|
-
return (o) => t(o) ? o : n(o);
|
|
50
|
-
}
|
|
51
|
-
function E(r, t) {
|
|
52
|
-
const { context: n, rollbackContext: o, helperRollbacks: l, onHelperRollbackError: a } = r, k = o.extensionCoordinator && o.extensionState ? o.extensionCoordinator.createRollbackHandler(
|
|
53
|
-
o.extensionState
|
|
54
|
-
) : (i) => {
|
|
55
|
-
throw i;
|
|
56
|
-
};
|
|
57
|
-
return g(() => H(
|
|
58
|
-
y(
|
|
59
|
-
l.map((i) => ({
|
|
60
|
-
...i.rollback,
|
|
61
|
-
key: i.helper.key
|
|
62
|
-
})),
|
|
63
|
-
{
|
|
64
|
-
source: "helper",
|
|
65
|
-
onError: ({
|
|
66
|
-
error: i,
|
|
67
|
-
metadata: p,
|
|
68
|
-
entry: s
|
|
69
|
-
}) => {
|
|
70
|
-
const e = l.find(
|
|
71
|
-
(u) => u.helper.key === (s.key ?? "")
|
|
72
|
-
);
|
|
73
|
-
e && a && a({
|
|
74
|
-
error: i,
|
|
75
|
-
helper: e.helper,
|
|
76
|
-
errorMetadata: p,
|
|
77
|
-
context: n
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
),
|
|
82
|
-
() => k(t)
|
|
83
|
-
), () => {
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
function P(r) {
|
|
87
|
-
const { state: t, program: n, rollbackPlan: o, halt: l } = r;
|
|
88
|
-
return g(() => n(t), (b) => F(
|
|
89
|
-
{
|
|
90
|
-
rollbackPlan: o,
|
|
91
|
-
halt: l
|
|
92
|
-
},
|
|
93
|
-
b
|
|
94
|
-
));
|
|
95
|
-
}
|
|
96
|
-
function F(r, t) {
|
|
97
|
-
return H(
|
|
98
|
-
E(r.rollbackPlan, t),
|
|
99
|
-
() => r.halt(t)
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
function j(r) {
|
|
103
|
-
return function(n) {
|
|
104
|
-
const {
|
|
105
|
-
pushStep: o,
|
|
106
|
-
toRollbackContext: l,
|
|
107
|
-
halt: a,
|
|
108
|
-
isHalt: k,
|
|
109
|
-
onHelperRollbackError: b
|
|
110
|
-
} = r, c = ({
|
|
111
|
-
helper: e,
|
|
112
|
-
args: u,
|
|
113
|
-
next: m
|
|
114
|
-
}) => e.apply(u, m), i = (e) => o(e), p = (e) => (u, m) => {
|
|
115
|
-
if (!(!m || typeof m != "object") && "rollback" in m) {
|
|
116
|
-
const f = m.rollback;
|
|
117
|
-
f && e.push({ helper: u, rollback: f });
|
|
118
|
-
}
|
|
119
|
-
}, s = () => b ? (e) => b({
|
|
120
|
-
...e,
|
|
121
|
-
helper: e.helper
|
|
122
|
-
}) : void 0;
|
|
123
|
-
return (e) => {
|
|
124
|
-
if (k(e))
|
|
125
|
-
return e;
|
|
126
|
-
const u = [
|
|
127
|
-
...n.readRollbacks?.(e) ?? []
|
|
128
|
-
], m = l(e), f = C({
|
|
129
|
-
getOrder: n.getOrder,
|
|
130
|
-
makeArgs: n.makeArgs,
|
|
131
|
-
invoke: c,
|
|
132
|
-
recordStep: i,
|
|
133
|
-
onVisited: (h, R) => n.onVisited(h, R, u),
|
|
134
|
-
registerRollback: p(u)
|
|
135
|
-
}), d = {
|
|
136
|
-
context: m.context,
|
|
137
|
-
rollbackContext: m,
|
|
138
|
-
helperRollbacks: u,
|
|
139
|
-
onHelperRollbackError: s()
|
|
140
|
-
};
|
|
141
|
-
return P({
|
|
142
|
-
state: e,
|
|
143
|
-
program: f,
|
|
144
|
-
rollbackPlan: d,
|
|
145
|
-
halt: a
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
export {
|
|
151
|
-
C as createHelpersProgram,
|
|
152
|
-
O as isHalt,
|
|
153
|
-
_ as makeAfterFragmentsStage,
|
|
154
|
-
z as makeCommitStage,
|
|
155
|
-
T as makeFinalizeFragmentsStage,
|
|
156
|
-
V as makeFinalizeResultStage,
|
|
157
|
-
j as makeHelperStageFactory,
|
|
158
|
-
E as runHelperRollbackPlan,
|
|
159
|
-
P as runHelperStageWithRollback,
|
|
160
|
-
F as runRollbackToHalt
|
|
161
|
-
};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Helper, HelperKind, PipelineReporter, PipelineDiagnostic } from '../types';
|
|
2
|
-
import { PipelineRunner, PipelineRunnerDependencies } from './pipeline-runner.types';
|
|
3
|
-
/**
|
|
4
|
-
* Creates the orchestrator responsible for executing pipeline runs.
|
|
5
|
-
*
|
|
6
|
-
* The runner wires together dependency graph resolution, helper execution, and the official
|
|
7
|
-
* extension framework via the {@link initExtensionCoordinator}. By extracting this logic, the
|
|
8
|
-
* public {@link createPipeline} entry point remains focused on registration while the runner keeps
|
|
9
|
-
* lifecycle sequencing isolated and testable.
|
|
10
|
-
*
|
|
11
|
-
* @param dependencies - Bundled factory methods, diagnostics, and registered helpers
|
|
12
|
-
* @category Pipeline
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
export declare function initPipelineRunner<TRunOptions, TBuildOptions, TContext extends {
|
|
16
|
-
reporter: TReporter;
|
|
17
|
-
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(dependencies: PipelineRunnerDependencies<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>): PipelineRunner<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
18
|
-
//# sourceMappingURL=pipeline-runner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-runner.d.ts","sourceRoot":"","sources":["../../src/internal/pipeline-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEX,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAQlB,MAAM,UAAU,CAAC;AAMlB,OAAO,KAAK,EAEX,cAAc,EACd,0BAA0B,EAM1B,MAAM,yBAAyB,CAAC;AAejC;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EACX,aAAa,EACb,QAAQ,SAAS;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,EACxC,SAAS,SAAS,gBAAgB,EAClC,MAAM,EACN,SAAS,EACT,WAAW,SAAS,kBAAkB,EACtC,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,SAAS,UAAU,EAChC,YAAY,SAAS,UAAU,EAC/B,eAAe,SAAS,MAAM,CAC7B,QAAQ,EACR,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,CACb,EACD,cAAc,SAAS,MAAM,CAC5B,QAAQ,EACR,aAAa,EACb,cAAc,EACd,SAAS,EACT,YAAY,CACZ,EAED,YAAY,EAAE,0BAA0B,CACvC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,GACC,cAAc,CAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,CACd,CA2pBA"}
|
|
@@ -1,343 +0,0 @@
|
|
|
1
|
-
import { maybeThen as b, composeK as j } from "../async-utils.js";
|
|
2
|
-
import { createDependencyGraph as x } from "../dependency-graph.js";
|
|
3
|
-
import { buildExecutionSnapshot as u, assertAllHelpersExecuted as E } from "./helper-execution.js";
|
|
4
|
-
import { initExtensionCoordinator as I } from "./extension-coordinator.js";
|
|
5
|
-
import { isHalt as g, makeFinalizeResultStage as J, makeCommitStage as Q, makeHelperStageFactory as W, makeAfterFragmentsStage as X, makeFinalizeFragmentsStage as Y, runRollbackToHalt as Z } from "./pipeline-program-utils.js";
|
|
6
|
-
const h = "after-fragments";
|
|
7
|
-
function ar(o) {
|
|
8
|
-
const p = (r) => ({
|
|
9
|
-
__halt: !0,
|
|
10
|
-
error: r
|
|
11
|
-
}), k = (r) => {
|
|
12
|
-
const t = o.options.createBuildOptions(r), n = o.options.createContext(r);
|
|
13
|
-
o.diagnosticManager.setReporter(n.reporter);
|
|
14
|
-
const l = o.options.createFragmentState({
|
|
15
|
-
options: r,
|
|
16
|
-
context: n,
|
|
17
|
-
buildOptions: t
|
|
18
|
-
}), c = x(
|
|
19
|
-
o.fragmentEntries,
|
|
20
|
-
{
|
|
21
|
-
providedKeys: o.options.fragmentProvidedKeys,
|
|
22
|
-
onMissingDependency: ({ dependant: e, dependencyKey: i }) => {
|
|
23
|
-
const a = e.helper;
|
|
24
|
-
o.diagnosticManager.flagMissingDependency(
|
|
25
|
-
a,
|
|
26
|
-
i,
|
|
27
|
-
o.fragmentKind
|
|
28
|
-
), o.diagnosticManager.flagUnusedHelper(
|
|
29
|
-
a,
|
|
30
|
-
o.fragmentKind,
|
|
31
|
-
`could not execute because dependency "${i}" was not found`,
|
|
32
|
-
a.dependsOn
|
|
33
|
-
);
|
|
34
|
-
},
|
|
35
|
-
onUnresolvedHelpers: ({ unresolved: e }) => {
|
|
36
|
-
for (const i of e) {
|
|
37
|
-
const a = i.helper;
|
|
38
|
-
o.diagnosticManager.flagUnusedHelper(
|
|
39
|
-
a,
|
|
40
|
-
o.fragmentKind,
|
|
41
|
-
"could not execute because its dependencies never resolved",
|
|
42
|
-
a.dependsOn
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
o.createError
|
|
48
|
-
).order, s = [], m = (e) => {
|
|
49
|
-
const i = e.helper;
|
|
50
|
-
s.push({
|
|
51
|
-
id: e.id,
|
|
52
|
-
index: s.length,
|
|
53
|
-
key: i.key,
|
|
54
|
-
kind: i.kind,
|
|
55
|
-
mode: i.mode,
|
|
56
|
-
priority: i.priority,
|
|
57
|
-
dependsOn: i.dependsOn,
|
|
58
|
-
origin: i.origin
|
|
59
|
-
});
|
|
60
|
-
}, f = {
|
|
61
|
-
providedKeys: o.options.builderProvidedKeys,
|
|
62
|
-
onMissingDependency: ({ dependant: e, dependencyKey: i }) => {
|
|
63
|
-
const a = e.helper;
|
|
64
|
-
o.diagnosticManager.flagMissingDependency(
|
|
65
|
-
a,
|
|
66
|
-
i,
|
|
67
|
-
o.builderKind
|
|
68
|
-
), o.diagnosticManager.flagUnusedHelper(
|
|
69
|
-
a,
|
|
70
|
-
o.builderKind,
|
|
71
|
-
`could not execute because dependency "${i}" was not found`,
|
|
72
|
-
a.dependsOn
|
|
73
|
-
);
|
|
74
|
-
},
|
|
75
|
-
onUnresolvedHelpers: ({ unresolved: e }) => {
|
|
76
|
-
for (const i of e) {
|
|
77
|
-
const a = i.helper;
|
|
78
|
-
o.diagnosticManager.flagUnusedHelper(
|
|
79
|
-
a,
|
|
80
|
-
o.builderKind,
|
|
81
|
-
"could not execute because its dependencies never resolved",
|
|
82
|
-
a.dependsOn
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}, N = o.options.createExtensionHookOptions ?? ((e) => ({
|
|
87
|
-
context: e.context,
|
|
88
|
-
options: e.options,
|
|
89
|
-
artifact: e.artifact,
|
|
90
|
-
lifecycle: e.lifecycle
|
|
91
|
-
})), $ = (e, i) => N({
|
|
92
|
-
context: n,
|
|
93
|
-
options: r,
|
|
94
|
-
buildOptions: t,
|
|
95
|
-
artifact: e,
|
|
96
|
-
lifecycle: i
|
|
97
|
-
}), q = o.options.onExtensionRollbackError ?? ((e) => {
|
|
98
|
-
const { reporter: i } = e.context, a = i.warn;
|
|
99
|
-
typeof a == "function" && a.call(i, "Pipeline extension rollback failed.", {
|
|
100
|
-
error: e.error,
|
|
101
|
-
errorName: e.errorMetadata.name,
|
|
102
|
-
errorMessage: e.errorMetadata.message,
|
|
103
|
-
errorStack: e.errorMetadata.stack,
|
|
104
|
-
errorCause: e.errorMetadata.cause,
|
|
105
|
-
extensions: e.extensionKeys,
|
|
106
|
-
hookKeys: e.hookSequence
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
110
|
-
runOptions: r,
|
|
111
|
-
buildOptions: t,
|
|
112
|
-
context: n,
|
|
113
|
-
draft: l,
|
|
114
|
-
fragmentOrder: c,
|
|
115
|
-
steps: s,
|
|
116
|
-
pushStep: m,
|
|
117
|
-
builderGraphOptions: f,
|
|
118
|
-
buildHookOptions: $,
|
|
119
|
-
handleRollbackError: q
|
|
120
|
-
};
|
|
121
|
-
}, R = (r, t, n) => {
|
|
122
|
-
o.diagnosticManager.reviewUnusedHelpers(
|
|
123
|
-
r.fragmentEntries,
|
|
124
|
-
t,
|
|
125
|
-
o.fragmentKind
|
|
126
|
-
);
|
|
127
|
-
const l = u(
|
|
128
|
-
r.fragmentEntries,
|
|
129
|
-
t,
|
|
130
|
-
o.fragmentKind
|
|
131
|
-
);
|
|
132
|
-
return E(
|
|
133
|
-
r.fragmentEntries,
|
|
134
|
-
l,
|
|
135
|
-
o.fragmentKind,
|
|
136
|
-
o.diagnosticManager.describeHelper,
|
|
137
|
-
o.createError
|
|
138
|
-
), {
|
|
139
|
-
...r,
|
|
140
|
-
fragmentVisited: t,
|
|
141
|
-
fragmentExecution: l,
|
|
142
|
-
fragmentRollbacks: n
|
|
143
|
-
};
|
|
144
|
-
}, H = (r, t, n) => {
|
|
145
|
-
o.diagnosticManager.reviewUnusedHelpers(
|
|
146
|
-
r.builderEntries,
|
|
147
|
-
t,
|
|
148
|
-
o.builderKind
|
|
149
|
-
);
|
|
150
|
-
const l = u(
|
|
151
|
-
r.builderEntries,
|
|
152
|
-
t,
|
|
153
|
-
o.builderKind
|
|
154
|
-
);
|
|
155
|
-
return E(
|
|
156
|
-
r.builderEntries,
|
|
157
|
-
l,
|
|
158
|
-
o.builderKind,
|
|
159
|
-
o.diagnosticManager.describeHelper,
|
|
160
|
-
o.createError
|
|
161
|
-
), {
|
|
162
|
-
...r,
|
|
163
|
-
builderVisited: t,
|
|
164
|
-
builderExecution: l,
|
|
165
|
-
builderRollbacks: n
|
|
166
|
-
};
|
|
167
|
-
}, O = (r, t) => o.options.createFragmentArgs({
|
|
168
|
-
helper: t.helper,
|
|
169
|
-
options: r.runOptions,
|
|
170
|
-
context: r.context,
|
|
171
|
-
buildOptions: r.buildOptions,
|
|
172
|
-
draft: r.draft
|
|
173
|
-
}), y = (r, t) => o.options.createBuilderArgs({
|
|
174
|
-
helper: t.helper,
|
|
175
|
-
options: r.runOptions,
|
|
176
|
-
context: r.context,
|
|
177
|
-
buildOptions: r.buildOptions,
|
|
178
|
-
artifact: r.artifact
|
|
179
|
-
}), M = (r) => (t) => O(r, t), F = (r) => (t) => y(r, t), K = (r) => r.fragmentRollbacks, S = (r) => r.builderRollbacks ?? [], d = (r) => ({
|
|
180
|
-
context: r.context,
|
|
181
|
-
extensionCoordinator: r.extensionCoordinator,
|
|
182
|
-
extensionState: r.extensionState
|
|
183
|
-
}), A = (r) => r.fragmentExecution ?? u(
|
|
184
|
-
r.fragmentEntries,
|
|
185
|
-
r.fragmentVisited,
|
|
186
|
-
o.fragmentKind
|
|
187
|
-
), P = (r) => {
|
|
188
|
-
const { extensionCoordinator: t, extensionState: n } = r;
|
|
189
|
-
if (!(!t || !n))
|
|
190
|
-
return t.commit(n);
|
|
191
|
-
}, v = (r) => ({
|
|
192
|
-
context: r.context,
|
|
193
|
-
rollbackContext: d(r),
|
|
194
|
-
helperRollbacks: r.builderRollbacks ?? [],
|
|
195
|
-
onHelperRollbackError: o.options.onHelperRollbackError
|
|
196
|
-
}), w = (r, t) => Z(
|
|
197
|
-
{
|
|
198
|
-
rollbackPlan: v(r),
|
|
199
|
-
halt: p
|
|
200
|
-
},
|
|
201
|
-
t
|
|
202
|
-
), B = (r) => (t) => {
|
|
203
|
-
const n = I(
|
|
204
|
-
({ error: c, extensionKeys: s, hookSequence: m, errorMetadata: f }) => r.handleRollbackError({
|
|
205
|
-
error: c,
|
|
206
|
-
extensionKeys: s,
|
|
207
|
-
hookSequence: m,
|
|
208
|
-
errorMetadata: f,
|
|
209
|
-
context: t.context
|
|
210
|
-
})
|
|
211
|
-
), l = n.runLifecycle(
|
|
212
|
-
h,
|
|
213
|
-
{
|
|
214
|
-
hooks: o.extensionHooks,
|
|
215
|
-
hookOptions: r.buildHookOptions(
|
|
216
|
-
t.artifact,
|
|
217
|
-
h
|
|
218
|
-
)
|
|
219
|
-
}
|
|
220
|
-
);
|
|
221
|
-
return b(
|
|
222
|
-
l,
|
|
223
|
-
(c) => ({
|
|
224
|
-
...t,
|
|
225
|
-
artifact: c.artifact,
|
|
226
|
-
extensionCoordinator: n,
|
|
227
|
-
extensionState: c
|
|
228
|
-
})
|
|
229
|
-
);
|
|
230
|
-
}, U = (r) => r.helpers ?? {
|
|
231
|
-
fragments: r.fragmentExecution ?? u(
|
|
232
|
-
r.fragmentEntries,
|
|
233
|
-
r.fragmentVisited,
|
|
234
|
-
o.fragmentKind
|
|
235
|
-
),
|
|
236
|
-
builders: r.builderExecution ?? u(
|
|
237
|
-
r.builderEntries,
|
|
238
|
-
r.builderVisited,
|
|
239
|
-
o.builderKind
|
|
240
|
-
)
|
|
241
|
-
}, z = (r) => ({
|
|
242
|
-
...r,
|
|
243
|
-
helpers: U(r),
|
|
244
|
-
diagnostics: [
|
|
245
|
-
...o.diagnosticManager.readDiagnostics()
|
|
246
|
-
]
|
|
247
|
-
}), D = Y({
|
|
248
|
-
isHalt: g,
|
|
249
|
-
snapshotFragments: A,
|
|
250
|
-
applyArtifact: (r, t) => ({
|
|
251
|
-
...r,
|
|
252
|
-
artifact: o.options.finalizeFragmentState({
|
|
253
|
-
draft: r.draft,
|
|
254
|
-
options: r.runOptions,
|
|
255
|
-
context: r.context,
|
|
256
|
-
buildOptions: r.buildOptions,
|
|
257
|
-
helpers: {
|
|
258
|
-
fragments: t
|
|
259
|
-
}
|
|
260
|
-
}),
|
|
261
|
-
fragmentExecution: t
|
|
262
|
-
})
|
|
263
|
-
}), T = (r) => X({
|
|
264
|
-
isHalt: g,
|
|
265
|
-
execute: B(r)
|
|
266
|
-
}), G = Q({
|
|
267
|
-
isHalt: g,
|
|
268
|
-
commit: P,
|
|
269
|
-
rollbackToHalt: w
|
|
270
|
-
}), V = J({
|
|
271
|
-
isHalt: g,
|
|
272
|
-
finalize: z
|
|
273
|
-
}), _ = {
|
|
274
|
-
getOrder: (r) => r.fragmentOrder,
|
|
275
|
-
makeArgs: M,
|
|
276
|
-
onVisited: (r, t, n) => R(r, t, n),
|
|
277
|
-
readRollbacks: K
|
|
278
|
-
}, C = {
|
|
279
|
-
getOrder: (r) => r.builderOrder,
|
|
280
|
-
makeArgs: F,
|
|
281
|
-
onVisited: (r, t, n) => H(r, t, n),
|
|
282
|
-
readRollbacks: S
|
|
283
|
-
}, L = (r) => {
|
|
284
|
-
const t = W({
|
|
285
|
-
pushStep: r.pushStep,
|
|
286
|
-
toRollbackContext: d,
|
|
287
|
-
halt: p,
|
|
288
|
-
isHalt: g,
|
|
289
|
-
onHelperRollbackError: o.options.onHelperRollbackError
|
|
290
|
-
}), n = t(_), l = t(C), c = [
|
|
291
|
-
V,
|
|
292
|
-
G,
|
|
293
|
-
l,
|
|
294
|
-
T(r),
|
|
295
|
-
D,
|
|
296
|
-
n
|
|
297
|
-
];
|
|
298
|
-
return j(...c);
|
|
299
|
-
};
|
|
300
|
-
return {
|
|
301
|
-
prepareContext: k,
|
|
302
|
-
executeRun: (r) => {
|
|
303
|
-
const t = x(
|
|
304
|
-
o.builderEntries,
|
|
305
|
-
r.builderGraphOptions,
|
|
306
|
-
o.createError
|
|
307
|
-
).order, n = {
|
|
308
|
-
context: r.context,
|
|
309
|
-
reporter: r.context.reporter,
|
|
310
|
-
runOptions: r.runOptions,
|
|
311
|
-
buildOptions: r.buildOptions,
|
|
312
|
-
fragmentEntries: o.fragmentEntries,
|
|
313
|
-
builderEntries: o.builderEntries,
|
|
314
|
-
fragmentOrder: r.fragmentOrder,
|
|
315
|
-
builderOrder: t,
|
|
316
|
-
fragmentVisited: /* @__PURE__ */ new Set(),
|
|
317
|
-
builderVisited: /* @__PURE__ */ new Set(),
|
|
318
|
-
draft: r.draft,
|
|
319
|
-
artifact: null,
|
|
320
|
-
steps: r.steps,
|
|
321
|
-
diagnostics: [],
|
|
322
|
-
fragmentRollbacks: [],
|
|
323
|
-
builderRollbacks: []
|
|
324
|
-
}, l = L(r), c = (s) => {
|
|
325
|
-
if (g(s))
|
|
326
|
-
throw s.error ?? new Error("Pipeline halted");
|
|
327
|
-
return o.resolveRunResult({
|
|
328
|
-
artifact: s.artifact,
|
|
329
|
-
diagnostics: s.diagnostics,
|
|
330
|
-
steps: s.steps,
|
|
331
|
-
context: s.context,
|
|
332
|
-
buildOptions: s.buildOptions,
|
|
333
|
-
options: s.runOptions,
|
|
334
|
-
helpers: s.helpers
|
|
335
|
-
});
|
|
336
|
-
};
|
|
337
|
-
return b(l(n), c);
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
export {
|
|
342
|
-
ar as initPipelineRunner
|
|
343
|
-
};
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { CreateDependencyGraphOptions, RegisteredHelper } from '../dependency-graph';
|
|
2
|
-
import { ErrorFactory } from '../error-factory';
|
|
3
|
-
import { CreatePipelineOptions, Helper, HelperApplyOptions, HelperExecutionSnapshot, HelperKind, MaybePromise, PipelineDiagnostic, PipelineExecutionMetadata, PipelineExtensionHookOptions, PipelineExtensionLifecycle, PipelineExtensionRollbackErrorMetadata, PipelineReporter, PipelineStep } from '../types';
|
|
4
|
-
import { PipelineRollback } from '../rollback';
|
|
5
|
-
import { ExtensionCoordinator, ExtensionLifecycleState } from './extension-coordinator.types';
|
|
6
|
-
import { DiagnosticManager } from './diagnostic-manager.types';
|
|
7
|
-
import { ExtensionHookEntry } from '../extensions';
|
|
8
|
-
/**
|
|
9
|
-
* Mutable state captured while preparing a pipeline run. This mirrors the context consumed by
|
|
10
|
-
* {@link executeHelpers} and downstream extension orchestration.
|
|
11
|
-
*
|
|
12
|
-
* @category Pipeline
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
export interface PipelineRunContext<TRunOptions, TBuildOptions, TContext, TDraft, TArtifact, TFragmentHelper, TBuilderHelper> {
|
|
16
|
-
readonly runOptions: TRunOptions;
|
|
17
|
-
readonly buildOptions: TBuildOptions;
|
|
18
|
-
readonly context: TContext;
|
|
19
|
-
readonly draft: TDraft;
|
|
20
|
-
readonly fragmentOrder: RegisteredHelper<TFragmentHelper>[];
|
|
21
|
-
readonly steps: PipelineStep[];
|
|
22
|
-
readonly pushStep: (entry: RegisteredHelper<unknown>) => void;
|
|
23
|
-
readonly builderGraphOptions: CreateDependencyGraphOptions<TBuilderHelper>;
|
|
24
|
-
readonly buildHookOptions: (artifact: TArtifact, lifecycle: PipelineExtensionLifecycle) => PipelineExtensionHookOptions<TContext, TRunOptions, TArtifact>;
|
|
25
|
-
readonly handleRollbackError: (options: {
|
|
26
|
-
readonly error: unknown;
|
|
27
|
-
readonly extensionKeys: readonly string[];
|
|
28
|
-
readonly hookSequence: readonly string[];
|
|
29
|
-
readonly errorMetadata: PipelineExtensionRollbackErrorMetadata;
|
|
30
|
-
readonly context: TContext;
|
|
31
|
-
}) => void;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Dependency bundle consumed by {@link initPipelineRunner}. Splitting the type into a dedicated
|
|
35
|
-
* module improves cognitive load in the implementation file and keeps the generics re-usable for
|
|
36
|
-
* test doubles.
|
|
37
|
-
*
|
|
38
|
-
* @category Pipeline
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
export interface PipelineRunnerDependencies<TRunOptions, TBuildOptions, TContext extends {
|
|
42
|
-
reporter: TReporter;
|
|
43
|
-
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>> {
|
|
44
|
-
readonly options: CreatePipelineOptions<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
45
|
-
readonly fragmentEntries: RegisteredHelper<TFragmentHelper>[];
|
|
46
|
-
readonly builderEntries: RegisteredHelper<TBuilderHelper>[];
|
|
47
|
-
readonly fragmentKind: TFragmentKind;
|
|
48
|
-
readonly builderKind: TBuilderKind;
|
|
49
|
-
readonly diagnosticManager: DiagnosticManager<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
50
|
-
readonly createError: ErrorFactory;
|
|
51
|
-
readonly resolveRunResult: (state: {
|
|
52
|
-
readonly artifact: TArtifact;
|
|
53
|
-
readonly diagnostics: readonly TDiagnostic[];
|
|
54
|
-
readonly steps: readonly PipelineStep[];
|
|
55
|
-
readonly context: TContext;
|
|
56
|
-
readonly buildOptions: TBuildOptions;
|
|
57
|
-
readonly options: TRunOptions;
|
|
58
|
-
readonly helpers: PipelineExecutionMetadata<TFragmentKind, TBuilderKind>;
|
|
59
|
-
}) => TRunResult;
|
|
60
|
-
readonly extensionHooks: ExtensionHookEntry<TContext, TRunOptions, TArtifact>[];
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Public surface returned by {@link initPipelineRunner}. Downstream consumers receive a helper to
|
|
64
|
-
* prepare the context (building dependency graphs, instantiating drafts) and an executor that runs
|
|
65
|
-
* the prepared context through fragments, extensions, and builders.
|
|
66
|
-
*
|
|
67
|
-
* @category Pipeline
|
|
68
|
-
* @internal
|
|
69
|
-
*/
|
|
70
|
-
export interface PipelineRunner<TRunOptions, TBuildOptions, TContext extends {
|
|
71
|
-
reporter: TReporter;
|
|
72
|
-
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>> {
|
|
73
|
-
readonly prepareContext: (runOptions: TRunOptions) => PipelineRunContext<TRunOptions, TBuildOptions, TContext, TDraft, TArtifact, TFragmentHelper, TBuilderHelper>;
|
|
74
|
-
readonly executeRun: (context: PipelineRunContext<TRunOptions, TBuildOptions, TContext, TDraft, TArtifact, TFragmentHelper, TBuilderHelper>) => MaybePromise<TRunResult>;
|
|
75
|
-
readonly __types?: {
|
|
76
|
-
diagnostic: TDiagnostic;
|
|
77
|
-
helperArgs: HelperApplyOptions<unknown, unknown, unknown>;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Closed-world state threaded through composed pipeline programs. While the implementation still
|
|
82
|
-
* mutates some nested values (e.g. `steps`), every program returns a new state value to keep the
|
|
83
|
-
* orchestrator closed under composition.
|
|
84
|
-
*
|
|
85
|
-
* @category Pipeline
|
|
86
|
-
* @internal
|
|
87
|
-
*/
|
|
88
|
-
export interface PipelineState<TRunOptions, TBuildOptions, TContext extends {
|
|
89
|
-
reporter: TReporter;
|
|
90
|
-
}, TReporter extends PipelineReporter, TDraft, TArtifact, TDiagnostic extends PipelineDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind extends HelperKind, TBuilderKind extends HelperKind, TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>> {
|
|
91
|
-
readonly context: TContext;
|
|
92
|
-
readonly reporter: TReporter;
|
|
93
|
-
readonly runOptions: TRunOptions;
|
|
94
|
-
readonly buildOptions: TBuildOptions;
|
|
95
|
-
readonly fragmentEntries: RegisteredHelper<TFragmentHelper>[];
|
|
96
|
-
readonly builderEntries: RegisteredHelper<TBuilderHelper>[];
|
|
97
|
-
readonly fragmentOrder: RegisteredHelper<TFragmentHelper>[];
|
|
98
|
-
readonly builderOrder: RegisteredHelper<TBuilderHelper>[];
|
|
99
|
-
readonly fragmentVisited: Set<string>;
|
|
100
|
-
readonly builderVisited: Set<string>;
|
|
101
|
-
readonly draft: TDraft;
|
|
102
|
-
readonly artifact: TArtifact | null;
|
|
103
|
-
readonly steps: PipelineStep[];
|
|
104
|
-
readonly diagnostics: TDiagnostic[];
|
|
105
|
-
readonly fragmentExecution?: HelperExecutionSnapshot<TFragmentKind>;
|
|
106
|
-
readonly builderExecution?: HelperExecutionSnapshot<TBuilderKind>;
|
|
107
|
-
readonly helpers?: PipelineExecutionMetadata<TFragmentKind, TBuilderKind>;
|
|
108
|
-
readonly fragmentRollbacks?: Array<{
|
|
109
|
-
readonly helper: TFragmentHelper;
|
|
110
|
-
readonly rollback: PipelineRollback;
|
|
111
|
-
}>;
|
|
112
|
-
readonly builderRollbacks?: Array<{
|
|
113
|
-
readonly helper: TBuilderHelper;
|
|
114
|
-
readonly rollback: PipelineRollback;
|
|
115
|
-
}>;
|
|
116
|
-
readonly extensionCoordinator?: ExtensionCoordinator<TContext, TRunOptions, TArtifact>;
|
|
117
|
-
readonly extensionState?: ExtensionLifecycleState<TContext, TRunOptions, TArtifact>;
|
|
118
|
-
}
|
|
119
|
-
export type { ExtensionHookEntry };
|
|
120
|
-
export type RollbackCapableCoordinator<TContext, TOptions, TArtifact> = {
|
|
121
|
-
createRollbackHandler: <TResult>(state: ExtensionLifecycleState<TContext, TOptions, TArtifact>) => (error: unknown) => MaybePromise<TResult>;
|
|
122
|
-
};
|
|
123
|
-
export type RollbackEntry<THelper> = {
|
|
124
|
-
readonly helper: THelper;
|
|
125
|
-
readonly rollback: PipelineRollback;
|
|
126
|
-
};
|
|
127
|
-
export type Halt<TRunResult> = {
|
|
128
|
-
readonly __halt: true;
|
|
129
|
-
readonly error?: unknown;
|
|
130
|
-
readonly result?: TRunResult;
|
|
131
|
-
};
|
|
132
|
-
export type RollbackContext<TContext, TOptions, TArtifact> = {
|
|
133
|
-
readonly context: TContext;
|
|
134
|
-
readonly extensionCoordinator?: RollbackCapableCoordinator<TContext, TOptions, TArtifact>;
|
|
135
|
-
readonly extensionState?: ExtensionLifecycleState<TContext, TOptions, TArtifact>;
|
|
136
|
-
};
|
|
137
|
-
export type HelperInvokeOptions<THelper, TInput, TOutput, TContext, TReporter extends PipelineReporter> = {
|
|
138
|
-
readonly helper: THelper;
|
|
139
|
-
readonly args: HelperApplyOptions<TContext, TInput, TOutput, TReporter>;
|
|
140
|
-
readonly next: () => MaybePromise<void>;
|
|
141
|
-
};
|
|
142
|
-
export type StageEnv<TState, TRunResult, TContext, TOptions, TArtifact, TReporter extends PipelineReporter> = {
|
|
143
|
-
pushStep: (entry: RegisteredHelper<unknown>) => void;
|
|
144
|
-
toRollbackContext: (state: TState) => RollbackContext<TContext, TOptions, TArtifact>;
|
|
145
|
-
halt: (error?: unknown) => Halt<TRunResult>;
|
|
146
|
-
isHalt: (value: unknown) => value is Halt<TRunResult>;
|
|
147
|
-
onHelperRollbackError?: (options: {
|
|
148
|
-
readonly error: unknown;
|
|
149
|
-
readonly helper: Helper<TContext, unknown, unknown, TReporter, HelperKind>;
|
|
150
|
-
readonly errorMetadata: PipelineExtensionRollbackErrorMetadata;
|
|
151
|
-
readonly context: TContext;
|
|
152
|
-
}) => void;
|
|
153
|
-
};
|
|
154
|
-
export type HelperRollbackPlan<TContext, TOptions, TArtifact, THelper extends {
|
|
155
|
-
key: string;
|
|
156
|
-
}> = {
|
|
157
|
-
readonly context: TContext;
|
|
158
|
-
readonly rollbackContext: RollbackContext<TContext, TOptions, TArtifact>;
|
|
159
|
-
readonly helperRollbacks: readonly RollbackEntry<THelper>[];
|
|
160
|
-
readonly onHelperRollbackError?: (options: {
|
|
161
|
-
readonly error: unknown;
|
|
162
|
-
readonly helper: THelper;
|
|
163
|
-
readonly errorMetadata: PipelineExtensionRollbackErrorMetadata;
|
|
164
|
-
readonly context: TContext;
|
|
165
|
-
}) => void;
|
|
166
|
-
};
|
|
167
|
-
//# sourceMappingURL=pipeline-runner.types.d.ts.map
|