@dedot/codegen 0.0.1-alpha.26 → 0.0.1-alpha.4

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.
@@ -30,20 +30,18 @@ class RuntimeApisGen extends RpcGen_1.RpcGen {
30
30
  });
31
31
  }
32
32
  else {
33
- const specs = this.#targetRuntimeApiSpecs();
34
- specs.forEach(({ methods, runtimeApiName, runtimeApiHash, version }) => {
35
- runtimeCallsOut += (0, utils_1.commentBlock)(`@runtimeapi: ${runtimeApiName} - ${runtimeApiHash}`, `@version: ${version}`);
36
- runtimeCallsOut += `${(0, util_1.stringCamelCase)(runtimeApiName)}: {
33
+ const specsByModule = this.#runtimeApisSpecsByModule();
34
+ Object.values(specsByModule).forEach((specs) => {
35
+ specs.forEach(({ methods, runtimeApiName, runtimeApiHash, version }) => {
36
+ runtimeCallsOut += (0, utils_1.commentBlock)(`@runtimeapi: ${runtimeApiName} - ${runtimeApiHash}`, `@version: ${version}`);
37
+ runtimeCallsOut += `${(0, util_1.stringCamelCase)(runtimeApiName)}: {
37
38
  ${Object.keys(methods)
38
- .map((methodName) => this.#generateMethodDefFromSpec({
39
- ...methods[methodName],
40
- runtimeApiName,
41
- methodName,
42
- }))
43
- .join('\n')}
39
+ .map((methodName) => this.#generateMethodDefFromSpec({ ...methods[methodName], runtimeApiName, methodName }))
40
+ .join('\n')}
44
41
 
45
42
  ${(0, utils_1.commentBlock)('Generic runtime api call')}[method: string]: GenericRuntimeApiMethod
46
43
  }`;
44
+ });
47
45
  });
48
46
  }
49
47
  const importTypes = this.typesGen.typeImports.toImports();
@@ -94,7 +92,7 @@ class RuntimeApisGen extends RpcGen_1.RpcGen {
94
92
  .join(', ');
95
93
  return `${(0, utils_1.commentBlock)(docs, '\n', defaultDocs, typedInputs.map(({ type, name }) => `@param {${type}} ${name}`))}${(0, util_1.stringCamelCase)(methodName)}: GenericRuntimeApiMethod<(${paramsOut}) => Promise<${typeOut}>>`;
96
94
  }
97
- #targetRuntimeApiSpecs() {
95
+ #runtimeApisSpecsByModule() {
98
96
  const specs = this.runtimeApis.map(([runtimeApiHash, version]) => {
99
97
  const runtimeApiSpec = (0, specs_1.findRuntimeApiSpec)(runtimeApiHash, version);
100
98
  if (!runtimeApiSpec)
@@ -108,8 +106,15 @@ class RuntimeApisGen extends RpcGen_1.RpcGen {
108
106
  if (!spec) {
109
107
  return o;
110
108
  }
111
- return [...o, spec];
112
- }, []);
109
+ const { moduleName } = spec;
110
+ if (!moduleName) {
111
+ return o;
112
+ }
113
+ return {
114
+ ...o,
115
+ [moduleName]: o[moduleName] ? [...o[moduleName], spec] : [spec],
116
+ };
117
+ }, {});
113
118
  }
114
119
  }
115
120
  exports.RuntimeApisGen = RuntimeApisGen;
@@ -26,12 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.isReservedWord = exports.compileTemplate = exports.beautifySourceCode = exports.commentBlock = exports.TUPLE_TYPE_REGEX = exports.WRAPPER_TYPE_REGEX = void 0;
29
+ exports.isReservedWord = exports.compileTemplate = exports.beautifySourceCode = exports.resolveFilePath = exports.commentBlock = exports.TUPLE_TYPE_REGEX = exports.WRAPPER_TYPE_REGEX = void 0;
30
30
  const fs = __importStar(require("fs"));
31
31
  const handlebars_1 = __importDefault(require("handlebars"));
32
32
  const path = __importStar(require("path"));
33
+ const process = __importStar(require("process"));
33
34
  const prettier = __importStar(require("prettier"));
34
- const dirname_1 = require("./dirname");
35
35
  exports.WRAPPER_TYPE_REGEX = /^(\w+)<(.*)>$/;
36
36
  exports.TUPLE_TYPE_REGEX = /^\[(.*)]$/;
37
37
  const commentBlock = (...docs) => {
@@ -48,13 +48,18 @@ ${flatLines.map((line) => `* ${line.replaceAll(/\s+/g, ' ').trim()}`).join('\n')
48
48
  }
49
49
  };
50
50
  exports.commentBlock = commentBlock;
51
+ const resolveFilePath = (relativePath) => {
52
+ relativePath = Array.isArray(relativePath) ? relativePath : [relativePath];
53
+ return path.resolve(process.cwd(), ...relativePath);
54
+ };
55
+ exports.resolveFilePath = resolveFilePath;
51
56
  const beautifySourceCode = async (source) => {
52
- const prettierOptions = await prettier.resolveConfig(path.resolve((0, dirname_1.currentDirname)(), '../../../../.prettierrc.js'));
57
+ const prettierOptions = await prettier.resolveConfig((0, exports.resolveFilePath)('./.prettierrc.js'));
53
58
  return prettier.format(source, { parser: 'babel-ts', ...prettierOptions });
54
59
  };
55
60
  exports.beautifySourceCode = beautifySourceCode;
56
61
  const compileTemplate = (templateFileName) => {
57
- const templateFilePath = path.resolve((0, dirname_1.currentDirname)(), `../templates/${templateFileName}`);
62
+ const templateFilePath = (0, exports.resolveFilePath)(`packages/codegen/src/templates/${templateFileName}`);
58
63
  return handlebars_1.default.compile(fs.readFileSync(templateFilePath, 'utf8'));
59
64
  };
60
65
  exports.compileTemplate = compileTemplate;
package/cjs/index.js CHANGED
@@ -42,15 +42,15 @@ async function generateTypesFromChain(network, endpoint, outDir) {
42
42
  exports.generateTypesFromChain = generateTypesFromChain;
43
43
  async function generateTypes(network, metadata, rpcMethods, runtimeApis, outDir = '.') {
44
44
  const dirPath = path.resolve(outDir, network.chain);
45
- const defTypesFileName = path.join(dirPath, `types.d.ts`);
46
- const constsTypesFileName = path.join(dirPath, `consts.d.ts`);
47
- const queryTypesFileName = path.join(dirPath, `query.d.ts`);
48
- const rpcCallsFileName = path.join(dirPath, `rpc.d.ts`);
49
- const indexFileName = path.join(dirPath, `index.d.ts`);
50
- const errorsFileName = path.join(dirPath, `errors.d.ts`);
51
- const eventsFileName = path.join(dirPath, `events.d.ts`);
52
- const runtimeApisFileName = path.join(dirPath, `runtime.d.ts`);
53
- const txFileName = path.join(dirPath, `tx.d.ts`);
45
+ const defTypesFileName = path.join(dirPath, `types.ts`);
46
+ const constsTypesFileName = path.join(dirPath, `consts.ts`);
47
+ const queryTypesFileName = path.join(dirPath, `query.ts`);
48
+ const rpcCallsFileName = path.join(dirPath, `rpc.ts`);
49
+ const indexFileName = path.join(dirPath, `index.ts`);
50
+ const errorsFileName = path.join(dirPath, `errors.ts`);
51
+ const eventsFileName = path.join(dirPath, `events.ts`);
52
+ const runtimeApisFileName = path.join(dirPath, `runtime.ts`);
53
+ const txFileName = path.join(dirPath, `tx.ts`);
54
54
  if (!fs.existsSync(dirPath)) {
55
55
  fs.mkdirSync(dirPath, { recursive: true });
56
56
  }
@@ -2,4 +2,4 @@
2
2
  // THIS FILE IS AUTO-GENERATED, DO NOT EDIT!
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.packageInfo = void 0;
5
- exports.packageInfo = { name: '@dedot/codegen', version: '0.0.1-alpha.25' };
5
+ exports.packageInfo = { name: '@dedot/codegen', version: '0.0.1-alpha.23' };
@@ -27,20 +27,18 @@ export class RuntimeApisGen extends RpcGen {
27
27
  });
28
28
  }
29
29
  else {
30
- const specs = this.#targetRuntimeApiSpecs();
31
- specs.forEach(({ methods, runtimeApiName, runtimeApiHash, version }) => {
32
- runtimeCallsOut += commentBlock(`@runtimeapi: ${runtimeApiName} - ${runtimeApiHash}`, `@version: ${version}`);
33
- runtimeCallsOut += `${stringCamelCase(runtimeApiName)}: {
30
+ const specsByModule = this.#runtimeApisSpecsByModule();
31
+ Object.values(specsByModule).forEach((specs) => {
32
+ specs.forEach(({ methods, runtimeApiName, runtimeApiHash, version }) => {
33
+ runtimeCallsOut += commentBlock(`@runtimeapi: ${runtimeApiName} - ${runtimeApiHash}`, `@version: ${version}`);
34
+ runtimeCallsOut += `${stringCamelCase(runtimeApiName)}: {
34
35
  ${Object.keys(methods)
35
- .map((methodName) => this.#generateMethodDefFromSpec({
36
- ...methods[methodName],
37
- runtimeApiName,
38
- methodName,
39
- }))
40
- .join('\n')}
36
+ .map((methodName) => this.#generateMethodDefFromSpec({ ...methods[methodName], runtimeApiName, methodName }))
37
+ .join('\n')}
41
38
 
42
39
  ${commentBlock('Generic runtime api call')}[method: string]: GenericRuntimeApiMethod
43
40
  }`;
41
+ });
44
42
  });
45
43
  }
46
44
  const importTypes = this.typesGen.typeImports.toImports();
@@ -91,7 +89,7 @@ export class RuntimeApisGen extends RpcGen {
91
89
  .join(', ');
92
90
  return `${commentBlock(docs, '\n', defaultDocs, typedInputs.map(({ type, name }) => `@param {${type}} ${name}`))}${stringCamelCase(methodName)}: GenericRuntimeApiMethod<(${paramsOut}) => Promise<${typeOut}>>`;
93
91
  }
94
- #targetRuntimeApiSpecs() {
92
+ #runtimeApisSpecsByModule() {
95
93
  const specs = this.runtimeApis.map(([runtimeApiHash, version]) => {
96
94
  const runtimeApiSpec = findRuntimeApiSpec(runtimeApiHash, version);
97
95
  if (!runtimeApiSpec)
@@ -105,7 +103,14 @@ export class RuntimeApisGen extends RpcGen {
105
103
  if (!spec) {
106
104
  return o;
107
105
  }
108
- return [...o, spec];
109
- }, []);
106
+ const { moduleName } = spec;
107
+ if (!moduleName) {
108
+ return o;
109
+ }
110
+ return {
111
+ ...o,
112
+ [moduleName]: o[moduleName] ? [...o[moduleName], spec] : [spec],
113
+ };
114
+ }, {});
110
115
  }
111
116
  }
@@ -1,6 +1,7 @@
1
1
  export declare const WRAPPER_TYPE_REGEX: RegExp;
2
2
  export declare const TUPLE_TYPE_REGEX: RegExp;
3
3
  export declare const commentBlock: (...docs: (string | string[])[]) => string;
4
+ export declare const resolveFilePath: (relativePath: string | string[]) => string;
4
5
  export declare const beautifySourceCode: (source: string) => Promise<string>;
5
6
  export declare const compileTemplate: (templateFileName: string) => HandlebarsTemplateDelegate<any>;
6
7
  /**
@@ -1,8 +1,8 @@
1
1
  import * as fs from 'fs';
2
2
  import handlebars from 'handlebars';
3
3
  import * as path from 'path';
4
+ import * as process from 'process';
4
5
  import * as prettier from 'prettier';
5
- import { currentDirname } from './dirname';
6
6
  export const WRAPPER_TYPE_REGEX = /^(\w+)<(.*)>$/;
7
7
  export const TUPLE_TYPE_REGEX = /^\[(.*)]$/;
8
8
  export const commentBlock = (...docs) => {
@@ -18,12 +18,16 @@ ${flatLines.map((line) => `* ${line.replaceAll(/\s+/g, ' ').trim()}`).join('\n')
18
18
  `;
19
19
  }
20
20
  };
21
+ export const resolveFilePath = (relativePath) => {
22
+ relativePath = Array.isArray(relativePath) ? relativePath : [relativePath];
23
+ return path.resolve(process.cwd(), ...relativePath);
24
+ };
21
25
  export const beautifySourceCode = async (source) => {
22
- const prettierOptions = await prettier.resolveConfig(path.resolve(currentDirname(), '../../../../.prettierrc.js'));
26
+ const prettierOptions = await prettier.resolveConfig(resolveFilePath('./.prettierrc.js'));
23
27
  return prettier.format(source, { parser: 'babel-ts', ...prettierOptions });
24
28
  };
25
29
  export const compileTemplate = (templateFileName) => {
26
- const templateFilePath = path.resolve(currentDirname(), `../templates/${templateFileName}`);
30
+ const templateFilePath = resolveFilePath(`packages/codegen/src/templates/${templateFileName}`);
27
31
  return handlebars.compile(fs.readFileSync(templateFilePath, 'utf8'));
28
32
  };
29
33
  // TODO add more reserved words
package/index.js CHANGED
@@ -15,15 +15,15 @@ export async function generateTypesFromChain(network, endpoint, outDir) {
15
15
  }
16
16
  export async function generateTypes(network, metadata, rpcMethods, runtimeApis, outDir = '.') {
17
17
  const dirPath = path.resolve(outDir, network.chain);
18
- const defTypesFileName = path.join(dirPath, `types.d.ts`);
19
- const constsTypesFileName = path.join(dirPath, `consts.d.ts`);
20
- const queryTypesFileName = path.join(dirPath, `query.d.ts`);
21
- const rpcCallsFileName = path.join(dirPath, `rpc.d.ts`);
22
- const indexFileName = path.join(dirPath, `index.d.ts`);
23
- const errorsFileName = path.join(dirPath, `errors.d.ts`);
24
- const eventsFileName = path.join(dirPath, `events.d.ts`);
25
- const runtimeApisFileName = path.join(dirPath, `runtime.d.ts`);
26
- const txFileName = path.join(dirPath, `tx.d.ts`);
18
+ const defTypesFileName = path.join(dirPath, `types.ts`);
19
+ const constsTypesFileName = path.join(dirPath, `consts.ts`);
20
+ const queryTypesFileName = path.join(dirPath, `query.ts`);
21
+ const rpcCallsFileName = path.join(dirPath, `rpc.ts`);
22
+ const indexFileName = path.join(dirPath, `index.ts`);
23
+ const errorsFileName = path.join(dirPath, `errors.ts`);
24
+ const eventsFileName = path.join(dirPath, `events.ts`);
25
+ const runtimeApisFileName = path.join(dirPath, `runtime.ts`);
26
+ const txFileName = path.join(dirPath, `tx.ts`);
27
27
  if (!fs.existsSync(dirPath)) {
28
28
  fs.mkdirSync(dirPath, { recursive: true });
29
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedot/codegen",
3
- "version": "0.0.1-alpha.26",
3
+ "version": "0.0.1-alpha.4+cef1b29",
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",
@@ -12,17 +12,16 @@
12
12
  "main": "./cjs/index.js",
13
13
  "type": "module",
14
14
  "scripts": {
15
- "build": "tsc --project tsconfig.build.json && tsc --project tsconfig.build.cjs.json && yarn copy",
16
- "clean": "rm -rf ./dist && rm -rf ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo",
17
- "copy": "cp -R ./src/templates ./dist && cp -R ./src/templates ./dist/cjs"
15
+ "build": "tsc --project tsconfig.build.json && tsc --project tsconfig.build.cjs.json",
16
+ "clean": "rm -rf ./dist && rm -rf ./tsconfig.tsbuildinfo ./tsconfig.build.tsbuildinfo"
18
17
  },
19
18
  "dependencies": {
20
- "@dedot/codecs": "0.0.1-alpha.26",
21
- "@dedot/shape": "0.0.1-alpha.26",
22
- "@dedot/specs": "0.0.1-alpha.26",
23
- "@dedot/utils": "0.0.1-alpha.26",
19
+ "@dedot/codecs": "0.0.1-alpha.4+cef1b29",
20
+ "@dedot/shape": "0.0.1-alpha.4+cef1b29",
21
+ "@dedot/specs": "0.0.1-alpha.4+cef1b29",
22
+ "@dedot/utils": "0.0.1-alpha.4+cef1b29",
24
23
  "@polkadot/util": "^12.6.2",
25
- "dedot": "0.0.1-alpha.26",
24
+ "dedot": "0.0.1-alpha.4+cef1b29",
26
25
  "handlebars": "^4.7.8",
27
26
  "prettier": "^3.0.3"
28
27
  },
@@ -31,7 +30,7 @@
31
30
  "directory": "dist"
32
31
  },
33
32
  "license": "Apache-2.0",
34
- "gitHead": "5b114a0d2359316f07654915f3c03b44761cac73",
33
+ "gitHead": "cef1b29a1f5b0d92fb8c9893dfabff20b658fa5f",
35
34
  "module": "./index.js",
36
35
  "types": "./index.d.ts",
37
36
  "exports": {
package/packageInfo.js CHANGED
@@ -1,3 +1,2 @@
1
1
  // THIS FILE IS AUTO-GENERATED, DO NOT EDIT!
2
-
3
- export const packageInfo = { name: '@dedot/codegen', version: '0.0.1-alpha.26' };
2
+ export const packageInfo = { name: '@dedot/codegen', version: '0.0.1-alpha.23' };
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.currentDirname = () => {
4
- return __dirname;
5
- };
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainConsts extends GenericChainConsts {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainErrors extends GenericChainErrors {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainEvents extends GenericChainEvents {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,22 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- import { GenericSubstrateApi } from '@dedot/types';
4
- import { ChainConsts } from './consts';
5
- import { ChainStorage } from './query';
6
- import { RpcCalls } from './rpc';
7
- import { ChainErrors } from './errors';
8
- import { ChainEvents } from './events';
9
- import { RuntimeApis } from './runtime';
10
- import { ChainTx } from './tx';
11
-
12
- export * from './types';
13
-
14
- export interface {{{interfaceName}}}Api extends GenericSubstrateApi {
15
- rpc: RpcCalls;
16
- consts: ChainConsts;
17
- query: ChainStorage;
18
- errors: ChainErrors;
19
- events: ChainEvents;
20
- call: RuntimeApis;
21
- tx: ChainTx;
22
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainStorage extends GenericChainStorage {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface RpcCalls extends GenericRpcCalls {
6
- {{{rpcCallsOut}}}
7
- }
@@ -1,8 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface RuntimeApis extends GenericRuntimeApis {
6
- {{{ runtimeCallsOut }}}
7
- }
8
-
@@ -1,9 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- {{{ defTypes }}}
6
-
7
- export interface ChainTx extends GenericChainTx<TxCall> {
8
- {{{ txDefsOut }}}
9
- }
@@ -1,5 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- {{{ defTypeOut }}}
@@ -1 +0,0 @@
1
- export function currentDirname(): string;
@@ -1,6 +0,0 @@
1
- import { dirname } from 'path';
2
- import { fileURLToPath } from 'url';
3
- export const currentDirname = () => {
4
- const __filename = fileURLToPath(import.meta.url);
5
- return dirname(__filename);
6
- };
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainConsts extends GenericChainConsts {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainErrors extends GenericChainErrors {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainEvents extends GenericChainEvents {
6
- {{{ defTypeOut }}}
7
- }
@@ -1,22 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- import { GenericSubstrateApi } from '@dedot/types';
4
- import { ChainConsts } from './consts';
5
- import { ChainStorage } from './query';
6
- import { RpcCalls } from './rpc';
7
- import { ChainErrors } from './errors';
8
- import { ChainEvents } from './events';
9
- import { RuntimeApis } from './runtime';
10
- import { ChainTx } from './tx';
11
-
12
- export * from './types';
13
-
14
- export interface {{{interfaceName}}}Api extends GenericSubstrateApi {
15
- rpc: RpcCalls;
16
- consts: ChainConsts;
17
- query: ChainStorage;
18
- errors: ChainErrors;
19
- events: ChainEvents;
20
- call: RuntimeApis;
21
- tx: ChainTx;
22
- }
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface ChainStorage extends GenericChainStorage {
6
- {{{ defTypeOut }}}
7
- }
package/templates/rpc.hbs DELETED
@@ -1,7 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface RpcCalls extends GenericRpcCalls {
6
- {{{rpcCallsOut}}}
7
- }
@@ -1,8 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- export interface RuntimeApis extends GenericRuntimeApis {
6
- {{{ runtimeCallsOut }}}
7
- }
8
-
package/templates/tx.hbs DELETED
@@ -1,9 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- {{{ defTypes }}}
6
-
7
- export interface ChainTx extends GenericChainTx<TxCall> {
8
- {{{ txDefsOut }}}
9
- }
@@ -1,5 +0,0 @@
1
- // Generated by @dedot/codegen
2
-
3
- {{{ importTypes }}}
4
-
5
- {{{ defTypeOut }}}