wasm-ast-types 0.4.2 → 0.4.3
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.
- package/main/utils/types.js +11 -5
 - package/main/wasm.arrays.spec.js +30 -0
 - package/module/utils/types.js +11 -5
 - package/module/wasm.arrays.spec.js +24 -0
 - package/package.json +2 -2
 
    
        package/main/utils/types.js
    CHANGED
    
    | 
         @@ -55,8 +55,16 @@ var getArrayTypeFromRef = function getArrayTypeFromRef($ref) { 
     | 
|
| 
       55 
55 
     | 
    
         
             
              return t.tsArrayType(getTypeFromRef($ref));
         
     | 
| 
       56 
56 
     | 
    
         
             
            };
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
     | 
    
         
            -
            var  
     | 
| 
       59 
     | 
    
         
            -
               
     | 
| 
      
 58 
     | 
    
         
            +
            var getArrayTypeFromItems = function getArrayTypeFromItems(items) {
         
     | 
| 
      
 59 
     | 
    
         
            +
              if (items.type === 'array') {
         
     | 
| 
      
 60 
     | 
    
         
            +
                if (Array.isArray(items.items)) {
         
     | 
| 
      
 61 
     | 
    
         
            +
                  return t.tsArrayType(t.tsArrayType(getType(items.items[0].type)));
         
     | 
| 
      
 62 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 63 
     | 
    
         
            +
                  return t.tsArrayType(getArrayTypeFromItems(items.items));
         
     | 
| 
      
 64 
     | 
    
         
            +
                }
         
     | 
| 
      
 65 
     | 
    
         
            +
              }
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
              return t.tsArrayType(getType(items.type));
         
     | 
| 
       60 
68 
     | 
    
         
             
            };
         
     | 
| 
       61 
69 
     | 
    
         | 
| 
       62 
70 
     | 
    
         
             
            var getType = function getType(type) {
         
     | 
| 
         @@ -69,8 +77,6 @@ var getType = function getType(type) { 
     | 
|
| 
       69 
77 
     | 
    
         | 
| 
       70 
78 
     | 
    
         
             
                case 'integer':
         
     | 
| 
       71 
79 
     | 
    
         
             
                  return t.tsNumberKeyword();
         
     | 
| 
       72 
     | 
    
         
            -
                // case 'object':
         
     | 
| 
       73 
     | 
    
         
            -
                // return t.tsObjectKeyword();
         
     | 
| 
       74 
80 
     | 
    
         | 
| 
       75 
81 
     | 
    
         
             
                default:
         
     | 
| 
       76 
82 
     | 
    
         
             
                  throw new Error('contact maintainers [unknown type]: ' + type);
         
     | 
| 
         @@ -129,7 +135,7 @@ var getPropertyType = function getPropertyType(schema, prop) { 
     | 
|
| 
       129 
135 
     | 
    
         
             
                  } else if (info.items.title) {
         
     | 
| 
       130 
136 
     | 
    
         
             
                    type = t.tsArrayType(t.tsTypeReference(t.identifier(info.items.title)));
         
     | 
| 
       131 
137 
     | 
    
         
             
                  } else if (info.items.type) {
         
     | 
| 
       132 
     | 
    
         
            -
                    type =  
     | 
| 
      
 138 
     | 
    
         
            +
                    type = getArrayTypeFromItems(info.items);
         
     | 
| 
       133 
139 
     | 
    
         
             
                  } else {
         
     | 
| 
       134 
140 
     | 
    
         
             
                    throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
         
     | 
| 
       135 
141 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            var _generator = _interopRequireDefault(require("@babel/generator"));
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            var _schema = _interopRequireDefault(require("./../../../__fixtures__/arrays/schema/schema.json"));
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            var _wasm = require("./wasm");
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            var expectCode = function expectCode(ast) {
         
     | 
| 
      
 12 
     | 
    
         
            +
              expect((0, _generator["default"])(ast).code).toMatchSnapshot();
         
     | 
| 
      
 13 
     | 
    
         
            +
            };
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            var printCode = function printCode(ast) {
         
     | 
| 
      
 16 
     | 
    
         
            +
              console.log((0, _generator["default"])(ast).code);
         
     | 
| 
      
 17 
     | 
    
         
            +
            };
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            it('execute_msg_for__empty', function () {
         
     | 
| 
      
 20 
     | 
    
         
            +
              expectCode((0, _wasm.createTypeInterface)(_schema["default"]));
         
     | 
| 
      
 21 
     | 
    
         
            +
            });
         
     | 
| 
      
 22 
     | 
    
         
            +
            it('query classes', function () {
         
     | 
| 
      
 23 
     | 
    
         
            +
              expectCode((0, _wasm.createQueryClass)('SG721QueryClient', 'SG721ReadOnlyInstance', _schema["default"]));
         
     | 
| 
      
 24 
     | 
    
         
            +
            });
         
     | 
| 
      
 25 
     | 
    
         
            +
            it('execute classes array types', function () {
         
     | 
| 
      
 26 
     | 
    
         
            +
              expectCode((0, _wasm.createExecuteClass)('SG721Client', 'SG721Instance', null, _schema["default"]));
         
     | 
| 
      
 27 
     | 
    
         
            +
            });
         
     | 
| 
      
 28 
     | 
    
         
            +
            it('execute interfaces no extends', function () {
         
     | 
| 
      
 29 
     | 
    
         
            +
              expectCode((0, _wasm.createExecuteInterface)('SG721Instance', null, _schema["default"]));
         
     | 
| 
      
 30 
     | 
    
         
            +
            });
         
     | 
    
        package/module/utils/types.js
    CHANGED
    
    | 
         @@ -34,8 +34,16 @@ const getArrayTypeFromRef = $ref => { 
     | 
|
| 
       34 
34 
     | 
    
         
             
              return t.tsArrayType(getTypeFromRef($ref));
         
     | 
| 
       35 
35 
     | 
    
         
             
            };
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
            const  
     | 
| 
       38 
     | 
    
         
            -
               
     | 
| 
      
 37 
     | 
    
         
            +
            const getArrayTypeFromItems = items => {
         
     | 
| 
      
 38 
     | 
    
         
            +
              if (items.type === 'array') {
         
     | 
| 
      
 39 
     | 
    
         
            +
                if (Array.isArray(items.items)) {
         
     | 
| 
      
 40 
     | 
    
         
            +
                  return t.tsArrayType(t.tsArrayType(getType(items.items[0].type)));
         
     | 
| 
      
 41 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 42 
     | 
    
         
            +
                  return t.tsArrayType(getArrayTypeFromItems(items.items));
         
     | 
| 
      
 43 
     | 
    
         
            +
                }
         
     | 
| 
      
 44 
     | 
    
         
            +
              }
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
              return t.tsArrayType(getType(items.type));
         
     | 
| 
       39 
47 
     | 
    
         
             
            };
         
     | 
| 
       40 
48 
     | 
    
         | 
| 
       41 
49 
     | 
    
         
             
            export const getType = type => {
         
     | 
| 
         @@ -48,8 +56,6 @@ export const getType = type => { 
     | 
|
| 
       48 
56 
     | 
    
         | 
| 
       49 
57 
     | 
    
         
             
                case 'integer':
         
     | 
| 
       50 
58 
     | 
    
         
             
                  return t.tsNumberKeyword();
         
     | 
| 
       51 
     | 
    
         
            -
                // case 'object':
         
     | 
| 
       52 
     | 
    
         
            -
                // return t.tsObjectKeyword();
         
     | 
| 
       53 
59 
     | 
    
         | 
| 
       54 
60 
     | 
    
         
             
                default:
         
     | 
| 
       55 
61 
     | 
    
         
             
                  throw new Error('contact maintainers [unknown type]: ' + type);
         
     | 
| 
         @@ -101,7 +107,7 @@ export const getPropertyType = (schema, prop) => { 
     | 
|
| 
       101 
107 
     | 
    
         
             
                  } else if (info.items.title) {
         
     | 
| 
       102 
108 
     | 
    
         
             
                    type = t.tsArrayType(t.tsTypeReference(t.identifier(info.items.title)));
         
     | 
| 
       103 
109 
     | 
    
         
             
                  } else if (info.items.type) {
         
     | 
| 
       104 
     | 
    
         
            -
                    type =  
     | 
| 
      
 110 
     | 
    
         
            +
                    type = getArrayTypeFromItems(info.items);
         
     | 
| 
       105 
111 
     | 
    
         
             
                  } else {
         
     | 
| 
       106 
112 
     | 
    
         
             
                    throw new Error('[info.items] case not handled by transpiler. contact maintainers.');
         
     | 
| 
       107 
113 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -0,0 +1,24 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            import generate from '@babel/generator';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import message from './../../../__fixtures__/arrays/schema/schema.json';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { createQueryClass, createExecuteClass, createExecuteInterface, createTypeInterface } from './wasm';
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            const expectCode = ast => {
         
     | 
| 
      
 6 
     | 
    
         
            +
              expect(generate(ast).code).toMatchSnapshot();
         
     | 
| 
      
 7 
     | 
    
         
            +
            };
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            const printCode = ast => {
         
     | 
| 
      
 10 
     | 
    
         
            +
              console.log(generate(ast).code);
         
     | 
| 
      
 11 
     | 
    
         
            +
            };
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            it('execute_msg_for__empty', () => {
         
     | 
| 
      
 14 
     | 
    
         
            +
              expectCode(createTypeInterface(message));
         
     | 
| 
      
 15 
     | 
    
         
            +
            });
         
     | 
| 
      
 16 
     | 
    
         
            +
            it('query classes', () => {
         
     | 
| 
      
 17 
     | 
    
         
            +
              expectCode(createQueryClass('SG721QueryClient', 'SG721ReadOnlyInstance', message));
         
     | 
| 
      
 18 
     | 
    
         
            +
            });
         
     | 
| 
      
 19 
     | 
    
         
            +
            it('execute classes array types', () => {
         
     | 
| 
      
 20 
     | 
    
         
            +
              expectCode(createExecuteClass('SG721Client', 'SG721Instance', null, message));
         
     | 
| 
      
 21 
     | 
    
         
            +
            });
         
     | 
| 
      
 22 
     | 
    
         
            +
            it('execute interfaces no extends', () => {
         
     | 
| 
      
 23 
     | 
    
         
            +
              expectCode(createExecuteInterface('SG721Instance', null, message));
         
     | 
| 
      
 24 
     | 
    
         
            +
            });
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "wasm-ast-types",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "0.4. 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "0.4.3",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "CosmWasm TypeScript AST generation",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "author": "Dan Lynch <pyramation@gmail.com>",
         
     | 
| 
       6 
6 
     | 
    
         
             
              "homepage": "https://github.com/pyramation/cosmwasm-typescript-gen/tree/master/packages/wasm-ast-types#readme",
         
     | 
| 
         @@ -84,5 +84,5 @@ 
     | 
|
| 
       84 
84 
     | 
    
         
             
                "ast-stringify": "0.1.0",
         
     | 
| 
       85 
85 
     | 
    
         
             
                "case": "1.6.3"
         
     | 
| 
       86 
86 
     | 
    
         
             
              },
         
     | 
| 
       87 
     | 
    
         
            -
              "gitHead": " 
     | 
| 
      
 87 
     | 
    
         
            +
              "gitHead": "c5fc4992d9da5f1c9da1f2c34469994dee7801df"
         
     | 
| 
       88 
88 
     | 
    
         
             
            }
         
     |