@cosmwasm/ts-codegen 0.7.3 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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
  }