@dedot/codegen 0.0.1-next.59796573.28 → 0.0.1-next.5d366dea.50
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/cjs/generator/ConstsGen.js +3 -3
- package/cjs/generator/ErrorsGen.js +3 -3
- package/cjs/generator/EventsGen.js +3 -3
- package/cjs/generator/IndexGen.js +2 -2
- package/cjs/generator/JsonRpcGen.js +5 -5
- package/cjs/generator/QueryGen.js +3 -3
- package/cjs/generator/RuntimeApisGen.js +6 -6
- package/cjs/generator/TxGen.js +3 -3
- package/cjs/generator/TypeImports.js +11 -9
- package/cjs/generator/TypesGen.js +4 -4
- package/cjs/generator/known-codecs.js +8 -8
- package/cjs/index.js +13 -13
- package/generator/ApiGen.d.ts +3 -3
- package/generator/ConstsGen.d.ts +1 -1
- package/generator/ConstsGen.js +3 -3
- package/generator/ErrorsGen.d.ts +1 -1
- package/generator/ErrorsGen.js +3 -3
- package/generator/EventsGen.d.ts +1 -1
- package/generator/EventsGen.js +3 -3
- package/generator/IndexGen.d.ts +1 -1
- package/generator/IndexGen.js +2 -2
- package/generator/JsonRpcGen.d.ts +1 -1
- package/generator/JsonRpcGen.js +4 -4
- package/generator/QueryGen.d.ts +1 -1
- package/generator/QueryGen.js +3 -3
- package/generator/RuntimeApisGen.d.ts +1 -1
- package/generator/RuntimeApisGen.js +4 -4
- package/generator/TxGen.d.ts +1 -1
- package/generator/TxGen.js +3 -3
- package/generator/TypeImports.d.ts +8 -3
- package/generator/TypeImports.js +11 -9
- package/generator/TypesGen.d.ts +2 -2
- package/generator/TypesGen.js +4 -4
- package/generator/known-codecs.d.ts +2 -2
- package/generator/known-codecs.js +4 -4
- package/index.d.ts +3 -3
- package/index.js +14 -14
- package/package.json +5 -9
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConstsGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const ApiGen_js_1 = require("./ApiGen.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
class ConstsGen extends ApiGen_js_1.ApiGen {
|
|
8
|
-
generate() {
|
|
8
|
+
generate(useSubPaths = false) {
|
|
9
9
|
const { pallets } = this.metadata;
|
|
10
10
|
this.typesGen.clearCache();
|
|
11
11
|
this.typesGen.typeImports.addKnownType('GenericChainConsts', 'RpcVersion');
|
|
@@ -23,7 +23,7 @@ class ConstsGen extends ApiGen_js_1.ApiGen {
|
|
|
23
23
|
${(0, utils_js_1.commentBlock)('Generic pallet constant')}[name: string]: any,
|
|
24
24
|
},`;
|
|
25
25
|
}
|
|
26
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
26
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
27
27
|
const template = (0, utils_js_1.compileTemplate)('consts.hbs');
|
|
28
28
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
|
|
29
29
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorsGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const ApiGen_js_1 = require("./ApiGen.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
class ErrorsGen extends ApiGen_js_1.ApiGen {
|
|
8
|
-
generate() {
|
|
8
|
+
generate(useSubPaths = false) {
|
|
9
9
|
const { pallets } = this.metadata;
|
|
10
10
|
this.typesGen.clearCache();
|
|
11
11
|
this.typesGen.typeImports.addKnownType('GenericChainErrors', 'GenericPalletError', 'RpcVersion');
|
|
@@ -25,7 +25,7 @@ class ErrorsGen extends ApiGen_js_1.ApiGen {
|
|
|
25
25
|
${(0, utils_js_1.commentBlock)('Generic pallet error')}[error: string]: GenericPalletError<Rv>,
|
|
26
26
|
},`;
|
|
27
27
|
}
|
|
28
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
28
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
29
29
|
const template = (0, utils_js_1.compileTemplate)('errors.hbs');
|
|
30
30
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
|
|
31
31
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventsGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const ApiGen_js_1 = require("./ApiGen.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
class EventsGen extends ApiGen_js_1.ApiGen {
|
|
8
|
-
generate() {
|
|
8
|
+
generate(useSubPaths = false) {
|
|
9
9
|
const { pallets } = this.metadata;
|
|
10
10
|
this.typesGen.clearCache();
|
|
11
11
|
this.typesGen.typeImports.addKnownType('GenericChainEvents', 'GenericPalletEvent', 'RpcVersion');
|
|
@@ -37,7 +37,7 @@ class EventsGen extends ApiGen_js_1.ApiGen {
|
|
|
37
37
|
${(0, utils_js_1.commentBlock)('Generic pallet event')}[prop: string]: GenericPalletEvent<Rv>,
|
|
38
38
|
},`;
|
|
39
39
|
}
|
|
40
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
40
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
41
41
|
const template = (0, utils_js_1.compileTemplate)('events.hbs');
|
|
42
42
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
|
|
43
43
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IndexGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const utils_js_1 = require("./utils.js");
|
|
6
6
|
class IndexGen {
|
|
7
7
|
chain;
|
|
8
8
|
constructor(chain) {
|
|
9
9
|
this.chain = chain;
|
|
10
10
|
}
|
|
11
|
-
async generate() {
|
|
11
|
+
async generate(useSubPaths = false) {
|
|
12
12
|
const interfaceName = (0, utils_1.stringPascalCase)(this.chain);
|
|
13
13
|
const template = (0, utils_js_1.compileTemplate)('index.hbs');
|
|
14
14
|
return (0, utils_js_1.beautifySourceCode)(template({ interfaceName }));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JsonRpcGen = void 0;
|
|
4
|
-
const
|
|
4
|
+
const dedot_1 = require("dedot");
|
|
5
5
|
const index_js_1 = require("../generator/index.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
const HIDDEN_RPCS = [
|
|
@@ -41,12 +41,12 @@ class JsonRpcGen extends index_js_1.ApiGen {
|
|
|
41
41
|
HIDDEN_RPCS.filter((one) => !rpcMethods.includes(one)).forEach((one) => rpcMethods.push(one));
|
|
42
42
|
rpcMethods.sort();
|
|
43
43
|
}
|
|
44
|
-
generate() {
|
|
44
|
+
generate(useSubPaths = false) {
|
|
45
45
|
this.typesGen.clearCache();
|
|
46
46
|
this.typesGen.typeImports.addKnownType('GenericJsonRpcApis', 'RpcVersion');
|
|
47
|
-
this.typesGen.typeImports.
|
|
48
|
-
const toExclude = Object.values(
|
|
49
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
47
|
+
this.typesGen.typeImports.addKnownJsonRpcType('JsonRpcApis');
|
|
48
|
+
const toExclude = Object.values(dedot_1.subscriptionsInfo).flat();
|
|
49
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
50
50
|
const template = (0, utils_js_1.compileTemplate)('json-rpc.hbs');
|
|
51
51
|
const jsonRpcMethods = this.rpcMethods
|
|
52
52
|
.filter((one) => !ALIAS_RPCS.includes(one)) // exclude alias rpcs
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.QueryGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const ApiGen_js_1 = require("./ApiGen.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
class QueryGen extends ApiGen_js_1.ApiGen {
|
|
8
|
-
generate() {
|
|
8
|
+
generate(useSubPaths = false) {
|
|
9
9
|
const { pallets } = this.metadata;
|
|
10
10
|
this.typesGen.clearCache();
|
|
11
11
|
this.typesGen.typeImports.addKnownType('GenericChainStorage', 'GenericStorageQuery', 'Callback', 'RpcVersion');
|
|
@@ -30,7 +30,7 @@ class QueryGen extends ApiGen_js_1.ApiGen {
|
|
|
30
30
|
${(0, utils_js_1.commentBlock)('Generic pallet storage query')}[storage: string]: GenericStorageQuery<Rv>;
|
|
31
31
|
},`;
|
|
32
32
|
}
|
|
33
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
33
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
34
34
|
const template = (0, utils_js_1.compileTemplate)('query.hbs');
|
|
35
35
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
|
|
36
36
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RuntimeApisGen = void 0;
|
|
4
|
-
const
|
|
5
|
-
const utils_1 = require("
|
|
4
|
+
const runtime_specs_1 = require("dedot/runtime-specs");
|
|
5
|
+
const utils_1 = require("dedot/utils");
|
|
6
6
|
const ApiGen_js_1 = require("./ApiGen.js");
|
|
7
7
|
const known_codecs_js_1 = require("./known-codecs.js");
|
|
8
8
|
const utils_js_1 = require("./utils.js");
|
|
@@ -14,7 +14,7 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
|
|
|
14
14
|
this.typesGen = typesGen;
|
|
15
15
|
this.runtimeApis = runtimeApis;
|
|
16
16
|
}
|
|
17
|
-
generate() {
|
|
17
|
+
generate(useSubPaths = false) {
|
|
18
18
|
this.typesGen.clearCache();
|
|
19
19
|
this.typesGen.typeImports.addKnownType('GenericRuntimeApis', 'GenericRuntimeApiMethod', 'RpcVersion');
|
|
20
20
|
let runtimeCallsOut = '';
|
|
@@ -46,7 +46,7 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
|
|
|
46
46
|
}`;
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
49
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
50
50
|
const template = (0, utils_js_1.compileTemplate)('runtime.hbs');
|
|
51
51
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, runtimeCallsOut }));
|
|
52
52
|
}
|
|
@@ -112,8 +112,8 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
|
|
|
112
112
|
}, []);
|
|
113
113
|
}
|
|
114
114
|
#findRuntimeApiSpec = (runtimeApiHash, version) => {
|
|
115
|
-
const runtimeApiName = (0,
|
|
116
|
-
return (0,
|
|
115
|
+
const runtimeApiName = (0, runtime_specs_1.getRuntimeApiNames)().find((one) => (0, utils_1.calcRuntimeApiHash)(one) === runtimeApiHash);
|
|
116
|
+
return (0, runtime_specs_1.getRuntimeApiSpecs)().find((one) => one.runtimeApiName === runtimeApiName && one.version === version);
|
|
117
117
|
};
|
|
118
118
|
// TODO check typeIn, typeOut if param type, or rpc type isScale
|
|
119
119
|
#addTypeImport(type, toTypeIn = true) {
|
package/cjs/generator/TxGen.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TxGen = void 0;
|
|
4
|
-
const utils_1 = require("
|
|
4
|
+
const utils_1 = require("dedot/utils");
|
|
5
5
|
const index_js_1 = require("../generator/index.js");
|
|
6
6
|
const utils_js_1 = require("./utils.js");
|
|
7
7
|
class TxGen extends index_js_1.ApiGen {
|
|
8
|
-
generate() {
|
|
8
|
+
generate(useSubPaths = false) {
|
|
9
9
|
const { pallets, types } = this.metadata;
|
|
10
10
|
this.typesGen.clearCache();
|
|
11
11
|
this.typesGen.typeImports.addKnownType('GenericChainTx', 'GenericTxCall', 'ISubmittableExtrinsic', 'ISubmittableResult', 'IRuntimeTxCall', 'RpcVersion', 'RpcV2', 'ISubmittableExtrinsicLegacy', 'TransactionStatusLegacy', 'TransactionStatusV2');
|
|
@@ -50,7 +50,7 @@ class TxGen extends index_js_1.ApiGen {
|
|
|
50
50
|
${(0, utils_js_1.commentBlock)('Generic pallet tx call')}[callName: string]: GenericTxCall<Rv, TxCall<Rv>>,
|
|
51
51
|
},`;
|
|
52
52
|
}
|
|
53
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
53
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
54
54
|
// TODO make explicit separate type for Extra
|
|
55
55
|
const defTypes = `
|
|
56
56
|
export type ChainSubmittableExtrinsic<Rv extends RpcVersion, T extends IRuntimeTxCall = ${callTypeIn}> =
|
|
@@ -8,29 +8,31 @@ class TypeImports {
|
|
|
8
8
|
codecTypes;
|
|
9
9
|
// Known types that're not codecs or chain/portable types defined in @dedot/types
|
|
10
10
|
knownTypes;
|
|
11
|
-
|
|
11
|
+
knownJsonRpcTypes;
|
|
12
12
|
// External types to define explicitly
|
|
13
13
|
outTypes;
|
|
14
14
|
constructor() {
|
|
15
15
|
this.portableTypes = new Set();
|
|
16
16
|
this.codecTypes = new Set();
|
|
17
17
|
this.knownTypes = new Set();
|
|
18
|
-
this.
|
|
18
|
+
this.knownJsonRpcTypes = new Set();
|
|
19
19
|
this.outTypes = new Set();
|
|
20
20
|
}
|
|
21
21
|
clear() {
|
|
22
22
|
this.portableTypes.clear();
|
|
23
23
|
this.codecTypes.clear();
|
|
24
24
|
this.knownTypes.clear();
|
|
25
|
-
this.
|
|
25
|
+
this.knownJsonRpcTypes.clear();
|
|
26
26
|
this.outTypes.clear();
|
|
27
27
|
}
|
|
28
|
-
toImports(
|
|
28
|
+
toImports(config) {
|
|
29
|
+
const { excludeModules = [], useSubPaths = false } = config || {};
|
|
29
30
|
// TODO generate outTypes!
|
|
31
|
+
const prefix = useSubPaths ? '' : '@';
|
|
30
32
|
const toImports = [
|
|
31
|
-
[this.knownTypes,
|
|
32
|
-
[this.
|
|
33
|
-
[this.codecTypes,
|
|
33
|
+
[this.knownTypes, `${prefix}dedot/types`],
|
|
34
|
+
[this.knownJsonRpcTypes, `${prefix}dedot/types/json-rpc`],
|
|
35
|
+
[this.codecTypes, `${prefix}dedot/codecs`],
|
|
34
36
|
[this.portableTypes, './types'],
|
|
35
37
|
];
|
|
36
38
|
return toImports
|
|
@@ -54,8 +56,8 @@ class TypeImports {
|
|
|
54
56
|
addKnownType(...types) {
|
|
55
57
|
types.forEach((one) => this.knownTypes.add(one));
|
|
56
58
|
}
|
|
57
|
-
|
|
58
|
-
types.forEach((one) => this.
|
|
59
|
+
addKnownJsonRpcType(...types) {
|
|
60
|
+
types.forEach((one) => this.knownJsonRpcTypes.add(one));
|
|
59
61
|
}
|
|
60
62
|
addOutType(...types) {
|
|
61
63
|
types.forEach((one) => this.outTypes.add(one));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TypesGen = exports.BASIC_KNOWN_TYPES = void 0;
|
|
4
|
-
const codecs_1 = require("
|
|
5
|
-
const utils_1 = require("
|
|
4
|
+
const codecs_1 = require("dedot/codecs");
|
|
5
|
+
const utils_1 = require("dedot/utils");
|
|
6
6
|
const TypeImports_js_1 = require("./TypeImports.js");
|
|
7
7
|
const known_codecs_js_1 = require("./known-codecs.js");
|
|
8
8
|
const utils_js_1 = require("./utils.js");
|
|
@@ -43,7 +43,7 @@ class TypesGen {
|
|
|
43
43
|
this.includedTypes = this.#includedTypes();
|
|
44
44
|
this.typeImports = new TypeImports_js_1.TypeImports();
|
|
45
45
|
}
|
|
46
|
-
generate() {
|
|
46
|
+
generate(useSubPaths = false) {
|
|
47
47
|
this.clearCache();
|
|
48
48
|
let defTypeOut = '';
|
|
49
49
|
Object.values(this.includedTypes)
|
|
@@ -54,7 +54,7 @@ class TypesGen {
|
|
|
54
54
|
defTypeOut += `export type ${name} = ${this.generateType(id)};\n\n`;
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
|
-
const importTypes = this.typeImports.toImports('./types');
|
|
57
|
+
const importTypes = this.typeImports.toImports({ useSubPaths, excludeModules: ['./types'] });
|
|
58
58
|
const template = (0, utils_js_1.compileTemplate)('types.hbs');
|
|
59
59
|
return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
|
|
60
60
|
}
|
|
@@ -24,10 +24,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.isKnownCodecType = exports.findKnownWrapperCodec = exports.findKnownCodec = exports.findKnownCodecType = exports.looseTypeCodecs = exports.normalizeCodecName = void 0;
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const utils_1 = require("
|
|
27
|
+
const dedot_1 = require("dedot");
|
|
28
|
+
const Codecs = __importStar(require("dedot/codecs"));
|
|
29
|
+
const codecs_1 = require("dedot/codecs");
|
|
30
|
+
const utils_1 = require("dedot/utils");
|
|
31
31
|
const normalizeCodecName = (name) => {
|
|
32
32
|
return name.startsWith('$') ? name : `$${name}`;
|
|
33
33
|
};
|
|
@@ -96,7 +96,7 @@ function findKnownCodecType(name) {
|
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
const $codec = findKnownCodec(name);
|
|
99
|
-
if ($codec.nativeType &&
|
|
99
|
+
if ($codec.nativeType && dedot_1.$[name]) {
|
|
100
100
|
return {
|
|
101
101
|
name: normalizedName,
|
|
102
102
|
$codec,
|
|
@@ -114,7 +114,7 @@ function findKnownCodecType(name) {
|
|
|
114
114
|
exports.findKnownCodecType = findKnownCodecType;
|
|
115
115
|
function findKnownCodec(typeName) {
|
|
116
116
|
// @ts-ignore
|
|
117
|
-
const $codec = findKnownWrapperCodec(typeName) || Codecs[(0, exports.normalizeCodecName)(typeName)] ||
|
|
117
|
+
const $codec = findKnownWrapperCodec(typeName) || Codecs[(0, exports.normalizeCodecName)(typeName)] || dedot_1.$[typeName];
|
|
118
118
|
(0, utils_1.assert)($codec, `Known codec not found - ${typeName}`);
|
|
119
119
|
return $codec;
|
|
120
120
|
}
|
|
@@ -125,7 +125,7 @@ function findKnownWrapperCodec(typeName) {
|
|
|
125
125
|
const [_, wrapper, inner] = matchNames;
|
|
126
126
|
if (KNOWN_WRAPPER_TYPES.includes(wrapper)) {
|
|
127
127
|
// @ts-ignore
|
|
128
|
-
const $Wrapper =
|
|
128
|
+
const $Wrapper = dedot_1.$[wrapper];
|
|
129
129
|
if (inner.match(TUPLE_TYPE_REGEX) || inner.match(WRAPPER_TYPE_REGEX)) {
|
|
130
130
|
return $Wrapper(findKnownWrapperCodec(inner));
|
|
131
131
|
}
|
|
@@ -140,7 +140,7 @@ function findKnownWrapperCodec(typeName) {
|
|
|
140
140
|
.split(',')
|
|
141
141
|
.filter((x) => x)
|
|
142
142
|
.map((one) => findKnownCodec(one.trim()));
|
|
143
|
-
return
|
|
143
|
+
return dedot_1.$.Tuple(...$inner);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
exports.findKnownWrapperCodec = findKnownWrapperCodec;
|
package/cjs/index.js
CHANGED
|
@@ -24,23 +24,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.generateTypes = exports.generateTypesFromEndpoint = void 0;
|
|
27
|
-
const utils_1 = require("@dedot/utils");
|
|
28
27
|
const dedot_1 = require("dedot");
|
|
28
|
+
const utils_1 = require("dedot/utils");
|
|
29
29
|
const fs = __importStar(require("fs"));
|
|
30
30
|
const path = __importStar(require("path"));
|
|
31
31
|
const index_js_1 = require("./generator/index.js");
|
|
32
|
-
async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts') {
|
|
32
|
+
async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts', useSubPaths = false) {
|
|
33
33
|
const api = await dedot_1.Dedot.new(new dedot_1.WsProvider(endpoint));
|
|
34
34
|
const { methods } = await api.rpc.rpc_methods();
|
|
35
35
|
const apis = api.runtimeVersion.apis || {};
|
|
36
36
|
if (!chain) {
|
|
37
37
|
chain = (0, utils_1.stringCamelCase)(api.runtimeVersion.specName || 'local');
|
|
38
38
|
}
|
|
39
|
-
await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension);
|
|
39
|
+
await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension, useSubPaths);
|
|
40
40
|
await api.disconnect();
|
|
41
41
|
}
|
|
42
42
|
exports.generateTypesFromEndpoint = generateTypesFromEndpoint;
|
|
43
|
-
async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts') {
|
|
43
|
+
async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts', useSubPaths = false) {
|
|
44
44
|
const dirPath = path.resolve(outDir, chain);
|
|
45
45
|
const defTypesFileName = path.join(dirPath, `types.${extension}`);
|
|
46
46
|
const constsTypesFileName = path.join(dirPath, `consts.${extension}`);
|
|
@@ -63,14 +63,14 @@ async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir =
|
|
|
63
63
|
const eventsGen = new index_js_1.EventsGen(typesGen);
|
|
64
64
|
const runtimeApisGen = new index_js_1.RuntimeApisGen(typesGen, runtimeApis);
|
|
65
65
|
const txGen = new index_js_1.TxGen(typesGen);
|
|
66
|
-
fs.writeFileSync(defTypesFileName, await typesGen.generate());
|
|
67
|
-
fs.writeFileSync(errorsFileName, await errorsGen.generate());
|
|
68
|
-
fs.writeFileSync(eventsFileName, await eventsGen.generate());
|
|
69
|
-
fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate());
|
|
70
|
-
fs.writeFileSync(queryTypesFileName, await queryGen.generate());
|
|
71
|
-
fs.writeFileSync(constsTypesFileName, await constsGen.generate());
|
|
72
|
-
fs.writeFileSync(txFileName, await txGen.generate());
|
|
73
|
-
fs.writeFileSync(indexFileName, await indexGen.generate());
|
|
74
|
-
fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate());
|
|
66
|
+
fs.writeFileSync(defTypesFileName, await typesGen.generate(useSubPaths));
|
|
67
|
+
fs.writeFileSync(errorsFileName, await errorsGen.generate(useSubPaths));
|
|
68
|
+
fs.writeFileSync(eventsFileName, await eventsGen.generate(useSubPaths));
|
|
69
|
+
fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate(useSubPaths));
|
|
70
|
+
fs.writeFileSync(queryTypesFileName, await queryGen.generate(useSubPaths));
|
|
71
|
+
fs.writeFileSync(constsTypesFileName, await constsGen.generate(useSubPaths));
|
|
72
|
+
fs.writeFileSync(txFileName, await txGen.generate(useSubPaths));
|
|
73
|
+
fs.writeFileSync(indexFileName, await indexGen.generate(useSubPaths));
|
|
74
|
+
fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate(useSubPaths));
|
|
75
75
|
}
|
|
76
76
|
exports.generateTypes = generateTypes;
|
package/generator/ApiGen.d.ts
CHANGED
|
@@ -13,14 +13,14 @@ export declare abstract class ApiGen {
|
|
|
13
13
|
type: {
|
|
14
14
|
tag: "Struct";
|
|
15
15
|
value: {
|
|
16
|
-
fields: import("dedot").Field[];
|
|
16
|
+
fields: import("@dedot/codecs").Field[];
|
|
17
17
|
};
|
|
18
18
|
} | {
|
|
19
19
|
tag: "Enum";
|
|
20
20
|
value: {
|
|
21
21
|
members: {
|
|
22
22
|
name: string;
|
|
23
|
-
fields: import("dedot").Field[];
|
|
23
|
+
fields: import("@dedot/codecs").Field[];
|
|
24
24
|
index: number;
|
|
25
25
|
docs: string[];
|
|
26
26
|
}[];
|
|
@@ -134,5 +134,5 @@ export declare abstract class ApiGen {
|
|
|
134
134
|
}>;
|
|
135
135
|
};
|
|
136
136
|
};
|
|
137
|
-
get registry(): import("dedot").PortableRegistry;
|
|
137
|
+
get registry(): import("@dedot/codecs").PortableRegistry;
|
|
138
138
|
}
|
package/generator/ConstsGen.d.ts
CHANGED
package/generator/ConstsGen.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { normalizeName, stringCamelCase } from '
|
|
1
|
+
import { normalizeName, stringCamelCase } from 'dedot/utils';
|
|
2
2
|
import { ApiGen } from './ApiGen.js';
|
|
3
3
|
import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
|
|
4
4
|
export class ConstsGen extends ApiGen {
|
|
5
|
-
generate() {
|
|
5
|
+
generate(useSubPaths = false) {
|
|
6
6
|
const { pallets } = this.metadata;
|
|
7
7
|
this.typesGen.clearCache();
|
|
8
8
|
this.typesGen.typeImports.addKnownType('GenericChainConsts', 'RpcVersion');
|
|
@@ -20,7 +20,7 @@ export class ConstsGen extends ApiGen {
|
|
|
20
20
|
${commentBlock('Generic pallet constant')}[name: string]: any,
|
|
21
21
|
},`;
|
|
22
22
|
}
|
|
23
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
23
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
24
24
|
const template = compileTemplate('consts.hbs');
|
|
25
25
|
return beautifySourceCode(template({ importTypes, defTypeOut }));
|
|
26
26
|
}
|
package/generator/ErrorsGen.d.ts
CHANGED
package/generator/ErrorsGen.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { assert, stringCamelCase, stringPascalCase } from '
|
|
1
|
+
import { assert, stringCamelCase, stringPascalCase } from 'dedot/utils';
|
|
2
2
|
import { ApiGen } from './ApiGen.js';
|
|
3
3
|
import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
|
|
4
4
|
export class ErrorsGen extends ApiGen {
|
|
5
|
-
generate() {
|
|
5
|
+
generate(useSubPaths = false) {
|
|
6
6
|
const { pallets } = this.metadata;
|
|
7
7
|
this.typesGen.clearCache();
|
|
8
8
|
this.typesGen.typeImports.addKnownType('GenericChainErrors', 'GenericPalletError', 'RpcVersion');
|
|
@@ -22,7 +22,7 @@ export class ErrorsGen extends ApiGen {
|
|
|
22
22
|
${commentBlock('Generic pallet error')}[error: string]: GenericPalletError<Rv>,
|
|
23
23
|
},`;
|
|
24
24
|
}
|
|
25
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
25
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
26
26
|
const template = compileTemplate('errors.hbs');
|
|
27
27
|
return beautifySourceCode(template({ importTypes, defTypeOut }));
|
|
28
28
|
}
|
package/generator/EventsGen.d.ts
CHANGED
package/generator/EventsGen.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { assert, stringCamelCase, stringPascalCase } from '
|
|
1
|
+
import { assert, stringCamelCase, stringPascalCase } from 'dedot/utils';
|
|
2
2
|
import { ApiGen } from './ApiGen.js';
|
|
3
3
|
import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
|
|
4
4
|
export class EventsGen extends ApiGen {
|
|
5
|
-
generate() {
|
|
5
|
+
generate(useSubPaths = false) {
|
|
6
6
|
const { pallets } = this.metadata;
|
|
7
7
|
this.typesGen.clearCache();
|
|
8
8
|
this.typesGen.typeImports.addKnownType('GenericChainEvents', 'GenericPalletEvent', 'RpcVersion');
|
|
@@ -34,7 +34,7 @@ export class EventsGen extends ApiGen {
|
|
|
34
34
|
${commentBlock('Generic pallet event')}[prop: string]: GenericPalletEvent<Rv>,
|
|
35
35
|
},`;
|
|
36
36
|
}
|
|
37
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
37
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
38
38
|
const template = compileTemplate('events.hbs');
|
|
39
39
|
return beautifySourceCode(template({ importTypes, defTypeOut }));
|
|
40
40
|
}
|
package/generator/IndexGen.d.ts
CHANGED
package/generator/IndexGen.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { stringPascalCase } from '
|
|
1
|
+
import { stringPascalCase } from 'dedot/utils';
|
|
2
2
|
import { beautifySourceCode, compileTemplate } from './utils.js';
|
|
3
3
|
export class IndexGen {
|
|
4
4
|
chain;
|
|
5
5
|
constructor(chain) {
|
|
6
6
|
this.chain = chain;
|
|
7
7
|
}
|
|
8
|
-
async generate() {
|
|
8
|
+
async generate(useSubPaths = false) {
|
|
9
9
|
const interfaceName = stringPascalCase(this.chain);
|
|
10
10
|
const template = compileTemplate('index.hbs');
|
|
11
11
|
return beautifySourceCode(template({ interfaceName }));
|
package/generator/JsonRpcGen.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { subscriptionsInfo } from '
|
|
1
|
+
import { subscriptionsInfo } from 'dedot';
|
|
2
2
|
import { ApiGen } from '../generator/index.js';
|
|
3
3
|
import { beautifySourceCode, compileTemplate } from './utils.js';
|
|
4
4
|
const HIDDEN_RPCS = [
|
|
@@ -38,12 +38,12 @@ export class JsonRpcGen extends ApiGen {
|
|
|
38
38
|
HIDDEN_RPCS.filter((one) => !rpcMethods.includes(one)).forEach((one) => rpcMethods.push(one));
|
|
39
39
|
rpcMethods.sort();
|
|
40
40
|
}
|
|
41
|
-
generate() {
|
|
41
|
+
generate(useSubPaths = false) {
|
|
42
42
|
this.typesGen.clearCache();
|
|
43
43
|
this.typesGen.typeImports.addKnownType('GenericJsonRpcApis', 'RpcVersion');
|
|
44
|
-
this.typesGen.typeImports.
|
|
44
|
+
this.typesGen.typeImports.addKnownJsonRpcType('JsonRpcApis');
|
|
45
45
|
const toExclude = Object.values(subscriptionsInfo).flat();
|
|
46
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
46
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
47
47
|
const template = compileTemplate('json-rpc.hbs');
|
|
48
48
|
const jsonRpcMethods = this.rpcMethods
|
|
49
49
|
.filter((one) => !ALIAS_RPCS.includes(one)) // exclude alias rpcs
|
package/generator/QueryGen.d.ts
CHANGED
package/generator/QueryGen.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { normalizeName, stringCamelCase } from '
|
|
1
|
+
import { normalizeName, stringCamelCase } from 'dedot/utils';
|
|
2
2
|
import { ApiGen } from './ApiGen.js';
|
|
3
3
|
import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
|
|
4
4
|
export class QueryGen extends ApiGen {
|
|
5
|
-
generate() {
|
|
5
|
+
generate(useSubPaths = false) {
|
|
6
6
|
const { pallets } = this.metadata;
|
|
7
7
|
this.typesGen.clearCache();
|
|
8
8
|
this.typesGen.typeImports.addKnownType('GenericChainStorage', 'GenericStorageQuery', 'Callback', 'RpcVersion');
|
|
@@ -27,7 +27,7 @@ export class QueryGen extends ApiGen {
|
|
|
27
27
|
${commentBlock('Generic pallet storage query')}[storage: string]: GenericStorageQuery<Rv>;
|
|
28
28
|
},`;
|
|
29
29
|
}
|
|
30
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
30
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
31
31
|
const template = compileTemplate('query.hbs');
|
|
32
32
|
return beautifySourceCode(template({ importTypes, defTypeOut }));
|
|
33
33
|
}
|
|
@@ -5,5 +5,5 @@ export declare class RuntimeApisGen extends ApiGen {
|
|
|
5
5
|
readonly typesGen: TypesGen;
|
|
6
6
|
readonly runtimeApis: Record<string, number>;
|
|
7
7
|
constructor(typesGen: TypesGen, runtimeApis: Record<string, number>);
|
|
8
|
-
generate(): Promise<string>;
|
|
8
|
+
generate(useSubPaths?: boolean): Promise<string>;
|
|
9
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getRuntimeApiNames, getRuntimeApiSpecs } from '
|
|
2
|
-
import { calcRuntimeApiHash, stringSnakeCase, stringCamelCase } from '
|
|
1
|
+
import { getRuntimeApiNames, getRuntimeApiSpecs } from 'dedot/runtime-specs';
|
|
2
|
+
import { calcRuntimeApiHash, stringSnakeCase, stringCamelCase } from 'dedot/utils';
|
|
3
3
|
import { ApiGen } from './ApiGen.js';
|
|
4
4
|
import { findKnownCodecType } from './known-codecs.js';
|
|
5
5
|
import { beautifySourceCode, commentBlock, compileTemplate, isNativeType, TUPLE_TYPE_REGEX, WRAPPER_TYPE_REGEX, } from './utils.js';
|
|
@@ -11,7 +11,7 @@ export class RuntimeApisGen extends ApiGen {
|
|
|
11
11
|
this.typesGen = typesGen;
|
|
12
12
|
this.runtimeApis = runtimeApis;
|
|
13
13
|
}
|
|
14
|
-
generate() {
|
|
14
|
+
generate(useSubPaths = false) {
|
|
15
15
|
this.typesGen.clearCache();
|
|
16
16
|
this.typesGen.typeImports.addKnownType('GenericRuntimeApis', 'GenericRuntimeApiMethod', 'RpcVersion');
|
|
17
17
|
let runtimeCallsOut = '';
|
|
@@ -43,7 +43,7 @@ export class RuntimeApisGen extends ApiGen {
|
|
|
43
43
|
}`;
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
46
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
47
47
|
const template = compileTemplate('runtime.hbs');
|
|
48
48
|
return beautifySourceCode(template({ importTypes, runtimeCallsOut }));
|
|
49
49
|
}
|
package/generator/TxGen.d.ts
CHANGED
package/generator/TxGen.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { stringCamelCase, stringPascalCase } from '
|
|
1
|
+
import { stringCamelCase, stringPascalCase } from 'dedot/utils';
|
|
2
2
|
import { ApiGen } from '../generator/index.js';
|
|
3
3
|
import { beautifySourceCode, commentBlock, compileTemplate, isReservedWord } from './utils.js';
|
|
4
4
|
export class TxGen extends ApiGen {
|
|
5
|
-
generate() {
|
|
5
|
+
generate(useSubPaths = false) {
|
|
6
6
|
const { pallets, types } = this.metadata;
|
|
7
7
|
this.typesGen.clearCache();
|
|
8
8
|
this.typesGen.typeImports.addKnownType('GenericChainTx', 'GenericTxCall', 'ISubmittableExtrinsic', 'ISubmittableResult', 'IRuntimeTxCall', 'RpcVersion', 'RpcV2', 'ISubmittableExtrinsicLegacy', 'TransactionStatusLegacy', 'TransactionStatusV2');
|
|
@@ -47,7 +47,7 @@ export class TxGen extends ApiGen {
|
|
|
47
47
|
${commentBlock('Generic pallet tx call')}[callName: string]: GenericTxCall<Rv, TxCall<Rv>>,
|
|
48
48
|
},`;
|
|
49
49
|
}
|
|
50
|
-
const importTypes = this.typesGen.typeImports.toImports();
|
|
50
|
+
const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
|
|
51
51
|
// TODO make explicit separate type for Extra
|
|
52
52
|
const defTypes = `
|
|
53
53
|
export type ChainSubmittableExtrinsic<Rv extends RpcVersion, T extends IRuntimeTxCall = ${callTypeIn}> =
|
|
@@ -1,16 +1,21 @@
|
|
|
1
|
+
type ImportConfig = {
|
|
2
|
+
excludeModules?: string[];
|
|
3
|
+
useSubPaths?: boolean;
|
|
4
|
+
};
|
|
1
5
|
export declare class TypeImports {
|
|
2
6
|
#private;
|
|
3
7
|
portableTypes: Set<string>;
|
|
4
8
|
codecTypes: Set<string>;
|
|
5
9
|
knownTypes: Set<string>;
|
|
6
|
-
|
|
10
|
+
knownJsonRpcTypes: Set<string>;
|
|
7
11
|
outTypes: Set<string>;
|
|
8
12
|
constructor();
|
|
9
13
|
clear(): void;
|
|
10
|
-
toImports(
|
|
14
|
+
toImports(config?: ImportConfig): string;
|
|
11
15
|
addPortableType(...types: string[]): void;
|
|
12
16
|
addCodecType(...types: string[]): void;
|
|
13
17
|
addKnownType(...types: string[]): void;
|
|
14
|
-
|
|
18
|
+
addKnownJsonRpcType(...types: string[]): void;
|
|
15
19
|
addOutType(...types: string[]): void;
|
|
16
20
|
}
|
|
21
|
+
export {};
|
package/generator/TypeImports.js
CHANGED
|
@@ -5,29 +5,31 @@ export class TypeImports {
|
|
|
5
5
|
codecTypes;
|
|
6
6
|
// Known types that're not codecs or chain/portable types defined in @dedot/types
|
|
7
7
|
knownTypes;
|
|
8
|
-
|
|
8
|
+
knownJsonRpcTypes;
|
|
9
9
|
// External types to define explicitly
|
|
10
10
|
outTypes;
|
|
11
11
|
constructor() {
|
|
12
12
|
this.portableTypes = new Set();
|
|
13
13
|
this.codecTypes = new Set();
|
|
14
14
|
this.knownTypes = new Set();
|
|
15
|
-
this.
|
|
15
|
+
this.knownJsonRpcTypes = new Set();
|
|
16
16
|
this.outTypes = new Set();
|
|
17
17
|
}
|
|
18
18
|
clear() {
|
|
19
19
|
this.portableTypes.clear();
|
|
20
20
|
this.codecTypes.clear();
|
|
21
21
|
this.knownTypes.clear();
|
|
22
|
-
this.
|
|
22
|
+
this.knownJsonRpcTypes.clear();
|
|
23
23
|
this.outTypes.clear();
|
|
24
24
|
}
|
|
25
|
-
toImports(
|
|
25
|
+
toImports(config) {
|
|
26
|
+
const { excludeModules = [], useSubPaths = false } = config || {};
|
|
26
27
|
// TODO generate outTypes!
|
|
28
|
+
const prefix = useSubPaths ? '' : '@';
|
|
27
29
|
const toImports = [
|
|
28
|
-
[this.knownTypes,
|
|
29
|
-
[this.
|
|
30
|
-
[this.codecTypes,
|
|
30
|
+
[this.knownTypes, `${prefix}dedot/types`],
|
|
31
|
+
[this.knownJsonRpcTypes, `${prefix}dedot/types/json-rpc`],
|
|
32
|
+
[this.codecTypes, `${prefix}dedot/codecs`],
|
|
31
33
|
[this.portableTypes, './types'],
|
|
32
34
|
];
|
|
33
35
|
return toImports
|
|
@@ -51,8 +53,8 @@ export class TypeImports {
|
|
|
51
53
|
addKnownType(...types) {
|
|
52
54
|
types.forEach((one) => this.knownTypes.add(one));
|
|
53
55
|
}
|
|
54
|
-
|
|
55
|
-
types.forEach((one) => this.
|
|
56
|
+
addKnownJsonRpcType(...types) {
|
|
57
|
+
types.forEach((one) => this.knownJsonRpcTypes.add(one));
|
|
56
58
|
}
|
|
57
59
|
addOutType(...types) {
|
|
58
60
|
types.forEach((one) => this.outTypes.add(one));
|
package/generator/TypesGen.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field, MetadataLatest, PortableRegistry, PortableType, TypeId } from '
|
|
1
|
+
import { Field, MetadataLatest, PortableRegistry, PortableType, TypeId } from 'dedot/codecs';
|
|
2
2
|
import { TypeImports } from './TypeImports.js';
|
|
3
3
|
interface NamedType extends PortableType {
|
|
4
4
|
name: string;
|
|
@@ -18,7 +18,7 @@ export declare class TypesGen {
|
|
|
18
18
|
registry: PortableRegistry;
|
|
19
19
|
typeImports: TypeImports;
|
|
20
20
|
constructor(metadata: MetadataLatest);
|
|
21
|
-
generate(): Promise<string>;
|
|
21
|
+
generate(useSubPaths?: boolean): Promise<string>;
|
|
22
22
|
typeCache: Record<string, string>;
|
|
23
23
|
clearCache(): void;
|
|
24
24
|
generateType(typeId: TypeId, nestedLevel?: number, typeOut?: boolean): string;
|
package/generator/TypesGen.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PortableRegistry } from '
|
|
2
|
-
import { normalizeName, stringPascalCase } from '
|
|
1
|
+
import { PortableRegistry } from 'dedot/codecs';
|
|
2
|
+
import { normalizeName, stringPascalCase } from 'dedot/utils';
|
|
3
3
|
import { TypeImports } from './TypeImports.js';
|
|
4
4
|
import { findKnownCodec, findKnownCodecType, isKnownCodecType } from './known-codecs.js';
|
|
5
5
|
import { beautifySourceCode, commentBlock, compileTemplate, isNativeType } from './utils.js';
|
|
@@ -40,7 +40,7 @@ export class TypesGen {
|
|
|
40
40
|
this.includedTypes = this.#includedTypes();
|
|
41
41
|
this.typeImports = new TypeImports();
|
|
42
42
|
}
|
|
43
|
-
generate() {
|
|
43
|
+
generate(useSubPaths = false) {
|
|
44
44
|
this.clearCache();
|
|
45
45
|
let defTypeOut = '';
|
|
46
46
|
Object.values(this.includedTypes)
|
|
@@ -51,7 +51,7 @@ export class TypesGen {
|
|
|
51
51
|
defTypeOut += `export type ${name} = ${this.generateType(id)};\n\n`;
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
|
-
const importTypes = this.typeImports.toImports('./types');
|
|
54
|
+
const importTypes = this.typeImports.toImports({ useSubPaths, excludeModules: ['./types'] });
|
|
55
55
|
const template = compileTemplate('types.hbs');
|
|
56
56
|
return beautifySourceCode(template({ importTypes, defTypeOut }));
|
|
57
57
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { assert } from '
|
|
1
|
+
import { $ } from 'dedot';
|
|
2
|
+
import * as Codecs from 'dedot/codecs';
|
|
3
|
+
import { $AccountId20, $AccountId32, $Bytes, $ConsensusEngineId, $Era, $EthereumAddress, $MultiAddress, $OpaqueExtrinsic, $PrefixedStorageKey, $RawBytes, $StorageData, $StorageKey, $UncheckedExtrinsic, } from 'dedot/codecs';
|
|
4
|
+
import { assert } from 'dedot/utils';
|
|
5
5
|
export const normalizeCodecName = (name) => {
|
|
6
6
|
return name.startsWith('$') ? name : `$${name}`;
|
|
7
7
|
};
|
package/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { MetadataLatest } from '
|
|
2
|
-
export declare function generateTypesFromEndpoint(chain: string, endpoint: string, outDir?: string, extension?: string): Promise<void>;
|
|
3
|
-
export declare function generateTypes(chain: string, metadata: MetadataLatest, rpcMethods: string[], runtimeApis: Record<string, number>, outDir?: string, extension?: string): Promise<void>;
|
|
1
|
+
import { MetadataLatest } from 'dedot/codecs';
|
|
2
|
+
export declare function generateTypesFromEndpoint(chain: string, endpoint: string, outDir?: string, extension?: string, useSubPaths?: boolean): Promise<void>;
|
|
3
|
+
export declare function generateTypes(chain: string, metadata: MetadataLatest, rpcMethods: string[], runtimeApis: Record<string, number>, outDir?: string, extension?: string, useSubPaths?: boolean): Promise<void>;
|
package/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { stringCamelCase } from '@dedot/utils';
|
|
2
1
|
import { Dedot, WsProvider } from 'dedot';
|
|
2
|
+
import { stringCamelCase } from 'dedot/utils';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
-
import { ConstsGen, ErrorsGen, EventsGen, IndexGen,
|
|
6
|
-
export async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts') {
|
|
5
|
+
import { ConstsGen, ErrorsGen, EventsGen, IndexGen, JsonRpcGen, QueryGen, RuntimeApisGen, TxGen, TypesGen, } from './generator/index.js';
|
|
6
|
+
export async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts', useSubPaths = false) {
|
|
7
7
|
const api = await Dedot.new(new WsProvider(endpoint));
|
|
8
8
|
const { methods } = await api.rpc.rpc_methods();
|
|
9
9
|
const apis = api.runtimeVersion.apis || {};
|
|
10
10
|
if (!chain) {
|
|
11
11
|
chain = stringCamelCase(api.runtimeVersion.specName || 'local');
|
|
12
12
|
}
|
|
13
|
-
await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension);
|
|
13
|
+
await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension, useSubPaths);
|
|
14
14
|
await api.disconnect();
|
|
15
15
|
}
|
|
16
|
-
export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts') {
|
|
16
|
+
export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts', useSubPaths = false) {
|
|
17
17
|
const dirPath = path.resolve(outDir, chain);
|
|
18
18
|
const defTypesFileName = path.join(dirPath, `types.${extension}`);
|
|
19
19
|
const constsTypesFileName = path.join(dirPath, `consts.${extension}`);
|
|
@@ -36,13 +36,13 @@ export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, ou
|
|
|
36
36
|
const eventsGen = new EventsGen(typesGen);
|
|
37
37
|
const runtimeApisGen = new RuntimeApisGen(typesGen, runtimeApis);
|
|
38
38
|
const txGen = new TxGen(typesGen);
|
|
39
|
-
fs.writeFileSync(defTypesFileName, await typesGen.generate());
|
|
40
|
-
fs.writeFileSync(errorsFileName, await errorsGen.generate());
|
|
41
|
-
fs.writeFileSync(eventsFileName, await eventsGen.generate());
|
|
42
|
-
fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate());
|
|
43
|
-
fs.writeFileSync(queryTypesFileName, await queryGen.generate());
|
|
44
|
-
fs.writeFileSync(constsTypesFileName, await constsGen.generate());
|
|
45
|
-
fs.writeFileSync(txFileName, await txGen.generate());
|
|
46
|
-
fs.writeFileSync(indexFileName, await indexGen.generate());
|
|
47
|
-
fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate());
|
|
39
|
+
fs.writeFileSync(defTypesFileName, await typesGen.generate(useSubPaths));
|
|
40
|
+
fs.writeFileSync(errorsFileName, await errorsGen.generate(useSubPaths));
|
|
41
|
+
fs.writeFileSync(eventsFileName, await eventsGen.generate(useSubPaths));
|
|
42
|
+
fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate(useSubPaths));
|
|
43
|
+
fs.writeFileSync(queryTypesFileName, await queryGen.generate(useSubPaths));
|
|
44
|
+
fs.writeFileSync(constsTypesFileName, await constsGen.generate(useSubPaths));
|
|
45
|
+
fs.writeFileSync(txFileName, await txGen.generate(useSubPaths));
|
|
46
|
+
fs.writeFileSync(indexFileName, await indexGen.generate(useSubPaths));
|
|
47
|
+
fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate(useSubPaths));
|
|
48
48
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dedot/codegen",
|
|
3
|
-
"version": "0.0.1-next.
|
|
3
|
+
"version": "0.0.1-next.5d366dea.50+5d366de",
|
|
4
4
|
"description": "Generate types",
|
|
5
5
|
"author": "Thang X. Vu <thang@coongcrafts.io>",
|
|
6
6
|
"homepage": "https://github.com/dedotdev/dedot/tree/main/packages/codegen",
|
|
@@ -18,20 +18,16 @@
|
|
|
18
18
|
"copy": "cp -R ./src/templates ./dist && cp -R ./src/templates ./dist/cjs"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"@dedot/utils": "0.0.1-next.59796573.28+5979657",
|
|
25
|
-
"dedot": "0.0.1-next.59796573.28+5979657",
|
|
26
|
-
"handlebars": "^4.7.8",
|
|
27
|
-
"prettier": "^3.0.3"
|
|
21
|
+
"dedot": "0.0.1-next.5d366dea.50+5d366de",
|
|
22
|
+
"handlebars": "^4.7.7",
|
|
23
|
+
"prettier": "^3.2.5"
|
|
28
24
|
},
|
|
29
25
|
"publishConfig": {
|
|
30
26
|
"access": "public",
|
|
31
27
|
"directory": "dist"
|
|
32
28
|
},
|
|
33
29
|
"license": "Apache-2.0",
|
|
34
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "5d366dea6b6c3d076a616746d80b80ef37434ff7",
|
|
35
31
|
"module": "./index.js",
|
|
36
32
|
"types": "./index.d.ts",
|
|
37
33
|
"exports": {
|