@algorandfoundation/algokit-client-generator 2.6.0 → 3.0.0-beta.1
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/bin/cli.mjs +4 -0
- package/cli.d.ts +0 -1
- package/cli.js +47 -49
- package/cli.js.map +1 -1
- package/cli.mjs +56 -0
- package/cli.mjs.map +1 -0
- package/client/app-types.d.ts +0 -1
- package/client/app-types.js +92 -97
- package/client/app-types.js.map +1 -1
- package/client/app-types.mjs +135 -0
- package/client/app-types.mjs.map +1 -0
- package/client/call-client.d.ts +0 -1
- package/client/call-client.js +145 -143
- package/client/call-client.js.map +1 -1
- package/client/call-client.mjs +320 -0
- package/client/call-client.mjs.map +1 -0
- package/client/call-composer-types.d.ts +0 -1
- package/client/call-composer-types.js +60 -62
- package/client/call-composer-types.js.map +1 -1
- package/client/call-composer-types.mjs +122 -0
- package/client/call-composer-types.mjs.map +1 -0
- package/client/call-composer.d.ts +0 -1
- package/client/call-composer.js +76 -78
- package/client/call-composer.js.map +1 -1
- package/client/call-composer.mjs +128 -0
- package/client/call-composer.mjs.map +1 -0
- package/client/call-factory.d.ts +0 -1
- package/client/call-factory.js +62 -62
- package/client/call-factory.js.map +1 -1
- package/client/call-factory.mjs +121 -0
- package/client/call-factory.mjs.map +1 -0
- package/client/deploy-types.d.ts +1 -2
- package/client/deploy-types.js +42 -40
- package/client/deploy-types.js.map +1 -1
- package/client/deploy-types.mjs +94 -0
- package/client/deploy-types.mjs.map +1 -0
- package/client/generate.d.ts +2 -2
- package/client/generate.js +28 -27
- package/client/generate.js.map +1 -1
- package/client/generate.mjs +36 -0
- package/client/generate.mjs.map +1 -0
- package/client/generator-context.d.ts +7 -2
- package/client/generator-context.js +39 -38
- package/client/generator-context.js.map +1 -1
- package/client/generator-context.mjs +21 -0
- package/client/generator-context.mjs.map +1 -0
- package/client/helpers/get-call-config-summary.d.ts +1 -2
- package/client/helpers/get-call-config-summary.js +8 -25
- package/client/helpers/get-call-config-summary.js.map +1 -1
- package/client/helpers/get-call-config-summary.mjs +55 -0
- package/client/helpers/get-call-config-summary.mjs.map +1 -0
- package/client/helpers/get-equivalent-type.d.ts +0 -1
- package/client/helpers/get-equivalent-type.js +21 -20
- package/client/helpers/get-equivalent-type.js.map +1 -1
- package/client/helpers/get-equivalent-type.mjs +57 -0
- package/client/helpers/get-equivalent-type.mjs.map +1 -0
- package/client/imports.d.ts +0 -1
- package/client/imports.js +4 -4
- package/client/imports.js.map +1 -1
- package/client/imports.mjs +28 -0
- package/client/imports.mjs.map +1 -0
- package/client/utility-types.d.ts +0 -1
- package/client/utility-types.js +27 -25
- package/client/utility-types.js.map +1 -1
- package/client/utility-types.mjs +48 -0
- package/client/utility-types.mjs.map +1 -0
- package/dev.d.ts +0 -1
- package/index.d.ts +0 -1
- package/index.js +14 -12
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/index.mjs.map +1 -0
- package/output/writer.d.ts +0 -1
- package/output/writer.js +45 -38
- package/output/writer.js.map +1 -1
- package/output/writer.mjs +140 -0
- package/output/writer.mjs.map +1 -0
- package/package.json +9 -4
- package/schema/application.schema.json.js +375 -0
- package/schema/application.schema.json.js.map +1 -0
- package/schema/application.schema.json.mjs +364 -0
- package/schema/application.schema.json.mjs.map +1 -0
- package/schema/contract.schema.json.js +160 -0
- package/schema/contract.schema.json.js.map +1 -0
- package/schema/contract.schema.json.mjs +149 -0
- package/schema/contract.schema.json.mjs.map +1 -0
- package/schema/load.d.ts +0 -1
- package/schema/load.js +16 -41
- package/schema/load.js.map +1 -1
- package/schema/load.mjs +23 -0
- package/schema/load.mjs.map +1 -0
- package/tests/approval-tests.spec.d.ts +0 -1
- package/tests/util.d.ts +1 -0
- package/util/boom.d.ts +0 -1
- package/util/boom.js +4 -4
- package/util/boom.js.map +1 -1
- package/util/boom.mjs +6 -0
- package/util/boom.mjs.map +1 -0
- package/util/color-console.d.ts +0 -1
- package/util/color-console.js +12 -13
- package/util/color-console.js.map +1 -1
- package/util/color-console.mjs +17 -0
- package/util/color-console.mjs.map +1 -0
- package/util/not-falsy.d.ts +0 -1
- package/util/sanitization.d.ts +12 -6
- package/util/sanitization.js +54 -15
- package/util/sanitization.js.map +1 -1
- package/util/sanitization.mjs +54 -0
- package/util/sanitization.mjs.map +1 -0
- package/bin/cli.js +0 -4
- package/cli.d.ts.map +0 -1
- package/client/app-types.d.ts.map +0 -1
- package/client/call-client.d.ts.map +0 -1
- package/client/call-composer-types.d.ts.map +0 -1
- package/client/call-composer.d.ts.map +0 -1
- package/client/call-factory.d.ts.map +0 -1
- package/client/deploy-types.d.ts.map +0 -1
- package/client/generate.d.ts.map +0 -1
- package/client/generator-context.d.ts.map +0 -1
- package/client/helpers/get-call-config-summary.d.ts.map +0 -1
- package/client/helpers/get-equivalent-type.d.ts.map +0 -1
- package/client/imports.d.ts.map +0 -1
- package/client/utility-types.d.ts.map +0 -1
- package/dev.d.ts.map +0 -1
- package/dev.js +0 -5
- package/dev.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/output/writer.d.ts.map +0 -1
- package/schema/application.schema.json +0 -354
- package/schema/contract.schema.json +0 -139
- package/schema/load.d.ts.map +0 -1
- package/tests/approval-tests.spec.d.ts.map +0 -1
- package/tests/approval-tests.spec.js +0 -24
- package/tests/approval-tests.spec.js.map +0 -1
- package/util/boom.d.ts.map +0 -1
- package/util/color-console.d.ts.map +0 -1
- package/util/not-falsy.d.ts.map +0 -1
- package/util/not-falsy.js +0 -6
- package/util/not-falsy.js.map +0 -1
- package/util/sanitization.d.ts.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { IncIndent, jsDoc, DecIndentAndCloseBlock, NewLine } from '../output/writer.mjs';
|
|
2
|
+
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
3
|
+
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
4
|
+
import { getCreateOnCompleteOptions } from './deploy-types.mjs';
|
|
5
|
+
|
|
6
|
+
function* callComposerType(ctx) {
|
|
7
|
+
const { name, callConfig, app } = ctx;
|
|
8
|
+
yield `export type ${name}Composer<TReturns extends [...any[]] = []> = {`;
|
|
9
|
+
yield IncIndent;
|
|
10
|
+
yield* callComposerTypeNoops(ctx);
|
|
11
|
+
yield* callComposerOperationMethodType(ctx, `Updates an existing instance of the ${app.contract.name} smart contract`, callConfig.updateMethods, 'update', true);
|
|
12
|
+
yield* callComposerOperationMethodType(ctx, `Deletes an existing instance of the ${app.contract.name} smart contract`, callConfig.deleteMethods, 'delete');
|
|
13
|
+
yield* callComposerOperationMethodType(ctx, `Opts the user into an existing instance of the ${app.contract.name} smart contract`, callConfig.optInMethods, 'optIn');
|
|
14
|
+
yield* callComposerOperationMethodType(ctx, `Makes a close out call to an existing instance of the ${app.contract.name} smart contract`, callConfig.closeOutMethods, 'closeOut');
|
|
15
|
+
yield* callComposerTypeClearState(ctx);
|
|
16
|
+
yield* jsDoc({
|
|
17
|
+
description: 'Adds a transaction to the composer',
|
|
18
|
+
params: {
|
|
19
|
+
txn: 'One of: A TransactionWithSigner object (returned as is), a TransactionToSign object (signer is obtained from the signer property), a Transaction object (signer is extracted from the defaultSender parameter), an async SendTransactionResult returned by one of algokit utils helpers (signer is obtained from the defaultSender parameter)',
|
|
20
|
+
defaultSender: 'The default sender to be used to obtain a signer where the object provided to the transaction parameter does not' +
|
|
21
|
+
' include a signer.',
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom): ${name}Composer<TReturns>`;
|
|
25
|
+
yield* jsDoc({
|
|
26
|
+
description: 'Returns the underlying AtomicTransactionComposer instance',
|
|
27
|
+
});
|
|
28
|
+
yield `atc(): Promise<AtomicTransactionComposer>`;
|
|
29
|
+
yield* jsDoc({
|
|
30
|
+
description: 'Simulates the transaction group and returns the result',
|
|
31
|
+
});
|
|
32
|
+
yield `simulate(options?: SimulateOptions): Promise<${name}ComposerSimulateResult<TReturns>>`;
|
|
33
|
+
yield* jsDoc({
|
|
34
|
+
description: 'Executes the transaction group and returns the results',
|
|
35
|
+
});
|
|
36
|
+
yield `execute(sendParams?: AppClientComposeExecuteParams): Promise<${name}ComposerResults<TReturns>>`;
|
|
37
|
+
yield DecIndentAndCloseBlock;
|
|
38
|
+
yield `export type SimulateOptions = Omit<ConstructorParameters<typeof modelsv2.SimulateRequest>[0], 'txnGroups'>`;
|
|
39
|
+
yield `export type ${name}ComposerSimulateResult<TReturns extends [...any[]]> = {`;
|
|
40
|
+
yield IncIndent;
|
|
41
|
+
yield `returns: TReturns`;
|
|
42
|
+
yield `methodResults: ABIResult[]`;
|
|
43
|
+
yield `simulateResponse: modelsv2.SimulateResponse`;
|
|
44
|
+
yield DecIndentAndCloseBlock;
|
|
45
|
+
yield `export type ${name}ComposerResults<TReturns extends [...any[]]> = {`;
|
|
46
|
+
yield IncIndent;
|
|
47
|
+
yield `returns: TReturns`;
|
|
48
|
+
yield `groupId: string`;
|
|
49
|
+
yield `txIds: string[]`;
|
|
50
|
+
yield `transactions: Transaction[]`;
|
|
51
|
+
yield DecIndentAndCloseBlock;
|
|
52
|
+
}
|
|
53
|
+
function* callComposerTypeClearState({ app, name }) {
|
|
54
|
+
yield* jsDoc({
|
|
55
|
+
description: `Makes a clear_state call to an existing instance of the ${app.contract.name} smart contract.`,
|
|
56
|
+
params: {
|
|
57
|
+
args: `The arguments for the bare call`,
|
|
58
|
+
},
|
|
59
|
+
returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,
|
|
60
|
+
});
|
|
61
|
+
yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs): ${name}Composer<[...TReturns, undefined]>`;
|
|
62
|
+
yield NewLine;
|
|
63
|
+
}
|
|
64
|
+
function* callComposerTypeNoops({ app, name, callConfig, methodSignatureToUniqueName, sanitizer }) {
|
|
65
|
+
for (const method of app.contract.methods) {
|
|
66
|
+
const methodSignature = algokit.getABIMethodSignature(method);
|
|
67
|
+
const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature);
|
|
68
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]);
|
|
69
|
+
// Skip methods which don't support a no_op call config
|
|
70
|
+
if (!callConfig.callMethods.includes(methodSignature))
|
|
71
|
+
continue;
|
|
72
|
+
yield* jsDoc({
|
|
73
|
+
description: `Calls the ${algokit.getABIMethodSignature(method)} ABI method.`,
|
|
74
|
+
abiDescription: method.desc,
|
|
75
|
+
params: {
|
|
76
|
+
args: `The arguments for the contract call`,
|
|
77
|
+
params: `Any additional parameters for the call`,
|
|
78
|
+
},
|
|
79
|
+
returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,
|
|
80
|
+
});
|
|
81
|
+
yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs): ${name}Composer<[...TReturns, MethodReturn<'${methodSignatureSafe}'>]>`;
|
|
82
|
+
yield NewLine;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function* callComposerOperationMethodType({ app, methodSignatureToUniqueName, name, sanitizer }, description, methods, verb, includeCompilation) {
|
|
86
|
+
if (methods.length) {
|
|
87
|
+
yield* jsDoc(`Gets available ${verb} methods`);
|
|
88
|
+
yield `readonly ${verb}: {`;
|
|
89
|
+
yield IncIndent;
|
|
90
|
+
for (const methodSig of methods) {
|
|
91
|
+
const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
92
|
+
if (methodSig === BARE_CALL) {
|
|
93
|
+
yield* jsDoc({
|
|
94
|
+
description: `${description} using a bare call.`,
|
|
95
|
+
params: {
|
|
96
|
+
args: `The arguments for the bare call`,
|
|
97
|
+
},
|
|
98
|
+
returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,
|
|
99
|
+
});
|
|
100
|
+
yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}): ${name}Composer<[...TReturns, undefined]>`;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
104
|
+
yield* jsDoc({
|
|
105
|
+
description: `${description} using the ${methodSig} ABI method.`,
|
|
106
|
+
params: {
|
|
107
|
+
args: `The arguments for the smart contract call`,
|
|
108
|
+
params: `Any additional parameters for the call`,
|
|
109
|
+
},
|
|
110
|
+
returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,
|
|
111
|
+
});
|
|
112
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig);
|
|
113
|
+
yield `${sanitizer.makeSafeMethodIdentifier(uniqueName)}(args: MethodArgs<'${methodSigSafe}'>, params${onComplete?.isOptional !== false ? '?' : ''}: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}): ${name}Composer<[...TReturns, MethodReturn<'${methodSigSafe}'>]>`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
yield DecIndentAndCloseBlock;
|
|
117
|
+
yield NewLine;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { callComposerType };
|
|
122
|
+
//# sourceMappingURL=call-composer-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-composer-types.mjs","sources":["../../src/client/call-composer-types.ts"],"sourcesContent":["import { DecIndentAndCloseBlock, DocumentParts, IncIndent, jsDoc, NewLine } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport * as algokit from '@algorandfoundation/algokit-utils'\n\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\n\nexport function* callComposerType(ctx: GeneratorContext): DocumentParts {\n const { name, callConfig, app } = ctx\n yield `export type ${name}Composer<TReturns extends [...any[]] = []> = {`\n yield IncIndent\n\n yield* callComposerTypeNoops(ctx)\n yield* callComposerOperationMethodType(\n ctx,\n `Updates an existing instance of the ${app.contract.name} smart contract`,\n callConfig.updateMethods,\n 'update',\n true,\n )\n yield* callComposerOperationMethodType(\n ctx,\n `Deletes an existing instance of the ${app.contract.name} smart contract`,\n callConfig.deleteMethods,\n 'delete',\n )\n yield* callComposerOperationMethodType(\n ctx,\n `Opts the user into an existing instance of the ${app.contract.name} smart contract`,\n callConfig.optInMethods,\n 'optIn',\n )\n yield* callComposerOperationMethodType(\n ctx,\n `Makes a close out call to an existing instance of the ${app.contract.name} smart contract`,\n callConfig.closeOutMethods,\n 'closeOut',\n )\n\n yield* callComposerTypeClearState(ctx)\n\n yield* jsDoc({\n description: 'Adds a transaction to the composer',\n params: {\n txn: 'One of: A TransactionWithSigner object (returned as is), a TransactionToSign object (signer is obtained from the signer property), a Transaction object (signer is extracted from the defaultSender parameter), an async SendTransactionResult returned by one of algokit utils helpers (signer is obtained from the defaultSender parameter)',\n defaultSender:\n 'The default sender to be used to obtain a signer where the object provided to the transaction parameter does not' +\n ' include a signer.',\n },\n })\n yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom): ${name}Composer<TReturns>`\n\n yield* jsDoc({\n description: 'Returns the underlying AtomicTransactionComposer instance',\n })\n yield `atc(): Promise<AtomicTransactionComposer>`\n\n yield* jsDoc({\n description: 'Simulates the transaction group and returns the result',\n })\n yield `simulate(options?: SimulateOptions): Promise<${name}ComposerSimulateResult<TReturns>>`\n\n yield* jsDoc({\n description: 'Executes the transaction group and returns the results',\n })\n yield `execute(sendParams?: AppClientComposeExecuteParams): Promise<${name}ComposerResults<TReturns>>`\n\n yield DecIndentAndCloseBlock\n yield `export type SimulateOptions = Omit<ConstructorParameters<typeof modelsv2.SimulateRequest>[0], 'txnGroups'>`\n\n yield `export type ${name}ComposerSimulateResult<TReturns extends [...any[]]> = {`\n yield IncIndent\n yield `returns: TReturns`\n yield `methodResults: ABIResult[]`\n yield `simulateResponse: modelsv2.SimulateResponse`\n yield DecIndentAndCloseBlock\n\n yield `export type ${name}ComposerResults<TReturns extends [...any[]]> = {`\n yield IncIndent\n yield `returns: TReturns`\n yield `groupId: string`\n yield `txIds: string[]`\n yield `transactions: Transaction[]`\n yield DecIndentAndCloseBlock\n}\n\nfunction* callComposerTypeClearState({ app, name }: GeneratorContext): DocumentParts {\n yield* jsDoc({\n description: `Makes a clear_state call to an existing instance of the ${app.contract.name} smart contract.`,\n params: {\n args: `The arguments for the bare call`,\n },\n returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,\n })\n yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs): ${name}Composer<[...TReturns, undefined]>`\n yield NewLine\n}\n\nfunction* callComposerTypeNoops({ app, name, callConfig, methodSignatureToUniqueName, sanitizer }: GeneratorContext): DocumentParts {\n for (const method of app.contract.methods) {\n const methodSignature = algokit.getABIMethodSignature(method)\n const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature)\n const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature])\n // Skip methods which don't support a no_op call config\n if (!callConfig.callMethods.includes(methodSignature)) continue\n yield* jsDoc({\n description: `Calls the ${algokit.getABIMethodSignature(method)} ABI method.`,\n abiDescription: method.desc,\n params: {\n args: `The arguments for the contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,\n })\n yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs): ${name}Composer<[...TReturns, MethodReturn<'${methodSignatureSafe}'>]>`\n yield NewLine\n }\n}\n\nfunction* callComposerOperationMethodType(\n { app, methodSignatureToUniqueName, name, sanitizer }: GeneratorContext,\n description: string,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield* jsDoc(`Gets available ${verb} methods`)\n yield `readonly ${verb}: {`\n yield IncIndent\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig === BARE_CALL) {\n yield* jsDoc({\n description: `${description} using a bare call.`,\n params: {\n args: `The arguments for the bare call`,\n },\n returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,\n })\n yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${\n includeCompilation ? '& AppClientCompilationParams ' : ''\n }& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}): ${name}Composer<[...TReturns, undefined]>`\n } else {\n const uniqueName = methodSignatureToUniqueName[methodSig]\n yield* jsDoc({\n description: `${description} using the ${methodSig} ABI method.`,\n params: {\n args: `The arguments for the smart contract call`,\n params: `Any additional parameters for the call`,\n },\n returns: `The typed transaction composer so you can fluently chain multiple calls or call execute to execute all queued up transactions`,\n })\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig)\n yield `${sanitizer.makeSafeMethodIdentifier(uniqueName)}(args: MethodArgs<'${methodSigSafe}'>, params${\n onComplete?.isOptional !== false ? '?' : ''\n }: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }): ${name}Composer<[...TReturns, MethodReturn<'${methodSigSafe}'>]>`\n }\n }\n yield DecIndentAndCloseBlock\n yield NewLine\n }\n}\n"],"names":[],"mappings":";;;;;AAOe,UAAE,gBAAgB,CAAC,GAAqB,EAAA;IACrD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IACrC,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,8CAAA,CAAgD,CAAA;AACzE,IAAA,MAAM,SAAS,CAAA;AAEf,IAAA,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;IACjC,OAAO,+BAA+B,CACpC,GAAG,EACH,CAAA,oCAAA,EAAuC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAiB,eAAA,CAAA,EACzE,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,IAAI,CACL,CAAA;IACD,OAAO,+BAA+B,CACpC,GAAG,EACH,CAAA,oCAAA,EAAuC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EACzE,UAAU,CAAC,aAAa,EACxB,QAAQ,CACT,CAAA;IACD,OAAO,+BAA+B,CACpC,GAAG,EACH,CAAA,+CAAA,EAAkD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EACpF,UAAU,CAAC,YAAY,EACvB,OAAO,CACR,CAAA;IACD,OAAO,+BAA+B,CACpC,GAAG,EACH,CAAA,sDAAA,EAAyD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA,eAAA,CAAiB,EAC3F,UAAU,CAAC,eAAe,EAC1B,UAAU,CACX,CAAA;AAED,IAAA,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAA;IAEtC,OAAO,KAAK,CAAC;AACX,QAAA,WAAW,EAAE,oCAAoC;AACjD,QAAA,MAAM,EAAE;AACN,YAAA,GAAG,EAAE,+UAA+U;AACpV,YAAA,aAAa,EACX,kHAAkH;gBAClH,oBAAoB;AACvB,SAAA;AACF,KAAA,CAAC,CAAA;IACF,MAAM,CAAA,oJAAA,EAAuJ,IAAI,CAAA,kBAAA,CAAoB,CAAA;IAErL,OAAO,KAAK,CAAC;AACX,QAAA,WAAW,EAAE,2DAA2D;AACzE,KAAA,CAAC,CAAA;AACF,IAAA,MAAM,2CAA2C,CAAA;IAEjD,OAAO,KAAK,CAAC;AACX,QAAA,WAAW,EAAE,wDAAwD;AACtE,KAAA,CAAC,CAAA;IACF,MAAM,CAAA,6CAAA,EAAgD,IAAI,CAAA,iCAAA,CAAmC,CAAA;IAE7F,OAAO,KAAK,CAAC;AACX,QAAA,WAAW,EAAE,wDAAwD;AACtE,KAAA,CAAC,CAAA;IACF,MAAM,CAAA,6DAAA,EAAgE,IAAI,CAAA,0BAAA,CAA4B,CAAA;AAEtG,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,MAAM,4GAA4G,CAAA;IAElH,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,uDAAA,CAAyD,CAAA;AAClF,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,mBAAmB,CAAA;AACzB,IAAA,MAAM,4BAA4B,CAAA;AAClC,IAAA,MAAM,6CAA6C,CAAA;AACnD,IAAA,MAAM,sBAAsB,CAAA;IAE5B,MAAM,CAAA,YAAA,EAAe,IAAI,CAAA,gDAAA,CAAkD,CAAA;AAC3E,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,MAAM,mBAAmB,CAAA;AACzB,IAAA,MAAM,iBAAiB,CAAA;AACvB,IAAA,MAAM,iBAAiB,CAAA;AACvB,IAAA,MAAM,6BAA6B,CAAA;AACnC,IAAA,MAAM,sBAAsB,CAAA;AAC9B,CAAC;AAED,UAAU,0BAA0B,CAAC,EAAE,GAAG,EAAE,IAAI,EAAoB,EAAA;IAClE,OAAO,KAAK,CAAC;AACX,QAAA,WAAW,EAAE,CAA2D,wDAAA,EAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAkB,gBAAA,CAAA;AAC3G,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,CAAiC,+BAAA,CAAA;AACxC,SAAA;AACD,QAAA,OAAO,EAAE,CAA+H,6HAAA,CAAA;AACzI,KAAA,CAAC,CAAA;IACF,MAAM,CAAA,oFAAA,EAAuF,IAAI,CAAA,kCAAA,CAAoC,CAAA;AACrI,IAAA,MAAM,OAAO,CAAA;AACf,CAAC;AAED,UAAU,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,2BAA2B,EAAE,SAAS,EAAoB,EAAA;IACjH,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACzC,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC7D,MAAM,mBAAmB,GAAG,SAAS,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAA;QAChF,MAAM,UAAU,GAAG,SAAS,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,eAAe,CAAC,CAAC,CAAA;;QAEnG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC;YAAE,SAAQ;QAC/D,OAAO,KAAK,CAAC;YACX,WAAW,EAAE,aAAa,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAc,YAAA,CAAA;YAC7E,cAAc,EAAE,MAAM,CAAC,IAAI;AAC3B,YAAA,MAAM,EAAE;AACN,gBAAA,IAAI,EAAE,CAAqC,mCAAA,CAAA;AAC3C,gBAAA,MAAM,EAAE,CAAwC,sCAAA,CAAA;AACjD,aAAA;AACD,YAAA,OAAO,EAAE,CAA+H,6HAAA,CAAA;AACzI,SAAA,CAAC,CAAA;QACF,MAAM,CAAA,EAAG,UAAU,CAAsB,mBAAA,EAAA,mBAAmB,mEAAmE,IAAI,CAAA,qCAAA,EAAwC,mBAAmB,CAAA,IAAA,CAAM,CAAA;AACpM,QAAA,MAAM,OAAO,CAAA;KACd;AACH,CAAC;AAED,UAAU,+BAA+B,CACvC,EAAE,GAAG,EAAE,2BAA2B,EAAE,IAAI,EAAE,SAAS,EAAoB,EACvE,WAAmB,EACnB,OAAmB,EACnB,IAA2D,EAC3D,kBAA4B,EAAA;AAE5B,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,KAAK,CAAC,kBAAkB,IAAI,CAAA,QAAA,CAAU,CAAC,CAAA;QAC9C,MAAM,CAAA,SAAA,EAAY,IAAI,CAAA,GAAA,CAAK,CAAA;AAC3B,QAAA,MAAM,SAAS,CAAA;AACf,QAAA,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;AAC/B,YAAA,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,GAAG,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAC7F,YAAA,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,OAAO,KAAK,CAAC;oBACX,WAAW,EAAE,CAAG,EAAA,WAAW,CAAqB,mBAAA,CAAA;AAChD,oBAAA,MAAM,EAAE;AACN,wBAAA,IAAI,EAAE,CAAiC,+BAAA,CAAA;AACxC,qBAAA;AACD,oBAAA,OAAO,EAAE,CAA+H,6HAAA,CAAA;AACzI,iBAAA,CAAC,CAAA;AACF,gBAAA,MAAM,YAAY,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,CAAA,gDAAA,EAC3D,kBAAkB,GAAG,+BAA+B,GAAG,EACzD,oBAAoB,UAAU,EAAE,IAAI,GAAG,CAAM,GAAA,EAAA,UAAU,CAAC,IAAI,CAAA,CAAE,GAAG,EAAE,CAAM,GAAA,EAAA,IAAI,oCAAoC,CAAA;aAClH;iBAAM;AACL,gBAAA,MAAM,UAAU,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAA;gBACzD,OAAO,KAAK,CAAC;AACX,oBAAA,WAAW,EAAE,CAAA,EAAG,WAAW,CAAA,WAAA,EAAc,SAAS,CAAc,YAAA,CAAA;AAChE,oBAAA,MAAM,EAAE;AACN,wBAAA,IAAI,EAAE,CAA2C,yCAAA,CAAA;AACjD,wBAAA,MAAM,EAAE,CAAwC,sCAAA,CAAA;AACjD,qBAAA;AACD,oBAAA,OAAO,EAAE,CAA+H,6HAAA,CAAA;AACzI,iBAAA,CAAC,CAAA;gBACF,MAAM,aAAa,GAAG,SAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAA;gBACpE,MAAM,CAAA,EAAG,SAAS,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAA,mBAAA,EAAsB,aAAa,CAAA,UAAA,EACxF,UAAU,EAAE,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,EAC3C,CAAmC,gCAAA,EAAA,kBAAkB,GAAG,+BAA+B,GAAG,EAAE,CAAA,EAC1F,UAAU,EAAE,IAAI,GAAG,CAAA,GAAA,EAAM,UAAU,CAAC,IAAI,CAAE,CAAA,GAAG,EAC/C,CAAA,GAAA,EAAM,IAAI,CAAA,qCAAA,EAAwC,aAAa,CAAA,IAAA,CAAM,CAAA;aACtE;SACF;AACD,QAAA,MAAM,sBAAsB,CAAA;AAC5B,QAAA,MAAM,OAAO,CAAA;KACd;AACH;;;;"}
|
package/client/call-composer.js
CHANGED
|
@@ -1,44 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var writer = require('../output/writer.js');
|
|
4
|
+
var algokit = require('@algorandfoundation/algokit-utils');
|
|
5
|
+
var getCallConfigSummary = require('./helpers/get-call-config-summary.js');
|
|
6
|
+
var deployTypes = require('./deploy-types.js');
|
|
7
|
+
|
|
8
|
+
function _interopNamespaceDefault(e) {
|
|
9
|
+
var n = Object.create(null);
|
|
10
|
+
if (e) {
|
|
11
|
+
Object.keys(e).forEach(function (k) {
|
|
12
|
+
if (k !== 'default') {
|
|
13
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return e[k]; }
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
7
20
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.composeMethod = void 0;
|
|
27
|
-
const writer_1 = require("../output/writer");
|
|
28
|
-
const algokit = __importStar(require("@algorandfoundation/algokit-utils"));
|
|
29
|
-
const sanitization_1 = require("../util/sanitization");
|
|
30
|
-
const get_call_config_summary_1 = require("./helpers/get-call-config-summary");
|
|
31
|
-
const deploy_types_1 = require("./deploy-types");
|
|
21
|
+
n.default = e;
|
|
22
|
+
return Object.freeze(n);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var algokit__namespace = /*#__PURE__*/_interopNamespaceDefault(algokit);
|
|
26
|
+
|
|
32
27
|
function* composeMethod(ctx) {
|
|
33
28
|
const { name, callConfig } = ctx;
|
|
34
29
|
yield `public compose(): ${name}Composer {`;
|
|
35
|
-
yield
|
|
30
|
+
yield writer.IncIndent;
|
|
36
31
|
yield `const client = this`;
|
|
37
32
|
yield `const atc = new AtomicTransactionComposer()`;
|
|
38
33
|
yield `let promiseChain:Promise<unknown> = Promise.resolve()`;
|
|
39
34
|
yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`;
|
|
40
35
|
yield `return {`;
|
|
41
|
-
yield
|
|
36
|
+
yield writer.IncIndent;
|
|
42
37
|
yield* callComposerNoops(ctx);
|
|
43
38
|
yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true);
|
|
44
39
|
yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete');
|
|
@@ -46,106 +41,109 @@ function* composeMethod(ctx) {
|
|
|
46
41
|
yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut');
|
|
47
42
|
yield* callComposerClearState();
|
|
48
43
|
yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`;
|
|
49
|
-
yield
|
|
44
|
+
yield writer.IncIndent;
|
|
50
45
|
yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +
|
|
51
46
|
' client.sender)))';
|
|
52
47
|
yield 'return this';
|
|
53
|
-
yield
|
|
48
|
+
yield writer.DecIndent;
|
|
54
49
|
yield '},';
|
|
55
50
|
yield `async atc() {`;
|
|
56
|
-
yield
|
|
51
|
+
yield writer.IncIndent;
|
|
57
52
|
yield 'await promiseChain';
|
|
58
53
|
yield 'return atc';
|
|
59
|
-
yield
|
|
54
|
+
yield writer.DecIndent;
|
|
60
55
|
yield '},';
|
|
61
56
|
yield `async simulate(options?: SimulateOptions) {`;
|
|
62
|
-
yield
|
|
57
|
+
yield writer.IncIndent;
|
|
63
58
|
yield `await promiseChain`;
|
|
64
59
|
yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`;
|
|
65
60
|
yield `return {`;
|
|
66
|
-
yield
|
|
61
|
+
yield writer.IncIndent;
|
|
67
62
|
yield `...result,`;
|
|
68
63
|
yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
69
|
-
yield
|
|
70
|
-
yield
|
|
64
|
+
yield writer.DecIndentAndCloseBlock;
|
|
65
|
+
yield writer.DecIndent;
|
|
71
66
|
yield '},';
|
|
72
67
|
yield `async execute(sendParams?: AppClientComposeExecuteParams) {`;
|
|
73
|
-
yield
|
|
68
|
+
yield writer.IncIndent;
|
|
74
69
|
yield `await promiseChain`;
|
|
75
70
|
yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`;
|
|
76
71
|
yield `return {`;
|
|
77
|
-
yield
|
|
72
|
+
yield writer.IncIndent;
|
|
78
73
|
yield `...result,`;
|
|
79
74
|
yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
80
|
-
yield
|
|
81
|
-
yield
|
|
82
|
-
yield
|
|
75
|
+
yield writer.DecIndentAndCloseBlock;
|
|
76
|
+
yield writer.DecIndentAndCloseBlock;
|
|
77
|
+
yield writer.DecIndent;
|
|
83
78
|
yield `} as unknown as ${name}Composer`;
|
|
84
|
-
yield
|
|
79
|
+
yield writer.DecIndentAndCloseBlock;
|
|
85
80
|
}
|
|
86
|
-
|
|
87
|
-
function* callComposerNoops({ app, callConfig, methodSignatureToUniqueName }) {
|
|
88
|
-
var _a, _b, _c, _d;
|
|
81
|
+
function* callComposerNoops({ app, callConfig, methodSignatureToUniqueName, sanitizer }) {
|
|
89
82
|
for (const method of app.contract.methods) {
|
|
90
|
-
const methodSignature =
|
|
91
|
-
const methodName =
|
|
83
|
+
const methodSignature = algokit__namespace.getABIMethodSignature(method);
|
|
84
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]);
|
|
85
|
+
const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature);
|
|
86
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
92
87
|
// Skip methods which don't support a no_op call config
|
|
93
88
|
if (!callConfig.callMethods.includes(methodSignature))
|
|
94
89
|
continue;
|
|
95
|
-
yield `${methodName}(args: MethodArgs<'${
|
|
96
|
-
yield
|
|
97
|
-
yield `promiseChain = promiseChain.then(() => client
|
|
98
|
-
const outputTypeName =
|
|
99
|
-
yield `resultMappers.push(${outputTypeName
|
|
90
|
+
yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
91
|
+
yield writer.IncIndent;
|
|
92
|
+
yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
93
|
+
const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name;
|
|
94
|
+
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
100
95
|
yield `return this`;
|
|
101
|
-
yield
|
|
96
|
+
yield writer.DecIndent;
|
|
102
97
|
yield '},';
|
|
103
98
|
}
|
|
104
99
|
}
|
|
105
100
|
function* callComposerClearState() {
|
|
106
101
|
yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
107
|
-
yield
|
|
102
|
+
yield writer.IncIndent;
|
|
108
103
|
yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
109
104
|
yield `resultMappers.push(undefined)`;
|
|
110
105
|
yield `return this`;
|
|
111
|
-
yield
|
|
106
|
+
yield writer.DecIndent;
|
|
112
107
|
yield '},';
|
|
113
108
|
}
|
|
114
|
-
function* callComposerOperationMethods({ app, methodSignatureToUniqueName }, methods, verb, includeCompilation) {
|
|
115
|
-
var _a, _b, _c, _d;
|
|
109
|
+
function* callComposerOperationMethods({ app, methodSignatureToUniqueName, sanitizer }, methods, verb, includeCompilation) {
|
|
116
110
|
if (methods.length) {
|
|
117
111
|
yield `get ${verb}() {`;
|
|
118
|
-
yield
|
|
112
|
+
yield writer.IncIndent;
|
|
119
113
|
yield `const $this = this`;
|
|
120
114
|
yield `return {`;
|
|
121
|
-
yield
|
|
115
|
+
yield writer.IncIndent;
|
|
122
116
|
for (const methodSig of methods) {
|
|
123
|
-
const onComplete = verb === 'create' ?
|
|
124
|
-
if (methodSig ===
|
|
125
|
-
yield `bare(args${
|
|
126
|
-
yield
|
|
117
|
+
const onComplete = verb === 'create' ? deployTypes.getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
118
|
+
if (methodSig === getCallConfigSummary.BARE_CALL) {
|
|
119
|
+
yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
120
|
+
yield writer.IncIndent;
|
|
127
121
|
yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
128
122
|
yield `resultMappers.push(undefined)`;
|
|
129
123
|
yield `return $this`;
|
|
130
|
-
yield
|
|
124
|
+
yield writer.DecIndent;
|
|
131
125
|
yield '},';
|
|
132
126
|
}
|
|
133
127
|
else {
|
|
134
128
|
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
135
|
-
const methodName =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
yield
|
|
139
|
-
|
|
140
|
-
yield `
|
|
129
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName);
|
|
130
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
131
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig);
|
|
132
|
+
yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${onComplete?.isOptional !== false ? '?' : ''}: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
133
|
+
yield writer.IncIndent;
|
|
134
|
+
yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
135
|
+
const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name;
|
|
136
|
+
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
141
137
|
yield `return $this`;
|
|
142
|
-
yield
|
|
138
|
+
yield writer.DecIndent;
|
|
143
139
|
yield '},';
|
|
144
140
|
}
|
|
145
141
|
}
|
|
146
|
-
yield
|
|
147
|
-
yield
|
|
142
|
+
yield writer.DecIndentAndCloseBlock;
|
|
143
|
+
yield writer.DecIndent;
|
|
148
144
|
yield '},';
|
|
149
145
|
}
|
|
150
146
|
}
|
|
151
|
-
|
|
147
|
+
|
|
148
|
+
exports.composeMethod = composeMethod;
|
|
149
|
+
//# sourceMappingURL=call-composer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-composer.js","sourceRoot":"","sources":["../../src/client/call-composer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"call-composer.js","sources":["../../src/client/call-composer.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\n\nexport function* composeMethod(ctx: GeneratorContext): DocumentParts {\n const { name, callConfig } = ctx\n yield `public compose(): ${name}Composer {`\n yield IncIndent\n\n yield `const client = this`\n yield `const atc = new AtomicTransactionComposer()`\n yield `let promiseChain:Promise<unknown> = Promise.resolve()`\n yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`\n yield `return {`\n yield IncIndent\n\n yield* callComposerNoops(ctx)\n yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true)\n yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete')\n yield* callComposerOperationMethods(ctx, callConfig.optInMethods, 'optIn')\n yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut')\n yield* callComposerClearState()\n\n yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`\n yield IncIndent\n yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +\n ' client.sender)))'\n yield 'return this'\n yield DecIndent\n yield '},'\n\n yield `async atc() {`\n yield IncIndent\n yield 'await promiseChain'\n yield 'return atc'\n yield DecIndent\n yield '},'\n\n yield `async simulate(options?: SimulateOptions) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n\n yield `async execute(sendParams?: AppClientComposeExecuteParams) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield `} as unknown as ${name}Composer`\n\n yield DecIndentAndCloseBlock\n}\n\nfunction* callComposerNoops({ app, callConfig, methodSignatureToUniqueName, sanitizer }: GeneratorContext): DocumentParts {\n for (const method of app.contract.methods) {\n const methodSignature = algokit.getABIMethodSignature(method)\n const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature])\n const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n // Skip methods which don't support a no_op call config\n if (!callConfig.callMethods.includes(methodSignature)) continue\n\n yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return this`\n yield DecIndent\n yield '},'\n }\n}\n\nfunction* callComposerClearState(): DocumentParts {\n yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return this`\n yield DecIndent\n yield '},'\n}\n\nfunction* callComposerOperationMethods(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield `get ${verb}() {`\n yield IncIndent\n yield `const $this = this`\n yield `return {`\n yield IncIndent\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig === BARE_CALL) {\n yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${\n includeCompilation ? '& AppClientCompilationParams ' : ''\n }& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return $this`\n yield DecIndent\n yield '},'\n } else {\n const uniqueName = methodSignatureToUniqueName[methodSig]\n const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig)\n yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${\n onComplete?.isOptional !== false ? '?' : ''\n }: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return $this`\n yield DecIndent\n yield '},'\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n }\n}\n"],"names":["IncIndent","DecIndent","DecIndentAndCloseBlock","algokit","getCreateOnCompleteOptions","BARE_CALL"],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { IncIndent, DecIndent, DecIndentAndCloseBlock } from '../output/writer.mjs';
|
|
2
|
+
import * as algokit from '@algorandfoundation/algokit-utils';
|
|
3
|
+
import { BARE_CALL } from './helpers/get-call-config-summary.mjs';
|
|
4
|
+
import { getCreateOnCompleteOptions } from './deploy-types.mjs';
|
|
5
|
+
|
|
6
|
+
function* composeMethod(ctx) {
|
|
7
|
+
const { name, callConfig } = ctx;
|
|
8
|
+
yield `public compose(): ${name}Composer {`;
|
|
9
|
+
yield IncIndent;
|
|
10
|
+
yield `const client = this`;
|
|
11
|
+
yield `const atc = new AtomicTransactionComposer()`;
|
|
12
|
+
yield `let promiseChain:Promise<unknown> = Promise.resolve()`;
|
|
13
|
+
yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`;
|
|
14
|
+
yield `return {`;
|
|
15
|
+
yield IncIndent;
|
|
16
|
+
yield* callComposerNoops(ctx);
|
|
17
|
+
yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true);
|
|
18
|
+
yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete');
|
|
19
|
+
yield* callComposerOperationMethods(ctx, callConfig.optInMethods, 'optIn');
|
|
20
|
+
yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut');
|
|
21
|
+
yield* callComposerClearState();
|
|
22
|
+
yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`;
|
|
23
|
+
yield IncIndent;
|
|
24
|
+
yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +
|
|
25
|
+
' client.sender)))';
|
|
26
|
+
yield 'return this';
|
|
27
|
+
yield DecIndent;
|
|
28
|
+
yield '},';
|
|
29
|
+
yield `async atc() {`;
|
|
30
|
+
yield IncIndent;
|
|
31
|
+
yield 'await promiseChain';
|
|
32
|
+
yield 'return atc';
|
|
33
|
+
yield DecIndent;
|
|
34
|
+
yield '},';
|
|
35
|
+
yield `async simulate(options?: SimulateOptions) {`;
|
|
36
|
+
yield IncIndent;
|
|
37
|
+
yield `await promiseChain`;
|
|
38
|
+
yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`;
|
|
39
|
+
yield `return {`;
|
|
40
|
+
yield IncIndent;
|
|
41
|
+
yield `...result,`;
|
|
42
|
+
yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
43
|
+
yield DecIndentAndCloseBlock;
|
|
44
|
+
yield DecIndent;
|
|
45
|
+
yield '},';
|
|
46
|
+
yield `async execute(sendParams?: AppClientComposeExecuteParams) {`;
|
|
47
|
+
yield IncIndent;
|
|
48
|
+
yield `await promiseChain`;
|
|
49
|
+
yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`;
|
|
50
|
+
yield `return {`;
|
|
51
|
+
yield IncIndent;
|
|
52
|
+
yield `...result,`;
|
|
53
|
+
yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`;
|
|
54
|
+
yield DecIndentAndCloseBlock;
|
|
55
|
+
yield DecIndentAndCloseBlock;
|
|
56
|
+
yield DecIndent;
|
|
57
|
+
yield `} as unknown as ${name}Composer`;
|
|
58
|
+
yield DecIndentAndCloseBlock;
|
|
59
|
+
}
|
|
60
|
+
function* callComposerNoops({ app, callConfig, methodSignatureToUniqueName, sanitizer }) {
|
|
61
|
+
for (const method of app.contract.methods) {
|
|
62
|
+
const methodSignature = algokit.getABIMethodSignature(method);
|
|
63
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature]);
|
|
64
|
+
const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature);
|
|
65
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
66
|
+
// Skip methods which don't support a no_op call config
|
|
67
|
+
if (!callConfig.callMethods.includes(methodSignature))
|
|
68
|
+
continue;
|
|
69
|
+
yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
70
|
+
yield IncIndent;
|
|
71
|
+
yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
72
|
+
const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name;
|
|
73
|
+
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
74
|
+
yield `return this`;
|
|
75
|
+
yield DecIndent;
|
|
76
|
+
yield '},';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function* callComposerClearState() {
|
|
80
|
+
yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`;
|
|
81
|
+
yield IncIndent;
|
|
82
|
+
yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
83
|
+
yield `resultMappers.push(undefined)`;
|
|
84
|
+
yield `return this`;
|
|
85
|
+
yield DecIndent;
|
|
86
|
+
yield '},';
|
|
87
|
+
}
|
|
88
|
+
function* callComposerOperationMethods({ app, methodSignatureToUniqueName, sanitizer }, methods, verb, includeCompilation) {
|
|
89
|
+
if (methods.length) {
|
|
90
|
+
yield `get ${verb}() {`;
|
|
91
|
+
yield IncIndent;
|
|
92
|
+
yield `const $this = this`;
|
|
93
|
+
yield `return {`;
|
|
94
|
+
yield IncIndent;
|
|
95
|
+
for (const methodSig of methods) {
|
|
96
|
+
const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined;
|
|
97
|
+
if (methodSig === BARE_CALL) {
|
|
98
|
+
yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${includeCompilation ? '& AppClientCompilationParams ' : ''}& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
99
|
+
yield IncIndent;
|
|
100
|
+
yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`;
|
|
101
|
+
yield `resultMappers.push(undefined)`;
|
|
102
|
+
yield `return $this`;
|
|
103
|
+
yield DecIndent;
|
|
104
|
+
yield '},';
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
const uniqueName = methodSignatureToUniqueName[methodSig];
|
|
108
|
+
const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName);
|
|
109
|
+
const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName);
|
|
110
|
+
const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig);
|
|
111
|
+
yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${onComplete?.isOptional !== false ? '?' : ''}: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`;
|
|
112
|
+
yield IncIndent;
|
|
113
|
+
yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`;
|
|
114
|
+
const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name;
|
|
115
|
+
yield `resultMappers.push(${outputTypeName ?? 'undefined'})`;
|
|
116
|
+
yield `return $this`;
|
|
117
|
+
yield DecIndent;
|
|
118
|
+
yield '},';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
yield DecIndentAndCloseBlock;
|
|
122
|
+
yield DecIndent;
|
|
123
|
+
yield '},';
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { composeMethod };
|
|
128
|
+
//# sourceMappingURL=call-composer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-composer.mjs","sources":["../../src/client/call-composer.ts"],"sourcesContent":["import { DecIndent, DecIndentAndCloseBlock, DocumentParts, IncIndent } from '../output/writer'\nimport { GeneratorContext } from './generator-context'\nimport * as algokit from '@algorandfoundation/algokit-utils'\nimport { BARE_CALL, MethodList } from './helpers/get-call-config-summary'\nimport { getCreateOnCompleteOptions } from './deploy-types'\n\nexport function* composeMethod(ctx: GeneratorContext): DocumentParts {\n const { name, callConfig } = ctx\n yield `public compose(): ${name}Composer {`\n yield IncIndent\n\n yield `const client = this`\n yield `const atc = new AtomicTransactionComposer()`\n yield `let promiseChain:Promise<unknown> = Promise.resolve()`\n yield `const resultMappers: Array<undefined | ((x: any) => any)> = []`\n yield `return {`\n yield IncIndent\n\n yield* callComposerNoops(ctx)\n yield* callComposerOperationMethods(ctx, callConfig.updateMethods, 'update', true)\n yield* callComposerOperationMethods(ctx, callConfig.deleteMethods, 'delete')\n yield* callComposerOperationMethods(ctx, callConfig.optInMethods, 'optIn')\n yield* callComposerOperationMethods(ctx, callConfig.closeOutMethods, 'closeOut')\n yield* callComposerClearState()\n\n yield `addTransaction(txn: TransactionWithSigner | TransactionToSign | Transaction | Promise<SendTransactionResult>, defaultSender?: SendTransactionFrom) {`\n yield IncIndent\n yield 'promiseChain = promiseChain.then(async () => atc.addTransaction(await algokit.getTransactionWithSigner(txn, defaultSender ??' +\n ' client.sender)))'\n yield 'return this'\n yield DecIndent\n yield '},'\n\n yield `async atc() {`\n yield IncIndent\n yield 'await promiseChain'\n yield 'return atc'\n yield DecIndent\n yield '},'\n\n yield `async simulate(options?: SimulateOptions) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await atc.simulate(client.algod, new modelsv2.SimulateRequest({ txnGroups: [], ...options }))`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.methodResults?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n\n yield `async execute(sendParams?: AppClientComposeExecuteParams) {`\n yield IncIndent\n yield `await promiseChain`\n yield `const result = await algokit.sendAtomicTransactionComposer({ atc, sendParams }, client.algod)`\n yield `return {`\n yield IncIndent\n yield `...result,`\n yield `returns: result.returns?.map((val, i) => resultMappers[i] !== undefined ? resultMappers[i]!(val.returnValue) : val.returnValue)`\n yield DecIndentAndCloseBlock\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield `} as unknown as ${name}Composer`\n\n yield DecIndentAndCloseBlock\n}\n\nfunction* callComposerNoops({ app, callConfig, methodSignatureToUniqueName, sanitizer }: GeneratorContext): DocumentParts {\n for (const method of app.contract.methods) {\n const methodSignature = algokit.getABIMethodSignature(method)\n const methodName = sanitizer.makeSafeMethodIdentifier(methodSignatureToUniqueName[methodSignature])\n const methodSignatureSafe = sanitizer.makeSafeStringTypeLiteral(methodSignature)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n // Skip methods which don't support a no_op call config\n if (!callConfig.callMethods.includes(methodSignature)) continue\n\n yield `${methodName}(args: MethodArgs<'${methodSignatureSafe}'>, params?: AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSignature]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return this`\n yield DecIndent\n yield '},'\n }\n}\n\nfunction* callComposerClearState(): DocumentParts {\n yield `clearState(args?: BareCallArgs & AppClientComposeCallCoreParams & CoreAppCallArgs) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.clearState({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return this`\n yield DecIndent\n yield '},'\n}\n\nfunction* callComposerOperationMethods(\n { app, methodSignatureToUniqueName, sanitizer }: GeneratorContext,\n methods: MethodList,\n verb: 'create' | 'update' | 'optIn' | 'closeOut' | 'delete',\n includeCompilation?: boolean,\n): DocumentParts {\n if (methods.length) {\n yield `get ${verb}() {`\n yield IncIndent\n yield `const $this = this`\n yield `return {`\n yield IncIndent\n for (const methodSig of methods) {\n const onComplete = verb === 'create' ? getCreateOnCompleteOptions(methodSig, app) : undefined\n if (methodSig === BARE_CALL) {\n yield `bare(args${onComplete?.isOptional !== false ? '?' : ''}: BareCallArgs & AppClientComposeCallCoreParams ${\n includeCompilation ? '& AppClientCompilationParams ' : ''\n }& CoreAppCallArgs${onComplete?.type ? ` & ${onComplete.type}` : ''}) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}.bare({...args, sendParams: {...args?.sendParams, skipSending: true, atc}}))`\n yield `resultMappers.push(undefined)`\n yield `return $this`\n yield DecIndent\n yield '},'\n } else {\n const uniqueName = methodSignatureToUniqueName[methodSig]\n const methodName = sanitizer.makeSafeMethodIdentifier(uniqueName)\n const methodNameAccessor = sanitizer.getSafeMemberAccessor(methodName)\n const methodSigSafe = sanitizer.makeSafeStringTypeLiteral(methodSig)\n yield `${methodName}(args: MethodArgs<'${methodSigSafe}'>, params${\n onComplete?.isOptional !== false ? '?' : ''\n }: AppClientComposeCallCoreParams${includeCompilation ? ' & AppClientCompilationParams' : ''}${\n onComplete?.type ? ` & ${onComplete.type}` : ''\n }) {`\n yield IncIndent\n yield `promiseChain = promiseChain.then(() => client.${verb}${methodNameAccessor}(args, {...params, sendParams: {...params?.sendParams, skipSending: true, atc}}))`\n const outputTypeName = app.hints?.[methodSig]?.structs?.output?.name\n yield `resultMappers.push(${outputTypeName ?? 'undefined'})`\n yield `return $this`\n yield DecIndent\n yield '},'\n }\n }\n yield DecIndentAndCloseBlock\n yield DecIndent\n yield '},'\n }\n}\n"],"names":[],"mappings":"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"}
|
package/client/call-factory.d.ts
CHANGED