@kubiklabs/wasmkit
Version:
Wasmkit is a development environment to compile, deploy, test, run cosmwasm contracts on different networks.
49 lines (48 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findAndParseTypes = exports.findExecuteMsg = exports.findQueryMsg = exports.readSchemas = void 0;
const fs_1 = require("fs");
const glob_1 = require("glob");
const polar_json_to_ts_1 = require("polar-json-to-ts");
const schemaParser_1 = require("./schemaParser");
const readSchemas = (schemaDir, rawSchemaDir) => {
// raw files is for CosmWasm 1.1 schema files
if ((0, fs_1.existsSync)(rawSchemaDir)) {
const files = (0, glob_1.sync)(rawSchemaDir + '/**/*.json');
return (files).map(file => JSON.parse((0, fs_1.readFileSync)(file, 'utf-8')));
}
else {
const files = (0, glob_1.sync)(schemaDir + '/**/*.json');
return (files).map(file => JSON.parse((0, fs_1.readFileSync)(file, 'utf-8')));
}
};
exports.readSchemas = readSchemas;
const findQueryMsg = (schemas) => {
return schemas.find((schema) => schema.title === 'QueryMsg');
};
exports.findQueryMsg = findQueryMsg;
const findExecuteMsg = (schemas) => {
return schemas.find((schema) => schema.title === 'ExecuteMsg' ||
schema.title === 'ExecuteMsg_for_Empty' || // if cleanse is used, this is never
schema.title === 'ExecuteMsgForEmpty' ||
schema.title === 'Cw20ExecuteMsg' ||
schema.title === 'Snip20ExecuteMsg');
};
exports.findExecuteMsg = findExecuteMsg;
const findAndParseTypes = async (schemas // eslint-disable-line @typescript-eslint/no-explicit-any
) => {
const Types = schemas;
const allTypes = [];
for (const typ of Types) {
if (typ.definitions) {
for (const key of Object.keys(typ.definitions)) {
// set title
typ.definitions[key].title = key;
}
}
const result = await (0, polar_json_to_ts_1.compile)(typ, typ.title);
allTypes.push(result);
}
return (0, schemaParser_1.parser)(allTypes);
};
exports.findAndParseTypes = findAndParseTypes;