@kellanjs/actioncraft 0.2.0 → 0.3.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.
Files changed (65) hide show
  1. package/README.md +47 -68
  2. package/dist/classes/{action-builder.d.ts → builder.d.ts} +20 -16
  3. package/dist/classes/{action-builder.js → builder.js} +34 -25
  4. package/dist/classes/builder.js.map +1 -0
  5. package/dist/classes/executor/executor.d.ts +3 -3
  6. package/dist/classes/executor/executor.js +1 -1
  7. package/dist/classes/executor/executor.js.map +1 -1
  8. package/dist/index.d.ts +1 -2
  9. package/dist/index.js +1 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/standard-schema.js +2 -1
  12. package/dist/standard-schema.js.map +1 -1
  13. package/package.json +16 -13
  14. package/dist/actioncraft-error.d.ts +0 -23
  15. package/dist/actioncraft-error.js +0 -60
  16. package/dist/actioncraft-error.js.map +0 -1
  17. package/dist/actioncraft-prev.d.ts +0 -93
  18. package/dist/actioncraft-prev.js +0 -387
  19. package/dist/actioncraft-prev.js.map +0 -1
  20. package/dist/actioncraft.d.ts +0 -143
  21. package/dist/actioncraft.js +0 -613
  22. package/dist/actioncraft.js.map +0 -1
  23. package/dist/api.d.ts +0 -49
  24. package/dist/api.js +0 -84
  25. package/dist/api.js.map +0 -1
  26. package/dist/classes/action-builder.js.map +0 -1
  27. package/dist/classes/craft-builder.d.ts +0 -66
  28. package/dist/classes/craft-builder.js +0 -129
  29. package/dist/classes/craft-builder.js.map +0 -1
  30. package/dist/classes/crafter.d.ts +0 -66
  31. package/dist/classes/crafter.js +0 -129
  32. package/dist/classes/crafter.js.map +0 -1
  33. package/dist/classes/executor.d.ts +0 -64
  34. package/dist/classes/executor.js +0 -354
  35. package/dist/classes/executor.js.map +0 -1
  36. package/dist/core/callbacks.d.ts +0 -6
  37. package/dist/core/callbacks.js +0 -20
  38. package/dist/core/callbacks.js.map +0 -1
  39. package/dist/core/errors.d.ts +0 -28
  40. package/dist/core/errors.js +0 -101
  41. package/dist/core/errors.js.map +0 -1
  42. package/dist/core/logging.d.ts +0 -6
  43. package/dist/core/logging.js +0 -8
  44. package/dist/core/logging.js.map +0 -1
  45. package/dist/core/transformation.d.ts +0 -17
  46. package/dist/core/transformation.js +0 -43
  47. package/dist/core/transformation.js.map +0 -1
  48. package/dist/core/validation.d.ts +0 -16
  49. package/dist/core/validation.js +0 -70
  50. package/dist/core/validation.js.map +0 -1
  51. package/dist/craft.d.ts +0 -29
  52. package/dist/craft.js +0 -62
  53. package/dist/craft.js.map +0 -1
  54. package/dist/error.d.ts +0 -31
  55. package/dist/error.js +0 -71
  56. package/dist/error.js.map +0 -1
  57. package/dist/initial.d.ts +0 -14
  58. package/dist/initial.js +0 -47
  59. package/dist/initial.js.map +0 -1
  60. package/dist/types/config.d.ts +0 -84
  61. package/dist/types/config.js +0 -2
  62. package/dist/types/config.js.map +0 -1
  63. package/dist/types/crafter.d.ts +0 -87
  64. package/dist/types/crafter.js +0 -2
  65. package/dist/types/crafter.js.map +0 -1
@@ -1,613 +0,0 @@
1
- import { safeExecuteCallback } from "./core/callbacks.js";
2
- import { createUnhandledErrorResult, createImplicitReturnErrorResult, } from "./core/errors.js";
3
- import { log } from "./core/logging.js";
4
- import { serializeRawInput, convertToClientError, } from "./core/transformation.js";
5
- import { validateInput, validateBindArgs, validateOutput, } from "./core/validation.js";
6
- import { EXTERNAL_ERROR_TYPES, } from "./types/errors.js";
7
- import { err, isOk, isResultOk, isResultErr, isErr } from "./types/result.js";
8
- import { unstable_rethrow } from "next/navigation.js";
9
- // ============================================================================
10
- // CRAFTER CLASS - Configure and define your action
11
- // ============================================================================
12
- const INTERNAL = Symbol("INTERNAL");
13
- class Crafter {
14
- _config;
15
- _schemas;
16
- _errors;
17
- _callbacks;
18
- _handler;
19
- constructor(config, schemas, errors, callbacks, handler) {
20
- this._config = config;
21
- this._schemas = schemas;
22
- this._errors = errors;
23
- this._callbacks = callbacks;
24
- this._handler = handler;
25
- }
26
- // --------------------------------------------------------------------------
27
- // FLUENT API METHODS
28
- // --------------------------------------------------------------------------
29
- /**
30
- * Defines configuration options for the action.
31
- * Resets previously defined handler and callbacks.
32
- */
33
- config(config) {
34
- return new Crafter(config, this._schemas, this._errors, {}, undefined);
35
- }
36
- /**
37
- * Defines validation schemas for input, output, and bind arguments.
38
- * Resets previously defined handler and callbacks.
39
- */
40
- schemas(schemas) {
41
- return new Crafter(this._config, schemas, this._errors, {}, undefined);
42
- }
43
- /**
44
- * Defines error functions for returning typed errors from the handler.
45
- * Resets previously defined handler and callbacks.
46
- */
47
- errors(errors) {
48
- return new Crafter(this._config, this._schemas, errors, {}, undefined);
49
- }
50
- /**
51
- * Defines the handler function containing the server action's business logic.
52
- * Resets previously defined callbacks.
53
- */
54
- handler(fn) {
55
- return new Crafter(this._config, this._schemas, this._errors, {}, fn);
56
- }
57
- /**
58
- * Defines lifecycle callbacks to be triggered during the exection of an action.
59
- * Must be called after handler() for correct type inference.
60
- */
61
- callbacks(callbacks) {
62
- return new Crafter(this._config, this._schemas, this._errors, callbacks, this._handler);
63
- }
64
- /**
65
- * @returns Internal properties of the Crafter instance
66
- */
67
- [INTERNAL]() {
68
- return {
69
- config: this._config,
70
- schemas: this._schemas,
71
- errors: this._errors,
72
- callbacks: this._callbacks,
73
- handler: this._handler,
74
- };
75
- }
76
- }
77
- // ============================================================================
78
- // EXECUTOR CLASS - Build and execute your action
79
- // ============================================================================
80
- class Executor {
81
- _config;
82
- _schemas;
83
- _errors;
84
- _callbacks;
85
- _handler;
86
- _actionId;
87
- constructor(crafter) {
88
- this._config = crafter[INTERNAL]().config;
89
- this._schemas = crafter[INTERNAL]().schemas;
90
- this._errors = crafter[INTERNAL]().errors;
91
- this._callbacks = crafter[INTERNAL]().callbacks;
92
- this._handler = crafter[INTERNAL]().handler;
93
- }
94
- /**
95
- * Builds and returns the final executable server action.
96
- */
97
- craft() {
98
- if (!this._handler) {
99
- throw new Error("A handler implementation is required");
100
- }
101
- // Generate a unique ID for this action instance
102
- this._actionId = this._generateActionId();
103
- const craftedAction = (...args) => {
104
- return this._runAction(args);
105
- };
106
- // Attach the action's config and ID for runtime inspection
107
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
- craftedAction.__ac_config = this._config;
109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- craftedAction.__ac_id = this._actionId;
111
- return craftedAction;
112
- }
113
- /**
114
- * Generates a unique identifier for this action instance.
115
- */
116
- _generateActionId() {
117
- return crypto.randomUUID();
118
- }
119
- // --------------------------------------------------------------------------
120
- // ACTION EXECUTION
121
- // --------------------------------------------------------------------------
122
- /**
123
- * Orchestrates action execution (validation, business logic, callbacks, and result formatting.)
124
- */
125
- async _runAction(args) {
126
- // We know these exist because craft() creates/verifies them
127
- const handler = this._handler;
128
- const actionId = this._actionId;
129
- // Extract bindArgs, prevState, and input from the raw args
130
- const { bindArgs: rawBindArgs, prevState, input: rawInput, } = this._extractActionArgs(args);
131
- // Check for custom error handler
132
- const handleThrownErrorFn = this._config.handleThrownError
133
- ? (error) => err(this._config.handleThrownError(error), actionId)
134
- : null;
135
- // Track validation state for error handling
136
- let validatedInput = undefined;
137
- let validatedBindArgs = undefined;
138
- try {
139
- // Execute onStart callback before any processing
140
- await this._executeOnStartCallback({
141
- rawInput,
142
- rawBindArgs,
143
- prevState,
144
- validatedInput: undefined,
145
- validatedBindArgs: undefined,
146
- actionId,
147
- });
148
- // Validate input and return on failure
149
- const inputValidation = await this._validateInput(rawInput);
150
- if (!isOk(inputValidation)) {
151
- await this._executeResultCallbacks(inputValidation, {
152
- rawInput,
153
- rawBindArgs,
154
- prevState,
155
- validatedInput,
156
- validatedBindArgs,
157
- actionId,
158
- });
159
- return this._toActionResult(inputValidation, rawInput);
160
- }
161
- // Update validation state
162
- validatedInput = inputValidation.value;
163
- // Validate bound arguments and return on failure
164
- const bindArgsValidation = await this._validateBindArgs(rawBindArgs);
165
- if (!isOk(bindArgsValidation)) {
166
- await this._executeResultCallbacks(bindArgsValidation, {
167
- rawInput,
168
- rawBindArgs,
169
- prevState,
170
- validatedInput,
171
- validatedBindArgs,
172
- actionId,
173
- });
174
- return this._toActionResult(bindArgsValidation, rawInput);
175
- }
176
- // Update validation state
177
- validatedBindArgs = bindArgsValidation.value;
178
- // Execute the user's action handler
179
- const handlerResult = await handler({
180
- input: inputValidation.value,
181
- bindArgs: bindArgsValidation.value,
182
- errors: this._buildErrorFunctions(),
183
- metadata: {
184
- rawInput,
185
- rawBindArgs,
186
- prevState,
187
- actionId,
188
- },
189
- });
190
- // Return on `undefined` (implicit return error)
191
- if (handlerResult === undefined) {
192
- const implicitReturnError = createImplicitReturnErrorResult(actionId);
193
- await this._executeResultCallbacks(implicitReturnError, {
194
- rawInput,
195
- rawBindArgs,
196
- prevState,
197
- validatedInput,
198
- validatedBindArgs,
199
- actionId,
200
- });
201
- return this._toActionResult(implicitReturnError, rawInput);
202
- }
203
- let finalResult;
204
- // Process different return types from the action
205
- if (isResultErr(handlerResult)) {
206
- // Ensure error result has correct action ID
207
- finalResult = this._ensureResultActionId(handlerResult);
208
- }
209
- else {
210
- const outputData = isResultOk(handlerResult)
211
- ? handlerResult.value
212
- : handlerResult;
213
- finalResult = await this._validateOutput(outputData);
214
- }
215
- // Execute callbacks and return final result
216
- await this._executeResultCallbacks(finalResult, {
217
- rawInput,
218
- rawBindArgs,
219
- prevState,
220
- validatedInput,
221
- validatedBindArgs,
222
- actionId,
223
- });
224
- // Use validated input for the values field on a successful run
225
- const inputForValues = isOk(finalResult)
226
- ? this._schemas.inputSchema
227
- ? inputValidation.value
228
- : rawInput
229
- : rawInput;
230
- return this._toActionResult(finalResult, inputForValues);
231
- }
232
- catch (error) {
233
- // Re-throw Next.js framework errors
234
- unstable_rethrow(error);
235
- // Handle unexpected thrown errors
236
- try {
237
- const errorResult = this._handleThrownError(error, handleThrownErrorFn);
238
- await this._executeResultCallbacks(errorResult, {
239
- rawInput,
240
- rawBindArgs,
241
- prevState,
242
- validatedInput,
243
- validatedBindArgs,
244
- actionId,
245
- });
246
- return this._toActionResult(errorResult, rawInput);
247
- }
248
- catch (handlerError) {
249
- // If we catch another error here, then we're done
250
- log(this._config.logger, "warn", "Error handling failure - both primary error and error handler threw", { primaryError: error, handlerError });
251
- return this._toActionResult(createUnhandledErrorResult(actionId), rawInput);
252
- }
253
- }
254
- }
255
- /**
256
- * Extracts bind arguments, previous state, and input from raw action arguments.
257
- */
258
- _extractActionArgs(args) {
259
- const numBindSchemas = this._schemas.bindSchemas?.length ?? 0;
260
- if (this._config.useActionState) {
261
- return {
262
- bindArgs: args.slice(0, numBindSchemas),
263
- prevState: args[numBindSchemas],
264
- input: args[numBindSchemas + 1],
265
- };
266
- }
267
- // For regular actions (non-useActionState), the input is the first argument after bind args
268
- // If there are no bind schemas, the input is the first argument (args[0])
269
- return {
270
- bindArgs: args.slice(0, numBindSchemas),
271
- // When useActionState is disabled the prevState parameter is never
272
- // present, so we cast to never (or undefined) to satisfy the type.
273
- prevState: undefined,
274
- input: args[numBindSchemas],
275
- };
276
- }
277
- // --------------------------------------------------------------------------
278
- // RESULT TRANSFORMATION
279
- // --------------------------------------------------------------------------
280
- /**
281
- * Transforms internal Result objects to client-facing action result format.
282
- */
283
- _toActionResult(result, inputForValues) {
284
- // Convert internal errors to client-facing errors
285
- const clientResult = isOk(result)
286
- ? result
287
- : err(convertToClientError(result.error), this._actionId);
288
- // Handle useActionState format (always returns StatefulApiResult)
289
- if (this._config.useActionState) {
290
- if (isOk(clientResult)) {
291
- const successValues = this._schemas.inputSchema
292
- ? inputForValues
293
- : serializeRawInput(inputForValues);
294
- return {
295
- success: true,
296
- data: clientResult.value,
297
- values: successValues,
298
- __ac_id: this._actionId,
299
- };
300
- }
301
- return {
302
- success: false,
303
- error: clientResult.error,
304
- values: serializeRawInput(inputForValues),
305
- __ac_id: this._actionId,
306
- };
307
- }
308
- const format = this._config.resultFormat ?? "api";
309
- // Return functional format if configured
310
- if (format === "functional") {
311
- return clientResult;
312
- }
313
- // Default API format
314
- if (isOk(clientResult)) {
315
- return {
316
- success: true,
317
- data: clientResult.value,
318
- __ac_id: this._actionId,
319
- };
320
- }
321
- return {
322
- success: false,
323
- error: clientResult.error,
324
- __ac_id: this._actionId,
325
- };
326
- }
327
- // --------------------------------------------------------------------------
328
- // ERROR HANDLING
329
- // --------------------------------------------------------------------------
330
- /**
331
- * Handles uncaught exceptions during action execution.
332
- */
333
- _handleThrownError(error, customHandler) {
334
- const caughtErrorResult = customHandler
335
- ? customHandler(error)
336
- : createUnhandledErrorResult(this._actionId);
337
- return caughtErrorResult;
338
- }
339
- // --------------------------------------------------------------------------
340
- // VALIDATION
341
- // --------------------------------------------------------------------------
342
- /**
343
- * Validates input using the shared helper.
344
- */
345
- _validateInput(rawInput) {
346
- return validateInput(this._schemas, this._config, rawInput, this._actionId);
347
- }
348
- /**
349
- * Validates bound arguments using the configured bind schemas.
350
- */
351
- _validateBindArgs(bindArgs) {
352
- return validateBindArgs(this._schemas, this._config, bindArgs, this._actionId);
353
- }
354
- /**
355
- * Validates output data using the configured output schema.
356
- */
357
- _validateOutput(data) {
358
- return validateOutput(this._schemas, this._config, data, this._actionId);
359
- }
360
- // --------------------------------------------------------------------------
361
- // CALLBACKS
362
- // --------------------------------------------------------------------------
363
- /**
364
- * Executes the onStart callback if defined.
365
- */
366
- async _executeOnStartCallback(metadata) {
367
- const callbacks = this._callbacks;
368
- if (callbacks.onStart) {
369
- await safeExecuteCallback(() => callbacks.onStart({ metadata }), "onStart", (level, msg, details) => log(this._config.logger, level, msg, details));
370
- }
371
- }
372
- /**
373
- * Executes result-based lifecycle callbacks (onSuccess, onError, onSettled).
374
- */
375
- async _executeResultCallbacks(result, metadata) {
376
- const callbacks = this._callbacks;
377
- // Success path
378
- if (isOk(result)) {
379
- await safeExecuteCallback(callbacks.onSuccess
380
- ? () => callbacks.onSuccess({ data: result.value, metadata })
381
- : undefined, "onSuccess", (level, msg, details) => log(this._config.logger, level, msg, details));
382
- }
383
- // Error path
384
- if (isErr(result)) {
385
- await safeExecuteCallback(callbacks.onError
386
- ? () => callbacks.onError({ error: result.error, metadata })
387
- : undefined, "onError", (level, msg, details) => log(this._config.logger, level, msg, details));
388
- }
389
- // onSettled always runs, regardless of result
390
- const finalResult = this._toActionResult(result);
391
- await safeExecuteCallback(callbacks.onSettled
392
- ? () => callbacks.onSettled({ result: finalResult, metadata })
393
- : undefined, "onSettled", (level, msg, details) => log(this._config.logger, level, msg, details));
394
- }
395
- // --------------------------------------------------------------------------
396
- // UTILITY METHODS
397
- // --------------------------------------------------------------------------
398
- /**
399
- * Ensures a Result object has the correct action ID.
400
- */
401
- _ensureResultActionId(result) {
402
- if (!result.__ac_id || result.__ac_id === "unknown") {
403
- return {
404
- ...result,
405
- __ac_id: this._actionId,
406
- };
407
- }
408
- return result;
409
- }
410
- /**
411
- * Creates error functions that return a Result object when called by the action handler.
412
- */
413
- _buildErrorFunctions() {
414
- const errorFns = {};
415
- for (const [key, errorDefFn] of Object.entries(this._errors)) {
416
- errorFns[key] = ((...args) => err(errorDefFn(...args), this._actionId));
417
- }
418
- return errorFns;
419
- }
420
- }
421
- // ============================================================================
422
- // ACTION BUILDER CLASS - Alternative fluent API syntax ending with craft()
423
- // ============================================================================
424
- class ActionBuilder {
425
- _config;
426
- _schemas;
427
- _errors;
428
- _callbacks;
429
- _handler;
430
- constructor(config, schemas, errors, callbacks, handler) {
431
- this._config = config;
432
- this._schemas = schemas;
433
- this._errors = errors;
434
- this._callbacks = callbacks;
435
- this._handler = handler;
436
- }
437
- // --------------------------------------------------------------------------
438
- // FLUENT API METHODS (same as Crafter)
439
- // --------------------------------------------------------------------------
440
- /**
441
- * Defines configuration options for the action.
442
- * Resets previously defined handler and callbacks.
443
- */
444
- config(config) {
445
- return new ActionBuilder(config, this._schemas, this._errors, {}, undefined);
446
- }
447
- /**
448
- * Defines validation schemas for input, output, and bind arguments.
449
- * Resets previously defined handler and callbacks.
450
- */
451
- schemas(schemas) {
452
- return new ActionBuilder(this._config, schemas, this._errors, {}, undefined);
453
- }
454
- /**
455
- * Defines error functions for returning typed errors from the handler.
456
- * Resets previously defined handler and callbacks.
457
- */
458
- errors(errors) {
459
- return new ActionBuilder(this._config, this._schemas, errors, {}, undefined);
460
- }
461
- /**
462
- * Defines the handler function containing the server action's business logic.
463
- * Resets previously defined callbacks.
464
- */
465
- handler(fn) {
466
- return new ActionBuilder(this._config, this._schemas, this._errors, {}, fn);
467
- }
468
- /**
469
- * Defines lifecycle callbacks to be triggered during the exection of an action.
470
- * Must be called after handler() for correct type inference.
471
- */
472
- callbacks(callbacks) {
473
- return new ActionBuilder(this._config, this._schemas, this._errors, callbacks, this._handler);
474
- }
475
- // --------------------------------------------------------------------------
476
- // CRAFT METHOD - Final step to create the action
477
- // --------------------------------------------------------------------------
478
- /**
479
- * Builds and returns the final executable server action.
480
- * This is the terminal method for the ActionBuilder fluent API.
481
- */
482
- craft() {
483
- // Convert ActionBuilder to Crafter and use existing Executor logic
484
- const crafter = new Crafter(this._config, this._schemas, this._errors, this._callbacks, this._handler);
485
- const executor = new Executor(crafter);
486
- return executor.craft();
487
- }
488
- }
489
- /**
490
- * One of two entry points to the Actioncraft system.
491
- * It provides you with an empty Crafter instance on which you can call any of the fluent
492
- * Crafter methods to configure and define your action.
493
- *
494
- * Example Usage:
495
- * ```ts
496
- * const myAction = craft(async (action) => {
497
- * return action
498
- * .config(...)
499
- * .schemas(...)
500
- * .errors(...)
501
- * .handler(...)
502
- * .callbacks(...)
503
- * });
504
- * ```
505
- *
506
- * @param craftFn - The function that the user passes to `craft()` in order to build an action.
507
- * @returns The fully-typed server action function that can be used in your app.
508
- */
509
- export function craft(craftFn) {
510
- const crafter = craftFn(new Crafter({}, {}, {}, {}, undefined));
511
- // Handle async crafter functions
512
- if (crafter instanceof Promise) {
513
- return _craftAsync(crafter);
514
- }
515
- // Handle sync crafter functions
516
- const executor = new Executor(crafter);
517
- const craftedAction = executor.craft();
518
- return craftedAction;
519
- }
520
- /**
521
- * Internal helper function to handle async craft functions.
522
- * Encapsulates the logic for creating async actions and preserving metadata.
523
- */
524
- function _craftAsync(crafterPromise) {
525
- // Resolve the crafter once and cache the resulting action to ensure consistent IDs
526
- const actionPromise = crafterPromise.then((resolvedCrafter) => {
527
- const executor = new Executor(resolvedCrafter);
528
- return executor.craft();
529
- });
530
- // For async craft functions, we need to return an async action
531
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
532
- const asyncAction = (async (...args) => {
533
- // Wait for the cached action to be ready
534
- const craftedAction = await actionPromise;
535
- // Call the action with the user's arguments
536
- return craftedAction(...args);
537
- });
538
- // We need to preserve the config and ID for the initial() function to work
539
- // We'll use the same cached action to ensure consistent metadata
540
- actionPromise.then((craftedAction) => {
541
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
542
- asyncAction.__ac_config = craftedAction.__ac_config;
543
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
544
- asyncAction.__ac_id = craftedAction.__ac_id;
545
- });
546
- return asyncAction;
547
- }
548
- /**
549
- * One of two entry points to the Actioncraft system.
550
- * Creates a new ActionBuilder instance for the fluent API that ends with craft().
551
- * This provides an alternative syntax for building your server actions.
552
- *
553
- * Example Usage:
554
- * ```ts
555
- * const myAction = action()
556
- * .config(...)
557
- * .schemas(...)
558
- * .errors(...)
559
- * .handler(...)
560
- * .callbacks(...)
561
- * .craft();
562
- * ```
563
- *
564
- * @returns A new ActionBuilder instance to start building your action.
565
- */
566
- export function action() {
567
- return new ActionBuilder({}, {}, {}, {}, undefined);
568
- }
569
- /**
570
- * Creates an appropriate initial state for any action based on its configuration.
571
- * The initial state uses the action's real ID for consistency with actual results.
572
- *
573
- * For useActionState actions: returns StatefulApiResult with error and values
574
- * For functional format actions: returns Result.err() with error
575
- * For regular actions: returns ApiResult with error
576
- *
577
- * Usage:
578
- * - useActionState: const [state, action] = useActionState(myAction, initial(myAction))
579
- * - useState: const [state, setState] = useState(initial(myAction))
580
- */
581
- export function initial(action) {
582
- const error = {
583
- type: EXTERNAL_ERROR_TYPES.INITIAL_STATE,
584
- message: "Action has not been executed yet",
585
- };
586
- // Attempt to read the action ID created during craft()
587
- const actionId =
588
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
589
- action?.__ac_id ?? "unknown";
590
- // Attempt to read the Actioncraft config attached during craft()
591
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
592
- const cfg = action?.__ac_config;
593
- // Functional format -> Result<_, _>
594
- if (cfg?.resultFormat === "functional") {
595
- return err(error, actionId);
596
- }
597
- // useActionState enabled -> StatefulApiResult
598
- if (cfg?.useActionState) {
599
- return {
600
- success: false,
601
- error,
602
- values: undefined,
603
- __ac_id: actionId,
604
- };
605
- }
606
- // Default ApiResult shape
607
- return {
608
- success: false,
609
- error,
610
- __ac_id: actionId,
611
- };
612
- }
613
- //# sourceMappingURL=actioncraft.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actioncraft.js","sourceRoot":"","sources":["../src/actioncraft.ts"],"names":[],"mappings":"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"}