@nice-code/action 0.2.0 → 0.2.2
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/build/index.js +56 -47
- package/build/react-query/index.js +10 -9
- package/build/types/ActionDefinition/Action/Action.combined.types.d.ts +16 -6
- package/build/types/ActionDefinition/Action/ActionBase.d.ts +2 -2
- package/build/types/ActionDefinition/Action/ActionBase.types.d.ts +4 -4
- package/build/types/ActionDefinition/Action/Context/ActionContext.d.ts +6 -7
- package/build/types/ActionDefinition/Action/Context/ActionContext.types.d.ts +2 -2
- package/build/types/ActionDefinition/Action/Core/ActionCore.d.ts +6 -7
- package/build/types/ActionDefinition/Action/Core/ActionCore.types.d.ts +2 -2
- package/build/types/ActionDefinition/Action/Payload/ActionPayload.d.ts +1 -1
- package/build/types/ActionDefinition/Action/Payload/ActionPayload.types.d.ts +14 -13
- package/build/types/ActionDefinition/Action/Payload/ActionPayload_Progress.d.ts +1 -1
- package/build/types/ActionDefinition/Action/Payload/ActionPayload_Request.d.ts +6 -6
- package/build/types/ActionDefinition/Action/Payload/ActionPayload_Result.d.ts +3 -3
- package/build/types/ActionDefinition/Action/RunningAction.d.ts +1 -1
- package/build/types/ActionDefinition/Action/RunningAction.types.d.ts +20 -14
- package/build/types/ActionDefinition/Domain/ActionDomain.d.ts +17 -10
- package/build/types/ActionDefinition/Domain/ActionDomain.types.d.ts +10 -7
- package/build/types/ActionDefinition/Domain/ActionDomainBase.d.ts +4 -4
- package/build/types/ActionDefinition/Domain/ActionRootDomain.d.ts +1 -1
- package/build/types/ActionDefinition/Schema/ActionSchema.d.ts +7 -7
- package/build/types/ActionDefinition/Schema/ActionSchema.types.d.ts +4 -8
- package/build/types/ActionRuntime/ActionDomainManager.d.ts +1 -1
- package/build/types/ActionRuntime/ActionRuntime.d.ts +2 -7
- package/build/types/ActionRuntime/Handler/ActionHandler.d.ts +1 -1
- package/build/types/ActionRuntime/Handler/ActionHandler.types.d.ts +3 -6
- package/build/types/ActionRuntime/Handler/ExternalClient/ActionExternalClientHandler.d.ts +3 -3
- package/build/types/ActionRuntime/Handler/Local/ActionLocalHandler.d.ts +4 -4
- package/build/types/ActionRuntime/Handler/Local/ActionLocalHandler.types.d.ts +3 -2
- package/build/types/ActionRuntime/Routing/ActionRouter.d.ts +7 -7
- package/build/types/ActionRuntime/test/helpers/new_action_test_data.d.ts +60 -154
- package/build/types/errors/err_nice_action.d.ts +2 -2
- package/build/types/react-query/hooks/useActionMutation.d.ts +6 -0
- package/build/types/react-query/hooks/useActionQuery.d.ts +15 -0
- package/build/types/react-query/index.d.ts +2 -72
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -143,7 +143,7 @@ class ActionBase {
|
|
|
143
143
|
this.id = id;
|
|
144
144
|
this.domain = _domain.domain;
|
|
145
145
|
this.allDomains = _domain.allDomains;
|
|
146
|
-
this.schema = _domain.
|
|
146
|
+
this.schema = _domain.actionSchema[id];
|
|
147
147
|
}
|
|
148
148
|
toJsonObject() {
|
|
149
149
|
return {
|
|
@@ -251,8 +251,9 @@ var EActionPayloadType;
|
|
|
251
251
|
((EActionPayloadType2) => {
|
|
252
252
|
EActionPayloadType2["request"] = "request";
|
|
253
253
|
EActionPayloadType2["progress"] = "progress";
|
|
254
|
-
EActionPayloadType2["stream"] = "stream";
|
|
255
254
|
EActionPayloadType2["result"] = "result";
|
|
255
|
+
EActionPayloadType2["stream"] = "stream";
|
|
256
|
+
EActionPayloadType2["push"] = "push";
|
|
256
257
|
})(EActionPayloadType ||= {});
|
|
257
258
|
var EActionProgressType;
|
|
258
259
|
((EActionProgressType2) => {
|
|
@@ -572,7 +573,7 @@ class RunningAction {
|
|
|
572
573
|
return this._completeWithResult(result);
|
|
573
574
|
}
|
|
574
575
|
}
|
|
575
|
-
//
|
|
576
|
+
// ../../node_modules/.bun/@nice-code+error@0.1.3+7524df1edfed9f02/node_modules/@nice-code/error/build/index.js
|
|
576
577
|
var ACCEPTED = 202;
|
|
577
578
|
var BAD_GATEWAY = 502;
|
|
578
579
|
var BAD_REQUEST = 400;
|
|
@@ -3257,7 +3258,7 @@ var EErrId_NiceAction;
|
|
|
3257
3258
|
EErrId_NiceAction2["hydration_action_state_mismatch"] = "hydration_action_state_mismatch";
|
|
3258
3259
|
EErrId_NiceAction2["hydration_action_id_not_found"] = "hydration_action_id_not_found";
|
|
3259
3260
|
EErrId_NiceAction2["no_action_execution_handler"] = "no_action_execution_handler";
|
|
3260
|
-
EErrId_NiceAction2["
|
|
3261
|
+
EErrId_NiceAction2["wire_action_not_payload"] = "wire_action_not_payload";
|
|
3261
3262
|
EErrId_NiceAction2["wire_not_action_data"] = "wire_not_action_data";
|
|
3262
3263
|
EErrId_NiceAction2["client_runtime_already_registered"] = "client_runtime_already_registered";
|
|
3263
3264
|
EErrId_NiceAction2["client_runtime_not_registered"] = "client_runtime_not_registered";
|
|
@@ -3295,11 +3296,11 @@ var err_nice_action = err_nice.createChildDomain({
|
|
|
3295
3296
|
["no_action_execution_handler" /* no_action_execution_handler */]: err({
|
|
3296
3297
|
message: ({ domain, actionId, specifiedClient }) => `${specifiedClient ? ` The targeted client runtime [${specifiedClient.stringId}] has no` : "No"} action handler registered for "${actionId}" in domain "${domain}".`
|
|
3297
3298
|
}),
|
|
3298
|
-
["
|
|
3299
|
-
message: ({ domain, actionId, actionState }) => `Cannot handle wire for action "${actionId}" in domain "${domain}": expected action type of "
|
|
3299
|
+
["wire_action_not_payload" /* wire_action_not_payload */]: err({
|
|
3300
|
+
message: ({ domain, actionId, actionState }) => `Cannot handle wire for action "${actionId}" in domain "${domain}": expected action form of "${"data" /* data */}" and type of "${"request" /* request */}", "${"progress" /* progress */}" or "${"result" /* result */}", got "${actionState}".`
|
|
3300
3301
|
}),
|
|
3301
3302
|
["wire_not_action_data" /* wire_not_action_data */]: err({
|
|
3302
|
-
message: () => `Cannot handle wire for action: expected an object with a "domain" property of type string and a "type" property of "
|
|
3303
|
+
message: () => `Cannot handle wire for action: expected an object with a "domain" property of type string, a "form" property of "${"data" /* data */}" and a "type" property of "${"request" /* request */}", "${"progress" /* progress */}" or "${"result" /* result */}".`
|
|
3303
3304
|
}),
|
|
3304
3305
|
["client_runtime_already_registered" /* client_runtime_already_registered */]: err({
|
|
3305
3306
|
message: ({ context, client }) => `Environment is already registered${context?.domain ? ` on domain "${context.domain}"` : ""} for client [${client.stringId}]. Each client specifier (exact match on all properties) may only be registered once.`
|
|
@@ -3348,22 +3349,17 @@ var isAction_Core_JsonObject = (obj) => {
|
|
|
3348
3349
|
|
|
3349
3350
|
// src/utils/isActionPayload_Progress_JsonObject.ts
|
|
3350
3351
|
var isActionPayload_Progress_JsonObject = (obj) => {
|
|
3351
|
-
return isAction_Base_JsonObject(obj) && "
|
|
3352
|
+
return isAction_Base_JsonObject(obj) && "progress" in obj && obj.form === "data" /* data */ && obj.type === "progress" /* progress */;
|
|
3352
3353
|
};
|
|
3353
3354
|
|
|
3354
3355
|
// src/utils/isActionPayload_Request_JsonObject.ts
|
|
3355
3356
|
var isActionPayload_Request_JsonObject = (obj) => {
|
|
3356
|
-
return isAction_Base_JsonObject(obj) && "input" in obj && obj.type === "request" /* request */;
|
|
3357
|
+
return isAction_Base_JsonObject(obj) && "input" in obj && obj.form === "data" /* data */ && obj.type === "request" /* request */;
|
|
3357
3358
|
};
|
|
3358
3359
|
|
|
3359
3360
|
// src/utils/isActionPayload_Result_JsonObject.ts
|
|
3360
3361
|
var isActionPayload_Result_JsonObject = (obj) => {
|
|
3361
|
-
|
|
3362
|
-
return false;
|
|
3363
|
-
if (obj.type !== "result" /* result */)
|
|
3364
|
-
return false;
|
|
3365
|
-
const result = obj.result;
|
|
3366
|
-
return result != null && typeof result === "object" && typeof result.ok === "boolean" && (("output" in result) || ("error" in result));
|
|
3362
|
+
return isAction_Base_JsonObject(obj) && obj.result != null && obj.form === "data" /* data */ && obj.type === "result" /* result */;
|
|
3367
3363
|
};
|
|
3368
3364
|
|
|
3369
3365
|
// src/utils/isActionPayload_Any_JsonObject.ts
|
|
@@ -3392,12 +3388,12 @@ function isAction_Any_Instance(value) {
|
|
|
3392
3388
|
class ActionDomainBase {
|
|
3393
3389
|
domain;
|
|
3394
3390
|
allDomains;
|
|
3395
|
-
|
|
3391
|
+
actionSchema;
|
|
3396
3392
|
_listeners = [];
|
|
3397
3393
|
constructor(definition) {
|
|
3398
3394
|
this.domain = definition.domain;
|
|
3399
3395
|
this.allDomains = definition.allDomains;
|
|
3400
|
-
this.
|
|
3396
|
+
this.actionSchema = definition.actionSchema;
|
|
3401
3397
|
}
|
|
3402
3398
|
addActionListener(listener) {
|
|
3403
3399
|
this._listeners.push(listener);
|
|
@@ -3410,11 +3406,13 @@ class ActionDomainBase {
|
|
|
3410
3406
|
// src/ActionDefinition/Domain/ActionDomain.ts
|
|
3411
3407
|
class ActionDomain extends ActionDomainBase {
|
|
3412
3408
|
_rootDomain;
|
|
3409
|
+
_actionMap;
|
|
3413
3410
|
constructor(definition, {
|
|
3414
3411
|
rootDomain
|
|
3415
3412
|
}) {
|
|
3416
3413
|
super(definition);
|
|
3417
3414
|
this._rootDomain = rootDomain;
|
|
3415
|
+
this._actionMap = this.createActionMap();
|
|
3418
3416
|
}
|
|
3419
3417
|
get rootDomain() {
|
|
3420
3418
|
return this._rootDomain;
|
|
@@ -3428,13 +3426,19 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3428
3426
|
});
|
|
3429
3427
|
}
|
|
3430
3428
|
return new ActionDomain({
|
|
3431
|
-
allDomains: [
|
|
3429
|
+
allDomains: [...this.allDomains, subDomainDef.domain],
|
|
3432
3430
|
domain: subDomainDef.domain,
|
|
3433
|
-
|
|
3431
|
+
actionSchema: subDomainDef.actions
|
|
3434
3432
|
}, { rootDomain: this._rootDomain });
|
|
3435
3433
|
}
|
|
3436
|
-
action(
|
|
3437
|
-
|
|
3434
|
+
get action() {
|
|
3435
|
+
return this._actionMap;
|
|
3436
|
+
}
|
|
3437
|
+
actionsMap() {
|
|
3438
|
+
return this._actionMap;
|
|
3439
|
+
}
|
|
3440
|
+
actionForId(id) {
|
|
3441
|
+
const actionSchema = this.actionSchema[id];
|
|
3438
3442
|
if (!actionSchema) {
|
|
3439
3443
|
throw err_nice_action.fromId("action_id_not_in_domain" /* action_id_not_in_domain */, {
|
|
3440
3444
|
domain: this.domain,
|
|
@@ -3460,7 +3464,7 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3460
3464
|
isDomainAction(action) {
|
|
3461
3465
|
return isAction_Any_Instance(action) && action.domain === this.domain;
|
|
3462
3466
|
}
|
|
3463
|
-
|
|
3467
|
+
hydrateRequestPayload(serialized) {
|
|
3464
3468
|
if (serialized.type !== "request" /* request */) {
|
|
3465
3469
|
throw err_nice_action.fromId("hydration_action_state_mismatch" /* hydration_action_state_mismatch */, {
|
|
3466
3470
|
expected: "request" /* request */,
|
|
@@ -3474,7 +3478,7 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3474
3478
|
});
|
|
3475
3479
|
}
|
|
3476
3480
|
const id = serialized.id;
|
|
3477
|
-
if (!this.
|
|
3481
|
+
if (!this.actionSchema[id]) {
|
|
3478
3482
|
throw err_nice_action.fromId("hydration_action_id_not_found" /* hydration_action_id_not_found */, {
|
|
3479
3483
|
domain: this.domain,
|
|
3480
3484
|
actionId: serialized.id
|
|
@@ -3499,7 +3503,7 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3499
3503
|
});
|
|
3500
3504
|
}
|
|
3501
3505
|
const id = serialized.id;
|
|
3502
|
-
if (!this.
|
|
3506
|
+
if (!this.actionSchema[id]) {
|
|
3503
3507
|
throw err_nice_action.fromId("hydration_action_id_not_found" /* hydration_action_id_not_found */, {
|
|
3504
3508
|
domain: this.domain,
|
|
3505
3509
|
actionId: serialized.id
|
|
@@ -3514,13 +3518,13 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3514
3518
|
assertIsActionJson(actionJson);
|
|
3515
3519
|
if (actionJson.form === "data" /* data */) {
|
|
3516
3520
|
if (actionJson.type === "request" /* request */) {
|
|
3517
|
-
return this.
|
|
3521
|
+
return this.hydrateRequestPayload(actionJson);
|
|
3518
3522
|
}
|
|
3519
3523
|
if (actionJson.type === "result" /* result */) {
|
|
3520
3524
|
return this.hydrateResultPayload(actionJson);
|
|
3521
3525
|
}
|
|
3522
3526
|
}
|
|
3523
|
-
return this.
|
|
3527
|
+
return this.actionForId(actionJson.id);
|
|
3524
3528
|
}
|
|
3525
3529
|
async runAction(request, options) {
|
|
3526
3530
|
const allListeners = [
|
|
@@ -3532,6 +3536,13 @@ class ActionDomain extends ActionDomainBase {
|
|
|
3532
3536
|
listeners: allListeners
|
|
3533
3537
|
});
|
|
3534
3538
|
}
|
|
3539
|
+
createActionMap() {
|
|
3540
|
+
const map = {};
|
|
3541
|
+
for (const id in this.actionSchema) {
|
|
3542
|
+
map[id] = new ActionCore(this, id);
|
|
3543
|
+
}
|
|
3544
|
+
return map;
|
|
3545
|
+
}
|
|
3535
3546
|
}
|
|
3536
3547
|
// src/ActionRuntime/ActionRuntimeManager.ts
|
|
3537
3548
|
class ActionRuntimeManager {
|
|
@@ -3563,7 +3574,7 @@ class ActionRuntimeManager {
|
|
|
3563
3574
|
if (runtime2 == null) {
|
|
3564
3575
|
return;
|
|
3565
3576
|
}
|
|
3566
|
-
const handler = runtime2.
|
|
3577
|
+
const handler = runtime2._getHandlerForAction(action, options);
|
|
3567
3578
|
if (handler != null) {
|
|
3568
3579
|
return { handler, runtime: runtime2 };
|
|
3569
3580
|
}
|
|
@@ -3576,7 +3587,7 @@ class ActionRuntimeManager {
|
|
|
3576
3587
|
}
|
|
3577
3588
|
}
|
|
3578
3589
|
for (const runtime2 of this._runtimes.values()) {
|
|
3579
|
-
const handler = runtime2.
|
|
3590
|
+
const handler = runtime2._getHandlerForAction(action);
|
|
3580
3591
|
if (handler) {
|
|
3581
3592
|
return { handler, runtime: runtime2 };
|
|
3582
3593
|
}
|
|
@@ -3644,7 +3655,7 @@ class ActionRootDomain extends ActionDomainBase {
|
|
|
3644
3655
|
super({
|
|
3645
3656
|
domain: domainId,
|
|
3646
3657
|
allDomains: [domainId],
|
|
3647
|
-
|
|
3658
|
+
actionSchema: {}
|
|
3648
3659
|
});
|
|
3649
3660
|
this.domainDefinition = domainDefinition;
|
|
3650
3661
|
this._actionRuntimeManager = new ActionRuntimeManager({ domain: domainId });
|
|
@@ -3658,9 +3669,9 @@ class ActionRootDomain extends ActionDomainBase {
|
|
|
3658
3669
|
});
|
|
3659
3670
|
}
|
|
3660
3671
|
return new ActionDomain({
|
|
3661
|
-
allDomains: [
|
|
3672
|
+
allDomains: [...this.allDomains, subDomainDef.domain],
|
|
3662
3673
|
domain: subDomainDef.domain,
|
|
3663
|
-
|
|
3674
|
+
actionSchema: subDomainDef.actions
|
|
3664
3675
|
}, { rootDomain: this });
|
|
3665
3676
|
}
|
|
3666
3677
|
addActionRuntime(runtime2) {
|
|
@@ -3670,11 +3681,11 @@ class ActionRootDomain extends ActionDomainBase {
|
|
|
3670
3681
|
getRuntime(clientSpecifier) {
|
|
3671
3682
|
return this._actionRuntimeManager.getBestRuntimeForSpecifier(clientSpecifier);
|
|
3672
3683
|
}
|
|
3673
|
-
async _runAction(
|
|
3674
|
-
const { handler, runtime: runtime2 } = this._actionRuntimeManager.getRuntimeAndHandlerForActionOrThrow(
|
|
3675
|
-
|
|
3684
|
+
async _runAction(actionPayload, options) {
|
|
3685
|
+
const { handler, runtime: runtime2 } = this._actionRuntimeManager.getRuntimeAndHandlerForActionOrThrow(actionPayload, options);
|
|
3686
|
+
actionPayload.context._setOriginClient(runtime2.clientSpecifier);
|
|
3676
3687
|
const allListeners = [...this._listeners, ...options?.listeners ?? []];
|
|
3677
|
-
const runningAction = await handler.handleActionRequest(
|
|
3688
|
+
const runningAction = await handler.handleActionRequest(actionPayload, {
|
|
3678
3689
|
targetLocalRuntime: runtime2
|
|
3679
3690
|
});
|
|
3680
3691
|
runningAction.addUpdateListeners(allListeners);
|
|
@@ -3685,7 +3696,7 @@ class ActionRootDomain extends ActionDomainBase {
|
|
|
3685
3696
|
var createActionRootDomain = (definition) => {
|
|
3686
3697
|
return new ActionRootDomain(definition);
|
|
3687
3698
|
};
|
|
3688
|
-
//
|
|
3699
|
+
// ../../node_modules/.bun/@nice-code+common-errors@0.1.3+51eba3db27e14993/node_modules/@nice-code/common-errors/build/index.js
|
|
3689
3700
|
var ACCEPTED2 = 202;
|
|
3690
3701
|
var BAD_GATEWAY2 = 502;
|
|
3691
3702
|
var BAD_REQUEST2 = 400;
|
|
@@ -6586,7 +6597,7 @@ class ActionRuntime {
|
|
|
6586
6597
|
resolveIncomingActionPayload(json) {
|
|
6587
6598
|
if (json.type === "request" /* request */) {
|
|
6588
6599
|
this.handleActionPayloadWire(json).catch((err3) => {
|
|
6589
|
-
console.error(`[ActionRuntime] Incoming
|
|
6600
|
+
console.error(`[ActionRuntime] Incoming action [${json.domain}:${json.id}:${json.form}:${json.type}] unhandled:`, err3);
|
|
6590
6601
|
});
|
|
6591
6602
|
return;
|
|
6592
6603
|
}
|
|
@@ -6595,10 +6606,8 @@ class ActionRuntime {
|
|
|
6595
6606
|
async handleActionPayloadWire(wire) {
|
|
6596
6607
|
let action;
|
|
6597
6608
|
if (isActionPayload_Any_JsonObject(wire)) {
|
|
6598
|
-
const domain = this.actionRouter.domainManager.
|
|
6599
|
-
|
|
6600
|
-
action = domain.hydrateAnyAction(wire);
|
|
6601
|
-
}
|
|
6609
|
+
const domain = this.actionRouter.domainManager.getActionDomainOrThrow(wire);
|
|
6610
|
+
action = domain.hydrateAnyAction(wire);
|
|
6602
6611
|
}
|
|
6603
6612
|
if (action == null) {
|
|
6604
6613
|
throw err_nice_action.fromId("wire_not_action_data" /* wire_not_action_data */);
|
|
@@ -6619,7 +6628,7 @@ class ActionRuntime {
|
|
|
6619
6628
|
label: `Handling incoming action payloads of type "${action.type}"`
|
|
6620
6629
|
});
|
|
6621
6630
|
}
|
|
6622
|
-
|
|
6631
|
+
_getHandlerForAction(action, options) {
|
|
6623
6632
|
const handlers = this.actionRouter.getRouteDataEntriesForAction(action);
|
|
6624
6633
|
const targetExternalClient = options?.targetExternalClient;
|
|
6625
6634
|
const possibleHandlers = handlers.filter((handler2) => {
|
|
@@ -6658,7 +6667,7 @@ class ActionRuntime {
|
|
|
6658
6667
|
return handler;
|
|
6659
6668
|
}
|
|
6660
6669
|
getHandlerForActionOrThrow(action, options) {
|
|
6661
|
-
const handler = this.
|
|
6670
|
+
const handler = this._getHandlerForAction(action, options);
|
|
6662
6671
|
if (handler == null) {
|
|
6663
6672
|
throw err_nice_action.fromId("no_action_execution_handler" /* no_action_execution_handler */, {
|
|
6664
6673
|
actionId: action.id,
|
|
@@ -7196,9 +7205,9 @@ class TransportWebSocket extends Transport {
|
|
|
7196
7205
|
};
|
|
7197
7206
|
ws.addEventListener("message", (event) => {
|
|
7198
7207
|
if (typeof event.data === "string") {
|
|
7199
|
-
const
|
|
7200
|
-
if (
|
|
7201
|
-
this.resolvers.onIncomingActionDataJson(
|
|
7208
|
+
const rawJson = wsData.formatMessage?.incoming?.(event.data) ?? this._parseActionMessage(event.data);
|
|
7209
|
+
if (rawJson != null && isActionPayload_Any_JsonObject(rawJson)) {
|
|
7210
|
+
this.resolvers.onIncomingActionDataJson(rawJson);
|
|
7202
7211
|
}
|
|
7203
7212
|
}
|
|
7204
7213
|
});
|
|
@@ -7426,7 +7435,7 @@ class ActionLocalHandler extends ActionHandler {
|
|
|
7426
7435
|
async handlePayloadWireOrThrow(wire, config) {
|
|
7427
7436
|
const hydratedAction = this.actionRouter.domainManager.hydrateActionPayload(wire);
|
|
7428
7437
|
if (!(hydratedAction instanceof ActionPayload_Request)) {
|
|
7429
|
-
throw err_nice_action.fromId("
|
|
7438
|
+
throw err_nice_action.fromId("wire_action_not_payload" /* wire_action_not_payload */, {
|
|
7430
7439
|
domain: hydratedAction.domain,
|
|
7431
7440
|
actionId: hydratedAction.id,
|
|
7432
7441
|
actionState: hydratedAction.type ?? hydratedAction.form
|
|
@@ -3099,7 +3099,15 @@ function useMutation(options, queryClient) {
|
|
|
3099
3099
|
}
|
|
3100
3100
|
return { ...result, mutate, mutateAsync: result.mutate };
|
|
3101
3101
|
}
|
|
3102
|
-
// src/react-query/
|
|
3102
|
+
// src/react-query/hooks/useActionMutation.ts
|
|
3103
|
+
function useActionMutation(action, options) {
|
|
3104
|
+
const mutationOptions2 = options ?? {};
|
|
3105
|
+
return useMutation({
|
|
3106
|
+
mutationFn: (input) => action.request(input).runToOutput(),
|
|
3107
|
+
...mutationOptions2
|
|
3108
|
+
});
|
|
3109
|
+
}
|
|
3110
|
+
// src/react-query/hooks/useActionQuery.ts
|
|
3103
3111
|
function niceActionQueryKey(action, input) {
|
|
3104
3112
|
if (input === undefined) {
|
|
3105
3113
|
return ["nice-action", action.domain, action.allDomains, action.id];
|
|
@@ -3115,15 +3123,8 @@ function useNiceQuery(action, input, options) {
|
|
|
3115
3123
|
...queryOptions2
|
|
3116
3124
|
});
|
|
3117
3125
|
}
|
|
3118
|
-
function useNiceMutation(action, options) {
|
|
3119
|
-
const mutationOptions2 = options ?? {};
|
|
3120
|
-
return useMutation({
|
|
3121
|
-
mutationFn: (input) => action.request(input).runToOutput(),
|
|
3122
|
-
...mutationOptions2
|
|
3123
|
-
});
|
|
3124
|
-
}
|
|
3125
3126
|
export {
|
|
3126
3127
|
useNiceQuery,
|
|
3127
|
-
|
|
3128
|
+
useActionMutation,
|
|
3128
3129
|
niceActionQueryKey
|
|
3129
3130
|
};
|
|
@@ -8,20 +8,30 @@ import type { IActionPayload_Progress_JsonObject, IActionPayload_Request_JsonObj
|
|
|
8
8
|
import type { ActionPayload_Progress } from "./Payload/ActionPayload_Progress";
|
|
9
9
|
import type { ActionPayload_Request } from "./Payload/ActionPayload_Request";
|
|
10
10
|
import type { ActionPayload_Result } from "./Payload/ActionPayload_Result";
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Distributes a union ID into a proper discriminated union of ActionPayload_Request instances,
|
|
13
|
+
* so that narrowing on `.id` also narrows `.input`.
|
|
14
|
+
*/
|
|
15
|
+
export type TDistributeActionPayload_Request<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string> = ID extends keyof DOM["actionSchema"] & string ? ActionPayload_Request<DOM, ID> : never;
|
|
16
|
+
/**
|
|
17
|
+
* Distributes a union ID into a proper discriminated union of ActionPayload_Result instances,
|
|
18
|
+
* so that narrowing on `.id` also narrows `.result`.
|
|
19
|
+
*/
|
|
20
|
+
export type TDistributeActionPayload_Result<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string> = ID extends keyof DOM["actionSchema"] & string ? ActionPayload_Result<DOM, ID> : never;
|
|
21
|
+
export type TAction_Any_Instance<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = ActionCore<DOM, ID> | TActionPayload_Any_Instance<DOM, ID> | ActionContext<DOM, ID>;
|
|
12
22
|
/**
|
|
13
23
|
*
|
|
14
24
|
* COMBINED JSON TYPES
|
|
15
25
|
*
|
|
16
26
|
*/
|
|
17
|
-
export type TAction_Any_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
27
|
+
export type TAction_Any_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = IActionCore_JsonObject<DOM, ID> | TActionPayload_Any_JsonObject<DOM, ID> | IActionContext_JsonObject<DOM, ID>;
|
|
18
28
|
/**
|
|
19
29
|
*
|
|
20
30
|
* UTILITY TYPES
|
|
21
31
|
*
|
|
22
32
|
*/
|
|
23
33
|
export type TDistributedDomainActions<DOM extends IActionDomain, ACT extends IActionBase<any, DOM, any>> = {
|
|
24
|
-
[ID in keyof DOM["
|
|
25
|
-
}[keyof DOM["
|
|
26
|
-
export type TNarrowActionType<DOM extends IActionDomain, ACT extends IActionBase<any, DOM, any>, ID extends keyof DOM["
|
|
27
|
-
export type TNarrowActionJsonTypeToActionInstanceType<DOM extends IActionDomain, ACT extends TAction_Any_JsonObject<DOM>, ID extends keyof DOM["
|
|
34
|
+
[ID in keyof DOM["actionSchema"] & string]: TNarrowActionType<DOM, ACT, ID>;
|
|
35
|
+
}[keyof DOM["actionSchema"] & string];
|
|
36
|
+
export type TNarrowActionType<DOM extends IActionDomain, ACT extends IActionBase<any, DOM, any>, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = ACT extends ActionPayload_Result<any> ? ActionPayload_Result<DOM, ID> : ACT extends ActionPayload_Request<any> ? ActionPayload_Request<DOM, ID> : ACT extends ActionPayload_Progress<any> ? ActionPayload_Progress<DOM, ID> : ACT extends ActionCore<any> ? ActionCore<DOM, ID> : never;
|
|
37
|
+
export type TNarrowActionJsonTypeToActionInstanceType<DOM extends IActionDomain, ACT extends TAction_Any_JsonObject<DOM>, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = ACT extends IActionPayload_Request_JsonObject<any> ? ActionPayload_Request<DOM, ID> : ACT extends IActionPayload_Result_JsonObject<any> ? ActionPayload_Result<DOM, ID> : ACT extends IActionPayload_Progress_JsonObject<any> ? ActionPayload_Progress<DOM, ID> : ACT extends IActionCore_JsonObject<any> ? ActionCore<DOM, ID> : never;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ActionDomain } from "../Domain/ActionDomain";
|
|
2
2
|
import type { IActionDomain } from "../Domain/ActionDomain.types";
|
|
3
3
|
import type { EActionForm, IActionBase, IActionBase_JsonObject } from "./ActionBase.types";
|
|
4
|
-
export declare abstract class ActionBase<FORM extends EActionForm, DOM extends IActionDomain, ID extends keyof DOM["
|
|
4
|
+
export declare abstract class ActionBase<FORM extends EActionForm, DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> implements IActionBase<FORM, DOM, ID> {
|
|
5
5
|
readonly form: FORM;
|
|
6
6
|
readonly _domain: ActionDomain<DOM>;
|
|
7
7
|
readonly id: ID;
|
|
8
8
|
readonly domain: DOM["domain"];
|
|
9
9
|
readonly allDomains: DOM["allDomains"];
|
|
10
|
-
readonly schema: DOM["
|
|
10
|
+
readonly schema: DOM["actionSchema"][ID];
|
|
11
11
|
constructor(form: FORM, _domain: ActionDomain<DOM>, id: ID);
|
|
12
12
|
protected toJsonObject(): IActionBase_JsonObject<FORM, DOM, ID>;
|
|
13
13
|
protected toJsonString(): string;
|
|
@@ -7,16 +7,16 @@ export declare enum EActionForm {
|
|
|
7
7
|
}
|
|
8
8
|
export interface INiceActionIdAndDomain<DOM extends IActionDomain = IActionDomain> {
|
|
9
9
|
domain: DOM["domain"];
|
|
10
|
-
id: keyof DOM["
|
|
10
|
+
id: keyof DOM["actionSchema"] & string;
|
|
11
11
|
}
|
|
12
|
-
export interface IActionBase<FORM extends EActionForm, DOM extends IActionDomain, ID extends keyof DOM["
|
|
12
|
+
export interface IActionBase<FORM extends EActionForm, DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends INiceActionIdAndDomain<DOM> {
|
|
13
13
|
id: ID;
|
|
14
14
|
form: FORM;
|
|
15
15
|
_domain: ActionDomain<DOM>;
|
|
16
16
|
allDomains: DOM["allDomains"];
|
|
17
|
-
schema: DOM["
|
|
17
|
+
schema: DOM["actionSchema"][ID];
|
|
18
18
|
}
|
|
19
|
-
export interface IActionBase_JsonObject<FORM extends EActionForm = EActionForm, DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
19
|
+
export interface IActionBase_JsonObject<FORM extends EActionForm = EActionForm, DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> {
|
|
20
20
|
form: FORM;
|
|
21
21
|
domain: DOM["domain"];
|
|
22
22
|
allDomains: DOM["allDomains"];
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ActionClientSpecifier } from "../../../ActionRuntime/Client/ActionClientSpecifier";
|
|
2
2
|
import type { ActionDomain } from "../../Domain/ActionDomain";
|
|
3
3
|
import type { IActionDomain, TInferInputFromSchema, TInferOutputFromSchema } from "../../Domain/ActionDomain.types";
|
|
4
4
|
import { ActionBase } from "../ActionBase";
|
|
5
5
|
import { EActionForm } from "../ActionBase.types";
|
|
6
|
-
import { ActionClientSpecifier } from "../../../ActionRuntime/Client/ActionClientSpecifier";
|
|
7
6
|
import type { IActionContext, IActionContext_Data, IActionContext_Data_JsonObject, IActionContext_JsonObject, IActionRouteItem } from "./ActionContext.types";
|
|
8
|
-
export declare class ActionContext<DOM extends IActionDomain, ID extends keyof DOM["
|
|
7
|
+
export declare class ActionContext<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends ActionBase<EActionForm.context, DOM, ID> implements IActionContext<DOM, ID> {
|
|
9
8
|
readonly _domain: ActionDomain<DOM>;
|
|
10
9
|
readonly form = EActionForm.context;
|
|
11
10
|
readonly _routing: IActionRouteItem[];
|
|
@@ -19,8 +18,8 @@ export declare class ActionContext<DOM extends IActionDomain, ID extends keyof D
|
|
|
19
18
|
toJsonObject(): IActionContext_JsonObject<DOM, ID>;
|
|
20
19
|
get routing(): IActionRouteItem[];
|
|
21
20
|
addRouteItem(item: IActionRouteItem): void;
|
|
22
|
-
deserializeInput(serialized:
|
|
23
|
-
serializeInput(raw: TInferInputFromSchema<DOM["
|
|
24
|
-
validateInput(input: unknown): TInferInputFromSchema<DOM["
|
|
25
|
-
validateOutput(output: unknown): TInferOutputFromSchema<DOM["
|
|
21
|
+
deserializeInput(serialized: TInferInputFromSchema<DOM["actionSchema"][ID]>["SerdeInput"]): TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"];
|
|
22
|
+
serializeInput(raw: TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"]): TInferInputFromSchema<DOM["actionSchema"][ID]>["SerdeInput"];
|
|
23
|
+
validateInput(input: unknown): TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"];
|
|
24
|
+
validateOutput(output: unknown): TInferOutputFromSchema<DOM["actionSchema"][ID]>["Output"];
|
|
26
25
|
}
|
|
@@ -13,7 +13,7 @@ export interface IActionContext_Data {
|
|
|
13
13
|
routing: IActionRouteItem[];
|
|
14
14
|
originClient: ActionClientSpecifier;
|
|
15
15
|
}
|
|
16
|
-
export interface IActionContext<DOM extends IActionDomain, ID extends keyof DOM["
|
|
16
|
+
export interface IActionContext<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionBase<EActionForm.context, DOM, ID>, IActionContext_Data {
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
*
|
|
@@ -31,5 +31,5 @@ export interface IActionContext_Data_JsonObject {
|
|
|
31
31
|
routing: IActionRouteItem_JsonObject[];
|
|
32
32
|
originClient: IActionClientSpecifier;
|
|
33
33
|
}
|
|
34
|
-
export interface IActionContext_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
34
|
+
export interface IActionContext_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionBase_JsonObject<EActionForm.context, DOM, ID>, IActionContext_Data_JsonObject {
|
|
35
35
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { JSONSerializableValue } from "@nice-code/error";
|
|
2
1
|
import type { ActionDomain } from "../../Domain/ActionDomain";
|
|
3
2
|
import type { IActionDomain, TInferInputFromSchema, TInferOutputFromSchema } from "../../Domain/ActionDomain.types";
|
|
4
3
|
import type { TNarrowActionType } from "../Action.combined.types";
|
|
@@ -6,15 +5,15 @@ import { ActionBase } from "../ActionBase";
|
|
|
6
5
|
import { EActionForm, type IActionBase, type IActionBase_JsonObject } from "../ActionBase.types";
|
|
7
6
|
import { ActionPayload_Request } from "../Payload/ActionPayload_Request";
|
|
8
7
|
import type { IActionCore } from "./ActionCore.types";
|
|
9
|
-
export declare class ActionCore<DOM extends IActionDomain, ID extends keyof DOM["
|
|
8
|
+
export declare class ActionCore<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends ActionBase<EActionForm.core, DOM, ID> implements IActionCore<DOM, ID> {
|
|
10
9
|
readonly _domain: ActionDomain<DOM>;
|
|
11
10
|
readonly form = EActionForm.core;
|
|
12
11
|
constructor(_domain: ActionDomain<DOM>, id: ID);
|
|
13
12
|
is<ACT extends IActionBase<any, any, any>>(action: ACT | unknown | null | undefined): action is TNarrowActionType<DOM, ACT, ID>;
|
|
14
13
|
toJsonObject(): IActionBase_JsonObject<EActionForm.core, DOM, ID>;
|
|
15
|
-
request(input: TInferInputFromSchema<DOM["
|
|
16
|
-
deserializeInput(serialized:
|
|
17
|
-
serializeInput(raw: TInferInputFromSchema<DOM["
|
|
18
|
-
validateInput(input: unknown): TInferInputFromSchema<DOM["
|
|
19
|
-
validateOutput(output: unknown): TInferOutputFromSchema<DOM["
|
|
14
|
+
request(input: TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"]): ActionPayload_Request<DOM, ID>;
|
|
15
|
+
deserializeInput(serialized: TInferInputFromSchema<DOM["actionSchema"][ID]>["SerdeInput"]): TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"];
|
|
16
|
+
serializeInput(raw: TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"]): TInferInputFromSchema<DOM["actionSchema"][ID]>["SerdeInput"];
|
|
17
|
+
validateInput(input: unknown): TInferInputFromSchema<DOM["actionSchema"][ID]>["Input"];
|
|
18
|
+
validateOutput(output: unknown): TInferOutputFromSchema<DOM["actionSchema"][ID]>["Output"];
|
|
20
19
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { IActionDomain } from "../../Domain/ActionDomain.types";
|
|
2
2
|
import type { EActionForm, IActionBase } from "../ActionBase.types";
|
|
3
|
-
export interface IActionCore<DOM extends IActionDomain, ID extends keyof DOM["
|
|
3
|
+
export interface IActionCore<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionBase<EActionForm.core, DOM, ID> {
|
|
4
4
|
}
|
|
5
|
-
export type IActionCore_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
5
|
+
export type IActionCore_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = {
|
|
6
6
|
form: EActionForm.core;
|
|
7
7
|
domain: DOM["domain"];
|
|
8
8
|
allDomains: DOM["allDomains"];
|
|
@@ -3,7 +3,7 @@ import { ActionBase } from "../ActionBase";
|
|
|
3
3
|
import { EActionForm } from "../ActionBase.types";
|
|
4
4
|
import type { ActionContext } from "../Context/ActionContext";
|
|
5
5
|
import type { EActionPayloadType, IActionPayload_Base, IActionPayload_Base_JsonObject, IActionPayload_Data_Base } from "./ActionPayload.types";
|
|
6
|
-
export declare abstract class ActionPayload<DT extends EActionPayloadType, DOM extends IActionDomain, ID extends keyof DOM["
|
|
6
|
+
export declare abstract class ActionPayload<DT extends EActionPayloadType, DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends ActionBase<EActionForm.data, DOM, ID> implements IActionPayload_Base<DT, DOM, ID> {
|
|
7
7
|
readonly form: EActionForm.data;
|
|
8
8
|
readonly type: DT;
|
|
9
9
|
readonly context: ActionContext<DOM, ID>;
|
|
@@ -11,13 +11,14 @@ import type { ActionPayload_Result } from "./ActionPayload_Result";
|
|
|
11
11
|
export declare enum EActionPayloadType {
|
|
12
12
|
request = "request",
|
|
13
13
|
progress = "progress",
|
|
14
|
+
result = "result",
|
|
14
15
|
stream = "stream",
|
|
15
|
-
|
|
16
|
+
push = "push"
|
|
16
17
|
}
|
|
17
18
|
export interface IActionPayload_Data_Base {
|
|
18
19
|
time: number;
|
|
19
20
|
}
|
|
20
|
-
export interface IActionPayload_Base<DT extends EActionPayloadType, DOM extends IActionDomain, ID extends keyof DOM["
|
|
21
|
+
export interface IActionPayload_Base<DT extends EActionPayloadType, DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string> extends IActionBase<EActionForm.data, DOM, ID>, IActionPayload_Data_Base {
|
|
21
22
|
readonly type: DT;
|
|
22
23
|
readonly context: ActionContext<DOM, ID>;
|
|
23
24
|
}
|
|
@@ -42,8 +43,8 @@ export type TActionResultOutcome<OUT, ERR> = {
|
|
|
42
43
|
ok: false;
|
|
43
44
|
error: ERR;
|
|
44
45
|
};
|
|
45
|
-
export interface IActionPayload_Result<DOM extends IActionDomain, ID extends keyof DOM["
|
|
46
|
-
readonly result: TActionResultOutcome<TInferOutputFromSchema<DOM["
|
|
46
|
+
export interface IActionPayload_Result<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string> extends IActionPayload_Base<EActionPayloadType.result, DOM, ID> {
|
|
47
|
+
readonly result: TActionResultOutcome<TInferOutputFromSchema<DOM["actionSchema"][ID]>["Output"], TInferActionError<DOM["actionSchema"][ID]>>;
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
*
|
|
@@ -68,7 +69,7 @@ export interface IActionProgress_Custom {
|
|
|
68
69
|
data: any;
|
|
69
70
|
}
|
|
70
71
|
export type TActionProgress = IActionProgress_None | IActionProgress_Percentage | IActionProgress_Custom;
|
|
71
|
-
export interface IActionPayload_Progress<DOM extends IActionDomain, ID extends keyof DOM["
|
|
72
|
+
export interface IActionPayload_Progress<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string> extends IActionPayload_Base<EActionPayloadType.progress, DOM, ID> {
|
|
72
73
|
readonly progress: TActionProgress;
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
@@ -78,22 +79,22 @@ export interface IActionPayload_Progress<DOM extends IActionDomain, ID extends k
|
|
|
78
79
|
* [ ]
|
|
79
80
|
*
|
|
80
81
|
*/
|
|
81
|
-
export interface IActionPayload_Base_JsonObject<DT extends EActionPayloadType, DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
82
|
+
export interface IActionPayload_Base_JsonObject<DT extends EActionPayloadType, DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionBase_JsonObject<EActionForm.data, DOM, ID> {
|
|
82
83
|
type: DT;
|
|
83
84
|
context: IActionContext_Data_JsonObject;
|
|
84
85
|
time: number;
|
|
85
86
|
}
|
|
86
|
-
export interface IActionPayload_Request_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
87
|
+
export interface IActionPayload_Request_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionPayload_Base_JsonObject<EActionPayloadType.request, DOM, ID> {
|
|
87
88
|
type: EActionPayloadType.request;
|
|
88
|
-
input: TInferInputFromSchema<DOM["
|
|
89
|
+
input: TInferInputFromSchema<DOM["actionSchema"][ID]>["SerdeInput"];
|
|
89
90
|
}
|
|
90
|
-
export interface IActionPayload_Progress_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
91
|
+
export interface IActionPayload_Progress_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionPayload_Base_JsonObject<EActionPayloadType.progress, DOM, ID> {
|
|
91
92
|
type: EActionPayloadType.progress;
|
|
92
93
|
progress: TActionProgress;
|
|
93
94
|
}
|
|
94
|
-
export interface IActionPayload_Result_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
95
|
+
export interface IActionPayload_Result_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends IActionPayload_Base_JsonObject<EActionPayloadType.result, DOM, ID> {
|
|
95
96
|
type: EActionPayloadType.result;
|
|
96
|
-
result: TActionResultOutcome<TInferOutputFromSchema<DOM["
|
|
97
|
+
result: TActionResultOutcome<TInferOutputFromSchema<DOM["actionSchema"][ID]>["Output"], TInferActionError<DOM["actionSchema"][ID]>>;
|
|
97
98
|
}
|
|
98
99
|
/**
|
|
99
100
|
*
|
|
@@ -102,5 +103,5 @@ export interface IActionPayload_Result_JsonObject<DOM extends IActionDomain = IA
|
|
|
102
103
|
* [ ]
|
|
103
104
|
*
|
|
104
105
|
*/
|
|
105
|
-
export type TActionPayload_Any_Instance<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
106
|
-
export type TActionPayload_Any_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["
|
|
106
|
+
export type TActionPayload_Any_Instance<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = ActionPayload_Request<DOM, ID> | ActionPayload_Result<DOM, ID> | ActionPayload_Progress<DOM, ID>;
|
|
107
|
+
export type TActionPayload_Any_JsonObject<DOM extends IActionDomain = IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> = IActionPayload_Request_JsonObject<DOM, ID> | IActionPayload_Progress_JsonObject<DOM, ID> | IActionPayload_Result_JsonObject<DOM, ID>;
|
|
@@ -4,7 +4,7 @@ import { ActionPayload } from "./ActionPayload";
|
|
|
4
4
|
import type { IActionPayload_Data_Base, IActionPayload_Progress, IActionPayload_Progress_JsonObject, TActionProgress } from "./ActionPayload.types";
|
|
5
5
|
import { EActionPayloadType } from "./ActionPayload.types";
|
|
6
6
|
import { ActionPayload_Request } from "./ActionPayload_Request";
|
|
7
|
-
export declare class ActionPayload_Progress<DOM extends IActionDomain, ID extends keyof DOM["
|
|
7
|
+
export declare class ActionPayload_Progress<DOM extends IActionDomain, ID extends keyof DOM["actionSchema"] & string = keyof DOM["actionSchema"] & string> extends ActionPayload<EActionPayloadType.progress, DOM, ID> implements IActionPayload_Progress<DOM, ID> {
|
|
8
8
|
readonly progress: TActionProgress;
|
|
9
9
|
constructor(params: {
|
|
10
10
|
context: ActionContext<DOM, ID>;
|