wasm-ast-types 0.18.1 → 0.19.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 (48) hide show
  1. package/main/client/test/ts-client.issue-98.test.js +30 -0
  2. package/main/context/context.js +59 -13
  3. package/main/context/imports.js +37 -15
  4. package/main/index.js +13 -0
  5. package/main/msg-builder/index.js +18 -0
  6. package/main/msg-builder/msg-builder.js +54 -0
  7. package/main/msg-builder/msg-builder.spec.js +20 -0
  8. package/main/utils/babel.js +56 -5
  9. package/main/utils/index.js +13 -0
  10. package/main/utils/ref.js +15 -0
  11. package/main/utils/types.js +1 -1
  12. package/module/client/test/ts-client.issue-98.test.js +23 -0
  13. package/module/context/context.js +29 -6
  14. package/module/context/imports.js +33 -14
  15. package/module/index.js +2 -1
  16. package/module/msg-builder/index.js +1 -0
  17. package/module/msg-builder/msg-builder.js +33 -0
  18. package/module/msg-builder/msg-builder.spec.js +12 -0
  19. package/module/utils/babel.js +31 -5
  20. package/module/utils/index.js +2 -1
  21. package/module/utils/ref.js +4 -0
  22. package/module/utils/types.js +1 -1
  23. package/package.json +2 -2
  24. package/src/client/test/__snapshots__/ts-client.issue-98.test.ts.snap +117 -0
  25. package/src/client/test/__snapshots__/ts-client.wager.spec.ts.snap +1 -1
  26. package/src/client/test/ts-client.issue-98.test.ts +55 -0
  27. package/src/context/context.ts +45 -10
  28. package/src/context/imports.ts +49 -15
  29. package/src/index.ts +2 -1
  30. package/src/msg-builder/__snapshots__/msg-builder.spec.ts.snap +249 -0
  31. package/src/msg-builder/index.ts +1 -0
  32. package/src/msg-builder/msg-builder.spec.ts +17 -0
  33. package/src/msg-builder/msg-builder.ts +107 -0
  34. package/src/react-query/react-query.ts +1 -1
  35. package/src/utils/babel.ts +34 -5
  36. package/src/utils/index.ts +1 -0
  37. package/src/utils/ref.ts +6 -0
  38. package/src/utils/types.ts +2 -6
  39. package/types/context/context.d.ts +30 -5
  40. package/types/context/imports.d.ts +7 -2
  41. package/types/index.d.ts +1 -0
  42. package/types/msg-builder/index.d.ts +1 -0
  43. package/types/msg-builder/msg-builder.d.ts +4 -0
  44. package/types/react-query/react-query.d.ts +11 -10
  45. package/types/recoil/recoil.d.ts +1 -1
  46. package/types/utils/babel.d.ts +3 -2
  47. package/types/utils/index.d.ts +1 -0
  48. package/types/utils/ref.d.ts +2 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _schema = _interopRequireDefault(require("../../../../../__fixtures__/issues/98/schema.json"));
6
+
7
+ var _client = require("../client");
8
+
9
+ var _testUtils = require("../../../test-utils");
10
+
11
+ var message = _schema["default"].query;
12
+ var ctx = (0, _testUtils.makeContext)(message);
13
+ it('execute_msg_for__empty', function () {
14
+ (0, _testUtils.expectCode)((0, _client.createTypeInterface)(ctx, message));
15
+ });
16
+ it('query classes', function () {
17
+ (0, _testUtils.expectCode)((0, _client.createQueryClass)(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', message));
18
+ }); // it('query classes response', () => {
19
+ // expectCode(createTypeInterface(
20
+ // ctx,
21
+ // contract.responses.all_debt_shares
22
+ // ))
23
+ // });
24
+
25
+ it('execute classes array types', function () {
26
+ (0, _testUtils.expectCode)((0, _client.createExecuteClass)(ctx, 'SG721Client', 'SG721Instance', null, message));
27
+ });
28
+ it('execute interfaces no extends', function () {
29
+ (0, _testUtils.expectCode)((0, _client.createExecuteInterface)(ctx, 'SG721Instance', null, message));
30
+ });
@@ -5,7 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getDefinitionSchema = exports.defaultOptions = exports.RenderContext = void 0;
8
+ exports.getDefinitionSchema = exports.defaultOptions = exports.RenderContextBase = exports.RenderContext = void 0;
9
+
10
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
+
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
9
15
 
10
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
17
 
@@ -13,16 +19,23 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
13
19
 
14
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
21
 
22
+ var _utils = require("../utils");
23
+
16
24
  var _imports = require("./imports");
17
25
 
18
26
  var _deepmerge = _interopRequireDefault(require("deepmerge"));
19
27
 
28
+ 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); }; }
29
+
30
+ 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; } }
31
+
20
32
  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; }
21
33
 
22
34
  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; }
23
35
 
24
36
  ;
25
37
  var defaultOptions = {
38
+ enabled: true,
26
39
  types: {
27
40
  enabled: true,
28
41
  aliasExecuteMsg: false
@@ -38,6 +51,9 @@ var defaultOptions = {
38
51
  messageComposer: {
39
52
  enabled: false
40
53
  },
54
+ msgBuilder: {
55
+ enabled: false
56
+ },
41
57
  reactQuery: {
42
58
  enabled: false,
43
59
  optionalClient: false,
@@ -60,27 +76,36 @@ var getDefinitionSchema = function getDefinitionSchema(schemas) {
60
76
  });
61
77
  return aggregateSchema;
62
78
  };
79
+ /**
80
+ * context object for generating code.
81
+ * only mergeDefaultOpt needs to implementing for combine options and default options.
82
+ * @param TOpt option type
83
+ */
84
+
63
85
 
64
86
  exports.getDefinitionSchema = getDefinitionSchema;
65
87
 
66
- var RenderContext = /*#__PURE__*/function () {
67
- function RenderContext(contract, options) {
68
- (0, _classCallCheck2["default"])(this, RenderContext);
88
+ var RenderContextBase = /*#__PURE__*/function () {
89
+ function RenderContextBase(contract, options) {
90
+ (0, _classCallCheck2["default"])(this, RenderContextBase);
69
91
  (0, _defineProperty2["default"])(this, "contract", void 0);
70
92
  (0, _defineProperty2["default"])(this, "utils", []);
71
93
  (0, _defineProperty2["default"])(this, "schema", void 0);
94
+ (0, _defineProperty2["default"])(this, "options", void 0);
72
95
  this.contract = contract;
73
96
  this.schema = getDefinitionSchema(contract.schemas);
74
- this.options = (0, _deepmerge["default"])(defaultOptions, options !== null && options !== void 0 ? options : {});
97
+ this.options = this.mergeDefaultOpt(options);
75
98
  }
99
+ /**
100
+ * merge options and default options
101
+ * @param options
102
+ */
76
103
 
77
- (0, _createClass2["default"])(RenderContext, [{
104
+
105
+ (0, _createClass2["default"])(RenderContextBase, [{
78
106
  key: "refLookup",
79
107
  value: function refLookup($ref) {
80
- var _this$schema$definiti;
81
-
82
- var refName = $ref.replace('#/definitions/', '');
83
- return (_this$schema$definiti = this.schema.definitions) === null || _this$schema$definiti === void 0 ? void 0 : _this$schema$definiti[refName];
108
+ return (0, _utils.refLookup)($ref, this.schema);
84
109
  }
85
110
  }, {
86
111
  key: "addUtil",
@@ -89,11 +114,32 @@ var RenderContext = /*#__PURE__*/function () {
89
114
  }
90
115
  }, {
91
116
  key: "getImports",
92
- value: function getImports() {
93
- return (0, _imports.getImportStatements)((0, _imports.convertUtilsToImportList)(this, Object.keys(this.utils)));
117
+ value: function getImports(registeredUtils) {
118
+ return (0, _imports.getImportStatements)((0, _imports.convertUtilsToImportList)(this, Object.keys(this.utils), registeredUtils));
94
119
  }
95
120
  }]);
96
- return RenderContext;
121
+ return RenderContextBase;
97
122
  }();
98
123
 
124
+ exports.RenderContextBase = RenderContextBase;
125
+
126
+ var RenderContext = /*#__PURE__*/function (_RenderContextBase) {
127
+ (0, _inherits2["default"])(RenderContext, _RenderContextBase);
128
+
129
+ var _super = _createSuper(RenderContext);
130
+
131
+ function RenderContext() {
132
+ (0, _classCallCheck2["default"])(this, RenderContext);
133
+ return _super.apply(this, arguments);
134
+ }
135
+
136
+ (0, _createClass2["default"])(RenderContext, [{
137
+ key: "mergeDefaultOpt",
138
+ value: function mergeDefaultOpt(options) {
139
+ return (0, _deepmerge["default"])(defaultOptions, options !== null && options !== void 0 ? options : {});
140
+ }
141
+ }]);
142
+ return RenderContext;
143
+ }(RenderContextBase);
144
+
99
145
  exports.RenderContext = RenderContext;
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.getImportStatements = exports.convertUtilsToImportList = exports.UTILS = void 0;
10
+ exports.getImportStatements = exports.convertUtilsToImportList = exports.convertUtil = exports.UTILS = void 0;
11
11
 
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
@@ -41,11 +41,11 @@ var makeReactQuerySwitch = function makeReactQuerySwitch(varName) {
41
41
  };
42
42
 
43
43
  var UTILS = {
44
+ selectorFamily: 'recoil',
44
45
  MsgExecuteContract: 'cosmjs-types/cosmwasm/wasm/v1/tx',
45
46
  MsgExecuteContractEncodeObject: 'cosmwasm',
46
47
  Coin: '@cosmjs/amino',
47
48
  toUtf8: '@cosmjs/encoding',
48
- selectorFamily: 'recoil',
49
49
  StdFee: '@cosmjs/amino',
50
50
  CosmWasmClient: '@cosmjs/cosmwasm-stargate',
51
51
  ExecuteResult: '@cosmjs/cosmwasm-stargate',
@@ -58,26 +58,48 @@ var UTILS = {
58
58
  };
59
59
  exports.UTILS = UTILS;
60
60
 
61
- var convertUtilsToImportList = function convertUtilsToImportList(context, utils) {
61
+ var convertUtilsToImportList = function convertUtilsToImportList(context, utils, registeredUtils) {
62
62
  return utils.map(function (util) {
63
- if (!UTILS.hasOwnProperty(util)) throw new Error("missing Util! ::[".concat(util, "]"));
64
-
65
- if (typeof UTILS[util] === 'string') {
66
- return {
67
- type: 'import',
68
- path: UTILS[util],
69
- name: util
70
- };
71
- } else if (typeof UTILS[util] === 'function') {
72
- return UTILS[util](context);
73
- } else {
74
- UTILS[util];
63
+ var result = null;
64
+
65
+ if (registeredUtils) {
66
+ result = convertUtil(context, util, registeredUtils);
67
+
68
+ if (result) {
69
+ return result;
70
+ }
75
71
  }
72
+
73
+ result = convertUtil(context, util, UTILS);
74
+
75
+ if (result) {
76
+ return result;
77
+ }
78
+
79
+ throw new Error("missing Util! ::[".concat(util, "]"));
76
80
  });
77
81
  };
78
82
 
79
83
  exports.convertUtilsToImportList = convertUtilsToImportList;
80
84
 
85
+ var convertUtil = function convertUtil(context, util, registeredUtils) {
86
+ if (!registeredUtils.hasOwnProperty(util)) return null;
87
+
88
+ if (typeof registeredUtils[util] === 'string') {
89
+ return {
90
+ type: 'import',
91
+ path: registeredUtils[util],
92
+ name: util
93
+ };
94
+ } else if (typeof registeredUtils[util] === 'function') {
95
+ return registeredUtils[util](context);
96
+ } else {
97
+ return registeredUtils[util];
98
+ }
99
+ };
100
+
101
+ exports.convertUtil = convertUtil;
102
+
81
103
  var getImportStatements = function getImportStatements(list) {
82
104
  var imports = list.reduce(function (m, obj) {
83
105
  m[obj.path] = m[obj.path] || [];
package/main/index.js CHANGED
@@ -93,4 +93,17 @@ Object.keys(_types).forEach(function (key) {
93
93
  return _types[key];
94
94
  }
95
95
  });
96
+ });
97
+
98
+ var _msgBuilder = require("./msg-builder");
99
+
100
+ Object.keys(_msgBuilder).forEach(function (key) {
101
+ if (key === "default" || key === "__esModule") return;
102
+ if (key in exports && exports[key] === _msgBuilder[key]) return;
103
+ Object.defineProperty(exports, key, {
104
+ enumerable: true,
105
+ get: function get() {
106
+ return _msgBuilder[key];
107
+ }
108
+ });
96
109
  });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _msgBuilder = require("./msg-builder");
8
+
9
+ Object.keys(_msgBuilder).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _msgBuilder[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _msgBuilder[key];
16
+ }
17
+ });
18
+ });
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.createMsgBuilderClass = void 0;
9
+
10
+ var t = _interopRequireWildcard(require("@babel/types"));
11
+
12
+ var _case = require("case");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _types2 = require("../utils/types");
17
+
18
+ var _client = require("../client/client");
19
+
20
+ 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); }
21
+
22
+ 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; }
23
+
24
+ var createMsgBuilderClass = function createMsgBuilderClass(context, className, msg) {
25
+ var staticMethods = (0, _utils.getMessageProperties)(msg).map(function (schema) {
26
+ return createStaticExecMethodMsgBuilder(context, schema, msg.title);
27
+ }); // const blockStmt = bindings;
28
+
29
+ return t.exportNamedDeclaration((0, _utils.abstractClassDeclaration)(className, staticMethods, [], null));
30
+ };
31
+ /**
32
+ * CamelCasedProperties<Extract<ExecuteMsg, { exec_on_module: unknown }>['exec_on_module']>
33
+ */
34
+
35
+
36
+ exports.createMsgBuilderClass = createMsgBuilderClass;
37
+
38
+ function createExtractTypeAnnotation(underscoreName, msgTitle) {
39
+ return t.tsTypeAnnotation(t.tsTypeReference(t.identifier("CamelCasedProperties"), t.tsTypeParameterInstantiation([t.tsIndexedAccessType(t.tsTypeReference(t.identifier("Extract"), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(msgTitle)), t.tsTypeLiteral([t.tsPropertySignature(t.identifier(underscoreName), t.tsTypeAnnotation(t.tsUnknownKeyword()))])])), t.tsLiteralType(t.stringLiteral(underscoreName)))])));
40
+ }
41
+
42
+ var createStaticExecMethodMsgBuilder = function createStaticExecMethodMsgBuilder(context, jsonschema, msgTitle) {
43
+ var underscoreName = Object.keys(jsonschema.properties)[0];
44
+ var methodName = (0, _case.camel)(underscoreName);
45
+ var obj = (0, _types2.createTypedObjectParams)(context, jsonschema.properties[underscoreName]);
46
+ var args = (0, _client.getWasmMethodArgs)(context, jsonschema.properties[underscoreName]);
47
+ if (obj) obj.typeAnnotation = createExtractTypeAnnotation(underscoreName, msgTitle);
48
+ return t.classProperty(t.identifier(methodName), (0, _utils.arrowFunctionExpression)( // params
49
+ obj ? [// props
50
+ obj] : [], // body
51
+ t.blockStatement([t.returnStatement(t.objectExpression([t.objectProperty(t.identifier(underscoreName), t.tsAsExpression(t.objectExpression(args), t.tsTypeReference(t.identifier('const'))))]))]), // return type
52
+ t.tsTypeAnnotation(t.tsTypeReference(t.identifier(msgTitle))), false), null, null, false, // static
53
+ true);
54
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../__fixtures__/basic/execute_msg_for__empty.json"));
6
+
7
+ var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/query_msg.json"));
8
+
9
+ var _msgBuilder = require("./msg-builder");
10
+
11
+ var _testUtils = require("../../test-utils");
12
+
13
+ it('execute class', function () {
14
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
15
+ (0, _testUtils.expectCode)((0, _msgBuilder.createMsgBuilderClass)(ctx, 'SG721MsgBuilder', _execute_msg_for__empty["default"]));
16
+ });
17
+ it('query class', function () {
18
+ var ctx = (0, _testUtils.makeContext)(_execute_msg_for__empty["default"]);
19
+ (0, _testUtils.expectCode)((0, _msgBuilder.createMsgBuilderClass)(ctx, 'SG721MsgBuilder', _query_msg["default"]));
20
+ });
@@ -7,20 +7,30 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.typedIdentifier = exports.typeRefOrUnionWithUndefined = exports.tsTypeOperator = exports.tsPropertySignature = exports.tsObjectPattern = exports.shorthandProperty = exports.recursiveNamespace = exports.propertySignature = exports.promiseTypeAnnotation = exports.pickTypeReference = exports.parameterizedTypeReference = exports.optionalConditionalExpression = exports.omitTypeReference = exports.memberExpressionOrIdentifierSnake = exports.memberExpressionOrIdentifier = exports.importStmt = exports.importAs = exports.importAminoMsg = exports.identifier = exports.getMessageProperties = exports.getFieldDimensionality = exports.classProperty = exports.classDeclaration = exports.callExpression = exports.bindMethod = exports.arrowFunctionExpression = exports.arrayTypeNDimensions = exports.FieldTypeAsts = void 0;
10
+ exports.typedIdentifier = exports.typeRefOrUnionWithUndefined = exports.tsTypeOperator = exports.tsPropertySignature = exports.tsObjectPattern = exports.shorthandProperty = exports.recursiveNamespace = exports.propertySignature = exports.promiseTypeAnnotation = exports.pickTypeReference = exports.parameterizedTypeReference = exports.optionalConditionalExpression = exports.omitTypeReference = exports.memberExpressionOrIdentifierSnake = exports.memberExpressionOrIdentifier = exports.importStmt = exports.importAs = exports.importAminoMsg = exports.identifier = exports.getMessageProperties = exports.getFieldDimensionality = exports.classProperty = exports.classDeclaration = exports.callExpression = exports.bindMethod = exports.arrowFunctionExpression = exports.arrayTypeNDimensions = exports.abstractClassDeclaration = exports.FieldTypeAsts = void 0;
11
11
 
12
12
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
13
13
 
14
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
 
16
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
+
16
18
  var t = _interopRequireWildcard(require("@babel/types"));
17
19
 
18
20
  var _case = require("case");
19
21
 
22
+ var _ref = require("./ref");
23
+
20
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); }
21
25
 
22
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; }
23
27
 
28
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
29
+
30
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
31
+
32
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
+
24
34
  // t.TSPropertySignature - kind?
25
35
  var propertySignature = function propertySignature(name, typeAnnotation) {
26
36
  var optional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
@@ -53,10 +63,41 @@ var tsTypeOperator = function tsTypeOperator(typeAnnotation, operator) {
53
63
  exports.tsTypeOperator = tsTypeOperator;
54
64
 
55
65
  var getMessageProperties = function getMessageProperties(msg) {
56
- if (msg.anyOf) return msg.anyOf;
57
- if (msg.oneOf) return msg.oneOf;
58
- if (msg.allOf) return msg.allOf;
59
- return [];
66
+ var results = [];
67
+ var objs = [];
68
+
69
+ if (msg.anyOf) {
70
+ objs = msg.anyOf;
71
+ } else if (msg.oneOf) {
72
+ objs = msg.oneOf;
73
+ } else if (msg.allOf) {
74
+ objs = msg.allOf;
75
+ }
76
+
77
+ var _iterator = _createForOfIteratorHelper(objs),
78
+ _step;
79
+
80
+ try {
81
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
82
+ var obj = _step.value;
83
+
84
+ if (obj.properties) {
85
+ results.push(obj);
86
+ } else {
87
+ if (obj.$ref) {
88
+ var ref = (0, _ref.refLookup)(obj.$ref, msg);
89
+ var refProps = getMessageProperties(ref);
90
+ results = [].concat((0, _toConsumableArray2["default"])(results), (0, _toConsumableArray2["default"])(refProps));
91
+ }
92
+ }
93
+ }
94
+ } catch (err) {
95
+ _iterator.e(err);
96
+ } finally {
97
+ _iterator.f();
98
+ }
99
+
100
+ return results;
60
101
  };
61
102
 
62
103
  exports.getMessageProperties = getMessageProperties;
@@ -107,6 +148,16 @@ var promiseTypeAnnotation = function promiseTypeAnnotation(name) {
107
148
 
108
149
  exports.promiseTypeAnnotation = promiseTypeAnnotation;
109
150
 
151
+ var abstractClassDeclaration = function abstractClassDeclaration(name, body) {
152
+ var implementsExressions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
153
+ var superClass = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
154
+ var declaration = classDeclaration(name, body, implementsExressions, superClass);
155
+ declaration["abstract"] = true;
156
+ return declaration;
157
+ };
158
+
159
+ exports.abstractClassDeclaration = abstractClassDeclaration;
160
+
110
161
  var classDeclaration = function classDeclaration(name, body) {
111
162
  var implementsExressions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
112
163
  var superClass = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
@@ -28,4 +28,17 @@ Object.keys(_types).forEach(function (key) {
28
28
  return _types[key];
29
29
  }
30
30
  });
31
+ });
32
+
33
+ var _ref = require("./ref");
34
+
35
+ Object.keys(_ref).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _ref[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _ref[key];
42
+ }
43
+ });
31
44
  });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.refLookup = void 0;
7
+
8
+ var refLookup = function refLookup($ref, schema) {
9
+ var _schema$definitions;
10
+
11
+ var refName = $ref.replace('#/definitions/', '');
12
+ return (_schema$definitions = schema.definitions) === null || _schema$definitions === void 0 ? void 0 : _schema$definitions[refName];
13
+ };
14
+
15
+ exports.refLookup = refLookup;
@@ -75,7 +75,7 @@ var getArrayTypeFromItems = function getArrayTypeFromItems(items) {
75
75
  var _items$;
76
76
 
77
77
  if (((_items$ = items[0]) === null || _items$ === void 0 ? void 0 : _items$.type) === 'array') {
78
- return t.tsArrayType(t.tsArrayType(getArrayTypeFromItems(items[0])));
78
+ return getArrayTypeFromItems(items[0]);
79
79
  }
80
80
 
81
81
  return t.tsArrayType(t.tsArrayType(getTypeOrRef(items[0])));
@@ -0,0 +1,23 @@
1
+ import contract from '../../../../../__fixtures__/issues/98/schema.json';
2
+ import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from '../client';
3
+ import { expectCode, makeContext } from '../../../test-utils';
4
+ const message = contract.query;
5
+ const ctx = makeContext(message);
6
+ it('execute_msg_for__empty', () => {
7
+ expectCode(createTypeInterface(ctx, message));
8
+ });
9
+ it('query classes', () => {
10
+ expectCode(createQueryClass(ctx, 'SG721QueryClient', 'SG721ReadOnlyInstance', message));
11
+ }); // it('query classes response', () => {
12
+ // expectCode(createTypeInterface(
13
+ // ctx,
14
+ // contract.responses.all_debt_shares
15
+ // ))
16
+ // });
17
+
18
+ it('execute classes array types', () => {
19
+ expectCode(createExecuteClass(ctx, 'SG721Client', 'SG721Instance', null, message));
20
+ });
21
+ it('execute interfaces no extends', () => {
22
+ expectCode(createExecuteInterface(ctx, 'SG721Instance', null, message));
23
+ });
@@ -4,11 +4,13 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
4
4
 
5
5
  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) { _defineProperty(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; }
6
6
 
7
+ import { refLookup } from "../utils";
7
8
  import { convertUtilsToImportList, getImportStatements } from "./imports";
8
9
  import deepmerge from "deepmerge"; /// Plugin Types
9
10
 
10
11
  ;
11
12
  export const defaultOptions = {
13
+ enabled: true,
12
14
  types: {
13
15
  enabled: true,
14
16
  aliasExecuteMsg: false
@@ -24,6 +26,9 @@ export const defaultOptions = {
24
26
  messageComposer: {
25
27
  enabled: false
26
28
  },
29
+ msgBuilder: {
30
+ enabled: false
31
+ },
27
32
  reactQuery: {
28
33
  enabled: false,
29
34
  optionalClient: false,
@@ -44,7 +49,13 @@ export const getDefinitionSchema = schemas => {
44
49
  });
45
50
  return aggregateSchema;
46
51
  };
47
- export class RenderContext {
52
+ /**
53
+ * context object for generating code.
54
+ * only mergeDefaultOpt needs to implementing for combine options and default options.
55
+ * @param TOpt option type
56
+ */
57
+
58
+ export class RenderContextBase {
48
59
  constructor(contract, options) {
49
60
  _defineProperty(this, "contract", void 0);
50
61
 
@@ -52,22 +63,34 @@ export class RenderContext {
52
63
 
53
64
  _defineProperty(this, "schema", void 0);
54
65
 
66
+ _defineProperty(this, "options", void 0);
67
+
55
68
  this.contract = contract;
56
69
  this.schema = getDefinitionSchema(contract.schemas);
57
- this.options = deepmerge(defaultOptions, options ?? {});
70
+ this.options = this.mergeDefaultOpt(options);
58
71
  }
72
+ /**
73
+ * merge options and default options
74
+ * @param options
75
+ */
76
+
59
77
 
60
78
  refLookup($ref) {
61
- const refName = $ref.replace('#/definitions/', '');
62
- return this.schema.definitions?.[refName];
79
+ return refLookup($ref, this.schema);
63
80
  }
64
81
 
65
82
  addUtil(util) {
66
83
  this.utils[util] = true;
67
84
  }
68
85
 
69
- getImports() {
70
- return getImportStatements(convertUtilsToImportList(this, Object.keys(this.utils)));
86
+ getImports(registeredUtils) {
87
+ return getImportStatements(convertUtilsToImportList(this, Object.keys(this.utils), registeredUtils));
88
+ }
89
+
90
+ }
91
+ export class RenderContext extends RenderContextBase {
92
+ mergeDefaultOpt(options) {
93
+ return deepmerge(defaultOptions, options ?? {});
71
94
  }
72
95
 
73
96
  }