wasm-ast-types 0.24.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main/client/client.js +46 -72
- package/main/client/index.js +0 -2
- package/main/client/test/ts-client.account-nfts.spec.js +3 -5
- package/main/client/test/ts-client.arrays-ref.spec.js +0 -4
- package/main/client/test/ts-client.arrays.spec.js +3 -6
- package/main/client/test/ts-client.cw-named-groups.test.js +0 -4
- package/main/client/test/ts-client.cw-proposal-single.test.js +0 -5
- package/main/client/test/ts-client.empty-enums.spec.js +0 -4
- package/main/client/test/ts-client.issue-101.spec.js +0 -4
- package/main/client/test/ts-client.issue-103.test.js +0 -4
- package/main/client/test/ts-client.issue-71.test.js +28 -50
- package/main/client/test/ts-client.issue-98.test.js +3 -5
- package/main/client/test/ts-client.issues.test.js +28 -50
- package/main/client/test/ts-client.overrides.spec.js +0 -4
- package/main/client/test/ts-client.sg721.spec.js +0 -4
- package/main/client/test/ts-client.spec.js +0 -17
- package/main/client/test/ts-client.vectis.spec.js +0 -8
- package/main/client/test/ts-client.wager.spec.js +4 -5
- package/main/context/context.js +6 -33
- package/main/context/imports.js +7 -43
- package/main/context/index.js +0 -4
- package/main/index.js +4 -22
- package/main/{msg-builder → message-builder}/index.js +4 -6
- package/main/{msg-builder/msg-builder.js → message-builder/message-builder.js} +24 -30
- package/main/{msg-builder/msg-builder.spec.js → message-builder/message-builder.spec.js} +4 -10
- package/main/message-composer/index.js +0 -2
- package/main/message-composer/message-composer.js +18 -28
- package/main/message-composer/message-composer.spec.js +0 -5
- package/main/provider/index.js +0 -2
- package/main/provider/provider.js +2 -29
- package/main/provider/provider.spec.js +0 -3
- package/main/react-query/index.js +0 -2
- package/main/react-query/react-query.js +125 -152
- package/main/react-query/react-query.spec.js +0 -10
- package/main/recoil/index.js +0 -2
- package/main/recoil/recoil.js +0 -14
- package/main/recoil/recoil.spec.js +0 -8
- package/main/utils/babel.js +12 -98
- package/main/utils/babel.spec.js +72 -67
- package/main/utils/constants.js +0 -6
- package/main/utils/index.js +0 -7
- package/main/utils/ref.js +0 -3
- package/main/utils/types.js +22 -109
- package/module/client/client.js +46 -32
- package/module/client/test/ts-client.account-nfts.spec.js +3 -1
- package/module/client/test/ts-client.arrays.spec.js +3 -1
- package/module/client/test/ts-client.issue-101.spec.js +3 -1
- package/module/client/test/ts-client.issue-98.test.js +3 -1
- package/module/client/test/ts-client.wager.spec.js +4 -1
- package/module/context/context.js +9 -23
- package/module/context/imports.js +5 -24
- package/module/index.js +1 -1
- package/module/message-builder/index.js +1 -0
- package/module/{msg-builder/msg-builder.js → message-builder/message-builder.js} +22 -17
- package/module/{msg-builder/msg-builder.spec.js → message-builder/message-builder.spec.js} +4 -4
- package/module/message-composer/message-composer.js +18 -14
- package/module/provider/provider.js +0 -8
- package/module/react-query/react-query.js +77 -76
- package/module/utils/babel.js +4 -14
- package/module/utils/babel.spec.js +49 -23
- package/module/utils/types.js +18 -66
- package/package.json +2 -2
- package/src/context/context.ts +158 -158
- package/src/index.ts +1 -1
- package/src/{msg-builder/__snapshots__/msg-builder.spec.ts.snap → message-builder/__snapshots__/message-builder.spec.ts.snap} +2 -2
- package/src/message-builder/index.ts +1 -0
- package/src/{msg-builder/msg-builder.spec.ts → message-builder/message-builder.spec.ts} +6 -7
- package/src/{msg-builder/msg-builder.ts → message-builder/message-builder.ts} +5 -5
- package/src/react-query/react-query.spec.ts +1 -1
- package/types/context/context.d.ts +2 -2
- package/types/index.d.ts +1 -1
- package/types/message-builder/index.d.ts +1 -0
- package/types/message-builder/message-builder.d.ts +4 -0
- package/module/msg-builder/index.js +0 -1
- package/src/msg-builder/index.ts +0 -1
- package/types/msg-builder/index.d.ts +0 -1
- package/types/msg-builder/msg-builder.d.ts +0 -4
package/src/context/context.ts
CHANGED
@@ -6,69 +6,69 @@ import { basename, extname } from 'path'
|
|
6
6
|
|
7
7
|
/// Plugin Types
|
8
8
|
export interface ReactQueryOptions {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
9
|
+
enabled?: boolean;
|
10
|
+
optionalClient?: boolean;
|
11
|
+
version?: 'v3' | 'v4';
|
12
|
+
mutations?: boolean;
|
13
|
+
camelize?: boolean;
|
14
|
+
queryKeys?: boolean
|
15
|
+
queryFactory?: boolean
|
16
16
|
}
|
17
17
|
|
18
18
|
export interface TSClientOptions {
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
enabled?: boolean;
|
20
|
+
execExtendsQuery?: boolean;
|
21
|
+
noImplicitOverride?: boolean;
|
22
22
|
}
|
23
23
|
export interface MessageComposerOptions {
|
24
|
-
|
24
|
+
enabled?: boolean;
|
25
25
|
}
|
26
|
-
export interface
|
27
|
-
|
26
|
+
export interface MessageBuilderOptions {
|
27
|
+
enabled?: boolean;
|
28
28
|
}
|
29
29
|
export interface RecoilOptions {
|
30
|
-
|
30
|
+
enabled?: boolean;
|
31
31
|
}
|
32
32
|
export interface TSTypesOptions {
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
enabled?: boolean;
|
34
|
+
// deprecated
|
35
|
+
aliasExecuteMsg?: boolean;
|
36
|
+
aliasEntryPoints?: boolean;
|
37
37
|
}
|
38
38
|
|
39
39
|
/// END Plugin Types
|
40
40
|
|
41
41
|
interface KeyedSchema {
|
42
|
-
|
42
|
+
[key: string]: JSONSchema;
|
43
43
|
}
|
44
44
|
export interface IDLObject {
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
45
|
+
contract_name: string;
|
46
|
+
contract_version: string;
|
47
|
+
idl_version: string;
|
48
|
+
instantiate: JSONSchema;
|
49
|
+
execute: JSONSchema;
|
50
|
+
query: JSONSchema;
|
51
|
+
migrate: JSONSchema;
|
52
|
+
sudo: JSONSchema;
|
53
|
+
responses: KeyedSchema;
|
54
54
|
}
|
55
55
|
|
56
56
|
export interface ContractInfo {
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
schemas: JSONSchema[];
|
58
|
+
responses?: Record<string, JSONSchema>;
|
59
|
+
idlObject?: IDLObject;
|
60
60
|
};
|
61
61
|
export interface RenderOptions {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
62
|
+
enabled?: boolean;
|
63
|
+
types?: TSTypesOptions;
|
64
|
+
recoil?: RecoilOptions;
|
65
|
+
messageComposer?: MessageComposerOptions;
|
66
|
+
messageBuilder?: MessageBuilderOptions;
|
67
|
+
client?: TSClientOptions;
|
68
|
+
reactQuery?: ReactQueryOptions;
|
69
69
|
}
|
70
70
|
|
71
|
-
export interface ProviderInfo{
|
71
|
+
export interface ProviderInfo {
|
72
72
|
classname: string,
|
73
73
|
filename: string,
|
74
74
|
basename: string,
|
@@ -81,90 +81,90 @@ export interface IContext {
|
|
81
81
|
}
|
82
82
|
|
83
83
|
export interface IRenderContext<TOpt = RenderOptions> extends IContext {
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
};
|
84
|
+
contract: ContractInfo;
|
85
|
+
options: TOpt;
|
86
|
+
|
87
|
+
addProviderInfo(contractName: string, type: string, classname: string, filename: string): void;
|
88
|
+
getProviderInfos(): {
|
89
|
+
[key: string]: {
|
90
|
+
[key: string]: ProviderInfo;
|
92
91
|
};
|
92
|
+
};
|
93
93
|
}
|
94
94
|
|
95
95
|
export const defaultOptions: RenderOptions = {
|
96
|
+
enabled: true,
|
97
|
+
types: {
|
96
98
|
enabled: true,
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
queryKeys: false
|
122
|
-
}
|
99
|
+
aliasExecuteMsg: false
|
100
|
+
},
|
101
|
+
client: {
|
102
|
+
enabled: true,
|
103
|
+
execExtendsQuery: true,
|
104
|
+
noImplicitOverride: false,
|
105
|
+
},
|
106
|
+
recoil: {
|
107
|
+
enabled: false
|
108
|
+
},
|
109
|
+
messageComposer: {
|
110
|
+
enabled: false
|
111
|
+
},
|
112
|
+
messageBuilder: {
|
113
|
+
enabled: false,
|
114
|
+
},
|
115
|
+
reactQuery: {
|
116
|
+
enabled: false,
|
117
|
+
optionalClient: false,
|
118
|
+
version: 'v3',
|
119
|
+
mutations: false,
|
120
|
+
camelize: true,
|
121
|
+
queryKeys: false
|
122
|
+
}
|
123
123
|
};
|
124
124
|
|
125
125
|
export const getDefinitionSchema = (schemas: JSONSchema[]): JSONSchema => {
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
126
|
+
const aggregateSchema = {
|
127
|
+
definitions: {
|
128
|
+
//
|
129
|
+
}
|
130
|
+
};
|
131
131
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
132
|
+
schemas.forEach(schema => {
|
133
|
+
schema.definitions = schema.definitions || {};
|
134
|
+
aggregateSchema.definitions = {
|
135
|
+
...aggregateSchema.definitions,
|
136
|
+
...schema.definitions
|
137
|
+
};
|
138
|
+
});
|
139
139
|
|
140
|
-
|
140
|
+
return aggregateSchema;
|
141
141
|
};
|
142
142
|
|
143
|
-
export class BuilderContext{
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
}
|
154
|
-
|
155
|
-
this.providers[contractName][type] = {
|
156
|
-
classname,
|
157
|
-
filename,
|
158
|
-
basename: basename(filename, extname(filename))
|
159
|
-
};
|
160
|
-
}
|
161
|
-
getProviderInfos(): {
|
162
|
-
[key: string]: {
|
163
|
-
[key: string]: ProviderInfo;
|
164
|
-
};
|
165
|
-
}{
|
166
|
-
return this.providers;
|
143
|
+
export class BuilderContext {
|
144
|
+
providers: {
|
145
|
+
[key: string]: {
|
146
|
+
[key: string]: ProviderInfo;
|
147
|
+
};
|
148
|
+
} = {};
|
149
|
+
|
150
|
+
addProviderInfo(contractName: string, type: string, classname: string, filename: string): void {
|
151
|
+
if (!this.providers[contractName]) {
|
152
|
+
this.providers[contractName] = {}
|
167
153
|
}
|
154
|
+
|
155
|
+
this.providers[contractName][type] = {
|
156
|
+
classname,
|
157
|
+
filename,
|
158
|
+
basename: basename(filename, extname(filename))
|
159
|
+
};
|
160
|
+
}
|
161
|
+
getProviderInfos(): {
|
162
|
+
[key: string]: {
|
163
|
+
[key: string]: ProviderInfo;
|
164
|
+
};
|
165
|
+
} {
|
166
|
+
return this.providers;
|
167
|
+
}
|
168
168
|
}
|
169
169
|
|
170
170
|
/**
|
@@ -173,56 +173,56 @@ export class BuilderContext{
|
|
173
173
|
* @param TOpt option type
|
174
174
|
*/
|
175
175
|
export abstract class RenderContextBase<TOpt = RenderOptions> implements IRenderContext<TOpt> {
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
176
|
+
builderContext: BuilderContext;
|
177
|
+
contract: ContractInfo;
|
178
|
+
utils: string[] = [];
|
179
|
+
schema: JSONSchema;
|
180
|
+
options: TOpt;
|
181
|
+
|
182
|
+
constructor(
|
183
|
+
contract: ContractInfo,
|
184
|
+
options?: TOpt,
|
185
|
+
builderContext?: BuilderContext
|
186
|
+
) {
|
187
|
+
this.contract = contract;
|
188
|
+
this.schema = getDefinitionSchema(contract.schemas);
|
189
|
+
this.options = this.mergeDefaultOpt(options);
|
190
|
+
this.builderContext = builderContext;
|
191
|
+
}
|
192
|
+
/**
|
193
|
+
* merge options and default options
|
194
|
+
* @param options
|
195
|
+
*/
|
196
|
+
abstract mergeDefaultOpt(options: TOpt): TOpt;
|
197
|
+
refLookup($ref: string) {
|
198
|
+
return refLookup($ref, this.schema)
|
199
|
+
}
|
200
|
+
addUtil(util: string) {
|
201
|
+
this.utils[util] = true;
|
202
|
+
}
|
203
|
+
addProviderInfo(contractName: string, type: string, classname: string, filename: string): void {
|
204
|
+
this.builderContext.addProviderInfo(contractName, type, classname, filename);
|
205
|
+
}
|
206
|
+
getProviderInfos(): {
|
207
|
+
[key: string]: {
|
208
|
+
[key: string]: ProviderInfo;
|
209
|
+
};
|
210
|
+
} {
|
211
|
+
return this.builderContext.providers;
|
212
|
+
}
|
213
|
+
getImports(registeredUtils?: UtilMapping, filepath?: string) {
|
214
|
+
return getImportStatements(
|
215
|
+
convertUtilsToImportList(
|
216
|
+
this,
|
217
|
+
Object.keys(this.utils),
|
218
|
+
registeredUtils,
|
219
|
+
),
|
220
|
+
filepath
|
221
|
+
);
|
222
|
+
}
|
223
223
|
}
|
224
224
|
|
225
|
-
export class RenderContext extends RenderContextBase{
|
225
|
+
export class RenderContext extends RenderContextBase {
|
226
226
|
mergeDefaultOpt(options: RenderOptions): RenderOptions {
|
227
227
|
return deepmerge(defaultOptions, options ?? {});
|
228
228
|
}
|
package/src/index.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2
2
|
|
3
3
|
exports[`execute class 1`] = `
|
4
|
-
"export abstract class
|
4
|
+
"export abstract class SG721MessageBuilder {
|
5
5
|
static transferNft = ({
|
6
6
|
recipient,
|
7
7
|
tokenId
|
@@ -135,7 +135,7 @@ exports[`ownership 1`] = `
|
|
135
135
|
`;
|
136
136
|
|
137
137
|
exports[`query class 1`] = `
|
138
|
-
"export abstract class
|
138
|
+
"export abstract class SG721MessageBuilder {
|
139
139
|
static ownerOf = ({
|
140
140
|
includeExpired,
|
141
141
|
tokenId
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './message-builder';
|
@@ -3,23 +3,22 @@ import query_msg from '../../../../__fixtures__/basic/query_msg.json';
|
|
3
3
|
import ownership from '../../../../__fixtures__/basic/ownership.json';
|
4
4
|
|
5
5
|
import {
|
6
|
-
|
7
|
-
} from './
|
6
|
+
createMessageBuilderClass,
|
7
|
+
} from './message-builder'
|
8
8
|
import { expectCode, makeContext } from '../../test-utils';
|
9
|
-
import { findExecuteMsg } from '@cosmwasm/ts-codegen/src';
|
10
9
|
|
11
10
|
it('execute class', () => {
|
12
|
-
|
13
|
-
|
11
|
+
const ctx = makeContext(execute_msg);
|
12
|
+
expectCode(createMessageBuilderClass(ctx, 'SG721MessageBuilder', execute_msg))
|
14
13
|
});
|
15
14
|
|
16
15
|
|
17
16
|
it('query class', () => {
|
18
17
|
const ctx = makeContext(query_msg);
|
19
|
-
expectCode(
|
18
|
+
expectCode(createMessageBuilderClass(ctx, 'SG721MessageBuilder', query_msg))
|
20
19
|
});
|
21
20
|
|
22
21
|
it('ownership', () => {
|
23
22
|
const ctx = makeContext(ownership);
|
24
|
-
expectCode(
|
23
|
+
expectCode(createMessageBuilderClass(ctx, 'Ownership', ownership))
|
25
24
|
});
|
@@ -5,15 +5,15 @@ import { ExecuteMsg, QueryMsg } from '../types';
|
|
5
5
|
import { createTypedObjectParams } from '../utils/types';
|
6
6
|
import { RenderContext } from '../context';
|
7
7
|
import { getWasmMethodArgs } from '../client/client';
|
8
|
-
import { Expression
|
8
|
+
import { Expression } from '@babel/types';
|
9
9
|
|
10
|
-
export const
|
10
|
+
export const createMessageBuilderClass = (
|
11
11
|
context: RenderContext,
|
12
12
|
className: string,
|
13
13
|
msg: ExecuteMsg | QueryMsg
|
14
14
|
): t.ExportNamedDeclaration => {
|
15
15
|
const staticMethods = getMessageProperties(msg).map((schema) => {
|
16
|
-
return
|
16
|
+
return createStaticExecMethodMessageBuilder(context, schema, msg.title);
|
17
17
|
});
|
18
18
|
|
19
19
|
// const blockStmt = bindings;
|
@@ -50,7 +50,7 @@ function createExtractTypeAnnotation(underscoreName: string, msgTitle: string) {
|
|
50
50
|
);
|
51
51
|
}
|
52
52
|
|
53
|
-
const
|
53
|
+
const createStaticExecMethodMessageBuilder = (
|
54
54
|
context: RenderContext,
|
55
55
|
jsonschema: any,
|
56
56
|
msgTitle: string
|
@@ -82,7 +82,7 @@ const createStaticExecMethodMsgBuilder = (
|
|
82
82
|
param.typeAnnotation.type === 'TSTypeAnnotation' &&
|
83
83
|
param.typeAnnotation.typeAnnotation.type === 'TSTypeLiteral'
|
84
84
|
) {
|
85
|
-
|
85
|
+
param.typeAnnotation = createExtractTypeAnnotation(underscoreName, msgTitle);
|
86
86
|
}
|
87
87
|
|
88
88
|
return t.classProperty(
|
@@ -9,7 +9,7 @@ import {
|
|
9
9
|
createReactQueryMutationHooks,
|
10
10
|
} from './react-query'
|
11
11
|
import { expectCode, makeContext } from '../../test-utils';
|
12
|
-
import {
|
12
|
+
import { createMessageBuilderClass } from '../message-builder';
|
13
13
|
|
14
14
|
const execCtx = makeContext(execute_msg);
|
15
15
|
const queryCtx = makeContext(query_msg);
|
@@ -17,7 +17,7 @@ export interface TSClientOptions {
|
|
17
17
|
export interface MessageComposerOptions {
|
18
18
|
enabled?: boolean;
|
19
19
|
}
|
20
|
-
export interface
|
20
|
+
export interface MessageBuilderOptions {
|
21
21
|
enabled?: boolean;
|
22
22
|
}
|
23
23
|
export interface RecoilOptions {
|
@@ -52,7 +52,7 @@ export interface RenderOptions {
|
|
52
52
|
types?: TSTypesOptions;
|
53
53
|
recoil?: RecoilOptions;
|
54
54
|
messageComposer?: MessageComposerOptions;
|
55
|
-
|
55
|
+
messageBuilder?: MessageBuilderOptions;
|
56
56
|
client?: TSClientOptions;
|
57
57
|
reactQuery?: ReactQueryOptions;
|
58
58
|
}
|
package/types/index.d.ts
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './message-builder';
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import * as t from '@babel/types';
|
2
|
+
import { ExecuteMsg, QueryMsg } from '../types';
|
3
|
+
import { RenderContext } from '../context';
|
4
|
+
export declare const createMessageBuilderClass: (context: RenderContext, className: string, msg: ExecuteMsg | QueryMsg) => t.ExportNamedDeclaration;
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './msg-builder';
|
package/src/msg-builder/index.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from './msg-builder';
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from './msg-builder';
|
@@ -1,4 +0,0 @@
|
|
1
|
-
import * as t from '@babel/types';
|
2
|
-
import { ExecuteMsg, QueryMsg } from '../types';
|
3
|
-
import { RenderContext } from '../context';
|
4
|
-
export declare const createMsgBuilderClass: (context: RenderContext, className: string, msg: ExecuteMsg | QueryMsg) => t.ExportNamedDeclaration;
|