@cosmwasm/ts-codegen 0.7.3 → 0.8.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.
Files changed (71) hide show
  1. package/README.md +238 -59
  2. package/main/builder/builder.js +456 -0
  3. package/main/builder/index.js +18 -0
  4. package/main/bundler/bundler.js +74 -0
  5. package/main/bundler/index.js +18 -0
  6. package/main/cmds.js +3 -9
  7. package/main/commands/create-boilerplate.js +195 -0
  8. package/main/commands/generate.js +91 -16
  9. package/main/generators/{ts-client.js → client.js} +29 -23
  10. package/main/generators/{from-partial.js → message-composer.js} +29 -21
  11. package/main/generators/react-query.js +27 -21
  12. package/main/generators/recoil.js +31 -15
  13. package/main/generators/types.js +95 -0
  14. package/main/index.js +71 -17
  15. package/main/types.js +1 -0
  16. package/main/utils/schemas.js +5 -3
  17. package/module/builder/builder.js +178 -0
  18. package/module/builder/index.js +1 -0
  19. package/module/bundler/bundler.js +36 -0
  20. package/module/bundler/index.js +1 -0
  21. package/module/cmds.js +2 -6
  22. package/module/commands/create-boilerplate.js +116 -0
  23. package/module/commands/generate.js +82 -8
  24. package/module/generators/{ts-client.js → client.js} +21 -15
  25. package/module/generators/{from-partial.js → message-composer.js} +23 -17
  26. package/module/generators/react-query.js +20 -15
  27. package/module/generators/recoil.js +23 -9
  28. package/module/generators/types.js +40 -0
  29. package/module/index.js +12 -5
  30. package/module/types.js +1 -0
  31. package/module/utils/schemas.js +3 -2
  32. package/package.json +5 -3
  33. package/types/builder/builder.d.ts +39 -0
  34. package/types/builder/index.d.ts +1 -0
  35. package/types/bundler/bundler.d.ts +4 -0
  36. package/types/bundler/index.d.ts +1 -0
  37. package/types/commands/{from-partial.d.ts → client.d.ts} +0 -0
  38. package/types/commands/message-composer.d.ts +2 -0
  39. package/types/commands/types.d.ts +2 -0
  40. package/types/generators/client.d.ts +3 -0
  41. package/types/generators/message-composer.d.ts +3 -0
  42. package/types/generators/react-query.d.ts +2 -1
  43. package/types/generators/recoil.d.ts +2 -1
  44. package/types/generators/types.d.ts +3 -0
  45. package/types/index.d.ts +10 -5
  46. package/types/types.d.ts +1 -0
  47. package/types/utils/schemas.d.ts +8 -4
  48. package/main/commands/from-partial.js +0 -78
  49. package/main/commands/react-query.js +0 -98
  50. package/main/commands/recoil.js +0 -78
  51. package/main/utils/imports.js +0 -26
  52. package/module/commands/from-partial.js +0 -33
  53. package/module/commands/react-query.js +0 -54
  54. package/module/commands/recoil.js +0 -33
  55. package/module/utils/imports.js +0 -10
  56. package/types/clean.d.ts +0 -1
  57. package/types/cleanse.d.ts +0 -1
  58. package/types/commands/boilerplate.d.ts +0 -2
  59. package/types/cosmwasm-typescript-gen.d.ts +0 -2
  60. package/types/from-partial.d.ts +0 -2
  61. package/types/generate.d.ts +0 -2
  62. package/types/generators/from-partial.d.ts +0 -2
  63. package/types/generators/ts-client.d.ts +0 -2
  64. package/types/header.d.ts +0 -1
  65. package/types/imports.d.ts +0 -1
  66. package/types/parse.d.ts +0 -1
  67. package/types/prompt.d.ts +0 -3
  68. package/types/react-query.d.ts +0 -2
  69. package/types/recoil.d.ts +0 -2
  70. package/types/utils/imports.d.ts +0 -1
  71. package/types/utils.d.ts +0 -10
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var shell = _interopRequireWildcard(require("shelljs"));
19
+
20
+ var _prompt = require("../utils/prompt");
21
+
22
+ var _dargs = _interopRequireDefault(require("dargs"));
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
+
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
+
32
+ var glob = require('glob').sync;
33
+
34
+ var fs = require('fs');
35
+
36
+ var path = require('path');
37
+
38
+ var repo = 'git@github.com:pyramation/tmpl-cosmwasm-module.git';
39
+
40
+ var _default = /*#__PURE__*/function () {
41
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
42
+ var _yield$prompt, name, questions, fullname, email, args, results, scopedResults, license, files, _loop, i, _ret;
43
+
44
+ return _regenerator["default"].wrap(function _callee$(_context) {
45
+ while (1) {
46
+ switch (_context.prev = _context.next) {
47
+ case 0:
48
+ if (shell.which('git')) {
49
+ _context.next = 3;
50
+ break;
51
+ }
52
+
53
+ shell.echo('Sorry, this script requires git');
54
+ return _context.abrupt("return", shell.exit(1));
55
+
56
+ case 3:
57
+ _context.next = 5;
58
+ return (0, _prompt.prompt)([{
59
+ type: 'string',
60
+ name: 'name',
61
+ message: 'Enter your new module name'
62
+ }], argv);
63
+
64
+ case 5:
65
+ _yield$prompt = _context.sent;
66
+ name = _yield$prompt.name;
67
+ shell.exec("git clone ".concat(repo, " ").concat(name));
68
+ shell.cd(name);
69
+ questions = JSON.parse(fs.readFileSync(".questions.json"));
70
+ fullname = shell.exec('git config --global user.name', {
71
+ silent: true
72
+ }).trim();
73
+ email = shell.exec('git config --global user.email', {
74
+ silent: true
75
+ }).trim(); // @__USERNAME__/__MODULENAME__
76
+ // __PACKAGE_IDENTIFIER__
77
+
78
+ args = (0, _dargs["default"])(_objectSpread(_objectSpread({
79
+ _: []
80
+ }, argv), {}, {
81
+ __MODULENAME__: name,
82
+ __USERFULLNAME__: fullname,
83
+ __USEREMAIL__: email
84
+ }), {
85
+ allowCamelCase: true
86
+ });
87
+ _context.next = 15;
88
+ return (0, _prompt.prompt)(questions, args);
89
+
90
+ case 15:
91
+ results = _context.sent;
92
+ _context.next = 18;
93
+ return (0, _prompt.prompt)([{
94
+ name: '__LICENSE__',
95
+ message: 'Which license?',
96
+ choices: ['MIT', 'closed'],
97
+ type: 'list',
98
+ required: true
99
+ }], []);
100
+
101
+ case 18:
102
+ license = _context.sent;
103
+
104
+ if (!(results.__ACCESS__ === 'public')) {
105
+ _context.next = 23;
106
+ break;
107
+ }
108
+
109
+ _context.next = 22;
110
+ return (0, _prompt.prompt)([{
111
+ type: 'confirm',
112
+ name: 'scoped',
113
+ message: 'use npm scopes?',
114
+ required: true
115
+ }], []);
116
+
117
+ case 22:
118
+ scopedResults = _context.sent;
119
+
120
+ case 23:
121
+ files = [].concat(glob(process.cwd() + '/**/.*')).concat(glob(process.cwd() + '/**/*'));
122
+
123
+ _loop = function _loop(i) {
124
+ var templateFile = files[i];
125
+ if (fs.lstatSync(templateFile).isDirectory()) return "continue";
126
+ var content = fs.readFileSync(templateFile).toString();
127
+
128
+ if (path.basename(templateFile) === 'LICENSE' && license.__LICENSE__ === 'closed') {
129
+ content = "Copyright (c) 2022 __USERFULLNAME__ <__USEREMAIL__> - All Rights Reserved\nUnauthorized copying via any medium is strictly prohibited\nProprietary and confidential";
130
+ }
131
+
132
+ Object.keys(results).forEach(function (key) {
133
+ if (/^__/.test(key)) {
134
+ content = content.replace(new RegExp(key, 'g'), results[key]);
135
+ }
136
+ });
137
+
138
+ if (results.__ACCESS__ === 'public') {
139
+ if (scopedResults.scoped) {
140
+ content = content.replace(/__PACKAGE_IDENTIFIER__/g, "@".concat(results.__USERNAME__, "/").concat(results.__MODULENAME__));
141
+ } else {
142
+ content = content.replace(/__PACKAGE_IDENTIFIER__/g, "".concat(results.__MODULENAME__));
143
+ }
144
+ } else {
145
+ content = content.replace(/__PACKAGE_IDENTIFIER__/g, "@".concat(results.__USERNAME__, "/").concat(results.__MODULENAME__));
146
+ }
147
+
148
+ if (path.basename(templateFile) === 'README.md') {
149
+ content = "# ".concat(results.__MODULENAME__);
150
+ }
151
+
152
+ fs.writeFileSync(templateFile, content);
153
+ };
154
+
155
+ i = 0;
156
+
157
+ case 26:
158
+ if (!(i < files.length)) {
159
+ _context.next = 33;
160
+ break;
161
+ }
162
+
163
+ _ret = _loop(i);
164
+
165
+ if (!(_ret === "continue")) {
166
+ _context.next = 30;
167
+ break;
168
+ }
169
+
170
+ return _context.abrupt("continue", 30);
171
+
172
+ case 30:
173
+ i++;
174
+ _context.next = 26;
175
+ break;
176
+
177
+ case 33:
178
+ shell.rm('-rf', '.git');
179
+ shell.rm('-rf', '.questions.json');
180
+ console.log("\n\n |||\n (o o)\n ooO--(_)--Ooo-\n\n \u2728 Great work!\n ");
181
+
182
+ case 36:
183
+ case "end":
184
+ return _context.stop();
185
+ }
186
+ }
187
+ }, _callee);
188
+ }));
189
+
190
+ return function (_x) {
191
+ return _ref.apply(this, arguments);
192
+ };
193
+ }();
194
+
195
+ exports["default"] = _default;
@@ -13,13 +13,11 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
13
13
 
14
14
  var _prompt = require("../utils/prompt");
15
15
 
16
- var _tsClient = _interopRequireDefault(require("../generators/ts-client"));
17
-
18
- var _utils = require("../utils");
16
+ var _index = _interopRequireDefault(require("../index"));
19
17
 
20
18
  var _default = /*#__PURE__*/function () {
21
19
  var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(argv) {
22
- var questions, _yield$prompt, schema, out, name, schemas;
20
+ var questions, _yield$prompt, schema, out, name, plugin, questions2, _yield$prompt2, optionalClient, version, questions3, _yield$prompt3, mutations, options;
23
21
 
24
22
  return _regenerator["default"].wrap(function _callee$(_context) {
25
23
  while (1) {
@@ -42,27 +40,104 @@ var _default = /*#__PURE__*/function () {
42
40
  type: 'string',
43
41
  name: 'name',
44
42
  message: 'contract name?'
43
+ }, {
44
+ type: 'checkbox',
45
+ name: 'plugin',
46
+ message: 'which plugins?',
47
+ choices: ['client', 'recoil', 'react-query', 'message-composer']
45
48
  }];
46
- _context.next = 3;
49
+
50
+ if (argv.typesOnly) {
51
+ argv.plugin = 'types';
52
+ }
53
+
54
+ _context.next = 4;
47
55
  return (0, _prompt.prompt)(questions, argv);
48
56
 
49
- case 3:
57
+ case 4:
50
58
  _yield$prompt = _context.sent;
51
59
  schema = _yield$prompt.schema;
52
60
  out = _yield$prompt.out;
53
61
  name = _yield$prompt.name;
54
- _context.next = 9;
55
- return (0, _utils.readSchemas)({
56
- schemaDir: schema,
57
- argv: argv
58
- });
62
+ plugin = _yield$prompt.plugin;
63
+ if (!Array.isArray(plugin)) plugin = [plugin]; ///////// REACT QUERY
64
+
65
+ questions2 = [];
59
66
 
60
- case 9:
61
- schemas = _context.sent;
62
- _context.next = 12;
63
- return (0, _tsClient["default"])(name, schemas, out);
67
+ if (plugin.includes('react-query')) {
68
+ [].push.apply(questions2, [{
69
+ type: 'confirm',
70
+ name: 'optionalClient',
71
+ message: 'optionalClient?',
72
+ "default": false
73
+ }, {
74
+ type: 'list',
75
+ name: 'version',
76
+ message: 'which react-query version?',
77
+ "default": 'v3',
78
+ choices: ['v3', 'v4']
79
+ }]);
80
+ }
81
+
82
+ ;
83
+ _context.next = 15;
84
+ return (0, _prompt.prompt)(questions2, argv);
85
+
86
+ case 15:
87
+ _yield$prompt2 = _context.sent;
88
+ optionalClient = _yield$prompt2.optionalClient;
89
+ version = _yield$prompt2.version;
90
+ questions3 = [];
91
+
92
+ if (version === 'v4') {
93
+ [].push.apply(questions3, [// currently we only support v4 for useMutation
94
+ {
95
+ type: 'confirm',
96
+ name: 'mutations',
97
+ message: 'Generate useMutation hooks?',
98
+ "default": false
99
+ }]);
100
+ }
101
+
102
+ ;
103
+ _context.next = 23;
104
+ return (0, _prompt.prompt)(questions3, argv);
105
+
106
+ case 23:
107
+ _yield$prompt3 = _context.sent;
108
+ mutations = _yield$prompt3.mutations;
109
+ ///////// END REACT QUERY
110
+ options = {
111
+ types: {
112
+ enabled: true
113
+ },
114
+ client: {
115
+ enabled: plugin.includes('client') || plugin.includes('recoil') || plugin.includes('react-query')
116
+ },
117
+ reactQuery: {
118
+ enabled: plugin.includes('react-query'),
119
+ optionalClient: optionalClient,
120
+ version: version,
121
+ mutations: mutations
122
+ },
123
+ recoil: {
124
+ enabled: plugin.includes('recoil')
125
+ },
126
+ messageComposer: {
127
+ enabled: plugin.includes('message-composer')
128
+ }
129
+ };
130
+ _context.next = 28;
131
+ return (0, _index["default"])({
132
+ contracts: [{
133
+ name: name,
134
+ dir: schema
135
+ }],
136
+ outPath: out,
137
+ options: options
138
+ });
64
139
 
65
- case 12:
140
+ case 28:
66
141
  case "end":
67
142
  return _context.stop();
68
143
  }
@@ -11,6 +11,8 @@ exports["default"] = void 0;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
14
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
17
 
16
18
  var _case = require("case");
@@ -29,45 +31,38 @@ var _fs = require("fs");
29
31
 
30
32
  var _generator = _interopRequireDefault(require("@babel/generator"));
31
33
 
32
- var _clean = require("../utils/clean");
33
-
34
34
  var _utils = require("../utils");
35
35
 
36
- var _imports = require("../utils/imports");
37
-
38
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
37
 
40
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
39
 
42
40
  var _default = /*#__PURE__*/function () {
43
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, schemas, outPath) {
44
- var Contract, QueryMsg, ExecuteMsg, typeHash, Client, Instance, QueryClient, ReadOnlyInstance, body, context, children, code;
41
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, schemas, outPath, tsClientOptions) {
42
+ var context, options, localname, TypesFile, QueryMsg, ExecuteMsg, typeHash, Client, Instance, QueryClient, ReadOnlyInstance, body, children, imports, code;
45
43
  return _regenerator["default"].wrap(function _callee$(_context) {
46
44
  while (1) {
47
45
  switch (_context.prev = _context.next) {
48
46
  case 0:
49
- Contract = (0, _case.pascal)("".concat(name, "Contract")) + '.ts';
47
+ context = new w.RenderContext((0, _utils.getDefinitionSchema)(schemas), {
48
+ tsClient: tsClientOptions !== null && tsClientOptions !== void 0 ? tsClientOptions : {}
49
+ });
50
+ options = context.options.tsClient;
51
+ localname = (0, _case.pascal)(name) + '.client.ts';
52
+ TypesFile = (0, _case.pascal)(name) + '.types';
50
53
  QueryMsg = (0, _utils.findQueryMsg)(schemas);
51
54
  ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
52
- _context.next = 5;
55
+ _context.next = 8;
53
56
  return (0, _utils.findAndParseTypes)(schemas);
54
57
 
55
- case 5:
58
+ case 8:
56
59
  typeHash = _context.sent;
57
60
  Client = null;
58
61
  Instance = null;
59
62
  QueryClient = null;
60
63
  ReadOnlyInstance = null;
61
64
  body = [];
62
- body.push(w.importStmt(['CosmWasmClient', 'ExecuteResult', 'SigningCosmWasmClient'], '@cosmjs/cosmwasm-stargate'));
63
- body.push((0, _imports.cosmjsAminoImportStatements)(typeHash)); // TYPES
64
-
65
- Object.values(typeHash).forEach(function (type) {
66
- body.push((0, _clean.clean)(type));
67
- }); // alias the ExecuteMsg
68
-
69
- ExecuteMsg && body.push(t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier("".concat(name, "ExecuteMsg")), null, t.tsTypeReference(t.identifier('ExecuteMsg')))));
70
- context = new w.RenderContext((0, _utils.getDefinitionSchema)(schemas)); // query messages
65
+ body.push(w.importStmt(Object.keys(typeHash), "./".concat(TypesFile))); // query messages
71
66
 
72
67
  if (QueryMsg) {
73
68
  QueryClient = (0, _case.pascal)("".concat(name, "QueryClient"));
@@ -88,11 +83,22 @@ var _default = /*#__PURE__*/function () {
88
83
  }
89
84
  }
90
85
 
91
- code = _header.header + (0, _generator["default"])(t.program(body)).code;
92
- (0, _mkdirp.sync)(outPath);
93
- (0, _fs.writeFileSync)((0, _path.join)(outPath, Contract), code);
86
+ if (typeHash.hasOwnProperty('Coin')) {
87
+ delete context.utils.Coin;
88
+ }
94
89
 
95
- case 21:
90
+ imports = context.getImports();
91
+ code = _header.header + (0, _generator["default"])(t.program([].concat((0, _toConsumableArray2["default"])(imports), body))).code;
92
+ (0, _mkdirp.sync)(outPath);
93
+ (0, _fs.writeFileSync)((0, _path.join)(outPath, localname), code);
94
+ return _context.abrupt("return", [{
95
+ type: 'client',
96
+ contract: name,
97
+ localname: localname,
98
+ filename: (0, _path.join)(outPath, localname)
99
+ }]);
100
+
101
+ case 23:
96
102
  case "end":
97
103
  return _context.stop();
98
104
  }
@@ -100,7 +106,7 @@ var _default = /*#__PURE__*/function () {
100
106
  }, _callee);
101
107
  }));
102
108
 
103
- return function (_x, _x2, _x3) {
109
+ return function (_x, _x2, _x3, _x4) {
104
110
  return _ref.apply(this, arguments);
105
111
  };
106
112
  }();
@@ -11,6 +11,8 @@ exports["default"] = void 0;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
14
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
17
 
16
18
  var _case = require("case");
@@ -36,31 +38,26 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
36
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
39
 
38
40
  var _default = /*#__PURE__*/function () {
39
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, schemas, outPath) {
40
- var FromPartialFile, Contract, ExecuteMsg, typeHash, body, context, children, TheClass, Interface, code;
41
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, schemas, outPath, messageComposerOptions) {
42
+ var context, options, localname, TypesFile, ExecuteMsg, typeHash, body, children, TheClass, Interface, imports, code;
41
43
  return _regenerator["default"].wrap(function _callee$(_context) {
42
44
  while (1) {
43
45
  switch (_context.prev = _context.next) {
44
46
  case 0:
45
- FromPartialFile = (0, _case.pascal)("".concat(name, "Contract")) + '.from-partial.ts';
46
- Contract = (0, _case.pascal)("".concat(name, "Contract")) + '.ts';
47
+ context = new w.RenderContext((0, _utils.getDefinitionSchema)(schemas), {
48
+ messageComposer: messageComposerOptions !== null && messageComposerOptions !== void 0 ? messageComposerOptions : {}
49
+ });
50
+ options = context.options.messageComposer;
51
+ localname = (0, _case.pascal)(name) + '.message-composer.ts';
52
+ TypesFile = (0, _case.pascal)(name) + '.types';
47
53
  ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
48
- _context.next = 5;
54
+ _context.next = 7;
49
55
  return (0, _utils.findAndParseTypes)(schemas);
50
56
 
51
- case 5:
57
+ case 7:
52
58
  typeHash = _context.sent;
53
59
  body = [];
54
- body.push(w.importStmt(['MsgExecuteContractEncodeObject'], 'cosmwasm'));
55
- body.push(w.importStmt(['MsgExecuteContract'], 'cosmjs-types/cosmwasm/wasm/v1/tx'));
56
- body.push(w.importStmt(['toUtf8'], '@cosmjs/encoding'));
57
-
58
- if (!typeHash.hasOwnProperty('Coin')) {
59
- body.push(w.importStmt(['Coin'], '@cosmjs/amino'));
60
- }
61
-
62
- body.push(w.importStmt(Object.keys(typeHash), "./".concat(Contract).replace(/\.ts$/, '')));
63
- context = new w.RenderContext((0, _utils.getDefinitionSchema)(schemas)); // execute messages
60
+ body.push(w.importStmt(Object.keys(typeHash), "./".concat(TypesFile))); // execute messages
64
61
 
65
62
  if (ExecuteMsg) {
66
63
  children = (0, w.getMessageProperties)(ExecuteMsg);
@@ -68,14 +65,25 @@ var _default = /*#__PURE__*/function () {
68
65
  if (children.length > 0) {
69
66
  TheClass = (0, _case.pascal)("".concat(name, "MessageComposer"));
70
67
  Interface = (0, _case.pascal)("".concat(name, "Message"));
71
- body.push(w.createFromPartialInterface(context, Interface, ExecuteMsg));
72
- body.push(w.createFromPartialClass(context, TheClass, Interface, ExecuteMsg));
68
+ body.push(w.createMessageComposerInterface(context, Interface, ExecuteMsg));
69
+ body.push(w.createMessageComposerClass(context, TheClass, Interface, ExecuteMsg));
73
70
  }
74
71
  }
75
72
 
76
- code = _header.header + (0, _generator["default"])(t.program(body)).code;
73
+ if (typeHash.hasOwnProperty('Coin')) {
74
+ delete context.utils.Coin;
75
+ }
76
+
77
+ imports = context.getImports();
78
+ code = _header.header + (0, _generator["default"])(t.program([].concat((0, _toConsumableArray2["default"])(imports), body))).code;
77
79
  (0, _mkdirp.sync)(outPath);
78
- (0, _fs.writeFileSync)((0, _path.join)(outPath, FromPartialFile), code);
80
+ (0, _fs.writeFileSync)((0, _path.join)(outPath, localname), code);
81
+ return _context.abrupt("return", [{
82
+ type: 'message-composer',
83
+ contract: name,
84
+ localname: localname,
85
+ filename: (0, _path.join)(outPath, localname)
86
+ }]);
79
87
 
80
88
  case 17:
81
89
  case "end":
@@ -85,7 +93,7 @@ var _default = /*#__PURE__*/function () {
85
93
  }, _callee);
86
94
  }));
87
95
 
88
- return function (_x, _x2, _x3) {
96
+ return function (_x, _x2, _x3, _x4) {
89
97
  return _ref.apply(this, arguments);
90
98
  };
91
99
  }();
@@ -11,6 +11,8 @@ exports["default"] = void 0;
11
11
 
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
13
 
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
14
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
17
 
16
18
  var _case = require("case");
@@ -31,15 +33,13 @@ var _generator = _interopRequireDefault(require("@babel/generator"));
31
33
 
32
34
  var _utils = require("../utils");
33
35
 
34
- var _imports = require("../utils/imports");
35
-
36
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
37
 
38
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
39
 
40
40
  var _default = /*#__PURE__*/function () {
41
41
  var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(contractName, schemas, outPath, reactQueryOptions) {
42
- var context, options, ReactQueryFile, Contract, QueryMsg, ExecuteMsg, typeHash, ExecuteClient, QueryClient, body, reactQueryImports, clientImports, shouldGenerateMutationHooks, code;
42
+ var context, options, localname, ContractFile, TypesFile, QueryMsg, ExecuteMsg, typeHash, ExecuteClient, QueryClient, body, clientImports, shouldGenerateMutationHooks, imports, code;
43
43
  return _regenerator["default"].wrap(function _callee$(_context) {
44
44
  while (1) {
45
45
  switch (_context.prev = _context.next) {
@@ -48,37 +48,32 @@ var _default = /*#__PURE__*/function () {
48
48
  reactQuery: reactQueryOptions !== null && reactQueryOptions !== void 0 ? reactQueryOptions : {}
49
49
  });
50
50
  options = context.options.reactQuery;
51
- ReactQueryFile = (0, _case.pascal)("".concat(contractName, "Contract")) + '.react-query.ts';
52
- Contract = (0, _case.pascal)("".concat(contractName, "Contract"));
51
+ localname = (0, _case.pascal)("".concat(contractName)) + '.react-query.ts';
52
+ ContractFile = (0, _case.pascal)("".concat(contractName)) + '.client';
53
+ TypesFile = (0, _case.pascal)("".concat(contractName)) + '.types';
53
54
  QueryMsg = (0, _utils.findQueryMsg)(schemas);
54
55
  ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
55
- _context.next = 8;
56
+ _context.next = 9;
56
57
  return (0, _utils.findAndParseTypes)(schemas);
57
58
 
58
- case 8:
59
+ case 9:
59
60
  typeHash = _context.sent;
60
61
  ExecuteClient = (0, _case.pascal)("".concat(contractName, "Client"));
61
62
  QueryClient = (0, _case.pascal)("".concat(contractName, "QueryClient"));
62
63
  body = [];
63
- reactQueryImports = ['useQuery', 'UseQueryOptions'];
64
64
  clientImports = [];
65
65
  QueryMsg && clientImports.push(QueryClient); // check that there are commands within the exec msg
66
66
 
67
- shouldGenerateMutationHooks = ExecuteMsg && (options === null || options === void 0 ? void 0 : options.v4) && (options === null || options === void 0 ? void 0 : options.mutations) && (0, w.getMessageProperties)(ExecuteMsg).length > 0;
67
+ shouldGenerateMutationHooks = ExecuteMsg && (options === null || options === void 0 ? void 0 : options.version) === 'v4' && (options === null || options === void 0 ? void 0 : options.mutations) && (0, w.getMessageProperties)(ExecuteMsg).length > 0;
68
68
 
69
69
  if (shouldGenerateMutationHooks) {
70
- body.push(w.importStmt(['ExecuteResult'], '@cosmjs/cosmwasm-stargate'));
71
- body.push((0, _imports.cosmjsAminoImportStatements)(typeHash));
72
- reactQueryImports.push('useMutation', 'UseMutationOptions');
73
70
  clientImports.push(ExecuteClient);
74
- } // react-query imports
75
-
71
+ } // general contract imports
76
72
 
77
- body.push(w.importStmt(reactQueryImports, options !== null && options !== void 0 && options.v4 ? '@tanstack/react-query' : 'react-query')); // general contract imports
78
73
 
79
- body.push(w.importStmt(Object.keys(typeHash), "./".concat(Contract))); // client imports
74
+ body.push(w.importStmt(Object.keys(typeHash), "./".concat(TypesFile))); // client imports
80
75
 
81
- body.push(w.importStmt(clientImports, "./".concat(Contract))); // query messages
76
+ body.push(w.importStmt(clientImports, "./".concat(ContractFile))); // query messages
82
77
 
83
78
  if (QueryMsg) {
84
79
  [].push.apply(body, w.createReactQueryHooks({
@@ -98,11 +93,22 @@ var _default = /*#__PURE__*/function () {
98
93
  }));
99
94
  }
100
95
 
101
- code = _header.header + (0, _generator["default"])(t.program(body)).code;
102
- (0, _mkdirp.sync)(outPath);
103
- (0, _fs.writeFileSync)((0, _path.join)(outPath, ReactQueryFile), code);
96
+ if (typeHash.hasOwnProperty('Coin')) {
97
+ delete context.utils.Coin;
98
+ }
104
99
 
105
- case 25:
100
+ imports = context.getImports();
101
+ code = _header.header + (0, _generator["default"])(t.program([].concat((0, _toConsumableArray2["default"])(imports), body))).code;
102
+ (0, _mkdirp.sync)(outPath);
103
+ (0, _fs.writeFileSync)((0, _path.join)(outPath, localname), code);
104
+ return _context.abrupt("return", [{
105
+ type: 'react-query',
106
+ contract: contractName,
107
+ localname: localname,
108
+ filename: (0, _path.join)(outPath, localname)
109
+ }]);
110
+
111
+ case 27:
106
112
  case "end":
107
113
  return _context.stop();
108
114
  }