wasm-ast-types 0.18.1 → 0.19.0

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