@temporalio/testing 1.8.6 → 1.9.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/lib/assert-to-failure-interceptor.js.map +1 -1
- package/lib/index.d.ts +11 -4
- package/lib/index.js +17 -41
- package/lib/index.js.map +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +27 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-to-failure-interceptor.js","sourceRoot":"","sources":["../src/assert-to-failure-interceptor.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,mDAAgF;AAEhF;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI;oBAC5B,IAAI;
|
|
1
|
+
{"version":3,"file":"assert-to-failure-interceptor.js","sourceRoot":"","sources":["../src/assert-to-failure-interceptor.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,mDAAgF;AAEhF;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI;oBAC5B,IAAI,CAAC;wBACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,GAAG,YAAY,gBAAM,CAAC,cAAc,EAAE,CAAC;4BACzC,MAAM,MAAM,GAAG,6BAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC5D,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;4BACzB,MAAM,MAAM,CAAC;wBACf,CAAC;wBACD,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI;oBACvB,IAAI,CAAC;wBACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAI,GAAG,YAAY,gBAAM,CAAC,cAAc,EAAE,CAAC;4BACzC,MAAM,MAAM,GAAG,6BAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC5D,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;4BACzB,MAAM,MAAM,CAAC;wBACf,CAAC;wBACD,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;aACF;SACF;KACF,CAAC;AACJ,CAAC;AA/BD,oCA+BC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import events from 'node:events';
|
|
|
13
13
|
import * as activity from '@temporalio/activity';
|
|
14
14
|
import { AsyncCompletionClient, Client, ClientOptions, WorkflowClient, WorkflowClientOptions, WorkflowResultOptions } from '@temporalio/client';
|
|
15
15
|
import { ActivityFunction, Duration } from '@temporalio/common';
|
|
16
|
-
import { NativeConnection } from '@temporalio/worker';
|
|
16
|
+
import { ActivityInterceptorsFactory, NativeConnection } from '@temporalio/worker';
|
|
17
17
|
import { EphemeralServer, EphemeralServerConfig, DevServerConfig, TimeSkippingServerConfig } from '@temporalio/core-bridge';
|
|
18
18
|
import { Connection, TestService } from './connection';
|
|
19
19
|
export { TimeSkippingServerConfig, DevServerConfig, EphemeralServerExecutable } from '@temporalio/core-bridge';
|
|
@@ -214,6 +214,9 @@ export declare class TestWorkflowEnvironment {
|
|
|
214
214
|
*/
|
|
215
215
|
currentTimeMs(): Promise<number>;
|
|
216
216
|
}
|
|
217
|
+
export interface MockActivityEnvironmentOptions {
|
|
218
|
+
interceptors?: ActivityInterceptorsFactory[];
|
|
219
|
+
}
|
|
217
220
|
/**
|
|
218
221
|
* Used as the default activity info for Activities executed in the {@link MockActivityEnvironment}
|
|
219
222
|
*/
|
|
@@ -221,13 +224,17 @@ export declare const defaultActivityInfo: activity.Info;
|
|
|
221
224
|
/**
|
|
222
225
|
* An execution environment for testing Activities.
|
|
223
226
|
*
|
|
224
|
-
* Mocks Activity {@link Context | activity.Context} and exposes hooks for
|
|
225
|
-
*
|
|
227
|
+
* Mocks Activity {@link Context | activity.Context} and exposes hooks for cancellation and heartbeats.
|
|
228
|
+
*
|
|
229
|
+
* Note that the `Context` object used by this environment will be reused for all activities that are run in this
|
|
230
|
+
* environment. Consequently, once `cancel()` is called, any further activity that gets executed in this environment
|
|
231
|
+
* will immediately be in a cancelled state.
|
|
226
232
|
*/
|
|
227
233
|
export declare class MockActivityEnvironment extends events.EventEmitter {
|
|
228
234
|
cancel: (reason?: any) => void;
|
|
229
235
|
readonly context: activity.Context;
|
|
230
|
-
|
|
236
|
+
private readonly activity;
|
|
237
|
+
constructor(info?: Partial<activity.Info>, opts?: MockActivityEnvironmentOptions);
|
|
231
238
|
/**
|
|
232
239
|
* Run a function in Activity Context
|
|
233
240
|
*/
|
package/lib/index.js
CHANGED
|
@@ -8,29 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
11
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(o, k2, desc);
|
|
18
|
-
}) : (function(o, m, k, k2) {
|
|
19
|
-
if (k2 === undefined) k2 = k;
|
|
20
|
-
o[k2] = m[k];
|
|
21
|
-
}));
|
|
22
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
23
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
24
|
-
}) : function(o, v) {
|
|
25
|
-
o["default"] = v;
|
|
26
|
-
});
|
|
27
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
13
|
};
|
|
@@ -39,11 +16,11 @@ exports.MockActivityEnvironment = exports.defaultActivityInfo = exports.TestWork
|
|
|
39
16
|
require("abort-controller/polyfill"); // eslint-disable-line import/no-unassigned-import
|
|
40
17
|
const node_path_1 = __importDefault(require("node:path"));
|
|
41
18
|
const node_events_1 = __importDefault(require("node:events"));
|
|
42
|
-
const activity = __importStar(require("@temporalio/activity"));
|
|
43
19
|
const client_1 = require("@temporalio/client");
|
|
44
20
|
const common_1 = require("@temporalio/common");
|
|
45
21
|
const time_1 = require("@temporalio/common/lib/time");
|
|
46
22
|
const worker_1 = require("@temporalio/worker");
|
|
23
|
+
const activity_1 = require("@temporalio/worker/lib/activity");
|
|
47
24
|
const core_bridge_1 = require("@temporalio/core-bridge");
|
|
48
25
|
const internal_non_workflow_1 = require("@temporalio/common/lib/internal-non-workflow");
|
|
49
26
|
const connection_1 = require("./connection");
|
|
@@ -229,7 +206,6 @@ class TestWorkflowEnvironment {
|
|
|
229
206
|
* yourself.
|
|
230
207
|
*/
|
|
231
208
|
static async createLocal(opts) {
|
|
232
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
233
209
|
return await this.create({
|
|
234
210
|
server: { type: 'dev-server', ...opts?.server },
|
|
235
211
|
client: opts?.client,
|
|
@@ -299,31 +275,31 @@ exports.defaultActivityInfo = {
|
|
|
299
275
|
/**
|
|
300
276
|
* An execution environment for testing Activities.
|
|
301
277
|
*
|
|
302
|
-
* Mocks Activity {@link Context | activity.Context} and exposes hooks for
|
|
303
|
-
*
|
|
278
|
+
* Mocks Activity {@link Context | activity.Context} and exposes hooks for cancellation and heartbeats.
|
|
279
|
+
*
|
|
280
|
+
* Note that the `Context` object used by this environment will be reused for all activities that are run in this
|
|
281
|
+
* environment. Consequently, once `cancel()` is called, any further activity that gets executed in this environment
|
|
282
|
+
* will immediately be in a cancelled state.
|
|
304
283
|
*/
|
|
305
284
|
class MockActivityEnvironment extends node_events_1.default.EventEmitter {
|
|
306
|
-
constructor(info) {
|
|
285
|
+
constructor(info, opts) {
|
|
307
286
|
super();
|
|
308
287
|
this.cancel = () => undefined;
|
|
309
|
-
const abortController = new AbortController();
|
|
310
|
-
const promise = new Promise((_, reject) => {
|
|
311
|
-
this.cancel = (reason) => {
|
|
312
|
-
abortController.abort();
|
|
313
|
-
reject(new common_1.CancelledFailure(reason));
|
|
314
|
-
};
|
|
315
|
-
});
|
|
316
288
|
const heartbeatCallback = (details) => this.emit('heartbeat', details);
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
289
|
+
const loadedDataConverter = {
|
|
290
|
+
payloadConverter: common_1.defaultPayloadConverter,
|
|
291
|
+
payloadCodecs: [],
|
|
292
|
+
failureConverter: common_1.defaultFailureConverter,
|
|
293
|
+
};
|
|
294
|
+
this.activity = new activity_1.Activity({ ...exports.defaultActivityInfo, ...info }, undefined, loadedDataConverter, heartbeatCallback, opts?.interceptors ?? []);
|
|
295
|
+
this.context = this.activity.context;
|
|
296
|
+
this.cancel = this.activity.cancel;
|
|
321
297
|
}
|
|
322
298
|
/**
|
|
323
299
|
* Run a function in Activity Context
|
|
324
300
|
*/
|
|
325
|
-
run(fn, ...args) {
|
|
326
|
-
return activity.
|
|
301
|
+
async run(fn, ...args) {
|
|
302
|
+
return this.activity.runNoEncoding(fn, { args, headers: {} });
|
|
327
303
|
}
|
|
328
304
|
}
|
|
329
305
|
exports.MockActivityEnvironment = MockActivityEnvironment;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AACA,sDAAqD;AAErD,oEAAoE;AACpE,iFAAiF;AAC1E,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,SAAiB,EACjB,WAAW,GAAG,GAAG,EACjB,iBAAiB,GAAG,CAAC;IAErB,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AACA,sDAAqD;AAErD,oEAAoE;AACpE,iFAAiF;AAC1E,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,SAAiB,EACjB,WAAW,GAAG,GAAG,EACjB,iBAAiB,GAAG,CAAC;IAErB,MAAM,KAAK,GAAG,sCAAsC,CAAC;IACrD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,eAAe,CAAC,2BAA2B,CAAC;gBAC3D,SAAS;gBACT,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;aACzC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC;gBAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBACrD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,sDAAsD,CAAC;gBAC5E,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC3B,CAAC;gBACD,MAAM;YACR,CAAC;YACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AA7BD,0CA6BC;AAEM,KAAK,UAAU,eAAe,CACnC,UAAsB,EACtB,SAAiB,EACjB,WAAW,GAAG,GAAG,EACjB,iBAAiB,GAAG,CAAC;IAErB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC;gBACjD,SAAS;gBACT,gCAAgC,EAAE,IAAA,aAAM,EAAC,OAAO,CAAC;aAClD,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,OAAO,KAAK,2BAA2B,EAAE,CAAC;gBAChD,MAAM;YACR,CAAC;YACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAvBD,0CAuBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/testing",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Temporal.io SDK Testing sub-package",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@grpc/grpc-js": "~1.7.3",
|
|
16
|
-
"@temporalio/activity": "1.
|
|
17
|
-
"@temporalio/client": "1.
|
|
18
|
-
"@temporalio/common": "1.
|
|
19
|
-
"@temporalio/core-bridge": "1.
|
|
20
|
-
"@temporalio/proto": "1.
|
|
21
|
-
"@temporalio/worker": "1.
|
|
22
|
-
"@temporalio/workflow": "1.
|
|
16
|
+
"@temporalio/activity": "1.9.0",
|
|
17
|
+
"@temporalio/client": "1.9.0",
|
|
18
|
+
"@temporalio/common": "1.9.0",
|
|
19
|
+
"@temporalio/core-bridge": "1.9.0",
|
|
20
|
+
"@temporalio/proto": "1.9.0",
|
|
21
|
+
"@temporalio/worker": "1.9.0",
|
|
22
|
+
"@temporalio/workflow": "1.9.0",
|
|
23
23
|
"abort-controller": "^3.0.0"
|
|
24
24
|
},
|
|
25
25
|
"bugs": {
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "5096976287616207edcd3e4281a2a5e1f7393e33"
|
|
42
42
|
}
|
package/src/index.ts
CHANGED
|
@@ -20,9 +20,10 @@ import {
|
|
|
20
20
|
WorkflowClientOptions,
|
|
21
21
|
WorkflowResultOptions,
|
|
22
22
|
} from '@temporalio/client';
|
|
23
|
-
import { ActivityFunction,
|
|
23
|
+
import { ActivityFunction, Duration, defaultFailureConverter, defaultPayloadConverter } from '@temporalio/common';
|
|
24
24
|
import { msToNumber, msToTs, tsToMs } from '@temporalio/common/lib/time';
|
|
25
|
-
import { NativeConnection, Runtime } from '@temporalio/worker';
|
|
25
|
+
import { ActivityInterceptorsFactory, NativeConnection, Runtime } from '@temporalio/worker';
|
|
26
|
+
import { Activity } from '@temporalio/worker/lib/activity';
|
|
26
27
|
import {
|
|
27
28
|
EphemeralServer,
|
|
28
29
|
EphemeralServerConfig,
|
|
@@ -258,7 +259,6 @@ export class TestWorkflowEnvironment {
|
|
|
258
259
|
* yourself.
|
|
259
260
|
*/
|
|
260
261
|
static async createLocal(opts?: LocalTestWorkflowEnvironmentOptions): Promise<TestWorkflowEnvironment> {
|
|
261
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
262
262
|
return await this.create({
|
|
263
263
|
server: { type: 'dev-server', ...opts?.server },
|
|
264
264
|
client: opts?.client,
|
|
@@ -364,6 +364,10 @@ export class TestWorkflowEnvironment {
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
+
export interface MockActivityEnvironmentOptions {
|
|
368
|
+
interceptors?: ActivityInterceptorsFactory[];
|
|
369
|
+
}
|
|
370
|
+
|
|
367
371
|
/**
|
|
368
372
|
* Used as the default activity info for Activities executed in the {@link MockActivityEnvironment}
|
|
369
373
|
*/
|
|
@@ -390,39 +394,40 @@ export const defaultActivityInfo: activity.Info = {
|
|
|
390
394
|
/**
|
|
391
395
|
* An execution environment for testing Activities.
|
|
392
396
|
*
|
|
393
|
-
* Mocks Activity {@link Context | activity.Context} and exposes hooks for
|
|
394
|
-
*
|
|
397
|
+
* Mocks Activity {@link Context | activity.Context} and exposes hooks for cancellation and heartbeats.
|
|
398
|
+
*
|
|
399
|
+
* Note that the `Context` object used by this environment will be reused for all activities that are run in this
|
|
400
|
+
* environment. Consequently, once `cancel()` is called, any further activity that gets executed in this environment
|
|
401
|
+
* will immediately be in a cancelled state.
|
|
395
402
|
*/
|
|
396
403
|
export class MockActivityEnvironment extends events.EventEmitter {
|
|
397
404
|
public cancel: (reason?: any) => void = () => undefined;
|
|
398
405
|
public readonly context: activity.Context;
|
|
406
|
+
private readonly activity: Activity;
|
|
399
407
|
|
|
400
|
-
constructor(info?: Partial<activity.Info
|
|
408
|
+
constructor(info?: Partial<activity.Info>, opts?: MockActivityEnvironmentOptions) {
|
|
401
409
|
super();
|
|
402
|
-
const abortController = new AbortController();
|
|
403
|
-
const promise = new Promise<never>((_, reject) => {
|
|
404
|
-
this.cancel = (reason?: any) => {
|
|
405
|
-
abortController.abort();
|
|
406
|
-
reject(new CancelledFailure(reason));
|
|
407
|
-
};
|
|
408
|
-
});
|
|
409
410
|
const heartbeatCallback = (details?: unknown) => this.emit('heartbeat', details);
|
|
410
|
-
|
|
411
|
+
const loadedDataConverter = {
|
|
412
|
+
payloadConverter: defaultPayloadConverter,
|
|
413
|
+
payloadCodecs: [],
|
|
414
|
+
failureConverter: defaultFailureConverter,
|
|
415
|
+
};
|
|
416
|
+
this.activity = new Activity(
|
|
411
417
|
{ ...defaultActivityInfo, ...info },
|
|
412
|
-
|
|
413
|
-
|
|
418
|
+
undefined,
|
|
419
|
+
loadedDataConverter,
|
|
414
420
|
heartbeatCallback,
|
|
415
|
-
|
|
421
|
+
opts?.interceptors ?? []
|
|
416
422
|
);
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
});
|
|
423
|
+
this.context = this.activity.context;
|
|
424
|
+
this.cancel = this.activity.cancel;
|
|
420
425
|
}
|
|
421
426
|
|
|
422
427
|
/**
|
|
423
428
|
* Run a function in Activity Context
|
|
424
429
|
*/
|
|
425
|
-
public run<P extends any[], R, F extends ActivityFunction<P, R>>(fn: F, ...args: P): Promise<R> {
|
|
426
|
-
return activity.
|
|
430
|
+
public async run<P extends any[], R, F extends ActivityFunction<P, R>>(fn: F, ...args: P): Promise<R> {
|
|
431
|
+
return this.activity.runNoEncoding(fn as ActivityFunction<any, any>, { args, headers: {} }) as Promise<R>;
|
|
427
432
|
}
|
|
428
433
|
}
|