@effect-app/vue 2.67.7 → 2.69.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 +12 -0
- package/dist/experimental/commander.d.ts +23 -33
- package/dist/experimental/commander.d.ts.map +1 -1
- package/dist/experimental/commander.js +125 -111
- package/dist/experimental/confirm.d.ts +1 -0
- package/dist/experimental/confirm.d.ts.map +1 -1
- package/dist/experimental/confirm.js +3 -2
- package/dist/experimental/makeUseCommand.d.ts +23 -24
- package/dist/experimental/makeUseCommand.d.ts.map +1 -1
- package/dist/experimental/makeUseCommand.js +4 -3
- package/dist/makeClient.d.ts +314 -107
- package/dist/makeClient.d.ts.map +1 -1
- package/dist/makeClient.js +75 -4
- package/package.json +2 -1
- package/src/experimental/commander.ts +218 -207
- package/src/experimental/confirm.ts +2 -1
- package/src/experimental/makeUseCommand.ts +3 -2
- package/src/makeClient.ts +264 -6
- package/test/dist/stubs.d.ts +24 -25
- package/test/dist/stubs.d.ts.map +1 -1
- package/test/dist/stubs.js +2 -2
- package/test/stubs.ts +2 -2
|
@@ -41,13 +41,89 @@ export class CommandContext extends Effect.Tag("CommandContext")() {
|
|
|
41
41
|
* Useful when the publisher wants to wait for the subscriber to finish processing.
|
|
42
42
|
*/
|
|
43
43
|
export const wrapEmit = (emit, event) => (value) => new Promise((resolve) => emit(event, value, resolve));
|
|
44
|
+
const renderErrorMaker = I18n.use(({ intl }) => (action, errorRenderer) => (e, ...args) => {
|
|
45
|
+
if (errorRenderer) {
|
|
46
|
+
const m = errorRenderer(e, action, ...args);
|
|
47
|
+
if (m) {
|
|
48
|
+
return m;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!S.is(SupportedErrors)(e) && !S.ParseResult.isParseError(e)) {
|
|
52
|
+
if (typeof e === "object" && e !== null) {
|
|
53
|
+
if ("message" in e) {
|
|
54
|
+
return `${e.message}`;
|
|
55
|
+
}
|
|
56
|
+
if ("_tag" in e) {
|
|
57
|
+
return `${e._tag}`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return "";
|
|
61
|
+
}
|
|
62
|
+
const e2 = e;
|
|
63
|
+
return Match.value(e2).pipe(Match.tags({
|
|
64
|
+
ParseError: (e) => {
|
|
65
|
+
console.warn(e.toString());
|
|
66
|
+
return intl.formatMessage({ id: "validation.failed" });
|
|
67
|
+
}
|
|
68
|
+
}), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
|
|
69
|
+
});
|
|
70
|
+
const defaultFailureMessageHandler = (actionMaker, errorRenderer) => Effect.fnUntraced(function* (o, ...args) {
|
|
71
|
+
const action = yield* wrapEffect(actionMaker)(o, ...args);
|
|
72
|
+
const { intl } = yield* I18n;
|
|
73
|
+
const renderError = yield* renderErrorMaker;
|
|
74
|
+
return Option.match(o, {
|
|
75
|
+
onNone: () => intl.formatMessage({ id: "handle.unexpected_error2" }, {
|
|
76
|
+
action,
|
|
77
|
+
error: "" // TODO consider again Cause.pretty(cause), // will be reported to Sentry/Otel anyway.. and we shouldn't bother users with error dumps?
|
|
78
|
+
}),
|
|
79
|
+
onSome: (e) => S.is(OperationFailure)(e)
|
|
80
|
+
? {
|
|
81
|
+
level: "warn",
|
|
82
|
+
message: intl.formatMessage({ id: "handle.with_warnings" }, { action }) + e.message
|
|
83
|
+
? "\n" + e.message
|
|
84
|
+
: ""
|
|
85
|
+
}
|
|
86
|
+
: `${intl.formatMessage({ id: "handle.with_errors" }, { action })}:\n` + renderError(action, errorRenderer)(e, ...args)
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
export const CommanderStatic = {
|
|
90
|
+
/** Version of @see confirmOrInterrupt that automatically includes the action name in the default messages */
|
|
91
|
+
confirmOrInterrupt: Effect.fnUntraced(function* (message = undefined) {
|
|
92
|
+
const context = yield* CommandContext;
|
|
93
|
+
const { intl } = yield* I18n;
|
|
94
|
+
yield* Confirm.confirmOrInterrupt(message
|
|
95
|
+
?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
|
|
96
|
+
}),
|
|
97
|
+
/** Version of @see confirm that automatically includes the action name in the default messages */
|
|
98
|
+
confirm: Effect.fnUntraced(function* (message = undefined) {
|
|
99
|
+
const context = yield* CommandContext;
|
|
100
|
+
const { intl } = yield* I18n;
|
|
101
|
+
return yield* Confirm.confirm(message
|
|
102
|
+
?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
|
|
103
|
+
}),
|
|
104
|
+
updateAction: (update) => (_, ...input) => Effect.updateService(_, CommandContext, (c) => ({ ...c, action: update(c.action, ...input) })),
|
|
105
|
+
defaultFailureMessageHandler,
|
|
106
|
+
renderError: renderErrorMaker,
|
|
107
|
+
/** Version of withDefaultToast that automatically includes the action name in the default messages and uses intl */
|
|
108
|
+
withDefaultToast: (options) => (self, ...args) => Effect.gen(function* () {
|
|
109
|
+
const cc = yield* CommandContext;
|
|
110
|
+
const { intl } = yield* I18n;
|
|
111
|
+
const withToast = yield* WithToast;
|
|
112
|
+
return yield* self.pipe((_) => withToast({
|
|
113
|
+
onWaiting: options?.onWaiting === null ? null : intl.formatMessage({ id: "handle.waiting" }, { action: cc.action }),
|
|
114
|
+
onSuccess: options?.onSuccess === null
|
|
115
|
+
? null
|
|
116
|
+
: (a, ..._args) => intl.formatMessage({ id: "handle.success" }, { action: cc.action })
|
|
117
|
+
+ (S.is(OperationSuccess)(a) && a.message ? "\n" + a.message : ""),
|
|
118
|
+
onFailure: defaultFailureMessageHandler(cc.action, options?.errorRenderer)
|
|
119
|
+
})(_, ...args));
|
|
120
|
+
})
|
|
121
|
+
};
|
|
44
122
|
// @effect-diagnostics-next-line missingEffectServiceDependency:off
|
|
45
123
|
export class Commander extends Effect.Service()("Commander", {
|
|
46
124
|
dependencies: [WithToast.Default, Confirm.Default],
|
|
47
125
|
effect: Effect.gen(function* () {
|
|
48
126
|
const { intl } = yield* I18n;
|
|
49
|
-
const withToast = yield* WithToast;
|
|
50
|
-
const { confirm, confirmOrInterrupt } = yield* Confirm;
|
|
51
127
|
const makeContext = (id) => {
|
|
52
128
|
if (!id)
|
|
53
129
|
throw new Error("must specify an id");
|
|
@@ -250,115 +326,53 @@ export class Commander extends Effect.Service()("Commander", {
|
|
|
250
326
|
}, context);
|
|
251
327
|
};
|
|
252
328
|
};
|
|
253
|
-
const renderError = (action, errorRenderer) => (e, ...args) => {
|
|
254
|
-
if (errorRenderer) {
|
|
255
|
-
const m = errorRenderer(e, action, ...args);
|
|
256
|
-
if (m) {
|
|
257
|
-
return m;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
if (!S.is(SupportedErrors)(e) && !S.ParseResult.isParseError(e)) {
|
|
261
|
-
if (typeof e === "object" && e !== null) {
|
|
262
|
-
if ("message" in e) {
|
|
263
|
-
return `${e.message}`;
|
|
264
|
-
}
|
|
265
|
-
if ("_tag" in e) {
|
|
266
|
-
return `${e._tag}`;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return "";
|
|
270
|
-
}
|
|
271
|
-
const e2 = e;
|
|
272
|
-
return Match.value(e2).pipe(Match.tags({
|
|
273
|
-
ParseError: (e) => {
|
|
274
|
-
console.warn(e.toString());
|
|
275
|
-
return intl.formatMessage({ id: "validation.failed" });
|
|
276
|
-
}
|
|
277
|
-
}), Match.orElse((e) => `${e.message ?? e._tag ?? e}`));
|
|
278
|
-
};
|
|
279
|
-
const defaultFailureMessageHandler = (actionMaker, errorRenderer) => Effect.fnUntraced(function* (o, ...args) {
|
|
280
|
-
const action = yield* wrapEffect(actionMaker)(o, ...args);
|
|
281
|
-
return Option.match(o, {
|
|
282
|
-
onNone: () => intl.formatMessage({ id: "handle.unexpected_error2" }, {
|
|
283
|
-
action,
|
|
284
|
-
error: "" // TODO consider again Cause.pretty(cause), // will be reported to Sentry/Otel anyway.. and we shouldn't bother users with error dumps?
|
|
285
|
-
}),
|
|
286
|
-
onSome: (e) => S.is(OperationFailure)(e)
|
|
287
|
-
? {
|
|
288
|
-
level: "warn",
|
|
289
|
-
message: intl.formatMessage({ id: "handle.with_warnings" }, { action }) + e.message
|
|
290
|
-
? "\n" + e.message
|
|
291
|
-
: ""
|
|
292
|
-
}
|
|
293
|
-
: `${intl.formatMessage({ id: "handle.with_errors" }, { action })}:\n` + renderError(action, errorRenderer)(e, ...args)
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
329
|
return {
|
|
297
|
-
/** @experimental */
|
|
298
|
-
takeOver:
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
const context = yield* CommandContext;
|
|
344
|
-
return yield* confirm(message
|
|
345
|
-
?? intl.formatMessage({ id: "handle.confirmation" }, { action: context.action }));
|
|
346
|
-
}),
|
|
347
|
-
updateAction: (update) => (_, ...input) => Effect.updateService(_, CommandContext, (c) => ({ ...c, action: update(c.action, ...input) })),
|
|
348
|
-
defaultFailureMessageHandler,
|
|
349
|
-
renderError,
|
|
350
|
-
/** Version of withDefaultToast that automatically includes the action name in the default messages and uses intl */
|
|
351
|
-
withDefaultToast: (options) => (self, ...args) => Effect.gen(function* () {
|
|
352
|
-
const cc = yield* CommandContext;
|
|
353
|
-
return yield* self.pipe((_) => withToast({
|
|
354
|
-
onWaiting: options?.onWaiting === null ? null : intl.formatMessage({ id: "handle.waiting" }, { action: cc.action }),
|
|
355
|
-
onSuccess: options?.onSuccess === null
|
|
356
|
-
? null
|
|
357
|
-
: (a, ..._args) => intl.formatMessage({ id: "handle.success" }, { action: cc.action })
|
|
358
|
-
+ (S.is(OperationSuccess)(a) && a.message ? "\n" + a.message : ""),
|
|
359
|
-
onFailure: defaultFailureMessageHandler(cc.action, options?.errorRenderer)
|
|
360
|
-
})(_, ...args));
|
|
361
|
-
}),
|
|
330
|
+
// /** @experimental */
|
|
331
|
+
// takeOver:
|
|
332
|
+
// <Args extends any[], A, E, R, const Id extends string>(command: Commander.CommandOut<Args, A, E, R, Id>) =>
|
|
333
|
+
// (...args: Args) => {
|
|
334
|
+
// // we capture the call site stack here
|
|
335
|
+
// const limit = Error.stackTraceLimit
|
|
336
|
+
// Error.stackTraceLimit = 2
|
|
337
|
+
// const errorCall = new Error()
|
|
338
|
+
// const localErrorDef = new Error()
|
|
339
|
+
// Error.stackTraceLimit = limit
|
|
340
|
+
// // TODO
|
|
341
|
+
// const errorDef = localErrorDef
|
|
342
|
+
// let cache: false | string = false
|
|
343
|
+
// const captureStackTrace = () => {
|
|
344
|
+
// // in case of an error, we want to append the definition stack to the call site stack,
|
|
345
|
+
// // so we can see where the handler was defined too
|
|
346
|
+
// if (cache !== false) {
|
|
347
|
+
// return cache
|
|
348
|
+
// }
|
|
349
|
+
// if (errorCall.stack) {
|
|
350
|
+
// const stackDef = errorDef.stack!.trim().split("\n")
|
|
351
|
+
// const stackCall = errorCall.stack.trim().split("\n")
|
|
352
|
+
// let endStackDef = stackDef.slice(2).join("\n").trim()
|
|
353
|
+
// if (!endStackDef.includes(`(`)) {
|
|
354
|
+
// endStackDef = endStackDef.replace(/at (.*)/, "at ($1)")
|
|
355
|
+
// }
|
|
356
|
+
// let endStackCall = stackCall.slice(2).join("\n").trim()
|
|
357
|
+
// if (!endStackCall.includes(`(`)) {
|
|
358
|
+
// endStackCall = endStackCall.replace(/at (.*)/, "at ($1)")
|
|
359
|
+
// }
|
|
360
|
+
// cache = `${endStackDef}\n${endStackCall}`
|
|
361
|
+
// return cache
|
|
362
|
+
// }
|
|
363
|
+
// }
|
|
364
|
+
// return Effect.gen(function*() {
|
|
365
|
+
// const ctx = yield* CommandContext
|
|
366
|
+
// ctx.action = command.action
|
|
367
|
+
// return yield* command.exec(...args).pipe(
|
|
368
|
+
// Effect.flatten,
|
|
369
|
+
// Effect.withSpan(
|
|
370
|
+
// command.action,
|
|
371
|
+
// { captureStackTrace }
|
|
372
|
+
// )
|
|
373
|
+
// )
|
|
374
|
+
// })
|
|
375
|
+
// },
|
|
362
376
|
/**
|
|
363
377
|
* Define a Command for handling user actions with built-in error reporting and state management.
|
|
364
378
|
*
|
|
@@ -434,4 +448,4 @@ export class Commander extends Effect.Service()("Commander", {
|
|
|
434
448
|
})
|
|
435
449
|
}) {
|
|
436
450
|
}
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cGVyaW1lbnRhbC9jb21tYW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxjQUFjLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsRUFBRSxFQUFFO1FBQ0YscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGdCQUFnQixFQUFFLDZCQUE2QjtRQUMvQyxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO1FBQy9DLHNCQUFzQixFQUFFLHFDQUFxQztRQUM3RCx1QkFBdUIsRUFDckIsaUhBQWlIO1FBQ25I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
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4cGVyaW1lbnRhbC9jb21tYW5kZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFFN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSxjQUFjLENBQUE7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsRUFBRSxFQUFFO1FBQ0YscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGdCQUFnQixFQUFFLDZCQUE2QjtRQUMvQyxnQkFBZ0IsRUFBRSxzQkFBc0I7UUFDeEMsb0JBQW9CLEVBQUUseUJBQXlCO1FBQy9DLHNCQUFzQixFQUFFLHFDQUFxQztRQUM3RCx1QkFBdUIsRUFDckIsaUhBQWlIO1FBQ25I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
|
|
@@ -5,6 +5,7 @@ declare const Confirm_base: Effect.Service.Class<Confirm, "Confirm", {
|
|
|
5
5
|
confirm: (message?: string) => Effect.Effect<boolean, never, never>;
|
|
6
6
|
confirmOrInterrupt: (message?: string) => Effect.Effect<void, never, never>;
|
|
7
7
|
}, never, I18n>;
|
|
8
|
+
readonly accessors: true;
|
|
8
9
|
}>;
|
|
9
10
|
export declare class Confirm extends Confirm_base {
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/experimental/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA
|
|
1
|
+
{"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../src/experimental/confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;;;;;;;;AAGhC,qBAAa,OAAQ,SAAQ,YAgB3B;CAAG"}
|
|
@@ -8,7 +8,8 @@ export class Confirm extends Effect.Service()("Confirm", {
|
|
|
8
8
|
const confirm = (message = getDefaultMessage()) => Effect.sync(() => window.confirm(message));
|
|
9
9
|
const confirmOrInterrupt = (message = getDefaultMessage()) => confirm(message).pipe(Effect.flatMap((result) => (result ? Effect.void : Effect.interrupt)));
|
|
10
10
|
return { confirm, confirmOrInterrupt };
|
|
11
|
-
})
|
|
11
|
+
}),
|
|
12
|
+
accessors: true
|
|
12
13
|
}) {
|
|
13
14
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBlcmltZW50YWwvY29uZmlybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFFaEMsbUVBQW1FO0FBQ25FLE1BQU0sT0FBTyxPQUFRLFNBQVEsTUFBTSxDQUFDLE9BQU8sRUFBVyxDQUFDLFNBQVMsRUFBRTtJQUNoRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDMUIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUU1QixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtRQUVqSCxNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUU3RixNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBTyxHQUFHLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUMzRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3RFLENBQUE7UUFFSCxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLENBQUE7SUFDeEMsQ0FBQyxDQUFDO0lBQ0YsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztDQUFHIn0=
|
|
@@ -1,36 +1,35 @@
|
|
|
1
1
|
import { Effect } from "effect-app";
|
|
2
2
|
import { Commander } from "./commander.js";
|
|
3
3
|
export declare const makeUseCommand: <R = never>() => Effect.Effect<{
|
|
4
|
-
|
|
4
|
+
confirmOrInterrupt: (message?: string | undefined) => Effect.Effect<void, never, import("./confirm.js").Confirm | import("./intl.js").I18n | import("./commander.js").CommandContext>;
|
|
5
|
+
confirm: (message?: string | undefined) => Effect.Effect<boolean, never, import("./confirm.js").Confirm | import("./intl.js").I18n | import("./commander.js").CommandContext>;
|
|
6
|
+
updateAction: <Args extends Array<unknown>>(update: (currentActionId: string, ...args: Args) => string) => <A, E, R_1>(_: Effect.Effect<A, E, R_1>, ...input: Args) => Effect.Effect<A, E, import("./commander.js").CommandContext | R_1>;
|
|
7
|
+
defaultFailureMessageHandler: <E_1, Args extends Array<unknown>, AME, AMR>(actionMaker: string | ((o: import("effect/Option").Option<E_1>, ...args: Args) => string) | ((o: import("effect/Option").Option<E_1>, ...args: Args) => Effect.Effect<string, AME, AMR>), errorRenderer?: (e: E_1, action: string, ...args: Args) => string | undefined) => (o: import("effect/Option").Option<E_1>, ...args: Args) => Effect.Effect<string | {
|
|
8
|
+
level: "warn";
|
|
9
|
+
message: string;
|
|
10
|
+
}, AME, import("./intl.js").I18n | AMR>;
|
|
11
|
+
renderError: Effect.Effect<(<E_1, Args_1 extends readonly any[]>(action: string, errorRenderer?: (e: E_1, action: string, ...args: Args_1) => string | undefined) => (e: E_1, ...args: Args_1) => string), never, import("./intl.js").I18n>;
|
|
12
|
+
withDefaultToast: <A, E_1, R_2, Args_2 extends Array<unknown>>(options?: {
|
|
13
|
+
errorRenderer?: (e: E_1, action: string, ...args: Args_2) => string | undefined;
|
|
14
|
+
onWaiting?: null | undefined | string | ((action: string, ...args: Args_2) => string | null | undefined);
|
|
15
|
+
onSuccess?: null | undefined | string | ((a: A, action: string, ...args: Args_2) => string | null | undefined);
|
|
16
|
+
}) => (self: Effect.Effect<A, E_1, R_2>, ...args: Args_2) => Effect.Effect<A, E_1, import("./intl.js").I18n | import("./withToast.js").WithToast | import("./commander.js").CommandContext | R_2>;
|
|
17
|
+
alt: <const Id extends string>(id: Id) => Commander.CommandContextLocal<Id> & (<Args_3 extends Array<unknown>, A, E_2, R_3 extends import("./commander.js").CommandContext | R>(handler: (...args: Args_3) => Effect.Effect<A, E_2, R_3>) => Commander.CommandOut<Args_3, A, E_2, R_3, Id>);
|
|
5
18
|
fn: <const Id extends string>(id: Id) => Commander.Gen<R, Id> & Commander.NonGen<R, Id>;
|
|
6
|
-
wrap: <const Id extends string,
|
|
7
|
-
mutate: (...args: Args) => Effect.Effect<A_1, E_1, R_2>;
|
|
19
|
+
wrap: <const Id extends string, Args_3 extends Array<unknown>, A_1, E_3, R_4>(mutation: (((...args: Args_3) => Effect.Effect<A_1, E_3, R_4>) & {
|
|
8
20
|
id: Id;
|
|
9
|
-
} |
|
|
21
|
+
}) | {
|
|
22
|
+
mutate: (...args: Args_3) => Effect.Effect<A_1, E_3, R_4>;
|
|
10
23
|
id: Id;
|
|
11
|
-
})
|
|
12
|
-
alt2: <const Id extends string, MutArgs extends Array<unknown>, MutA, MutE, MutR>(id: Id | {
|
|
24
|
+
}) => Commander.CommandContextLocal<Id> & Commander.GenWrap<R, Id, Args_3, A_1, E_3, R_4> & Commander.NonGenWrap<R, Id, Args_3, A_1, E_3, R_4>;
|
|
25
|
+
alt2: <const Id extends string, MutArgs extends Array<unknown>, MutA, MutE, MutR>(id: Id | (((...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>) & {
|
|
13
26
|
id: Id;
|
|
14
|
-
|
|
15
|
-
} | (((...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>) & {
|
|
27
|
+
}) | {
|
|
16
28
|
id: Id;
|
|
17
|
-
})) => Commander.CommandContextLocal<Id> & (<Args_1 extends Array<unknown>, A_2, E_2, R_3 extends import("./commander.js").CommandContext | R>(handler: (ctx: Effect.fn.Gen & Effect.fn.NonGen & Commander.CommandContextLocal<Id> & {
|
|
18
29
|
mutate: (...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>;
|
|
19
|
-
}) => (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
confirm: (message?: string | undefined) => Effect.Effect<boolean, never, import("./commander.js").CommandContext>;
|
|
23
|
-
updateAction: <Args_1 extends Array<unknown>>(update: (currentActionId: string, ...args: Args_1) => string) => <A_4, E_4, R_5>(_: Effect.Effect<A_4, E_4, R_5>, ...input: Args_1) => Effect.Effect<A_4, E_4, import("./commander.js").CommandContext | R_5>;
|
|
24
|
-
defaultFailureMessageHandler: <E_5, Args_1 extends Array<unknown>, AME, AMR>(actionMaker: string | ((o: import("effect/Option").Option<E_5>, ...args: Args_1) => string) | ((o: import("effect/Option").Option<E_5>, ...args: Args_1) => Effect.Effect<string, AME, AMR>), errorRenderer?: ((e: E_5, action: string, ...args: Args_1) => string | undefined) | undefined) => (o: import("effect/Option").Option<E_5>, ...args: Args_1) => Effect.Effect<string | {
|
|
25
|
-
level: "warn";
|
|
26
|
-
message: string;
|
|
27
|
-
}, AME, AMR>;
|
|
28
|
-
renderError: <E_5, Args_2 extends readonly any[]>(action: string, errorRenderer?: ((e: E_5, action: string, ...args: Args_2) => string | undefined) | undefined) => (e: E_5, ...args: Args_2) => string;
|
|
29
|
-
withDefaultToast: <A_4, E_5, R_6, Args_3 extends Array<unknown>>(options?: {
|
|
30
|
-
errorRenderer?: (e: E_5, action: string, ...args: Args_3) => string | undefined;
|
|
31
|
-
onWaiting?: string | ((action: string, ...args: Args_3) => string | null | undefined) | null | undefined;
|
|
32
|
-
onSuccess?: string | ((a: A_4, action: string, ...args: Args_3) => string | null | undefined) | null | undefined;
|
|
33
|
-
} | undefined) => (self: Effect.Effect<A_4, E_5, R_6>, ...args: Args_3) => Effect.Effect<A_4, E_5, import("./commander.js").CommandContext | R_6>;
|
|
30
|
+
}) => Commander.CommandContextLocal<Id> & (<Args_4 extends Array<unknown>, A_2, E_4, R_5 extends import("./commander.js").CommandContext | R>(handler: (ctx: Effect.fn.Gen & Effect.fn.NonGen & Commander.CommandContextLocal<Id> & {
|
|
31
|
+
mutate: (...args: MutArgs) => Effect.Effect<MutA, MutE, MutR>;
|
|
32
|
+
}) => (...args: Args_4) => Effect.Effect<A_2, E_4, R_5>) => Commander.CommandOut<Args_4, A_2, E_4, R_5, Id>);
|
|
34
33
|
_tag: "Commander";
|
|
35
34
|
}, never, Commander | R>;
|
|
36
35
|
//# sourceMappingURL=makeUseCommand.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../../src/experimental/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"makeUseCommand.d.ts","sourceRoot":"","sources":["../../src/experimental/makeUseCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,EAAmB,MAAM,gBAAgB,CAAA;AAE3D,eAAO,MAAM,cAAc,GAA+B,CAAC;;;kFAaim4B,GAAI,2BAA+B,CAAC,EAAC,CAAE,EAAC,GAAE,EAAE,2BAAyB,EAAC,cAAe;+IAAxyE,GAAI,mEAAmD,GAAI;;;;;;qBAA+oF,CAAC;iBAAwC,CAAC,gDAA+C,GAAI;iBAAyD,CAAC,sDAAqD,GAAI;WAA0D,gCAAiC,EAAC,eAAkB;;;;;;;;;;;;;;;;;;wBAD/85B,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect-app";
|
|
2
|
-
import { Commander } from "./commander.js";
|
|
2
|
+
import { Commander, CommanderStatic } from "./commander.js";
|
|
3
3
|
export const makeUseCommand = Effect.fnUntraced(function* () {
|
|
4
4
|
const cmndr = yield* Commander;
|
|
5
5
|
const runtime = yield* Effect.runtime();
|
|
@@ -8,7 +8,8 @@ export const makeUseCommand = Effect.fnUntraced(function* () {
|
|
|
8
8
|
alt: cmndr.alt(runtime),
|
|
9
9
|
fn: cmndr.fn(runtime),
|
|
10
10
|
wrap: cmndr.wrap(runtime),
|
|
11
|
-
alt2: cmndr.alt2(runtime)
|
|
11
|
+
alt2: cmndr.alt2(runtime),
|
|
12
|
+
...CommanderStatic
|
|
12
13
|
};
|
|
13
14
|
});
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZVVzZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhwZXJpbWVudGFsL21ha2VVc2VDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDdkQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFBO0lBQzlCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUssQ0FBQTtJQUUxQyxPQUFPO1FBQ0wsR0FBRyxLQUFLO1FBQ1IsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUNyQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLEdBQUcsZUFBZTtLQUNuQixDQUFBO0FBQ0gsQ0FBQyxDQUFDLENBQUEifQ==
|