UNPKG

@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
"use strict"; 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;