@cosmwasm/ts-codegen 0.25.2 → 0.27.0

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 (50) hide show
  1. package/README.md +26 -0
  2. package/main/builder/builder.js +165 -254
  3. package/main/commands/generate.js +3 -0
  4. package/main/generators/msg-builder.js +113 -0
  5. package/main/index.js +14 -0
  6. package/main/plugins/client.js +141 -0
  7. package/main/plugins/index.js +18 -0
  8. package/main/plugins/message-composer.js +128 -0
  9. package/main/plugins/msg-builder.js +139 -0
  10. package/main/plugins/plugin-base.js +126 -0
  11. package/main/plugins/react-query.js +152 -0
  12. package/main/plugins/recoil.js +145 -0
  13. package/main/plugins/types.js +123 -0
  14. package/module/builder/builder.js +63 -109
  15. package/module/commands/generate.js +3 -0
  16. package/module/generators/msg-builder.js +62 -0
  17. package/module/index.js +1 -0
  18. package/module/plugins/client.js +66 -0
  19. package/module/plugins/index.js +1 -0
  20. package/module/plugins/message-composer.js +53 -0
  21. package/module/plugins/msg-builder.js +63 -0
  22. package/module/plugins/plugin-base.js +59 -0
  23. package/module/plugins/react-query.js +77 -0
  24. package/module/plugins/recoil.js +64 -0
  25. package/module/plugins/types.js +45 -0
  26. package/package.json +3 -3
  27. package/src/builder/builder.ts +82 -82
  28. package/src/commands/generate.ts +3 -0
  29. package/src/generators/msg-builder.ts +80 -0
  30. package/src/index.ts +1 -0
  31. package/src/plugins/client.ts +108 -0
  32. package/src/plugins/index.ts +1 -0
  33. package/src/plugins/message-composer.ts +80 -0
  34. package/src/plugins/msg-builder.ts +85 -0
  35. package/src/plugins/plugin-base.ts +112 -0
  36. package/src/plugins/react-query.ts +115 -0
  37. package/src/plugins/recoil.ts +89 -0
  38. package/src/plugins/types.ts +74 -0
  39. package/types/src/builder/builder.d.ts +13 -9
  40. package/types/src/generators/msg-builder.d.ts +5 -0
  41. package/types/src/generators/msg-builder.ts +5 -0
  42. package/types/src/index.d.ts +1 -0
  43. package/types/src/plugins/client.d.ts +12 -0
  44. package/types/src/plugins/index.d.ts +1 -0
  45. package/types/src/plugins/message-composer.d.ts +12 -0
  46. package/types/src/plugins/msg-builder.d.ts +12 -0
  47. package/types/src/plugins/plugin-base.d.ts +47 -0
  48. package/types/src/plugins/react-query.d.ts +12 -0
  49. package/types/src/plugins/recoil.d.ts +13 -0
  50. package/types/src/plugins/types.d.ts +12 -0
@@ -0,0 +1,126 @@
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.BuilderPluginBase = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
+
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
+
18
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
20
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _mkdirp = require("mkdirp");
25
+
26
+ var _path = require("path");
27
+
28
+ var _fs = require("fs");
29
+
30
+ var _header = require("../utils/header");
31
+
32
+ var _generator = _interopRequireDefault(require("@babel/generator"));
33
+
34
+ var t = _interopRequireWildcard(require("@babel/types"));
35
+
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
+
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
+
40
+ /**
41
+ * BuilderPluginBase enable ts-codegen users implement their own plugins by only implement a few functions.
42
+ */
43
+ var BuilderPluginBase = /*#__PURE__*/function () {
44
+ function BuilderPluginBase(opt) {
45
+ (0, _classCallCheck2["default"])(this, BuilderPluginBase);
46
+ (0, _defineProperty2["default"])(this, "option", void 0);
47
+ (0, _defineProperty2["default"])(this, "utils", void 0);
48
+ this.option = opt;
49
+ }
50
+
51
+ (0, _createClass2["default"])(BuilderPluginBase, [{
52
+ key: "render",
53
+ value: function () {
54
+ var _render = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, contractInfo, outPath) {
55
+ var _this = this;
56
+
57
+ var enabled, context, results;
58
+ return _regenerator["default"].wrap(function _callee$(_context) {
59
+ while (1) {
60
+ switch (_context.prev = _context.next) {
61
+ case 0:
62
+ enabled = this.option.enabled;
63
+
64
+ if (enabled) {
65
+ _context.next = 3;
66
+ break;
67
+ }
68
+
69
+ return _context.abrupt("return");
70
+
71
+ case 3:
72
+ context = this.initContext(contractInfo, this.option);
73
+ _context.next = 6;
74
+ return this.doRender(name, context);
75
+
76
+ case 6:
77
+ results = _context.sent;
78
+
79
+ if (!(!results || !results.length)) {
80
+ _context.next = 9;
81
+ break;
82
+ }
83
+
84
+ return _context.abrupt("return", []);
85
+
86
+ case 9:
87
+ return _context.abrupt("return", results.map(function (result) {
88
+ var imports = context.getImports(_this.utils);
89
+ var code = _header.header + (0, _generator["default"])(t.program([].concat((0, _toConsumableArray2["default"])(imports), (0, _toConsumableArray2["default"])(result.body)))).code;
90
+ (0, _mkdirp.sync)(outPath);
91
+ var filename = (0, _path.join)(outPath, result.localname);
92
+ (0, _fs.writeFileSync)(filename, code);
93
+ return {
94
+ type: result.type,
95
+ pluginType: result.pluginType,
96
+ contract: name,
97
+ localname: result.localname,
98
+ filename: filename
99
+ };
100
+ }));
101
+
102
+ case 10:
103
+ case "end":
104
+ return _context.stop();
105
+ }
106
+ }
107
+ }, _callee, this);
108
+ }));
109
+
110
+ function render(_x, _x2, _x3) {
111
+ return _render.apply(this, arguments);
112
+ }
113
+
114
+ return render;
115
+ }()
116
+ /**
117
+ * init context here
118
+ * @param contract
119
+ * @param options
120
+ */
121
+
122
+ }]);
123
+ return BuilderPluginBase;
124
+ }();
125
+
126
+ exports.BuilderPluginBase = BuilderPluginBase;
@@ -0,0 +1,152 @@
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.ReactQueryPlugin = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _case = require("case");
27
+
28
+ var w = _interopRequireWildcard(require("wasm-ast-types"));
29
+
30
+ var _utils = require("../utils");
31
+
32
+ var _pluginBase = require("./plugin-base");
33
+
34
+ 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); }
35
+
36
+ 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
+
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
42
+ var ReactQueryPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
43
+ (0, _inherits2["default"])(ReactQueryPlugin, _BuilderPluginBase);
44
+
45
+ var _super = _createSuper(ReactQueryPlugin);
46
+
47
+ function ReactQueryPlugin() {
48
+ (0, _classCallCheck2["default"])(this, ReactQueryPlugin);
49
+ return _super.apply(this, arguments);
50
+ }
51
+
52
+ (0, _createClass2["default"])(ReactQueryPlugin, [{
53
+ key: "initContext",
54
+ value: function initContext(contract, options) {
55
+ return new w.RenderContext(contract, options);
56
+ }
57
+ }, {
58
+ key: "doRender",
59
+ value: function () {
60
+ var _doRender = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, context) {
61
+ var options, enabled, schemas, localname, ContractFile, TypesFile, QueryMsg, ExecuteMsg, typeHash, ExecuteClient, QueryClient, body, clientImports, shouldGenerateMutationHooks;
62
+ return _regenerator["default"].wrap(function _callee$(_context) {
63
+ while (1) {
64
+ switch (_context.prev = _context.next) {
65
+ case 0:
66
+ options = this.option.reactQuery;
67
+ enabled = options.enabled;
68
+
69
+ if (enabled) {
70
+ _context.next = 4;
71
+ break;
72
+ }
73
+
74
+ return _context.abrupt("return");
75
+
76
+ case 4:
77
+ schemas = context.contract.schemas;
78
+ localname = (0, _case.pascal)("".concat(name)) + '.react-query.ts';
79
+ ContractFile = (0, _case.pascal)("".concat(name)) + '.client';
80
+ TypesFile = (0, _case.pascal)("".concat(name)) + '.types';
81
+ QueryMsg = (0, _utils.findQueryMsg)(schemas);
82
+ ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
83
+ _context.next = 12;
84
+ return (0, _utils.findAndParseTypes)(schemas);
85
+
86
+ case 12:
87
+ typeHash = _context.sent;
88
+ ExecuteClient = (0, _case.pascal)("".concat(name, "Client"));
89
+ QueryClient = (0, _case.pascal)("".concat(name, "QueryClient"));
90
+ body = [];
91
+ clientImports = [];
92
+ QueryMsg && clientImports.push(QueryClient); // check that there are commands within the exec msg
93
+
94
+ 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;
95
+
96
+ if (shouldGenerateMutationHooks) {
97
+ clientImports.push(ExecuteClient);
98
+ } // general contract imports
99
+
100
+
101
+ body.push(w.importStmt(Object.keys(typeHash), "./".concat(TypesFile))); // client imports
102
+
103
+ body.push(w.importStmt(clientImports, "./".concat(ContractFile))); // query messages
104
+
105
+ if (QueryMsg) {
106
+ [].push.apply(body, w.createReactQueryHooks({
107
+ context: context,
108
+ queryMsg: QueryMsg,
109
+ contractName: name,
110
+ QueryClient: QueryClient
111
+ }));
112
+ }
113
+
114
+ if (shouldGenerateMutationHooks) {
115
+ [].push.apply(body, w.createReactQueryMutationHooks({
116
+ context: context,
117
+ execMsg: ExecuteMsg,
118
+ contractName: name,
119
+ ExecuteClient: ExecuteClient
120
+ }));
121
+ }
122
+
123
+ if (typeHash.hasOwnProperty('Coin')) {
124
+ // @ts-ignore
125
+ delete context.utils.Coin;
126
+ }
127
+
128
+ return _context.abrupt("return", [{
129
+ type: 'react-query',
130
+ localname: localname,
131
+ body: body
132
+ }]);
133
+
134
+ case 26:
135
+ case "end":
136
+ return _context.stop();
137
+ }
138
+ }
139
+ }, _callee, this);
140
+ }));
141
+
142
+ function doRender(_x, _x2) {
143
+ return _doRender.apply(this, arguments);
144
+ }
145
+
146
+ return doRender;
147
+ }()
148
+ }]);
149
+ return ReactQueryPlugin;
150
+ }(_pluginBase.BuilderPluginBase);
151
+
152
+ exports.ReactQueryPlugin = ReactQueryPlugin;
@@ -0,0 +1,145 @@
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.RecoilPlugin = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
+
22
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
24
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
26
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+
30
+ var _case = require("case");
31
+
32
+ var w = _interopRequireWildcard(require("wasm-ast-types"));
33
+
34
+ var _utils = require("../utils");
35
+
36
+ var _pluginBase = require("./plugin-base");
37
+
38
+ 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
+
40
+ 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
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
+
46
+ var RecoilPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
47
+ (0, _inherits2["default"])(RecoilPlugin, _BuilderPluginBase);
48
+
49
+ var _super = _createSuper(RecoilPlugin);
50
+
51
+ function RecoilPlugin() {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2["default"])(this, RecoilPlugin);
55
+
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+
60
+ _this = _super.call.apply(_super, [this].concat(args));
61
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "utils", {
62
+ selectorFamily: 'recoil'
63
+ });
64
+ return _this;
65
+ }
66
+
67
+ (0, _createClass2["default"])(RecoilPlugin, [{
68
+ key: "initContext",
69
+ value: function initContext(contract, options) {
70
+ return new w.RenderContext(contract, options);
71
+ }
72
+ }, {
73
+ key: "doRender",
74
+ value: function () {
75
+ var _doRender = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, context) {
76
+ var enabled, schemas, localname, ContractFile, TypesFile, QueryMsg, typeHash, QueryClient, ReadOnlyInstance, body;
77
+ return _regenerator["default"].wrap(function _callee$(_context) {
78
+ while (1) {
79
+ switch (_context.prev = _context.next) {
80
+ case 0:
81
+ enabled = this.option.recoil.enabled;
82
+
83
+ if (enabled) {
84
+ _context.next = 3;
85
+ break;
86
+ }
87
+
88
+ return _context.abrupt("return");
89
+
90
+ case 3:
91
+ schemas = context.contract.schemas;
92
+ localname = (0, _case.pascal)(name) + '.recoil.ts';
93
+ ContractFile = (0, _case.pascal)(name) + '.client';
94
+ TypesFile = (0, _case.pascal)(name) + '.types';
95
+ QueryMsg = (0, _utils.findQueryMsg)(schemas);
96
+ _context.next = 10;
97
+ return (0, _utils.findAndParseTypes)(schemas);
98
+
99
+ case 10:
100
+ typeHash = _context.sent;
101
+ QueryClient = null;
102
+ ReadOnlyInstance = null;
103
+ body = [];
104
+ body.push(w.importStmt(['cosmWasmClient'], './chain'));
105
+ body.push(w.importStmt(Object.keys(typeHash), "./".concat(TypesFile))); // query messages
106
+
107
+ if (QueryMsg) {
108
+ QueryClient = (0, _case.pascal)("".concat(name, "QueryClient"));
109
+ ReadOnlyInstance = (0, _case.pascal)("".concat(name, "ReadOnlyInterface"));
110
+ body.push(w.importStmt([QueryClient], "./".concat(ContractFile)));
111
+ body.push(w.createRecoilQueryClientType());
112
+ body.push(w.createRecoilQueryClient(context, name, QueryClient));
113
+ [].push.apply(body, w.createRecoilSelectors(context, name, QueryClient, QueryMsg));
114
+ }
115
+
116
+ if (typeHash.hasOwnProperty('Coin')) {
117
+ // @ts-ignore
118
+ delete context.utils.Coin;
119
+ }
120
+
121
+ return _context.abrupt("return", [{
122
+ type: 'recoil',
123
+ localname: localname,
124
+ body: body
125
+ }]);
126
+
127
+ case 19:
128
+ case "end":
129
+ return _context.stop();
130
+ }
131
+ }
132
+ }, _callee, this);
133
+ }));
134
+
135
+ function doRender(_x, _x2) {
136
+ return _doRender.apply(this, arguments);
137
+ }
138
+
139
+ return doRender;
140
+ }()
141
+ }]);
142
+ return RecoilPlugin;
143
+ }(_pluginBase.BuilderPluginBase);
144
+
145
+ exports.RecoilPlugin = RecoilPlugin;
@@ -0,0 +1,123 @@
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.TypesPlugin = void 0;
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var t = _interopRequireWildcard(require("@babel/types"));
27
+
28
+ var _clean = require("../utils/clean");
29
+
30
+ var _case = require("case");
31
+
32
+ var _utils = require("../utils");
33
+
34
+ var _wasmAstTypes = require("wasm-ast-types");
35
+
36
+ var _pluginBase = require("./plugin-base");
37
+
38
+ 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
+
40
+ 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
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
+
46
+ var TypesPlugin = /*#__PURE__*/function (_BuilderPluginBase) {
47
+ (0, _inherits2["default"])(TypesPlugin, _BuilderPluginBase);
48
+
49
+ var _super = _createSuper(TypesPlugin);
50
+
51
+ function TypesPlugin() {
52
+ (0, _classCallCheck2["default"])(this, TypesPlugin);
53
+ return _super.apply(this, arguments);
54
+ }
55
+
56
+ (0, _createClass2["default"])(TypesPlugin, [{
57
+ key: "initContext",
58
+ value: function initContext(contract, options) {
59
+ return new _wasmAstTypes.RenderContext(contract, options);
60
+ }
61
+ }, {
62
+ key: "doRender",
63
+ value: function () {
64
+ var _doRender = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, context) {
65
+ var enabled, schemas, options, localname, ExecuteMsg, typeHash, body;
66
+ return _regenerator["default"].wrap(function _callee$(_context) {
67
+ while (1) {
68
+ switch (_context.prev = _context.next) {
69
+ case 0:
70
+ enabled = this.option.types.enabled;
71
+
72
+ if (enabled) {
73
+ _context.next = 3;
74
+ break;
75
+ }
76
+
77
+ return _context.abrupt("return");
78
+
79
+ case 3:
80
+ schemas = context.contract.schemas;
81
+ options = this.option.types;
82
+ localname = (0, _case.pascal)(name) + '.types.ts';
83
+ ExecuteMsg = (0, _utils.findExecuteMsg)(schemas);
84
+ _context.next = 9;
85
+ return (0, _utils.findAndParseTypes)(schemas);
86
+
87
+ case 9:
88
+ typeHash = _context.sent;
89
+ body = []; // TYPES
90
+
91
+ Object.values(typeHash).forEach(function (type) {
92
+ body.push((0, _clean.clean)(type));
93
+ }); // alias the ExecuteMsg
94
+
95
+ if (options.aliasExecuteMsg && ExecuteMsg) {
96
+ body.push(t.exportNamedDeclaration(t.tsTypeAliasDeclaration(t.identifier("".concat(name, "ExecuteMsg")), null, t.tsTypeReference(t.identifier('ExecuteMsg')))));
97
+ }
98
+
99
+ return _context.abrupt("return", [{
100
+ type: 'type',
101
+ localname: localname,
102
+ body: body
103
+ }]);
104
+
105
+ case 14:
106
+ case "end":
107
+ return _context.stop();
108
+ }
109
+ }
110
+ }, _callee, this);
111
+ }));
112
+
113
+ function doRender(_x, _x2) {
114
+ return _doRender.apply(this, arguments);
115
+ }
116
+
117
+ return doRender;
118
+ }()
119
+ }]);
120
+ return TypesPlugin;
121
+ }(_pluginBase.BuilderPluginBase);
122
+
123
+ exports.TypesPlugin = TypesPlugin;