@kellanjs/actioncraft 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1154 -1
- package/dist/actioncraft.d.ts +6 -2
- package/dist/actioncraft.js +63 -20
- package/dist/actioncraft.js.map +1 -1
- package/dist/types/config.d.ts +6 -2
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/shared.d.ts +3 -1
- package/package.json +1 -1
package/dist/actioncraft.d.ts
CHANGED
|
@@ -62,9 +62,13 @@ declare class Crafter<TConfig extends CrafterConfig, TSchemas extends CrafterSch
|
|
|
62
62
|
*/
|
|
63
63
|
private _validateOutput;
|
|
64
64
|
/**
|
|
65
|
-
* Executes
|
|
65
|
+
* Executes the onStart callback if defined.
|
|
66
66
|
*/
|
|
67
|
-
private
|
|
67
|
+
private _executeOnStartCallback;
|
|
68
|
+
/**
|
|
69
|
+
* Executes result-based lifecycle callbacks (onSuccess, onError, onSettled).
|
|
70
|
+
*/
|
|
71
|
+
private _executeResultCallbacks;
|
|
68
72
|
/**
|
|
69
73
|
* Creates error functions that return Result objects when called by action implementations.
|
|
70
74
|
*/
|
package/dist/actioncraft.js
CHANGED
|
@@ -79,46 +79,68 @@ class Crafter {
|
|
|
79
79
|
// We know this exists because craft() verifies it
|
|
80
80
|
const actionImpl = this._actionImpl;
|
|
81
81
|
// Extract bindArgs, prevState, and input from the raw args
|
|
82
|
-
const { bindArgs, prevState, input: rawInput, } = this._extractActionArgs(args);
|
|
82
|
+
const { bindArgs: rawBindArgs, prevState, input: rawInput, } = this._extractActionArgs(args);
|
|
83
83
|
// Check for custom error handler
|
|
84
84
|
const handleThrownErrorFn = this._config.handleThrownError
|
|
85
85
|
? (error) => err(this._config.handleThrownError(error))
|
|
86
86
|
: null;
|
|
87
|
-
//
|
|
88
|
-
|
|
87
|
+
// Execute onStart callback before any processing
|
|
88
|
+
await this._executeOnStartCallback({
|
|
89
89
|
rawInput,
|
|
90
|
+
rawBindArgs,
|
|
90
91
|
prevState,
|
|
91
|
-
validatedInput: undefined,
|
|
92
|
-
validatedBindArgs: undefined,
|
|
93
|
-
};
|
|
92
|
+
validatedInput: undefined,
|
|
93
|
+
validatedBindArgs: undefined,
|
|
94
|
+
});
|
|
95
|
+
// Track validation state for error handling
|
|
96
|
+
let validatedInput = undefined;
|
|
97
|
+
let validatedBindArgs = undefined;
|
|
94
98
|
try {
|
|
95
99
|
// Validate input and return on failure
|
|
96
100
|
const inputValidation = await this._validateInput(rawInput);
|
|
97
101
|
if (!isOk(inputValidation)) {
|
|
98
|
-
await this.
|
|
102
|
+
await this._executeResultCallbacks(inputValidation, {
|
|
103
|
+
rawInput,
|
|
104
|
+
rawBindArgs,
|
|
105
|
+
prevState,
|
|
106
|
+
validatedInput,
|
|
107
|
+
validatedBindArgs,
|
|
108
|
+
});
|
|
99
109
|
return this._toActionResult(inputValidation, rawInput);
|
|
100
110
|
}
|
|
101
|
-
// Update
|
|
102
|
-
|
|
111
|
+
// Update validation state
|
|
112
|
+
validatedInput = inputValidation.value;
|
|
103
113
|
// Validate bound arguments and return on failure
|
|
104
|
-
const bindArgsValidation = await this._validateBindArgs(
|
|
114
|
+
const bindArgsValidation = await this._validateBindArgs(rawBindArgs);
|
|
105
115
|
if (!isOk(bindArgsValidation)) {
|
|
106
|
-
await this.
|
|
116
|
+
await this._executeResultCallbacks(bindArgsValidation, {
|
|
117
|
+
rawInput,
|
|
118
|
+
rawBindArgs,
|
|
119
|
+
prevState,
|
|
120
|
+
validatedInput,
|
|
121
|
+
validatedBindArgs,
|
|
122
|
+
});
|
|
107
123
|
return this._toActionResult(bindArgsValidation, rawInput);
|
|
108
124
|
}
|
|
109
|
-
// Update
|
|
110
|
-
|
|
125
|
+
// Update validation state
|
|
126
|
+
validatedBindArgs = bindArgsValidation.value;
|
|
111
127
|
// Execute the user's action implementation
|
|
112
128
|
const actionImplResult = await actionImpl({
|
|
113
129
|
input: inputValidation.value,
|
|
114
130
|
bindArgs: bindArgsValidation.value,
|
|
115
131
|
errors: this._buildErrorFunctions(),
|
|
116
|
-
metadata: { rawInput, prevState },
|
|
132
|
+
metadata: { rawInput, rawBindArgs, prevState },
|
|
117
133
|
});
|
|
118
134
|
// Return on `undefined` (implicit return error)
|
|
119
135
|
if (actionImplResult === undefined) {
|
|
120
136
|
const implicitReturnError = createImplicitReturnErrorResult();
|
|
121
|
-
await this.
|
|
137
|
+
await this._executeResultCallbacks(implicitReturnError, {
|
|
138
|
+
rawInput,
|
|
139
|
+
rawBindArgs,
|
|
140
|
+
prevState,
|
|
141
|
+
validatedInput,
|
|
142
|
+
validatedBindArgs,
|
|
143
|
+
});
|
|
122
144
|
return this._toActionResult(implicitReturnError, rawInput);
|
|
123
145
|
}
|
|
124
146
|
let finalResult;
|
|
@@ -133,7 +155,13 @@ class Crafter {
|
|
|
133
155
|
finalResult = await this._validateOutput(outputData);
|
|
134
156
|
}
|
|
135
157
|
// Execute callbacks and return final result
|
|
136
|
-
await this.
|
|
158
|
+
await this._executeResultCallbacks(finalResult, {
|
|
159
|
+
rawInput,
|
|
160
|
+
rawBindArgs,
|
|
161
|
+
prevState,
|
|
162
|
+
validatedInput,
|
|
163
|
+
validatedBindArgs,
|
|
164
|
+
});
|
|
137
165
|
// Use validated input for the values field on a successful run
|
|
138
166
|
const inputForValues = isOk(finalResult)
|
|
139
167
|
? this._schemas.inputSchema
|
|
@@ -148,7 +176,13 @@ class Crafter {
|
|
|
148
176
|
// Handle unexpected thrown errors
|
|
149
177
|
try {
|
|
150
178
|
const errorResult = this._handleThrownError(error, handleThrownErrorFn);
|
|
151
|
-
await this.
|
|
179
|
+
await this._executeResultCallbacks(errorResult, {
|
|
180
|
+
rawInput,
|
|
181
|
+
rawBindArgs,
|
|
182
|
+
prevState,
|
|
183
|
+
validatedInput,
|
|
184
|
+
validatedBindArgs,
|
|
185
|
+
});
|
|
152
186
|
return this._toActionResult(errorResult, rawInput);
|
|
153
187
|
}
|
|
154
188
|
catch (handlerError) {
|
|
@@ -259,9 +293,18 @@ class Crafter {
|
|
|
259
293
|
// CALLBACKS
|
|
260
294
|
// --------------------------------------------------------------------------
|
|
261
295
|
/**
|
|
262
|
-
* Executes
|
|
296
|
+
* Executes the onStart callback if defined.
|
|
297
|
+
*/
|
|
298
|
+
async _executeOnStartCallback(metadata) {
|
|
299
|
+
const callbacks = this._callbacks;
|
|
300
|
+
if (callbacks.onStart) {
|
|
301
|
+
await safeExecuteCallback(() => callbacks.onStart({ metadata }), "onStart", (level, msg, details) => log(this._config.logger, level, msg, details));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Executes result-based lifecycle callbacks (onSuccess, onError, onSettled).
|
|
263
306
|
*/
|
|
264
|
-
async
|
|
307
|
+
async _executeResultCallbacks(result, metadata) {
|
|
265
308
|
const callbacks = this._callbacks;
|
|
266
309
|
// Success path
|
|
267
310
|
if (isOk(result)) {
|
|
@@ -318,7 +361,7 @@ export function create(config) {
|
|
|
318
361
|
export function initial(action) {
|
|
319
362
|
const error = {
|
|
320
363
|
type: EXTERNAL_ERROR_TYPES.INITIAL_STATE,
|
|
321
|
-
message: "
|
|
364
|
+
message: "Action has not been executed yet",
|
|
322
365
|
};
|
|
323
366
|
// Attempt to read the ActionCraft config attached during craft()
|
|
324
367
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
package/dist/actioncraft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actioncraft.js","sourceRoot":"","sources":["../src/actioncraft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAiB9B,OAAO,EAIL,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"actioncraft.js","sourceRoot":"","sources":["../src/actioncraft.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StandardSchemaV1 } from "../standard-schema.js";
|
|
2
2
|
import type { InferCraftedActionResult } from "./actions.js";
|
|
3
|
-
import type { AllPossibleErrors,
|
|
3
|
+
import type { AllPossibleErrors, ErrorDefinition, UserDefinedError } from "./errors.js";
|
|
4
4
|
import type { CallbackMetadata } from "./shared.js";
|
|
5
5
|
/**
|
|
6
6
|
* Custom logging interface for ActionCraft.
|
|
@@ -35,7 +35,7 @@ export type CrafterConfig = {
|
|
|
35
35
|
* Custom handler for unexpected thrown errors.
|
|
36
36
|
* Transforms exceptions into structured error objects.
|
|
37
37
|
*/
|
|
38
|
-
handleThrownError?: (error: unknown) =>
|
|
38
|
+
handleThrownError?: (error: unknown) => UserDefinedError;
|
|
39
39
|
/**
|
|
40
40
|
* Logger for ActionCraft internal events.
|
|
41
41
|
*/
|
|
@@ -62,6 +62,10 @@ export type CrafterErrors = Record<string, ErrorDefinition>;
|
|
|
62
62
|
* Callback errors are logged but do not affect action results.
|
|
63
63
|
*/
|
|
64
64
|
export type CrafterCallbacks<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TData> = {
|
|
65
|
+
/** Called when action starts executing, before any validation. */
|
|
66
|
+
onStart?: (params: {
|
|
67
|
+
metadata: CallbackMetadata<TConfig, TSchemas, TErrors, TData>;
|
|
68
|
+
}) => Promise<void> | void;
|
|
65
69
|
/** Called when action fails. */
|
|
66
70
|
onError?: (params: {
|
|
67
71
|
error: AllPossibleErrors<TErrors, TConfig, TSchemas>;
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ export type InternalLogicError = BaseError & {
|
|
|
65
65
|
*/
|
|
66
66
|
export type InitialStateMarker = BaseError & {
|
|
67
67
|
type: typeof EXTERNAL_ERROR_TYPES.INITIAL_STATE;
|
|
68
|
-
message: "
|
|
68
|
+
message: "Action has not been executed yet";
|
|
69
69
|
};
|
|
70
70
|
/**
|
|
71
71
|
* Error for uncaught exceptions when no custom handler is provided.
|
package/dist/types/shared.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { StandardSchemaV1 } from "../standard-schema.js";
|
|
|
2
2
|
import type { InferPrevStateArg } from "./actions.js";
|
|
3
3
|
import type { CrafterConfig, CrafterErrors, CrafterSchemas } from "./config.js";
|
|
4
4
|
import type { InferData } from "./inference.js";
|
|
5
|
-
import type { InferValidatedInput, InferValidatedBindArgs, InferRawInput } from "./schemas.js";
|
|
5
|
+
import type { InferValidatedInput, InferValidatedBindArgs, InferRawInput, InferRawBindArgs } from "./schemas.js";
|
|
6
6
|
/**
|
|
7
7
|
* Expands type aliases for better IDE display.
|
|
8
8
|
*/
|
|
@@ -52,6 +52,8 @@ export type MapSchemasToValidatedOutput<T> = T extends readonly [
|
|
|
52
52
|
export type BaseMetadata<TConfig extends CrafterConfig, TSchemas extends CrafterSchemas, TErrors extends CrafterErrors, TData> = {
|
|
53
53
|
/** Original input before validation */
|
|
54
54
|
rawInput?: InferRawInput<TSchemas>;
|
|
55
|
+
/** Original bind arguments before validation */
|
|
56
|
+
rawBindArgs?: InferRawBindArgs<TSchemas>;
|
|
55
57
|
/** Previous result when using useActionState */
|
|
56
58
|
prevState?: InferPrevStateArg<TConfig, TSchemas, TErrors, TData>;
|
|
57
59
|
};
|