@wpkernel/pipeline 0.12.3-beta.0 → 0.12.5-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 +71 -88
- package/dist/async-utils.d.ts +14 -0
- package/dist/async-utils.d.ts.map +1 -1
- package/dist/async-utils.js +18 -13
- package/dist/createExtension.d.ts +7 -1
- package/dist/createExtension.d.ts.map +1 -1
- package/dist/createPipeline.d.ts.map +1 -1
- package/dist/createPipeline.js +6 -119
- package/dist/dependency-graph.d.ts +6 -0
- package/dist/dependency-graph.d.ts.map +1 -1
- package/dist/dependency-graph.js +73 -65
- package/dist/error-factory.d.ts +1 -1
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +61 -62
- package/dist/helper.d.ts +27 -16
- package/dist/helper.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -21
- package/dist/internal/pipeline-program-utils.d.ts +127 -0
- package/dist/internal/pipeline-program-utils.d.ts.map +1 -0
- package/dist/internal/pipeline-program-utils.js +161 -0
- package/dist/internal/pipeline-runner.types.d.ts +117 -1
- package/dist/internal/pipeline-runner.types.d.ts.map +1 -1
- package/dist/internal/runner/context.d.ts +6 -0
- package/dist/internal/runner/context.d.ts.map +1 -0
- package/dist/internal/runner/context.js +169 -0
- package/dist/internal/runner/execution.d.ts +6 -0
- package/dist/internal/runner/execution.d.ts.map +1 -0
- package/dist/internal/runner/execution.js +40 -0
- package/dist/internal/{pipeline-runner.d.ts → runner/index.d.ts} +3 -8
- package/dist/internal/runner/index.d.ts.map +1 -0
- package/dist/internal/runner/index.js +11 -0
- package/dist/internal/runner/program.d.ts +8 -0
- package/dist/internal/runner/program.d.ts.map +1 -0
- package/dist/internal/runner/program.js +294 -0
- package/dist/makePipeline.d.ts +20 -0
- package/dist/makePipeline.d.ts.map +1 -0
- package/dist/makePipeline.js +139 -0
- package/dist/registration.d.ts.map +1 -1
- package/dist/registration.js +17 -15
- package/dist/rollback.d.ts +94 -0
- package/dist/rollback.d.ts.map +1 -0
- package/dist/rollback.js +46 -0
- package/dist/types.d.ts +37 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/internal/pipeline-runner.d.ts.map +0 -1
- package/dist/internal/pipeline-runner.js +0 -257
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { composeK as G, maybeThen as $ } from "../../async-utils.js";
|
|
2
|
+
import { buildExecutionSnapshot as s, assertAllHelpersExecuted as S } from "../helper-execution.js";
|
|
3
|
+
import { initExtensionCoordinator as j } from "../extension-coordinator.js";
|
|
4
|
+
import { makeAfterFragmentsStage as q, makeFinalizeResultStage as I, makeCommitStage as J, makeFinalizeFragmentsStage as Q, makeHelperStageFactory as W, isHalt as c, runRollbackToHalt as X } from "../pipeline-program-utils.js";
|
|
5
|
+
const Y = "after-fragments";
|
|
6
|
+
function Z(o) {
|
|
7
|
+
const {
|
|
8
|
+
fragmentStage: l,
|
|
9
|
+
finalizeFragments: g,
|
|
10
|
+
builderStage: u,
|
|
11
|
+
commitStage: f,
|
|
12
|
+
finalizeResult: h,
|
|
13
|
+
makeLifecycleStage: x,
|
|
14
|
+
extensions: b
|
|
15
|
+
} = o, p = (b?.lifecycles ?? []).map(
|
|
16
|
+
x
|
|
17
|
+
);
|
|
18
|
+
return [
|
|
19
|
+
l,
|
|
20
|
+
g,
|
|
21
|
+
...p,
|
|
22
|
+
u,
|
|
23
|
+
f,
|
|
24
|
+
h
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
const ar = (o, l) => {
|
|
28
|
+
const g = (r) => ({
|
|
29
|
+
__halt: !0,
|
|
30
|
+
error: r
|
|
31
|
+
}), u = (r, t, n) => {
|
|
32
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
33
|
+
r.fragmentEntries,
|
|
34
|
+
t,
|
|
35
|
+
o.fragmentKind
|
|
36
|
+
);
|
|
37
|
+
const e = s(
|
|
38
|
+
r.fragmentEntries,
|
|
39
|
+
t,
|
|
40
|
+
o.fragmentKind
|
|
41
|
+
);
|
|
42
|
+
return S(
|
|
43
|
+
r.fragmentEntries,
|
|
44
|
+
e,
|
|
45
|
+
o.fragmentKind,
|
|
46
|
+
o.diagnosticManager.describeHelper,
|
|
47
|
+
o.createError
|
|
48
|
+
), {
|
|
49
|
+
...r,
|
|
50
|
+
fragmentVisited: t,
|
|
51
|
+
fragmentExecution: e,
|
|
52
|
+
fragmentRollbacks: n
|
|
53
|
+
};
|
|
54
|
+
}, f = (r, t, n) => {
|
|
55
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
56
|
+
r.builderEntries,
|
|
57
|
+
t,
|
|
58
|
+
o.builderKind
|
|
59
|
+
);
|
|
60
|
+
const e = s(
|
|
61
|
+
r.builderEntries,
|
|
62
|
+
t,
|
|
63
|
+
o.builderKind
|
|
64
|
+
);
|
|
65
|
+
return S(
|
|
66
|
+
r.builderEntries,
|
|
67
|
+
e,
|
|
68
|
+
o.builderKind,
|
|
69
|
+
o.diagnosticManager.describeHelper,
|
|
70
|
+
o.createError
|
|
71
|
+
), {
|
|
72
|
+
...r,
|
|
73
|
+
builderVisited: t,
|
|
74
|
+
builderExecution: e,
|
|
75
|
+
builderRollbacks: n
|
|
76
|
+
};
|
|
77
|
+
}, h = (r, t) => o.options.createFragmentArgs({
|
|
78
|
+
helper: t.helper,
|
|
79
|
+
options: r.runOptions,
|
|
80
|
+
context: r.context,
|
|
81
|
+
buildOptions: r.buildOptions,
|
|
82
|
+
draft: r.draft
|
|
83
|
+
}), x = (r, t) => o.options.createBuilderArgs({
|
|
84
|
+
helper: t.helper,
|
|
85
|
+
options: r.runOptions,
|
|
86
|
+
context: r.context,
|
|
87
|
+
buildOptions: r.buildOptions,
|
|
88
|
+
artifact: r.artifact
|
|
89
|
+
}), b = (r) => (t) => h(r, t), p = (r) => (t) => x(r, t), H = (r) => r.fragmentRollbacks, F = (r) => r.builderRollbacks ?? [], k = (r) => ({
|
|
90
|
+
context: r.context,
|
|
91
|
+
extensionCoordinator: r.extensionCoordinator,
|
|
92
|
+
extensionState: r.extensionState
|
|
93
|
+
}), y = (r) => r.fragmentExecution ?? s(
|
|
94
|
+
r.fragmentEntries,
|
|
95
|
+
r.fragmentVisited,
|
|
96
|
+
o.fragmentKind
|
|
97
|
+
), z = (r) => {
|
|
98
|
+
const { extensionCoordinator: t, extensionState: n } = r;
|
|
99
|
+
if (!(!t || !n))
|
|
100
|
+
return t.commit(n);
|
|
101
|
+
}, M = (r) => ({
|
|
102
|
+
context: r.context,
|
|
103
|
+
rollbackContext: k(r),
|
|
104
|
+
helperRollbacks: r.builderRollbacks ?? [],
|
|
105
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
106
|
+
}), w = (r, t) => X(
|
|
107
|
+
{
|
|
108
|
+
rollbackPlan: M(r),
|
|
109
|
+
halt: g
|
|
110
|
+
},
|
|
111
|
+
t
|
|
112
|
+
), P = (r) => (t) => {
|
|
113
|
+
const n = j(
|
|
114
|
+
({ error: a, extensionKeys: i, hookSequence: m, errorMetadata: E }) => l.handleRollbackError({
|
|
115
|
+
error: a,
|
|
116
|
+
extensionKeys: i,
|
|
117
|
+
hookSequence: m,
|
|
118
|
+
errorMetadata: E,
|
|
119
|
+
context: t.context
|
|
120
|
+
})
|
|
121
|
+
), e = n.runLifecycle(
|
|
122
|
+
r,
|
|
123
|
+
{
|
|
124
|
+
hooks: o.extensionHooks,
|
|
125
|
+
hookOptions: l.buildHookOptions(
|
|
126
|
+
t.artifact,
|
|
127
|
+
r
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
return $(
|
|
132
|
+
e,
|
|
133
|
+
(a) => ({
|
|
134
|
+
...t,
|
|
135
|
+
artifact: a.artifact,
|
|
136
|
+
extensionCoordinator: n,
|
|
137
|
+
extensionState: a
|
|
138
|
+
})
|
|
139
|
+
);
|
|
140
|
+
}, d = (r) => r.helpers ?? {
|
|
141
|
+
fragments: r.fragmentExecution ?? s(
|
|
142
|
+
r.fragmentEntries,
|
|
143
|
+
r.fragmentVisited,
|
|
144
|
+
o.fragmentKind
|
|
145
|
+
),
|
|
146
|
+
builders: r.builderExecution ?? s(
|
|
147
|
+
r.builderEntries,
|
|
148
|
+
r.builderVisited,
|
|
149
|
+
o.builderKind
|
|
150
|
+
)
|
|
151
|
+
}, B = (r) => ({
|
|
152
|
+
...r,
|
|
153
|
+
helpers: d(r),
|
|
154
|
+
diagnostics: [
|
|
155
|
+
...o.diagnosticManager.readDiagnostics()
|
|
156
|
+
]
|
|
157
|
+
}), C = Q({
|
|
158
|
+
isHalt: c,
|
|
159
|
+
snapshotFragments: y,
|
|
160
|
+
applyArtifact: (r, t) => ({
|
|
161
|
+
...r,
|
|
162
|
+
artifact: o.options.finalizeFragmentState({
|
|
163
|
+
draft: r.draft,
|
|
164
|
+
options: r.runOptions,
|
|
165
|
+
context: r.context,
|
|
166
|
+
buildOptions: r.buildOptions,
|
|
167
|
+
helpers: {
|
|
168
|
+
fragments: t
|
|
169
|
+
}
|
|
170
|
+
}),
|
|
171
|
+
fragmentExecution: t
|
|
172
|
+
})
|
|
173
|
+
}), L = (r) => q({
|
|
174
|
+
isHalt: c,
|
|
175
|
+
execute: P(r)
|
|
176
|
+
}), T = J({
|
|
177
|
+
isHalt: c,
|
|
178
|
+
commit: z,
|
|
179
|
+
rollbackToHalt: w
|
|
180
|
+
}), V = I({
|
|
181
|
+
isHalt: c,
|
|
182
|
+
finalize: B
|
|
183
|
+
}), v = {
|
|
184
|
+
getOrder: (r) => r.fragmentOrder,
|
|
185
|
+
makeArgs: b,
|
|
186
|
+
onVisited: (r, t, n) => u(r, t, n),
|
|
187
|
+
readRollbacks: H
|
|
188
|
+
}, U = {
|
|
189
|
+
getOrder: (r) => r.builderOrder,
|
|
190
|
+
makeArgs: p,
|
|
191
|
+
onVisited: (r, t, n) => f(r, t, n),
|
|
192
|
+
readRollbacks: F
|
|
193
|
+
}, R = W({
|
|
194
|
+
pushStep: l.pushStep,
|
|
195
|
+
toRollbackContext: k,
|
|
196
|
+
halt: g,
|
|
197
|
+
isHalt: c,
|
|
198
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
199
|
+
}), _ = R(v), N = R(U), O = {
|
|
200
|
+
runnerEnv: {
|
|
201
|
+
pushStep: l.pushStep,
|
|
202
|
+
toRollbackContext: k,
|
|
203
|
+
halt: g,
|
|
204
|
+
isHalt: c,
|
|
205
|
+
onHelperRollbackError: o.options.onHelperRollbackError
|
|
206
|
+
},
|
|
207
|
+
fragmentStage: _,
|
|
208
|
+
builderStage: N,
|
|
209
|
+
finalizeFragments: C,
|
|
210
|
+
commitStage: T,
|
|
211
|
+
finalizeResult: V,
|
|
212
|
+
makeLifecycleStage: L,
|
|
213
|
+
extensions: {
|
|
214
|
+
lifecycles: o.extensionHooks.length > 0 ? o.extensionLifecycles ?? [Y] : []
|
|
215
|
+
},
|
|
216
|
+
makeHelperStage: (r, t) => R(
|
|
217
|
+
{
|
|
218
|
+
getOrder: (e) => e.helperOrders?.get(r) ?? [],
|
|
219
|
+
makeArgs: (e) => {
|
|
220
|
+
if (t?.makeArgs)
|
|
221
|
+
return t.makeArgs(e);
|
|
222
|
+
if (r === o.fragmentKind)
|
|
223
|
+
return b(e);
|
|
224
|
+
if (r === o.builderKind)
|
|
225
|
+
return p(e);
|
|
226
|
+
throw new Error(`No args factory for kind "${r}"`);
|
|
227
|
+
},
|
|
228
|
+
onVisited: (e, a, i) => {
|
|
229
|
+
if (t?.onVisited)
|
|
230
|
+
return t.onVisited(
|
|
231
|
+
e,
|
|
232
|
+
a,
|
|
233
|
+
i
|
|
234
|
+
);
|
|
235
|
+
if (r === o.fragmentKind)
|
|
236
|
+
return u(
|
|
237
|
+
e,
|
|
238
|
+
a,
|
|
239
|
+
i
|
|
240
|
+
);
|
|
241
|
+
if (r === o.builderKind)
|
|
242
|
+
return f(
|
|
243
|
+
e,
|
|
244
|
+
a,
|
|
245
|
+
i
|
|
246
|
+
);
|
|
247
|
+
const m = e.helperOrders?.get(r) ?? [];
|
|
248
|
+
o.diagnosticManager.reviewUnusedHelpers(
|
|
249
|
+
m,
|
|
250
|
+
a,
|
|
251
|
+
r
|
|
252
|
+
);
|
|
253
|
+
const E = s(
|
|
254
|
+
m,
|
|
255
|
+
a,
|
|
256
|
+
r
|
|
257
|
+
);
|
|
258
|
+
S(
|
|
259
|
+
m,
|
|
260
|
+
E,
|
|
261
|
+
r,
|
|
262
|
+
o.diagnosticManager.describeHelper,
|
|
263
|
+
o.createError
|
|
264
|
+
);
|
|
265
|
+
const A = new Map(
|
|
266
|
+
e.helperExecution ?? []
|
|
267
|
+
);
|
|
268
|
+
A.set(r, E);
|
|
269
|
+
const K = new Map(
|
|
270
|
+
e.helperRollbacks ?? []
|
|
271
|
+
);
|
|
272
|
+
return K.set(
|
|
273
|
+
r,
|
|
274
|
+
i
|
|
275
|
+
), {
|
|
276
|
+
...e,
|
|
277
|
+
helperExecution: A,
|
|
278
|
+
helperRollbacks: K
|
|
279
|
+
};
|
|
280
|
+
},
|
|
281
|
+
readRollbacks: (e) => r === o.fragmentKind ? H(
|
|
282
|
+
e
|
|
283
|
+
) : r === o.builderKind ? F(
|
|
284
|
+
e
|
|
285
|
+
) : e.helperRollbacks?.get(r)
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
}, D = o.stages ? o.stages(O) : Z(O);
|
|
289
|
+
return G(...[...D].reverse());
|
|
290
|
+
};
|
|
291
|
+
export {
|
|
292
|
+
ar as createCoreProgram,
|
|
293
|
+
Z as defaultStages
|
|
294
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CreatePipelineOptions, Helper, HelperKind, Pipeline, PipelineDiagnostic, PipelineReporter, PipelineRunState } from './types';
|
|
2
|
+
import { DefaultStageDeps, PipelineStage, PipelineState, Halt } from './internal/pipeline-runner.types';
|
|
3
|
+
export { DefaultStageDeps, PipelineStage, } from "./internal/pipeline-runner.types";
|
|
4
|
+
export { defaultStages } from './internal/runner/program';
|
|
5
|
+
export type MakePipelineArgs<TRunOptions, TReporter extends PipelineReporter = PipelineReporter, TContext extends {
|
|
6
|
+
reporter: TReporter;
|
|
7
|
+
} = {
|
|
8
|
+
reporter: TReporter;
|
|
9
|
+
}, TArtifact = unknown, TDiagnostic extends PipelineDiagnostic = PipelineDiagnostic, TRunResult = PipelineRunState<TArtifact, TDiagnostic>, TBuildOptions = unknown, TDraft = unknown, TFragmentInput = unknown, TFragmentOutput = unknown, TBuilderInput = unknown, TBuilderOutput = unknown, TFragmentKind extends HelperKind = 'fragment', TBuilderKind extends HelperKind = 'builder', TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind> = Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind> = Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>> = CreatePipelineOptions<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TRunResult, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper> & {
|
|
10
|
+
extensions?: {
|
|
11
|
+
lifecycles?: string[];
|
|
12
|
+
};
|
|
13
|
+
stages?: (deps: DefaultStageDeps<PipelineState<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, TRunResult, TContext, TRunOptions, TArtifact, TReporter>) => PipelineStage<PipelineState<TRunOptions, TBuildOptions, TContext, TReporter, TDraft, TArtifact, TDiagnostic, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>, Halt<TRunResult>>[];
|
|
14
|
+
};
|
|
15
|
+
export declare function makePipeline<TRunOptions, TReporter extends PipelineReporter = PipelineReporter, TContext extends {
|
|
16
|
+
reporter: TReporter;
|
|
17
|
+
} = {
|
|
18
|
+
reporter: TReporter;
|
|
19
|
+
}, TArtifact = unknown, TDiagnostic extends PipelineDiagnostic = PipelineDiagnostic, TRunResult = PipelineRunState<TArtifact, TDiagnostic>, TBuildOptions = unknown, TDraft = unknown, TFragmentInput = unknown, TFragmentOutput = unknown, TBuilderInput = unknown, TBuilderOutput = unknown, TFragmentKind extends HelperKind = 'fragment', TBuilderKind extends HelperKind = 'builder', TFragmentHelper extends Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind> = Helper<TContext, TFragmentInput, TFragmentOutput, TReporter, TFragmentKind>, TBuilderHelper extends Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind> = Helper<TContext, TBuilderInput, TBuilderOutput, TReporter, TBuilderKind>>(options: MakePipelineArgs<TRunOptions, TReporter, TContext, TArtifact, TDiagnostic, TRunResult, TBuildOptions, TDraft, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>): Pipeline<TRunOptions, TRunResult, TContext, TReporter, TBuildOptions, TArtifact, TFragmentInput, TFragmentOutput, TBuilderInput, TBuilderOutput, TDiagnostic, TFragmentKind, TBuilderKind, TFragmentHelper, TBuilderHelper>;
|
|
20
|
+
//# sourceMappingURL=makePipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makePipeline.d.ts","sourceRoot":"","sources":["../src/makePipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { maybeThen as K, isPromiseLike as C } from "./async-utils.js";
|
|
2
|
+
import { registerHelper as g, handleExtensionRegisterResult as F } from "./registration.js";
|
|
3
|
+
import { initDiagnosticManager as L } from "./internal/diagnostic-manager.js";
|
|
4
|
+
import { initPipelineRunner as V } from "./internal/runner/index.js";
|
|
5
|
+
function j(r) {
|
|
6
|
+
const i = r.fragmentKind ?? "fragment", s = r.builderKind ?? "builder", a = r.createError ?? ((e, n) => new Error(`[${e}] ${n}`)), u = /* @__PURE__ */ new Map(), d = (e) => (u.has(e) || u.set(e, []), u.get(e)), f = d(
|
|
7
|
+
i
|
|
8
|
+
), m = d(
|
|
9
|
+
s
|
|
10
|
+
), R = [], c = [], l = L({
|
|
11
|
+
options: r,
|
|
12
|
+
fragmentKind: i,
|
|
13
|
+
builderKind: s
|
|
14
|
+
}), P = r.createRunResult ?? ((e) => ({
|
|
15
|
+
artifact: e.artifact,
|
|
16
|
+
diagnostics: e.diagnostics,
|
|
17
|
+
steps: e.steps
|
|
18
|
+
})), H = {
|
|
19
|
+
options: r,
|
|
20
|
+
fragmentEntries: f,
|
|
21
|
+
builderEntries: m,
|
|
22
|
+
helperRegistries: u,
|
|
23
|
+
fragmentKind: i,
|
|
24
|
+
builderKind: s,
|
|
25
|
+
diagnosticManager: l,
|
|
26
|
+
createError: a,
|
|
27
|
+
resolveRunResult: P,
|
|
28
|
+
extensionHooks: R,
|
|
29
|
+
extensionLifecycles: r.extensions?.lifecycles,
|
|
30
|
+
stages: r.stages
|
|
31
|
+
}, x = V(H), p = i, E = s, h = (e) => g(
|
|
32
|
+
e,
|
|
33
|
+
i,
|
|
34
|
+
f,
|
|
35
|
+
p,
|
|
36
|
+
(n, t, o) => l.flagConflict(
|
|
37
|
+
n,
|
|
38
|
+
t,
|
|
39
|
+
p,
|
|
40
|
+
o
|
|
41
|
+
),
|
|
42
|
+
a
|
|
43
|
+
), v = (e) => g(
|
|
44
|
+
e,
|
|
45
|
+
s,
|
|
46
|
+
m,
|
|
47
|
+
E,
|
|
48
|
+
(n, t, o) => l.flagConflict(
|
|
49
|
+
n,
|
|
50
|
+
t,
|
|
51
|
+
E,
|
|
52
|
+
o
|
|
53
|
+
),
|
|
54
|
+
a
|
|
55
|
+
), b = (e, n) => F(e, n, R), w = (e) => {
|
|
56
|
+
if (e && C(e)) {
|
|
57
|
+
Promise.resolve(e).catch(() => {
|
|
58
|
+
});
|
|
59
|
+
const n = Promise.resolve(e).then(() => {
|
|
60
|
+
});
|
|
61
|
+
n.catch(() => {
|
|
62
|
+
}), c.push(n), n.finally(() => {
|
|
63
|
+
const t = c.indexOf(n);
|
|
64
|
+
t !== -1 && c.splice(t, 1);
|
|
65
|
+
}).catch(() => {
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return e;
|
|
69
|
+
}, M = () => {
|
|
70
|
+
if (c.length !== 0)
|
|
71
|
+
return Promise.all([...c]).then(
|
|
72
|
+
() => {
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}, k = {
|
|
76
|
+
fragmentKind: i,
|
|
77
|
+
builderKind: s,
|
|
78
|
+
ir: {
|
|
79
|
+
use(e) {
|
|
80
|
+
h(e);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
builders: {
|
|
84
|
+
use(e) {
|
|
85
|
+
v(e);
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
extensions: {
|
|
89
|
+
use(e) {
|
|
90
|
+
const n = e.register(k);
|
|
91
|
+
n && C(n) && Promise.resolve(n).catch(() => {
|
|
92
|
+
});
|
|
93
|
+
const t = K(
|
|
94
|
+
n,
|
|
95
|
+
(o) => b(e.key, o)
|
|
96
|
+
);
|
|
97
|
+
return w(t);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
use(e) {
|
|
101
|
+
if (e.kind === i) {
|
|
102
|
+
h(e);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (e.kind === s) {
|
|
106
|
+
v(e);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const n = e.kind, t = d(n);
|
|
110
|
+
g(
|
|
111
|
+
e,
|
|
112
|
+
n,
|
|
113
|
+
t,
|
|
114
|
+
n,
|
|
115
|
+
(o, y, D) => l.flagConflict(
|
|
116
|
+
o,
|
|
117
|
+
y,
|
|
118
|
+
n,
|
|
119
|
+
D
|
|
120
|
+
),
|
|
121
|
+
a
|
|
122
|
+
);
|
|
123
|
+
},
|
|
124
|
+
run(e) {
|
|
125
|
+
const n = () => {
|
|
126
|
+
const t = x.prepareContext(e);
|
|
127
|
+
return x.executeRun(t);
|
|
128
|
+
};
|
|
129
|
+
return K(
|
|
130
|
+
M(),
|
|
131
|
+
() => n()
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
return k;
|
|
136
|
+
}
|
|
137
|
+
export {
|
|
138
|
+
j as makePipeline
|
|
139
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,qBAAqB,EAErB,0BAA0B,EAC1B,gBAAgB,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,MAAM,CACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,CACL,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAEvD,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACzE,WAAW,EAAE,YAAY,GACvB,IAAI,
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,MAAM,EACN,UAAU,EACV,qBAAqB,EAErB,0BAA0B,EAC1B,gBAAgB,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,UAAU,EACxB,OAAO,SAAS,MAAM,CACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,CACL,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAEvD,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,EACzE,WAAW,EAAE,YAAY,GACvB,IAAI,CAqCN;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAClE,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAC1D,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EACnE,SAAS,GAAE,0BAA8C,GACvD,MAAM,CASR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAC1E,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GACjE,OAAO,CAqCT"}
|
package/dist/registration.js
CHANGED
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
import { createHelperId as
|
|
2
|
-
function
|
|
1
|
+
import { createHelperId as k } from "./dependency-graph.js";
|
|
2
|
+
function a(e, i, o, n, r, d) {
|
|
3
3
|
if (e.kind !== i)
|
|
4
4
|
throw d(
|
|
5
5
|
"ValidationError",
|
|
6
|
-
`Attempted to register helper "${e.key}" as ${
|
|
6
|
+
`Attempted to register helper "${e.key}" as ${n} but received kind "${e.kind}".`
|
|
7
7
|
);
|
|
8
8
|
if (e.mode === "override") {
|
|
9
9
|
const c = o.find(
|
|
10
|
-
(
|
|
10
|
+
(t) => t.helper.key === e.key && t.helper.mode === "override"
|
|
11
11
|
);
|
|
12
12
|
if (c) {
|
|
13
|
-
const
|
|
14
|
-
throw r(e, c.helper,
|
|
13
|
+
const t = `Multiple overrides registered for helper "${e.key}".`;
|
|
14
|
+
throw r(e, c.helper, t), d("ValidationError", t);
|
|
15
15
|
}
|
|
16
|
+
for (let t = o.length - 1; t >= 0; t--)
|
|
17
|
+
o[t].helper.key === e.key && o.splice(t, 1);
|
|
16
18
|
}
|
|
17
19
|
const f = o.length;
|
|
18
20
|
o.push({
|
|
19
21
|
helper: e,
|
|
20
|
-
id:
|
|
22
|
+
id: k(e, f),
|
|
21
23
|
index: f
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
|
-
function g(e, i, o,
|
|
26
|
+
function g(e, i, o, n = "after-fragments") {
|
|
25
27
|
const r = e ?? `pipeline.extension#${o.length + 1}`;
|
|
26
28
|
return o.push({
|
|
27
29
|
key: r,
|
|
28
|
-
lifecycle:
|
|
30
|
+
lifecycle: n,
|
|
29
31
|
hook: i
|
|
30
32
|
}), r;
|
|
31
33
|
}
|
|
32
|
-
function
|
|
34
|
+
function y(e, i, o) {
|
|
33
35
|
if (typeof i == "function") {
|
|
34
36
|
g(
|
|
35
37
|
e,
|
|
@@ -39,19 +41,19 @@ function s(e, i, o) {
|
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
43
|
if (i && typeof i == "object" && "hook" in i && typeof i.hook == "function") {
|
|
42
|
-
const
|
|
44
|
+
const n = i;
|
|
43
45
|
g(
|
|
44
46
|
e,
|
|
45
|
-
|
|
47
|
+
n.hook,
|
|
46
48
|
o,
|
|
47
|
-
|
|
49
|
+
n.lifecycle
|
|
48
50
|
);
|
|
49
51
|
return;
|
|
50
52
|
}
|
|
51
53
|
return i;
|
|
52
54
|
}
|
|
53
55
|
export {
|
|
54
|
-
|
|
56
|
+
y as handleExtensionRegisterResult,
|
|
55
57
|
g as registerExtensionHook,
|
|
56
|
-
|
|
58
|
+
a as registerHelper
|
|
57
59
|
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { MaybePromise } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Metadata about an error during rollback execution.
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export interface PipelineRollbackErrorMetadata {
|
|
7
|
+
readonly name?: string;
|
|
8
|
+
readonly message?: string;
|
|
9
|
+
readonly stack?: string;
|
|
10
|
+
readonly cause?: unknown;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A rollback operation that can be executed to undo changes.
|
|
14
|
+
*
|
|
15
|
+
* Rollbacks are collected during helper/extension execution and invoked in reverse order
|
|
16
|
+
* if the pipeline encounters a failure, enabling cleanup and state restoration.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export interface PipelineRollback {
|
|
21
|
+
readonly key?: string;
|
|
22
|
+
readonly label?: string;
|
|
23
|
+
readonly run: () => unknown | Promise<unknown>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Options for executing a rollback stack.
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export interface RunRollbackStackOptions {
|
|
30
|
+
readonly source: 'extension' | 'helper';
|
|
31
|
+
readonly onError?: (args: {
|
|
32
|
+
readonly error: unknown;
|
|
33
|
+
readonly entry: PipelineRollback;
|
|
34
|
+
readonly metadata: PipelineRollbackErrorMetadata;
|
|
35
|
+
}) => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Creates a pipeline rollback object with metadata.
|
|
39
|
+
*
|
|
40
|
+
* This is a lightweight wrapper that helps distinguish rollback operations in diagnostics
|
|
41
|
+
* and error handling. It's used by both helpers and extensions to declare cleanup functions.
|
|
42
|
+
*
|
|
43
|
+
* @param run - The rollback function to execute
|
|
44
|
+
* @param options - Optional metadata (key, label) for diagnostics
|
|
45
|
+
* @param options.key
|
|
46
|
+
* @param options.label
|
|
47
|
+
* @returns A rollback descriptor with the run function and metadata
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const rollback = createPipelineRollback(
|
|
52
|
+
* () => {
|
|
53
|
+
* cleanup();
|
|
54
|
+
* },
|
|
55
|
+
* {
|
|
56
|
+
* key: 'my-helper',
|
|
57
|
+
* label: 'Restore previous state',
|
|
58
|
+
* }
|
|
59
|
+
* );
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
export declare function createPipelineRollback(run: () => unknown | Promise<unknown>, options?: {
|
|
65
|
+
readonly key?: string;
|
|
66
|
+
readonly label?: string;
|
|
67
|
+
}): PipelineRollback;
|
|
68
|
+
/**
|
|
69
|
+
* Converts an error into a serializable metadata object.
|
|
70
|
+
*
|
|
71
|
+
* Extracts `name`, `message`, `stack`, and `cause` from Error instances.
|
|
72
|
+
* Falls back to a plain message string for non-Error values.
|
|
73
|
+
*
|
|
74
|
+
* @param error - The error to convert
|
|
75
|
+
* @returns Serializable error metadata
|
|
76
|
+
*
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
export declare function createRollbackErrorMetadata(error: unknown): PipelineRollbackErrorMetadata;
|
|
80
|
+
/**
|
|
81
|
+
* Executes a stack of rollback operations in reverse order.
|
|
82
|
+
*
|
|
83
|
+
* Each rollback is executed sequentially in reverse (LIFO) order. If any rollback fails,
|
|
84
|
+
* the error is reported via the onError callback but execution continues with remaining
|
|
85
|
+
* rollbacks. This ensures all cleanup functions are attempted even if some fail.
|
|
86
|
+
*
|
|
87
|
+
* @param entries - The rollback entries to execute in reverse order
|
|
88
|
+
* @param options - Configuration including error handler and rollback source
|
|
89
|
+
* @returns A promise if any rollback is async, otherwise `void`
|
|
90
|
+
*
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
export declare function runRollbackStack(entries: readonly PipelineRollback[], options: RunRollbackStackOptions): MaybePromise<void>;
|
|
94
|
+
//# sourceMappingURL=rollback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../src/rollback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;KACjD,KAAK,IAAI,CAAC;CACX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACrC,OAAO,GAAE;IACR,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACnB,GACJ,gBAAgB,CAElB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,OAAO,GACZ,6BAA6B,CAoB/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,OAAO,EAAE,uBAAuB,GAC9B,YAAY,CAAC,IAAI,CAAC,CAyCpB"}
|
package/dist/rollback.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { isPromiseLike as u, maybeTry as f } from "./async-utils.js";
|
|
2
|
+
function v(e, t = {}) {
|
|
3
|
+
return { run: e, ...t };
|
|
4
|
+
}
|
|
5
|
+
function m(e) {
|
|
6
|
+
if (e instanceof Error) {
|
|
7
|
+
const { name: t, message: r, stack: n } = e, o = e.cause;
|
|
8
|
+
return {
|
|
9
|
+
name: t,
|
|
10
|
+
message: r,
|
|
11
|
+
stack: n,
|
|
12
|
+
cause: o
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return typeof e == "string" ? {
|
|
16
|
+
message: e
|
|
17
|
+
} : {};
|
|
18
|
+
}
|
|
19
|
+
function b(e, t) {
|
|
20
|
+
const r = [...e].reverse(), n = (s) => {
|
|
21
|
+
if (s >= r.length)
|
|
22
|
+
return;
|
|
23
|
+
const a = r[s], i = f(
|
|
24
|
+
() => a.run(),
|
|
25
|
+
(c) => {
|
|
26
|
+
const l = m(c);
|
|
27
|
+
t.onError?.({
|
|
28
|
+
error: c,
|
|
29
|
+
entry: a,
|
|
30
|
+
metadata: l
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
return u(i) ? Promise.resolve(i).then(
|
|
35
|
+
() => n(s + 1)
|
|
36
|
+
) : n(s + 1);
|
|
37
|
+
}, o = n(0);
|
|
38
|
+
if (u(o))
|
|
39
|
+
return Promise.resolve(o).then(() => {
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
v as createPipelineRollback,
|
|
44
|
+
m as createRollbackErrorMetadata,
|
|
45
|
+
b as runRollbackStack
|
|
46
|
+
};
|