wasm-ast-types 0.4.3 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/README.md +129 -0
  2. package/main/{wasm.js → client/client.js} +56 -40
  3. package/main/client/index.js +18 -0
  4. package/main/client/test/ts-client.arrays.spec.js +25 -0
  5. package/main/client/test/ts-client.cw-named-groups.test.js +25 -0
  6. package/main/client/test/ts-client.cw-proposal-single.test.js +30 -0
  7. package/main/client/test/ts-client.empty-enums.spec.js +19 -0
  8. package/main/client/test/ts-client.sg721.spec.js +25 -0
  9. package/main/client/test/ts-client.spec.js +106 -0
  10. package/main/client/test/ts-client.vectis.spec.js +56 -0
  11. package/main/context/context.js +48 -0
  12. package/main/context/index.js +18 -0
  13. package/main/{messages.js → from-partial/from-partial.js} +17 -60
  14. package/main/from-partial/from-partial.spec.js +20 -0
  15. package/main/from-partial/index.js +18 -0
  16. package/main/index.js +34 -8
  17. package/main/react-query/index.js +18 -0
  18. package/main/react-query/react-query.js +267 -0
  19. package/main/{react-query.spec.js → react-query/react-query.spec.js} +36 -39
  20. package/main/recoil/index.js +18 -0
  21. package/main/{recoil.js → recoil/recoil.js} +7 -26
  22. package/main/{recoil.spec.js → recoil/recoil.spec.js} +9 -14
  23. package/main/utils/babel.js +28 -2
  24. package/main/utils/babel.spec.js +7 -15
  25. package/main/utils/index.js +13 -0
  26. package/main/utils/types.js +100 -78
  27. package/module/{wasm.js → client/client.js} +45 -35
  28. package/module/client/index.js +1 -0
  29. package/module/client/test/ts-client.arrays.spec.js +17 -0
  30. package/module/client/test/ts-client.cw-named-groups.test.js +17 -0
  31. package/module/client/test/ts-client.cw-proposal-single.test.js +21 -0
  32. package/module/client/test/ts-client.empty-enums.spec.js +11 -0
  33. package/module/client/test/ts-client.sg721.spec.js +17 -0
  34. package/module/client/test/ts-client.spec.js +85 -0
  35. package/module/client/test/ts-client.vectis.spec.js +44 -0
  36. package/module/context/context.js +25 -0
  37. package/module/context/index.js +1 -0
  38. package/module/{messages.js → from-partial/from-partial.js} +16 -57
  39. package/module/from-partial/from-partial.spec.js +12 -0
  40. package/module/from-partial/index.js +1 -0
  41. package/module/index.js +5 -3
  42. package/module/react-query/index.js +1 -0
  43. package/module/react-query/react-query.js +222 -0
  44. package/module/react-query/react-query.spec.js +53 -0
  45. package/module/recoil/index.js +1 -0
  46. package/module/{recoil.js → recoil/recoil.js} +6 -20
  47. package/module/recoil/recoil.spec.js +15 -0
  48. package/module/utils/babel.js +15 -0
  49. package/module/utils/babel.spec.js +1 -10
  50. package/module/utils/index.js +2 -1
  51. package/module/utils/types.js +83 -74
  52. package/package.json +26 -24
  53. package/types/src/client/client.d.ts +17 -0
  54. package/types/src/client/index.d.ts +1 -0
  55. package/types/src/client/test/ts-client.cw-named-groups.test.d.ts +1 -0
  56. package/types/src/client/test/ts-client.cw-proposal-single.test.d.ts +1 -0
  57. package/types/src/context/context.d.ts +20 -0
  58. package/types/src/context/index.d.ts +1 -0
  59. package/types/src/from-partial/from-partial.d.ts +4 -0
  60. package/types/src/from-partial/index.d.ts +1 -0
  61. package/types/src/index.d.ts +7 -0
  62. package/types/src/react-query/index.d.ts +1 -0
  63. package/types/src/react-query/react-query.d.ts +81 -0
  64. package/types/src/recoil/index.d.ts +1 -0
  65. package/types/{recoil.d.ts → src/recoil/recoil.d.ts} +5 -5
  66. package/types/{types.d.ts → src/types.d.ts} +17 -0
  67. package/types/{utils.d.ts → src/utils/babel.d.ts} +21 -1
  68. package/types/src/utils/index.d.ts +2 -0
  69. package/types/src/utils/types.d.ts +18 -0
  70. package/types/test-utils/index.d.ts +2 -0
  71. package/main/messages.spec.js +0 -24
  72. package/main/react-query.js +0 -155
  73. package/main/wasm.arrays.spec.js +0 -30
  74. package/main/wasm.cw-named-groups.test.js +0 -30
  75. package/main/wasm.cw-proposal-single.test.js +0 -32
  76. package/main/wasm.empty-enums.spec.js +0 -24
  77. package/main/wasm.sg721.spec.js +0 -30
  78. package/main/wasm.spec.js +0 -95
  79. package/main/wasm.vectis.spec.js +0 -53
  80. package/module/messages.spec.js +0 -18
  81. package/module/react-query.js +0 -120
  82. package/module/react-query.spec.js +0 -59
  83. package/module/recoil.spec.js +0 -22
  84. package/module/wasm.arrays.spec.js +0 -24
  85. package/module/wasm.cw-named-groups.test.js +0 -24
  86. package/module/wasm.cw-proposal-single.test.js +0 -25
  87. package/module/wasm.empty-enums.spec.js +0 -18
  88. package/module/wasm.sg721.spec.js +0 -24
  89. package/module/wasm.spec.js +0 -76
  90. package/module/wasm.vectis.spec.js +0 -43
  91. package/types/amino/amino-interfaces.d.ts +0 -6
  92. package/types/amino/from-amino.d.ts +0 -13
  93. package/types/amino/index.d.ts +0 -3
  94. package/types/amino/to-amino.d.ts +0 -11
  95. package/types/index.d.ts +0 -5
  96. package/types/messages.d.ts +0 -4
  97. package/types/react-query.d.ts +0 -32
  98. package/types/wasm.d.ts +0 -24
@@ -4,69 +4,66 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
- var _generator = _interopRequireDefault(require("@babel/generator"));
8
-
9
7
  var t = _interopRequireWildcard(require("@babel/types"));
10
8
 
11
- var _query_msg = _interopRequireDefault(require("./../../../__fixtures__/basic/query_msg.json"));
9
+ var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/query_msg.json"));
12
10
 
13
- var _reactQuery = require("./react-query");
11
+ var _execute_msg_for__empty = _interopRequireDefault(require("../../../../__fixtures__/basic/execute_msg_for__empty.json"));
14
12
 
15
- 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); }
13
+ var _context = require("../context");
16
14
 
17
- 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; }
15
+ var _reactQuery = require("./react-query");
18
16
 
19
- var expectCode = function expectCode(ast) {
20
- expect((0, _generator["default"])(ast).code).toMatchSnapshot();
21
- };
17
+ var _testUtils = require("../../test-utils");
22
18
 
23
- var printCode = function printCode(ast) {
24
- console.log((0, _generator["default"])(ast).code);
25
- }; // it('createReactQueryHook', () => {
26
- // printCode(createReactQueryHook({
27
- // methodName: 'allNftInfo',
28
- // hookName: 'useSg721AllNftInfoQuery',
29
- // hookParamsTypeName: 'Sg721CollectionInfoQuery',
30
- // responseType: 'AllNftInfoResponse',
31
- // hookKeyName: 'Sg721AllNftInfo'
32
- // }))
33
- // });
19
+ 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); }
34
20
 
21
+ 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; }
35
22
 
23
+ var execCtx = new _context.RenderContext(_execute_msg_for__empty["default"]);
24
+ var queryCtx = new _context.RenderContext(_query_msg["default"]);
36
25
  it('createReactQueryHooks', function () {
37
- expectCode(t.program((0, _reactQuery.createReactQueryHooks)({
26
+ (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
27
+ context: queryCtx,
38
28
  queryMsg: _query_msg["default"],
39
29
  contractName: 'Sg721',
40
30
  QueryClient: 'Sg721QueryClient'
41
31
  })));
42
- expectCode(t.program((0, _reactQuery.createReactQueryHooks)({
32
+ (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
33
+ context: new _context.RenderContext(_query_msg["default"], {
34
+ reactQuery: {
35
+ optionalClient: true
36
+ }
37
+ }),
43
38
  queryMsg: _query_msg["default"],
44
39
  contractName: 'Sg721',
45
40
  QueryClient: 'Sg721QueryClient'
46
41
  })));
47
- expectCode(t.program((0, _reactQuery.createReactQueryHooks)({
42
+ (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
43
+ context: new _context.RenderContext(_query_msg["default"], {
44
+ reactQuery: {
45
+ v4: true
46
+ }
47
+ }),
48
48
  queryMsg: _query_msg["default"],
49
49
  contractName: 'Sg721',
50
- QueryClient: 'Sg721QueryClient',
51
- options: {
52
- optionalClient: true
53
- }
50
+ QueryClient: 'Sg721QueryClient'
54
51
  })));
55
- expectCode(t.program((0, _reactQuery.createReactQueryHooks)({
52
+ (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryHooks)({
53
+ context: new _context.RenderContext(_query_msg["default"], {
54
+ reactQuery: {
55
+ optionalClient: true,
56
+ v4: true
57
+ }
58
+ }),
56
59
  queryMsg: _query_msg["default"],
57
60
  contractName: 'Sg721',
58
- QueryClient: 'Sg721QueryClient',
59
- options: {
60
- v4: true
61
- }
61
+ QueryClient: 'Sg721QueryClient'
62
62
  })));
63
- expectCode(t.program((0, _reactQuery.createReactQueryHooks)({
64
- queryMsg: _query_msg["default"],
63
+ (0, _testUtils.expectCode)(t.program((0, _reactQuery.createReactQueryMutationHooks)({
64
+ context: execCtx,
65
+ execMsg: _execute_msg_for__empty["default"],
65
66
  contractName: 'Sg721',
66
- QueryClient: 'Sg721QueryClient',
67
- options: {
68
- optionalClient: true,
69
- v4: true
70
- }
67
+ ExecuteClient: 'Sg721Client'
71
68
  })));
72
69
  });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _recoil = require("./recoil");
8
+
9
+ Object.keys(_recoil).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _recoil[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _recoil[key];
16
+ }
17
+ });
18
+ });
@@ -5,51 +5,32 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.createWasmRecoilMethod = exports.createRecoilSelectors = exports.createRecoilSelector = exports.createRecoilQueryClientType = exports.createRecoilQueryClient = void 0;
8
+ exports.createRecoilSelectors = exports.createRecoilSelector = exports.createRecoilQueryClientType = exports.createRecoilQueryClient = void 0;
9
9
 
10
10
  var t = _interopRequireWildcard(require("@babel/types"));
11
11
 
12
12
  var _case = require("case");
13
13
 
14
- var _utils = require("./utils");
14
+ var _utils = require("../utils");
15
15
 
16
16
  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); }
17
17
 
18
18
  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; }
19
19
 
20
- var createWasmRecoilMethod = function createWasmRecoilMethod(jsonschema) {
21
- var _jsonschema$propertie;
22
-
23
- var underscoreName = Object.keys(jsonschema.properties)[0];
24
- var methodName = (0, _case.camel)(underscoreName);
25
- var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
26
- var properties = (_jsonschema$propertie = jsonschema.properties[underscoreName].properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {};
27
-
28
- if (Object.keys(properties).length > 0) {} else {}
29
- };
30
-
31
- exports.createWasmRecoilMethod = createWasmRecoilMethod;
32
-
33
- var createRecoilSelector = function createRecoilSelector(keyPrefix, QueryClient, methodName) {
34
- // const propertyNames = getMessageProperties(queryMsg)
35
- // .map(method => Object.keys(method.properties)?.[0])
36
- // .filter(Boolean);
37
- // const methods = getMessageProperties(queryMsg)
38
- // .map(schema => createWasmRecoilMethod(schema))
20
+ var createRecoilSelector = function createRecoilSelector(context, keyPrefix, QueryClient, methodName) {
39
21
  var selectorName = (0, _case.camel)("".concat(methodName, "Selector"));
40
22
  var responseType = (0, _case.pascal)("".concat(methodName, "Response"));
41
23
  var getterKey = (0, _case.camel)("".concat(keyPrefix).concat((0, _case.pascal)(methodName)));
42
- return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(selectorName), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('params'), t.identifier('params'), false, true), t.restElement(t.identifier('queryClientParams'))])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.callExpression(t.identifier('queryClient'), [t.identifier('queryClientParams')])]))]), t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), [// t.identifier('params')
43
- t.spreadElement(t.identifier('params'))])))]), true)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsIntersectionType([t.tsTypeReference(t.identifier('QueryClientParams')), t.tsTypeLiteral([t.tsPropertySignature(t.identifier('params'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Parameters'), t.tsTypeParameterInstantiation([t.tsIndexedAccessType(t.tsTypeReference(t.identifier(QueryClient)), t.tsLiteralType(t.stringLiteral(methodName)))]))))])])])))]));
24
+ return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier(selectorName), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('params'), t.identifier('params'), false, true), t.restElement(t.identifier('queryClientParams'))])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.callExpression(t.identifier('queryClient'), [t.identifier('queryClientParams')])]))]), t.returnStatement(t.awaitExpression(t.callExpression(t.memberExpression(t.identifier('client'), t.identifier(methodName)), [t.spreadElement(t.identifier('params'))])))]), true)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(responseType)), t.tsIntersectionType([t.tsTypeReference(t.identifier('QueryClientParams')), t.tsTypeLiteral([t.tsPropertySignature(t.identifier('params'), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Parameters'), t.tsTypeParameterInstantiation([t.tsIndexedAccessType(t.tsTypeReference(t.identifier(QueryClient)), t.tsLiteralType(t.stringLiteral(methodName)))]))))])])])))]));
44
25
  };
45
26
 
46
27
  exports.createRecoilSelector = createRecoilSelector;
47
28
 
48
- var createRecoilSelectors = function createRecoilSelectors(keyPrefix, QueryClient, queryMsg) {
29
+ var createRecoilSelectors = function createRecoilSelectors(context, keyPrefix, QueryClient, queryMsg) {
49
30
  return (0, _utils.getMessageProperties)(queryMsg).map(function (schema) {
50
31
  var underscoreName = Object.keys(schema.properties)[0];
51
32
  var methodName = (0, _case.camel)(underscoreName);
52
- return createRecoilSelector(keyPrefix, QueryClient, methodName);
33
+ return createRecoilSelector(context, keyPrefix, QueryClient, methodName);
53
34
  });
54
35
  };
55
36
 
@@ -84,7 +65,7 @@ var createRecoilQueryClientType = function createRecoilQueryClientType() {
84
65
 
85
66
  exports.createRecoilQueryClientType = createRecoilQueryClientType;
86
67
 
87
- var createRecoilQueryClient = function createRecoilQueryClient(keyPrefix, QueryClient) {
68
+ var createRecoilQueryClient = function createRecoilQueryClient(context, keyPrefix, QueryClient) {
88
69
  var getterKey = (0, _case.camel)("".concat(keyPrefix, 'QueryClient'));
89
70
  return t.exportNamedDeclaration(t.variableDeclaration('const', [t.variableDeclarator(t.identifier('queryClient'), (0, _utils.callExpression)(t.identifier('selectorFamily'), [t.objectExpression([t.objectProperty(t.identifier('key'), t.stringLiteral(getterKey)), t.objectProperty(t.identifier('get'), t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('contractAddress'), t.identifier('contractAddress'), false, true)])], t.arrowFunctionExpression([t.objectPattern([t.objectProperty(t.identifier('get'), t.identifier('get'), false, true)])], t.blockStatement([t.variableDeclaration('const', [t.variableDeclarator(t.identifier('client'), t.callExpression(t.identifier('get'), [t.identifier('cosmWasmClient')]))]), t.returnStatement(t.newExpression(t.identifier(QueryClient), [t.identifier('client'), t.identifier('contractAddress')]))]), false)))])], t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier(QueryClient)), t.tsTypeReference(t.identifier('QueryClientParams'))])))]));
90
71
  };
@@ -4,32 +4,27 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
 
5
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
- var _generator = _interopRequireDefault(require("@babel/generator"));
8
-
9
7
  var t = _interopRequireWildcard(require("@babel/types"));
10
8
 
11
- var _query_msg = _interopRequireDefault(require("./../../../__fixtures__/basic/query_msg.json"));
9
+ var _query_msg = _interopRequireDefault(require("../../../../__fixtures__/basic/query_msg.json"));
12
10
 
13
11
  var _recoil = require("./recoil");
14
12
 
15
- 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); }
13
+ var _context = require("../context");
16
14
 
17
- 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; }
15
+ var _testUtils = require("../../test-utils");
18
16
 
19
- var expectCode = function expectCode(ast) {
20
- expect((0, _generator["default"])(ast).code).toMatchSnapshot();
21
- };
17
+ 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); }
22
18
 
23
- var printCode = function printCode(ast) {
24
- console.log((0, _generator["default"])(ast).code);
25
- };
19
+ 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; }
26
20
 
21
+ var ctx = new _context.RenderContext(_query_msg["default"]);
27
22
  it('selector', function () {
28
- expectCode((0, _recoil.createRecoilSelector)('SG721', 'SG721QueryClient', 'governanceModules'));
23
+ (0, _testUtils.expectCode)((0, _recoil.createRecoilSelector)(ctx, 'SG721', 'SG721QueryClient', 'governanceModules'));
29
24
  });
30
25
  it('selectors', function () {
31
- expectCode(t.program((0, _recoil.createRecoilSelectors)('SG721', 'SG721QueryClient', _query_msg["default"])));
26
+ (0, _testUtils.expectCode)(t.program((0, _recoil.createRecoilSelectors)(ctx, 'SG721', 'SG721QueryClient', _query_msg["default"])));
32
27
  });
33
28
  it('client', function () {
34
- expectCode((0, _recoil.createRecoilQueryClient)('SG721', 'SG721QueryClient'));
29
+ (0, _testUtils.expectCode)((0, _recoil.createRecoilQueryClient)(ctx, 'SG721', 'SG721QueryClient'));
35
30
  });
@@ -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.typedIdentifier = exports.typeRefOrOptionalUnion = exports.tsTypeOperator = exports.tsPropertySignature = exports.tsObjectPattern = exports.shorthandProperty = exports.recursiveNamespace = exports.propertySignature = exports.promiseTypeAnnotation = exports.optionalConditionalExpression = exports.memberExpressionOrIdentifierSnake = exports.memberExpressionOrIdentifier = exports.importStmt = 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.typeRefOrOptionalUnion = 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.importAminoMsg = exports.identifier = exports.getMessageProperties = exports.getFieldDimensionality = exports.classProperty = exports.classDeclaration = exports.callExpression = exports.bindMethod = exports.arrowFunctionExpression = exports.arrayTypeNDimensions = exports.FieldTypeAsts = void 0;
11
11
 
12
12
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
13
13
 
@@ -21,6 +21,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
21
 
22
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
23
 
24
+ // t.TSPropertySignature - kind?
24
25
  var propertySignature = function propertySignature(name, typeAnnotation) {
25
26
  var optional = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
26
27
  return {
@@ -279,4 +280,29 @@ var typeRefOrOptionalUnion = function typeRefOrOptionalUnion(identifier) {
279
280
  return optional ? t.tsUnionType([typeReference, t.tsUndefinedKeyword()]) : typeReference;
280
281
  };
281
282
 
282
- exports.typeRefOrOptionalUnion = typeRefOrOptionalUnion;
283
+ exports.typeRefOrOptionalUnion = typeRefOrOptionalUnion;
284
+
285
+ var parameterizedTypeReference = function parameterizedTypeReference(identifier, from, omit) {
286
+ return t.tsTypeReference(t.identifier(identifier), t.tsTypeParameterInstantiation([from, typeof omit === 'string' ? t.tsLiteralType(t.stringLiteral(omit)) : t.tsUnionType(omit.map(function (o) {
287
+ return t.tsLiteralType(t.stringLiteral(o));
288
+ }))]));
289
+ };
290
+ /**
291
+ * omitTypeReference(t.tsTypeReference(t.identifier('Cw4UpdateMembersMutation'),),'args').....
292
+ * Omit<Cw4UpdateMembersMutation, 'args'>
293
+ */
294
+
295
+
296
+ exports.parameterizedTypeReference = parameterizedTypeReference;
297
+
298
+ var omitTypeReference = function omitTypeReference(from, omit) {
299
+ return parameterizedTypeReference('Omit', from, omit);
300
+ };
301
+
302
+ exports.omitTypeReference = omitTypeReference;
303
+
304
+ var pickTypeReference = function pickTypeReference(from, pick) {
305
+ return parameterizedTypeReference('Pick', from, pick);
306
+ };
307
+
308
+ exports.pickTypeReference = pickTypeReference;
@@ -10,28 +10,20 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
 
11
11
  var _babel = require("./babel");
12
12
 
13
- var _generator = _interopRequireDefault(require("@babel/generator"));
14
-
15
13
  var t = _interopRequireWildcard(require("@babel/types"));
16
14
 
15
+ var _testUtils = require("../../test-utils");
16
+
17
17
  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); }
18
18
 
19
19
  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; }
20
20
 
21
- var expectCode = function expectCode(ast) {
22
- expect((0, _generator["default"])(ast).code).toMatchSnapshot();
23
- };
24
-
25
- var printCode = function printCode(ast) {
26
- console.log((0, _generator["default"])(ast).code);
27
- };
28
-
29
21
  it('top import', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
30
22
  return _regenerator["default"].wrap(function _callee$(_context) {
31
23
  while (1) {
32
24
  switch (_context.prev = _context.next) {
33
25
  case 0:
34
- expectCode((0, _babel.importStmt)(['CosmWasmClient', 'ExecuteResult', 'SigningCosmWasmClient'], '@cosmjs/cosmwasm-stargate'));
26
+ (0, _testUtils.expectCode)((0, _babel.importStmt)(['CosmWasmClient', 'ExecuteResult', 'SigningCosmWasmClient'], '@cosmjs/cosmwasm-stargate'));
35
27
 
36
28
  case 1:
37
29
  case "end":
@@ -45,7 +37,7 @@ it('interfaces', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_
45
37
  while (1) {
46
38
  switch (_context2.prev = _context2.next) {
47
39
  case 0:
48
- expectCode(t.program([t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721ReadOnlyInstance'), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // methods
40
+ (0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721ReadOnlyInstance'), null, [], t.tSInterfaceBody([t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // methods
49
41
  t.tSPropertySignature(t.identifier('tokens'), t.tsTypeAnnotation(t.tsFunctionType(null, [(0, _babel.typedIdentifier)('owner', t.tsTypeAnnotation(t.tsStringKeyword())), (0, _babel.typedIdentifier)('startAfter', t.tsTypeAnnotation(t.tsStringKeyword()), true), (0, _babel.typedIdentifier)('limit', t.tsTypeAnnotation(t.tsStringKeyword()), true)], (0, _babel.promiseTypeAnnotation)('TokensResponse'))))]))), // extends
50
42
  t.exportNamedDeclaration(t.tsInterfaceDeclaration(t.identifier('SG721Instance'), null, [t.tSExpressionWithTypeArguments(t.identifier('SG721ReadOnlyInstance'))], t.tSInterfaceBody([// contract address
51
43
  t.tSPropertySignature(t.identifier('contractAddress'), t.tsTypeAnnotation(t.tsStringKeyword())), // METHOD
@@ -63,7 +55,7 @@ it('readonly classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
63
55
  while (1) {
64
56
  switch (_context3.prev = _context3.next) {
65
57
  case 0:
66
- expectCode(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721QueryClient', [// client
58
+ (0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721QueryClient', [// client
67
59
  (0, _babel.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), // contractAddress
68
60
  (0, _babel.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
69
61
  t.classMethod('constructor', t.identifier('constructor'), [(0, _babel.typedIdentifier)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('CosmWasmClient')))), (0, _babel.typedIdentifier)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// client/contract set
@@ -86,7 +78,7 @@ it('mutation classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
86
78
  while (1) {
87
79
  switch (_context4.prev = _context4.next) {
88
80
  case 0:
89
- expectCode(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721Client', [// client
81
+ (0, _testUtils.expectCode)(t.program([t.exportNamedDeclaration((0, _babel.classDeclaration)('SG721Client', [// client
90
82
  (0, _babel.classProperty)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), // contractAddress
91
83
  (0, _babel.classProperty)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword())), // constructor
92
84
  t.classMethod('constructor', t.identifier('constructor'), [(0, _babel.typedIdentifier)('client', t.tsTypeAnnotation(t.tsTypeReference(t.identifier('SigningCosmWasmClient')))), (0, _babel.typedIdentifier)('contractAddress', t.tsTypeAnnotation(t.tsStringKeyword()))], t.blockStatement([// super()
@@ -107,6 +99,6 @@ it('mutation classes', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PUR
107
99
  it('object parms', function () {
108
100
  var obj = t.objectPattern([t.objectProperty(t.identifier('includeExpired'), t.identifier('includeExpired'), false, true), t.objectProperty(t.identifier('tokenId'), t.identifier('tokenId'), false, true)]);
109
101
  obj.typeAnnotation = t.tsTypeAnnotation(t.tsTypeLiteral([t.tsPropertySignature(t.identifier('includeExpired'), t.tsTypeAnnotation(t.tsBooleanKeyword())), t.tsPropertySignature(t.identifier('tokenId'), t.tsTypeAnnotation(t.tsStringKeyword()))]));
110
- expectCode(t.program([t.expressionStatement(t.assignmentExpression('=', t.identifier('ownerOf'), (0, _babel.arrowFunctionExpression)([obj], t.blockStatement([// body
102
+ (0, _testUtils.expectCode)(t.program([t.expressionStatement(t.assignmentExpression('=', t.identifier('ownerOf'), (0, _babel.arrowFunctionExpression)([obj], t.blockStatement([// body
111
103
  ], []), t.tsTypeAnnotation(t.tsTypeReference(t.identifier('Promise'), t.tsTypeParameterInstantiation([t.tsTypeReference(t.identifier('OwnerOfResponse'))]))))))]));
112
104
  });
@@ -15,4 +15,17 @@ Object.keys(_babel).forEach(function (key) {
15
15
  return _babel[key];
16
16
  }
17
17
  });
18
+ });
19
+
20
+ var _types = require("./types");
21
+
22
+ Object.keys(_types).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _types[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _types[key];
29
+ }
30
+ });
18
31
  });
@@ -7,7 +7,9 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.getType = exports.getPropertyType = exports.createTypedObjectParams = void 0;
10
+ exports.getParamsTypeAnnotation = exports.createTypedObjectParams = void 0;
11
+ exports.getPropertySignatureFromProp = getPropertySignatureFromProp;
12
+ exports.getTypeFromRef = exports.getType = exports.getPropertyType = void 0;
11
13
 
12
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
15
 
@@ -24,33 +26,19 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
24
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; }
25
27
 
26
28
  var getTypeStrFromRef = function getTypeStrFromRef($ref) {
27
- switch ($ref) {
28
- case '#/definitions/Binary':
29
- return 'Binary';
30
-
31
- default:
32
- if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
33
- return $ref.replace('#/definitions/', '');
34
- }
35
-
36
- throw new Error('what is $ref: ' + $ref);
29
+ if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
30
+ return $ref.replace('#/definitions/', '');
37
31
  }
32
+
33
+ throw new Error('what is $ref: ' + $ref);
38
34
  };
39
35
 
40
36
  var getTypeFromRef = function getTypeFromRef($ref) {
41
- switch ($ref) {
42
- case '#/definitions/Binary':
43
- return t.tsTypeReference(t.identifier('Binary'));
44
-
45
- default:
46
- if ($ref !== null && $ref !== void 0 && $ref.startsWith('#/definitions/')) {
47
- return t.tsTypeReference(t.identifier($ref.replace('#/definitions/', '')));
48
- }
49
-
50
- throw new Error('what is $ref: ' + $ref);
51
- }
37
+ return t.tsTypeReference(t.identifier(getTypeStrFromRef($ref)));
52
38
  };
53
39
 
40
+ exports.getTypeFromRef = getTypeFromRef;
41
+
54
42
  var getArrayTypeFromRef = function getArrayTypeFromRef($ref) {
55
43
  return t.tsArrayType(getTypeFromRef($ref));
56
44
  };
@@ -85,7 +73,7 @@ var getType = function getType(type) {
85
73
 
86
74
  exports.getType = getType;
87
75
 
88
- var getPropertyType = function getPropertyType(schema, prop) {
76
+ var getPropertyType = function getPropertyType(context, schema, prop) {
89
77
  var _schema$properties, _schema$required, _schema$required2;
90
78
 
91
79
  var props = (_schema$properties = schema.properties) !== null && _schema$properties !== void 0 ? _schema$properties : {};
@@ -183,79 +171,113 @@ var getPropertyType = function getPropertyType(schema, prop) {
183
171
 
184
172
  exports.getPropertyType = getPropertyType;
185
173
 
186
- var createTypedObjectParams = function createTypedObjectParams(jsonschema) {
174
+ function getPropertySignatureFromProp(context, jsonschema, prop, camelize) {
175
+ if (jsonschema.properties[prop].type === 'object') {
176
+ if (jsonschema.properties[prop].title) {
177
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(jsonschema.properties[prop].title))));
178
+ } else {
179
+ throw new Error('createTypedObjectParams() contact maintainer');
180
+ }
181
+ }
182
+
183
+ if (Array.isArray(jsonschema.properties[prop].allOf)) {
184
+ var _jsonschema$required;
185
+
186
+ var isOptional = !((_jsonschema$required = jsonschema.required) !== null && _jsonschema$required !== void 0 && _jsonschema$required.includes(prop));
187
+ var unionTypes = jsonschema.properties[prop].allOf.map(function (el) {
188
+ if (el.title) return el.title;
189
+ if (el.$ref) return getTypeStrFromRef(el.$ref);
190
+ return el.type;
191
+ });
192
+ var uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(unionTypes));
193
+
194
+ if (uniqUnionTypes.length === 1) {
195
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(uniqUnionTypes[0]))), isOptional);
196
+ } else {
197
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(uniqUnionTypes.map(function (typ) {
198
+ return t.tsTypeReference(t.identifier(typ));
199
+ }))), isOptional);
200
+ }
201
+ } else if (Array.isArray(jsonschema.properties[prop].oneOf)) {
202
+ var _jsonschema$required2;
203
+
204
+ var _isOptional = !((_jsonschema$required2 = jsonschema.required) !== null && _jsonschema$required2 !== void 0 && _jsonschema$required2.includes(prop));
205
+
206
+ var _unionTypes = jsonschema.properties[prop].oneOf.map(function (el) {
207
+ if (el.title) return el.title;
208
+ if (el.$ref) return getTypeStrFromRef(el.$ref);
209
+ return el.type;
210
+ });
211
+
212
+ var _uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(_unionTypes));
213
+
214
+ if (_uniqUnionTypes.length === 1) {
215
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(_uniqUnionTypes[0]))), _isOptional);
216
+ } else {
217
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(_uniqUnionTypes.map(function (typ) {
218
+ return t.tsTypeReference(t.identifier(typ));
219
+ }))), _isOptional);
220
+ }
221
+ }
222
+
223
+ try {
224
+ getPropertyType(context, jsonschema, prop);
225
+ } catch (e) {
226
+ console.log(e);
227
+ console.log(jsonschema, prop);
228
+ }
229
+
230
+ var _getPropertyType = getPropertyType(context, jsonschema, prop),
231
+ type = _getPropertyType.type,
232
+ optional = _getPropertyType.optional;
233
+
234
+ return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
235
+ }
236
+
237
+ var getParamsTypeAnnotation = function getParamsTypeAnnotation(context, jsonschema) {
187
238
  var _jsonschema$propertie;
188
239
 
189
- var camelize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
240
+ var camelize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
190
241
  var keys = Object.keys((_jsonschema$propertie = jsonschema.properties) !== null && _jsonschema$propertie !== void 0 ? _jsonschema$propertie : {});
191
- if (!keys.length) return;
192
- var typedParams = keys.map(function (prop) {
193
- if (jsonschema.properties[prop].type === 'object') {
194
- if (jsonschema.properties[prop].title) {
195
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(jsonschema.properties[prop].title))));
196
- } else {
197
- throw new Error('createTypedObjectParams() contact maintainer');
198
- }
199
- }
200
242
 
201
- if (Array.isArray(jsonschema.properties[prop].allOf)) {
202
- var _jsonschema$required;
243
+ if (!keys.length && jsonschema.$ref) {
244
+ return t.tsTypeAnnotation(getTypeFromRef(jsonschema.$ref));
245
+ }
203
246
 
204
- var isOptional = !((_jsonschema$required = jsonschema.required) !== null && _jsonschema$required !== void 0 && _jsonschema$required.includes(prop));
205
- var unionTypes = jsonschema.properties[prop].allOf.map(function (el) {
206
- if (el.title) return el.title;
207
- if (el.$ref) return getTypeStrFromRef(el.$ref);
208
- return el.type;
209
- });
210
- var uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(unionTypes));
247
+ if (!keys.length) return undefined;
248
+ var typedParams = keys.map(function (prop) {
249
+ return getPropertySignatureFromProp(context, jsonschema, prop, camelize);
250
+ });
251
+ return t.tsTypeAnnotation(t.tsTypeLiteral((0, _toConsumableArray2["default"])(typedParams)));
252
+ };
211
253
 
212
- if (uniqUnionTypes.length === 1) {
213
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(uniqUnionTypes[0]))), isOptional);
214
- } else {
215
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(uniqUnionTypes.map(function (typ) {
216
- return t.tsTypeReference(t.identifier(typ));
217
- }))), isOptional);
218
- }
219
- } else if (Array.isArray(jsonschema.properties[prop].oneOf)) {
220
- var _jsonschema$required2;
254
+ exports.getParamsTypeAnnotation = getParamsTypeAnnotation;
221
255
 
222
- var _isOptional = !((_jsonschema$required2 = jsonschema.required) !== null && _jsonschema$required2 !== void 0 && _jsonschema$required2.includes(prop));
256
+ var createTypedObjectParams = function createTypedObjectParams(context, jsonschema) {
257
+ var _jsonschema$propertie2;
223
258
 
224
- var _unionTypes = jsonschema.properties[prop].oneOf.map(function (el) {
225
- if (el.title) return el.title;
226
- if (el.$ref) return getTypeStrFromRef(el.$ref);
227
- return el.type;
228
- });
259
+ var camelize = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
260
+ var keys = Object.keys((_jsonschema$propertie2 = jsonschema.properties) !== null && _jsonschema$propertie2 !== void 0 ? _jsonschema$propertie2 : {});
229
261
 
230
- var _uniqUnionTypes = (0, _toConsumableArray2["default"])(new Set(_unionTypes));
262
+ if (!keys.length) {
263
+ // is there a ref?
264
+ if (jsonschema.$ref) {
265
+ var _obj = context.refLookup(jsonschema.$ref);
231
266
 
232
- if (_uniqUnionTypes.length === 1) {
233
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsTypeReference(t.identifier(_uniqUnionTypes[0]))), _isOptional);
234
- } else {
235
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(t.tsUnionType(_uniqUnionTypes.map(function (typ) {
236
- return t.tsTypeReference(t.identifier(typ));
237
- }))), _isOptional);
267
+ if (_obj) {
268
+ return createTypedObjectParams(context, _obj, camelize);
238
269
  }
239
- }
270
+ } // no results...
240
271
 
241
- try {
242
- getPropertyType(jsonschema, prop);
243
- } catch (e) {
244
- console.log(e);
245
- console.log(jsonschema, prop);
246
- }
247
272
 
248
- var _getPropertyType = getPropertyType(jsonschema, prop),
249
- type = _getPropertyType.type,
250
- optional = _getPropertyType.optional;
273
+ return;
274
+ }
251
275
 
252
- return (0, _babel.propertySignature)(camelize ? (0, _case.camel)(prop) : prop, t.tsTypeAnnotation(type), optional);
253
- });
254
276
  var params = keys.map(function (prop) {
255
277
  return t.objectProperty(camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), camelize ? t.identifier((0, _case.camel)(prop)) : t.identifier(prop), false, true);
256
278
  });
257
279
  var obj = t.objectPattern((0, _toConsumableArray2["default"])(params));
258
- obj.typeAnnotation = t.tsTypeAnnotation(t.tsTypeLiteral((0, _toConsumableArray2["default"])(typedParams)));
280
+ obj.typeAnnotation = getParamsTypeAnnotation(context, jsonschema, camelize);
259
281
  return obj;
260
282
  };
261
283