@cosmwasm/ts-codegen
Version:
@cosmwasm/ts-codegen converts your CosmWasm smart contracts into dev-friendly TypeScript classes so you can focus on shipping code.
34 lines (33 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createHelpers = void 0;
const mkdirp_1 = require("mkdirp");
const path_1 = require("path");
const helpers_1 = require("../helpers");
const files_1 = require("../utils/files");
const header_1 = require("../utils/header");
const write = (outPath, file, content, varname) => {
const outFile = (0, path_1.join)(outPath, file);
(0, mkdirp_1.sync)((0, path_1.dirname)(outFile));
(0, files_1.writeContentToFile)(outPath, header_1.header + content, outFile);
return {
type: 'plugin',
pluginType: 'helper',
contract: varname ?? (0, path_1.basename)(file, (0, path_1.extname)(file)),
localname: file,
filename: outFile,
};
};
const createHelpers = (input, builderContext) => {
const files = [];
if (input.options?.useContractsHook?.enabled &&
Object.keys(builderContext.providers)?.length) {
const useShorthandCtor = input.options?.useShorthandCtor;
files.push(write(input.outPath, 'contractContextBase.ts', useShorthandCtor
? helpers_1.contractContextBaseShortHandCtor
: helpers_1.contractContextBase));
files.push(write(input.outPath, 'contracts-context.tsx', helpers_1.contractsContextTSX, 'contractsContext'));
}
return files;
};
exports.createHelpers = createHelpers;