aboutsummaryrefslogtreecommitdiffstats
path: root/packages/typed-contracts/src/index.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-12-05 23:05:03 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-12-05 23:05:03 +0800
commitcde52b10b161e0672519fe77817e3b7486137e72 (patch)
tree41461e0340ffe25def3f96e3f77a79a914401e64 /packages/typed-contracts/src/index.ts
parent43983f1bb3660a7a7650d947de4bc1a2a9fb8c09 (diff)
downloaddexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar.gz
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar.bz2
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar.lz
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar.xz
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.tar.zst
dexon-sol-tools-cde52b10b161e0672519fe77817e3b7486137e72.zip
Introduce separate ContextData type and rework it
Diffstat (limited to 'packages/typed-contracts/src/index.ts')
-rw-r--r--packages/typed-contracts/src/index.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/packages/typed-contracts/src/index.ts b/packages/typed-contracts/src/index.ts
index 9461ca8ca..19d289e49 100644
--- a/packages/typed-contracts/src/index.ts
+++ b/packages/typed-contracts/src/index.ts
@@ -11,7 +11,7 @@ import * as yargs from 'yargs';
import toSnakeCase = require('to-snake-case');
import * as Web3 from 'web3';
-import {ParamKind} from './types';
+import {ContextData, ParamKind} from './types';
import {utils} from './utils';
const ABI_TYPE_METHOD = 'function';
@@ -51,7 +51,7 @@ for (const partialTemplateFileName of partialTemplateFileNames) {
}
const mainTemplate = utils.getNamedContent(`${args.templates}/${MAIN_TEMPLATE_NAME}`);
-const template = Handlebars.compile(mainTemplate.content);
+const template = Handlebars.compile<ContextData>(mainTemplate.content);
const abiFileNames = globSync(args.abiGlob);
if (_.isEmpty(abiFileNames)) {
utils.log(`${chalk.red(`No ABI files found.`)}`);
@@ -75,7 +75,7 @@ for (const abiFileName of abiFileNames) {
process.exit(1);
}
const methodAbis = ABI.filter((abi: Web3.AbiDefinition) => abi.type === ABI_TYPE_METHOD) as Web3.MethodAbi[];
- _.map(methodAbis, methodAbi => {
+ const methodsData = _.map(methodAbis, methodAbi => {
_.map(methodAbi.inputs, input => {
if (_.isEmpty(input.name)) {
// Auto-generated getters don't have parameter names
@@ -83,12 +83,16 @@ for (const abiFileName of abiFileNames) {
}
});
// This will make templates simpler
- (methodAbi.outputs as any).singleReturnValue = methodAbi.outputs.length === 1;
+ const methodData = {
+ ...methodAbi,
+ singleReturnValue: methodAbi.outputs.length === 1,
+ };
+ return methodData;
});
- const templateData = {
+ const contextData = {
contractName: namedContent.name,
- methodAbis,
+ methods: methodsData,
};
- const renderedTsCode = template(templateData);
+ const renderedTsCode = template(contextData);
writeOutputFile(namedContent.name, renderedTsCode);
}