@pezkuwi/typegen 16.5.18 → 16.5.31

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.
Files changed (308) hide show
  1. package/{build-tsc-cjs → cjs}/generate/lookup.js +39 -10
  2. package/{build/cjs → cjs}/packageInfo.js +1 -1
  3. package/{build-tsc-cjs → cjs}/util/derived.js +15 -0
  4. package/{build-tsc-cjs → cjs}/util/formatting.js +5 -0
  5. package/generate/lookup.js +39 -10
  6. package/package.json +27 -27
  7. package/{build-tsc-esm/packageInfo.js → packageInfo.js} +1 -1
  8. package/{build/util → util}/derived.js +16 -1
  9. package/{build-tsc-esm/util → util}/formatting.js +5 -0
  10. package/build/LICENSE +0 -201
  11. package/build/README.md +0 -3
  12. package/build/augment.js +0 -2
  13. package/build/bundle.js +0 -2
  14. package/build/cjs/augment.d.ts +0 -2
  15. package/build/cjs/augment.js +0 -4
  16. package/build/cjs/bundle.d.ts +0 -2
  17. package/build/cjs/bundle.js +0 -7
  18. package/build/cjs/extractChain.js +0 -44
  19. package/build/cjs/fromChain.js +0 -95
  20. package/build/cjs/fromDefs.js +0 -82
  21. package/build/cjs/generate/consts.d.ts +0 -5
  22. package/build/cjs/generate/consts.js +0 -91
  23. package/build/cjs/generate/errors.d.ts +0 -4
  24. package/build/cjs/generate/errors.js +0 -59
  25. package/build/cjs/generate/events.d.ts +0 -5
  26. package/build/cjs/generate/events.js +0 -139
  27. package/build/cjs/generate/index.js +0 -23
  28. package/build/cjs/generate/interfaceRegistry.d.ts +0 -4
  29. package/build/cjs/generate/interfaceRegistry.js +0 -64
  30. package/build/cjs/generate/lookup.d.ts +0 -4
  31. package/build/cjs/generate/lookup.js +0 -240
  32. package/build/cjs/generate/query.d.ts +0 -5
  33. package/build/cjs/generate/query.js +0 -140
  34. package/build/cjs/generate/rpc.d.ts +0 -6
  35. package/build/cjs/generate/rpc.js +0 -115
  36. package/build/cjs/generate/runtime.d.ts +0 -7
  37. package/build/cjs/generate/runtime.js +0 -233
  38. package/build/cjs/generate/tsDef.d.ts +0 -16
  39. package/build/cjs/generate/tsDef.js +0 -254
  40. package/build/cjs/generate/tx.d.ts +0 -5
  41. package/build/cjs/generate/tx.js +0 -121
  42. package/build/cjs/generate/types.d.ts +0 -12
  43. package/build/cjs/generate/types.js +0 -16
  44. package/build/cjs/index.js +0 -5
  45. package/build/cjs/interfacesTs.js +0 -28
  46. package/build/cjs/metadataMd.js +0 -652
  47. package/build/cjs/util/assert.js +0 -15
  48. package/build/cjs/util/derived.js +0 -128
  49. package/build/cjs/util/docs.js +0 -10
  50. package/build/cjs/util/file.js +0 -33
  51. package/build/cjs/util/formatting.js +0 -237
  52. package/build/cjs/util/imports.js +0 -126
  53. package/build/cjs/util/index.js +0 -39
  54. package/build/cjs/util/initMeta.js +0 -22
  55. package/build/cjs/util/register.js +0 -10
  56. package/build/cjs/util/wsMeta.js +0 -60
  57. package/build/extractChain.d.ts +0 -1
  58. package/build/extractChain.js +0 -40
  59. package/build/fromChain.d.ts +0 -1
  60. package/build/fromChain.js +0 -91
  61. package/build/fromDefs.d.ts +0 -1
  62. package/build/fromDefs.js +0 -78
  63. package/build/generate/consts.d.ts +0 -5
  64. package/build/generate/consts.js +0 -87
  65. package/build/generate/errors.d.ts +0 -4
  66. package/build/generate/errors.js +0 -55
  67. package/build/generate/events.d.ts +0 -5
  68. package/build/generate/events.js +0 -135
  69. package/build/generate/index.d.ts +0 -10
  70. package/build/generate/index.js +0 -10
  71. package/build/generate/interfaceRegistry.d.ts +0 -4
  72. package/build/generate/interfaceRegistry.js +0 -59
  73. package/build/generate/lookup.d.ts +0 -4
  74. package/build/generate/lookup.js +0 -235
  75. package/build/generate/query.d.ts +0 -5
  76. package/build/generate/query.js +0 -136
  77. package/build/generate/rpc.d.ts +0 -6
  78. package/build/generate/rpc.js +0 -110
  79. package/build/generate/runtime.d.ts +0 -7
  80. package/build/generate/runtime.js +0 -228
  81. package/build/generate/tsDef.d.ts +0 -16
  82. package/build/generate/tsDef.js +0 -246
  83. package/build/generate/tx.d.ts +0 -5
  84. package/build/generate/tx.js +0 -117
  85. package/build/generate/types.d.ts +0 -12
  86. package/build/generate/types.js +0 -13
  87. package/build/index.d.ts +0 -2
  88. package/build/index.js +0 -2
  89. package/build/interfacesTs.d.ts +0 -1
  90. package/build/interfacesTs.js +0 -24
  91. package/build/metadataMd.d.ts +0 -1
  92. package/build/metadataMd.js +0 -648
  93. package/build/package.json +0 -548
  94. package/build/packageDetect.d.ts +0 -1
  95. package/build/packageDetect.js +0 -6
  96. package/build/packageInfo.d.ts +0 -6
  97. package/build/packageInfo.js +0 -1
  98. package/build/scripts/pezkuwi-types-chain-info.mjs +0 -7
  99. package/build/scripts/pezkuwi-types-from-chain.mjs +0 -7
  100. package/build/scripts/pezkuwi-types-from-defs.mjs +0 -7
  101. package/build/scripts/pezkuwi-types-internal-interfaces.mjs +0 -7
  102. package/build/scripts/pezkuwi-types-internal-metadata.mjs +0 -7
  103. package/build/templates/calls.hbs +0 -30
  104. package/build/templates/consts.hbs +0 -28
  105. package/build/templates/docs.hbs +0 -7
  106. package/build/templates/errors.hbs +0 -28
  107. package/build/templates/events.hbs +0 -28
  108. package/build/templates/header.hbs +0 -2
  109. package/build/templates/interfaceRegistry.hbs +0 -15
  110. package/build/templates/lookup/defs-named.hbs +0 -12
  111. package/build/templates/lookup/defs.hbs +0 -15
  112. package/build/templates/lookup/index.hbs +0 -3
  113. package/build/templates/lookup/types.hbs +0 -14
  114. package/build/templates/query.hbs +0 -29
  115. package/build/templates/rpc.hbs +0 -22
  116. package/build/templates/tsDef/index.hbs +0 -3
  117. package/build/templates/tsDef/moduleTypes.hbs +0 -10
  118. package/build/templates/tsDef/types.hbs +0 -7
  119. package/build/templates/tx.hbs +0 -30
  120. package/build/util/assert.d.ts +0 -2
  121. package/build/util/assert.js +0 -10
  122. package/build/util/derived.d.ts +0 -4
  123. package/build/util/docs.d.ts +0 -1
  124. package/build/util/docs.js +0 -6
  125. package/build/util/file.d.ts +0 -2
  126. package/build/util/file.js +0 -28
  127. package/build/util/formatting.d.ts +0 -11
  128. package/build/util/formatting.js +0 -230
  129. package/build/util/imports.d.ts +0 -23
  130. package/build/util/imports.js +0 -121
  131. package/build/util/index.d.ts +0 -16
  132. package/build/util/index.js +0 -34
  133. package/build/util/initMeta.d.ts +0 -12
  134. package/build/util/initMeta.js +0 -19
  135. package/build/util/register.d.ts +0 -4
  136. package/build/util/register.js +0 -7
  137. package/build/util/wsMeta.d.ts +0 -4
  138. package/build/util/wsMeta.js +0 -55
  139. package/build-tsc-cjs/packageDetect.js +0 -8
  140. package/build-tsc-cjs/packageInfo.js +0 -4
  141. package/build-tsc-esm/generate/consts.js +0 -87
  142. package/build-tsc-esm/generate/errors.js +0 -55
  143. package/build-tsc-esm/generate/events.js +0 -135
  144. package/build-tsc-esm/generate/interfaceRegistry.js +0 -59
  145. package/build-tsc-esm/generate/lookup.js +0 -235
  146. package/build-tsc-esm/generate/query.js +0 -136
  147. package/build-tsc-esm/generate/rpc.js +0 -110
  148. package/build-tsc-esm/generate/runtime.js +0 -228
  149. package/build-tsc-esm/generate/tsDef.js +0 -246
  150. package/build-tsc-esm/generate/tx.js +0 -117
  151. package/build-tsc-esm/generate/types.js +0 -13
  152. package/build-tsc-esm/util/derived.js +0 -125
  153. package/src/augment.ts +0 -5
  154. package/src/bundle.ts +0 -5
  155. package/src/extractChain.ts +0 -54
  156. package/src/fromChain.ts +0 -123
  157. package/src/fromDefs.ts +0 -106
  158. package/src/generate/consts.ts +0 -112
  159. package/src/generate/errors.ts +0 -75
  160. package/src/generate/events.ts +0 -165
  161. package/src/generate/index.ts +0 -13
  162. package/src/generate/interfaceRegistry.ts +0 -85
  163. package/src/generate/lookup.ts +0 -322
  164. package/src/generate/query.ts +0 -169
  165. package/src/generate/rpc.ts +0 -158
  166. package/src/generate/runtime.ts +0 -293
  167. package/src/generate/tsDef.ts +0 -321
  168. package/src/generate/tx.ts +0 -152
  169. package/src/generate/types.ts +0 -26
  170. package/src/index.ts +0 -6
  171. package/src/interfacesTs.ts +0 -35
  172. package/src/metadataMd.ts +0 -844
  173. package/src/packageDetect.ts +0 -14
  174. package/src/packageInfo.ts +0 -6
  175. package/src/templates/calls.hbs +0 -30
  176. package/src/templates/consts.hbs +0 -28
  177. package/src/templates/docs.hbs +0 -7
  178. package/src/templates/errors.hbs +0 -28
  179. package/src/templates/events.hbs +0 -28
  180. package/src/templates/header.hbs +0 -2
  181. package/src/templates/interfaceRegistry.hbs +0 -15
  182. package/src/templates/lookup/defs-named.hbs +0 -12
  183. package/src/templates/lookup/defs.hbs +0 -15
  184. package/src/templates/lookup/index.hbs +0 -3
  185. package/src/templates/lookup/types.hbs +0 -14
  186. package/src/templates/query.hbs +0 -29
  187. package/src/templates/rpc.hbs +0 -22
  188. package/src/templates/tsDef/index.hbs +0 -3
  189. package/src/templates/tsDef/moduleTypes.hbs +0 -10
  190. package/src/templates/tsDef/types.hbs +0 -7
  191. package/src/templates/tx.hbs +0 -30
  192. package/src/util/assert.ts +0 -18
  193. package/src/util/derived.spec.ts +0 -58
  194. package/src/util/derived.ts +0 -133
  195. package/src/util/docs.ts +0 -13
  196. package/src/util/file.ts +0 -42
  197. package/src/util/formatting.spec.ts +0 -30
  198. package/src/util/formatting.ts +0 -322
  199. package/src/util/imports.ts +0 -164
  200. package/src/util/index.ts +0 -42
  201. package/src/util/initMeta.ts +0 -37
  202. package/src/util/register.ts +0 -12
  203. package/src/util/wsMeta.ts +0 -70
  204. package/tsconfig.build.json +0 -28
  205. package/tsconfig.build.tsbuildinfo +0 -1
  206. package/tsconfig.scripts.json +0 -19
  207. package/tsconfig.spec.json +0 -17
  208. package/tsconfig.spec.tsbuildinfo +0 -1
  209. /package/{build-tsc/augment.d.ts → augment.d.ts} +0 -0
  210. /package/{build-tsc-esm/augment.js → augment.js} +0 -0
  211. /package/{build-tsc/bundle.d.ts → bundle.d.ts} +0 -0
  212. /package/{build-tsc-esm/bundle.js → bundle.js} +0 -0
  213. /package/{build → cjs}/augment.d.ts +0 -0
  214. /package/{build-tsc-cjs → cjs}/augment.js +0 -0
  215. /package/{build → cjs}/bundle.d.ts +0 -0
  216. /package/{build-tsc-cjs → cjs}/bundle.js +0 -0
  217. /package/{build-tsc → cjs}/extractChain.d.ts +0 -0
  218. /package/{build-tsc-cjs → cjs}/extractChain.js +0 -0
  219. /package/{build-tsc → cjs}/fromChain.d.ts +0 -0
  220. /package/{build-tsc-cjs → cjs}/fromChain.js +0 -0
  221. /package/{build-tsc → cjs}/fromDefs.d.ts +0 -0
  222. /package/{build-tsc-cjs → cjs}/fromDefs.js +0 -0
  223. /package/{build-tsc → cjs}/generate/consts.d.ts +0 -0
  224. /package/{build-tsc-cjs → cjs}/generate/consts.js +0 -0
  225. /package/{build-tsc → cjs}/generate/errors.d.ts +0 -0
  226. /package/{build-tsc-cjs → cjs}/generate/errors.js +0 -0
  227. /package/{build-tsc → cjs}/generate/events.d.ts +0 -0
  228. /package/{build-tsc-cjs → cjs}/generate/events.js +0 -0
  229. /package/{build-tsc → cjs}/generate/index.d.ts +0 -0
  230. /package/{build-tsc-cjs → cjs}/generate/index.js +0 -0
  231. /package/{build-tsc → cjs}/generate/interfaceRegistry.d.ts +0 -0
  232. /package/{build-tsc-cjs → cjs}/generate/interfaceRegistry.js +0 -0
  233. /package/{build-tsc → cjs}/generate/lookup.d.ts +0 -0
  234. /package/{build-tsc → cjs}/generate/query.d.ts +0 -0
  235. /package/{build-tsc-cjs → cjs}/generate/query.js +0 -0
  236. /package/{build-tsc → cjs}/generate/rpc.d.ts +0 -0
  237. /package/{build-tsc-cjs → cjs}/generate/rpc.js +0 -0
  238. /package/{build-tsc → cjs}/generate/runtime.d.ts +0 -0
  239. /package/{build-tsc-cjs → cjs}/generate/runtime.js +0 -0
  240. /package/{build-tsc → cjs}/generate/tsDef.d.ts +0 -0
  241. /package/{build-tsc-cjs → cjs}/generate/tsDef.js +0 -0
  242. /package/{build-tsc → cjs}/generate/tx.d.ts +0 -0
  243. /package/{build-tsc-cjs → cjs}/generate/tx.js +0 -0
  244. /package/{build-tsc → cjs}/generate/types.d.ts +0 -0
  245. /package/{build-tsc-cjs → cjs}/generate/types.js +0 -0
  246. /package/{build-tsc → cjs}/index.d.ts +0 -0
  247. /package/{build-tsc-cjs → cjs}/index.js +0 -0
  248. /package/{build-tsc → cjs}/interfacesTs.d.ts +0 -0
  249. /package/{build-tsc-cjs → cjs}/interfacesTs.js +0 -0
  250. /package/{build-tsc → cjs}/metadataMd.d.ts +0 -0
  251. /package/{build-tsc-cjs → cjs}/metadataMd.js +0 -0
  252. /package/{build/cjs → cjs}/package.json +0 -0
  253. /package/{build-tsc → cjs}/packageDetect.d.ts +0 -0
  254. /package/{build/cjs → cjs}/packageDetect.js +0 -0
  255. /package/{build-tsc → cjs}/packageInfo.d.ts +0 -0
  256. /package/{build-tsc → cjs}/util/assert.d.ts +0 -0
  257. /package/{build-tsc-cjs → cjs}/util/assert.js +0 -0
  258. /package/{build-tsc → cjs}/util/derived.d.ts +0 -0
  259. /package/{build-tsc → cjs}/util/docs.d.ts +0 -0
  260. /package/{build-tsc-cjs → cjs}/util/docs.js +0 -0
  261. /package/{build-tsc → cjs}/util/file.d.ts +0 -0
  262. /package/{build-tsc-cjs → cjs}/util/file.js +0 -0
  263. /package/{build-tsc → cjs}/util/formatting.d.ts +0 -0
  264. /package/{build-tsc → cjs}/util/imports.d.ts +0 -0
  265. /package/{build-tsc-cjs → cjs}/util/imports.js +0 -0
  266. /package/{build-tsc → cjs}/util/index.d.ts +0 -0
  267. /package/{build-tsc-cjs → cjs}/util/index.js +0 -0
  268. /package/{build-tsc → cjs}/util/initMeta.d.ts +0 -0
  269. /package/{build-tsc-cjs → cjs}/util/initMeta.js +0 -0
  270. /package/{build-tsc → cjs}/util/register.d.ts +0 -0
  271. /package/{build-tsc-cjs → cjs}/util/register.js +0 -0
  272. /package/{build-tsc → cjs}/util/wsMeta.d.ts +0 -0
  273. /package/{build-tsc-cjs → cjs}/util/wsMeta.js +0 -0
  274. /package/{build/cjs/extractChain.d.ts → extractChain.d.ts} +0 -0
  275. /package/{build-tsc-esm/extractChain.js → extractChain.js} +0 -0
  276. /package/{build/cjs/fromChain.d.ts → fromChain.d.ts} +0 -0
  277. /package/{build-tsc-esm/fromChain.js → fromChain.js} +0 -0
  278. /package/{build/cjs/fromDefs.d.ts → fromDefs.d.ts} +0 -0
  279. /package/{build-tsc-esm/fromDefs.js → fromDefs.js} +0 -0
  280. /package/{build/cjs/generate → generate}/index.d.ts +0 -0
  281. /package/{build-tsc-esm/generate → generate}/index.js +0 -0
  282. /package/{build/cjs/index.d.ts → index.d.ts} +0 -0
  283. /package/{build-tsc-esm/index.js → index.js} +0 -0
  284. /package/{build/cjs/interfacesTs.d.ts → interfacesTs.d.ts} +0 -0
  285. /package/{build-tsc-esm/interfacesTs.js → interfacesTs.js} +0 -0
  286. /package/{build/cjs/metadataMd.d.ts → metadataMd.d.ts} +0 -0
  287. /package/{build-tsc-esm/metadataMd.js → metadataMd.js} +0 -0
  288. /package/{build/cjs/packageDetect.d.ts → packageDetect.d.ts} +0 -0
  289. /package/{build-tsc-esm/packageDetect.js → packageDetect.js} +0 -0
  290. /package/{build/cjs/packageInfo.d.ts → packageInfo.d.ts} +0 -0
  291. /package/{build/cjs/util → util}/assert.d.ts +0 -0
  292. /package/{build-tsc-esm/util → util}/assert.js +0 -0
  293. /package/{build/cjs/util → util}/derived.d.ts +0 -0
  294. /package/{build/cjs/util → util}/docs.d.ts +0 -0
  295. /package/{build-tsc-esm/util → util}/docs.js +0 -0
  296. /package/{build/cjs/util → util}/file.d.ts +0 -0
  297. /package/{build-tsc-esm/util → util}/file.js +0 -0
  298. /package/{build/cjs/util → util}/formatting.d.ts +0 -0
  299. /package/{build/cjs/util → util}/imports.d.ts +0 -0
  300. /package/{build-tsc-esm/util → util}/imports.js +0 -0
  301. /package/{build/cjs/util → util}/index.d.ts +0 -0
  302. /package/{build-tsc-esm/util → util}/index.js +0 -0
  303. /package/{build/cjs/util → util}/initMeta.d.ts +0 -0
  304. /package/{build-tsc-esm/util → util}/initMeta.js +0 -0
  305. /package/{build/cjs/util → util}/register.d.ts +0 -0
  306. /package/{build-tsc-esm/util → util}/register.js +0 -0
  307. /package/{build/cjs/util → util}/wsMeta.d.ts +0 -0
  308. /package/{build-tsc-esm/util → util}/wsMeta.js +0 -0
@@ -1,321 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/typegen authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { Registry } from '@pezkuwi/types/types';
5
- import type { TypeDef } from '@pezkuwi/types-create/types';
6
- import type { ModuleTypes } from '../util/imports.js';
7
- import type { TypeImports } from '../util/index.js';
8
-
9
- import Handlebars from 'handlebars';
10
- import path from 'node:path';
11
-
12
- import { TypeRegistry } from '@pezkuwi/types/create';
13
- import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions';
14
- import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create';
15
- import { assert, isString, stringify, stringPascalCase } from '@pezkuwi/util';
16
-
17
- import { createImports, exportInterface, formatType, readTemplate, setImports, writeFile } from '../util/index.js';
18
-
19
- interface Imports extends TypeImports {
20
- interfaces: [string, string][];
21
- }
22
-
23
- const generateTsDefIndexTemplate = Handlebars.compile(readTemplate('tsDef/index'));
24
- const generateTsDefModuleTypesTemplate = Handlebars.compile(readTemplate('tsDef/moduleTypes'));
25
- const generateTsDefTypesTemplate = Handlebars.compile(readTemplate('tsDef/types'));
26
-
27
- // helper to generate a `readonly <Name>: <Type>;` getter
28
- /** @internal */
29
- export function createGetter (definitions: Record<string, ModuleTypes>, name = '', type: string, imports: TypeImports): string {
30
- setImports(definitions, imports, [type]);
31
-
32
- return ` readonly ${name}: ${type};\n`;
33
- }
34
-
35
- /** @internal */
36
- function errorUnhandled (_: Registry, _definitions: Record<string, ModuleTypes>, def: TypeDef, _imports: TypeImports): string {
37
- throw new Error(`Generate: ${def.name || ''}: Unhandled type ${TypeDefInfo[def.info]}`);
38
- }
39
-
40
- /** @internal */
41
- function tsExport (registry: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports): string {
42
- return exportInterface(def.lookupIndex, def.name, formatType(registry, definitions, def, imports, false));
43
- }
44
-
45
- /** @internal */
46
- function tsEnum (registry: Registry, definitions: Record<string, ModuleTypes>, { lookupIndex, name: enumName, sub }: TypeDef, imports: TypeImports, withShortcut = false): string {
47
- setImports(definitions, imports, ['Enum']);
48
-
49
- const indent = withShortcut ? ' ' : '';
50
- const named = (sub as TypeDef[]).filter(({ name }) => !!name && !name.startsWith('__Unused'));
51
- const keys = named.map((def): string => {
52
- const { info, lookupName, name = '', sub, type } = def;
53
- const getter = stringPascalCase(name.replace(' ', '_'));
54
- const isComplex = [TypeDefInfo.Option, TypeDefInfo.Range, TypeDefInfo.RangeInclusive, TypeDefInfo.Result, TypeDefInfo.Struct, TypeDefInfo.Tuple, TypeDefInfo.Vec, TypeDefInfo.VecFixed].includes(info);
55
-
56
- let extractedLookupName;
57
-
58
- // When the parent type does not have a lookupName, and the sub type is the same
59
- // type as the parent we can take the lookupName from the sub.
60
- // This is specific to `StagingXcmV4Junction`.
61
- // see: https://github.com/pezkuwichain/pezkuwi-api/pull/5812
62
- if (sub && !Array.isArray(sub) && type.includes(`${sub.type};`)) {
63
- if (sub.lookupName === 'StagingXcmV4Junction') {
64
- extractedLookupName = sub.lookupName;
65
- } else if (sub.lookupName === 'StagingXcmV5Junction') {
66
- extractedLookupName = `Vec<${sub.lookupName}>`;
67
- }
68
- }
69
-
70
- const asGetter = type === 'Null' || info === TypeDefInfo.DoNotConstruct
71
- ? ''
72
- : createGetter(definitions, `as${getter}`, lookupName || extractedLookupName || (isComplex ? formatType(registry, definitions, info === TypeDefInfo.Struct ? def : type, imports, withShortcut) : type), imports);
73
- const isGetter = info === TypeDefInfo.DoNotConstruct
74
- ? ''
75
- : createGetter(definitions, `is${getter}`, 'boolean', imports);
76
-
77
- switch (info) {
78
- case TypeDefInfo.Compact:
79
- case TypeDefInfo.Plain:
80
- case TypeDefInfo.Range:
81
- case TypeDefInfo.RangeInclusive:
82
- case TypeDefInfo.Result:
83
- case TypeDefInfo.Si:
84
- case TypeDefInfo.Struct:
85
- case TypeDefInfo.Tuple:
86
- case TypeDefInfo.Vec:
87
- case TypeDefInfo.BTreeMap:
88
- case TypeDefInfo.BTreeSet:
89
- case TypeDefInfo.Option:
90
- case TypeDefInfo.VecFixed:
91
- case TypeDefInfo.WrapperKeepOpaque:
92
- case TypeDefInfo.WrapperOpaque:
93
- return `${indent}${isGetter}${indent}${asGetter}`;
94
-
95
- case TypeDefInfo.DoNotConstruct:
96
- case TypeDefInfo.Null:
97
- return `${indent}${isGetter}`;
98
-
99
- default:
100
- throw new Error(`Enum: ${enumName || 'undefined'}: Unhandled type ${TypeDefInfo[info]}, ${stringify(def)}`);
101
- }
102
- });
103
-
104
- return exportInterface(lookupIndex, enumName, 'Enum', `${keys.join('')} ${indent}readonly type: ${named.map(({ name = '' }) => `'${stringPascalCase(name.replace(' ', '_'))}'`).join(' | ')};\n`, withShortcut);
105
- }
106
-
107
- function tsInt (_: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports, type: 'Int' | 'UInt' = 'Int'): string {
108
- setImports(definitions, imports, [type]);
109
-
110
- return exportInterface(def.lookupIndex, def.name, type);
111
- }
112
-
113
- /** @internal */
114
- function tsNull (_registry: Registry, definitions: Record<string, ModuleTypes>, { lookupIndex = -1, name }: TypeDef, imports: TypeImports): string {
115
- setImports(definitions, imports, ['Null']);
116
-
117
- // * @description extends [[${base}]]
118
- const doc = `/** @name ${name || ''}${lookupIndex !== -1 ? ` (${lookupIndex})` : ''} */\n`;
119
-
120
- return `${doc}export type ${name || ''} = Null;`;
121
- }
122
-
123
- /** @internal */
124
- function tsResultGetter (registry: Registry, definitions: Record<string, ModuleTypes>, resultName = '', getter: 'Ok' | 'Err', def: TypeDef, imports: TypeImports): string {
125
- const { info, lookupName, type } = def;
126
- const asGetter = type === 'Null'
127
- ? ''
128
- : createGetter(definitions, `as${getter}`, lookupName || (info === TypeDefInfo.Tuple ? formatType(registry, definitions, def, imports, false) : type), imports);
129
- const isGetter = createGetter(definitions, `is${getter}`, 'boolean', imports);
130
-
131
- switch (info) {
132
- case TypeDefInfo.Option:
133
- case TypeDefInfo.Plain:
134
- case TypeDefInfo.Si:
135
- case TypeDefInfo.Tuple:
136
- case TypeDefInfo.Vec:
137
- case TypeDefInfo.BTreeMap:
138
- case TypeDefInfo.BTreeSet:
139
- case TypeDefInfo.WrapperKeepOpaque:
140
- case TypeDefInfo.WrapperOpaque:
141
- return `${isGetter}${asGetter}`;
142
-
143
- case TypeDefInfo.Null:
144
- return `${isGetter}`;
145
-
146
- default:
147
- throw new Error(`Result: ${resultName}: Unhandled type ${TypeDefInfo[info]}, ${stringify(def)}`);
148
- }
149
- }
150
-
151
- /** @internal */
152
- function tsResult (registry: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports): string {
153
- const [okDef, errorDef] = (def.sub as TypeDef[]);
154
- const inner = [
155
- tsResultGetter(registry, definitions, def.name, 'Err', errorDef, imports),
156
- tsResultGetter(registry, definitions, def.name, 'Ok', okDef, imports)
157
- ].join('');
158
-
159
- setImports(definitions, imports, [def.type]);
160
-
161
- const fmtType = def.lookupName && def.name !== def.lookupName
162
- ? def.lookupName
163
- : formatType(registry, definitions, def, imports, false);
164
-
165
- return exportInterface(def.lookupIndex, def.name, fmtType, inner);
166
- }
167
-
168
- /** @internal */
169
- function tsSi (_registry: Registry, _definitions: Record<string, ModuleTypes>, typeDef: TypeDef, _imports: TypeImports): string {
170
- // FIXME
171
- return `// SI: ${stringify(typeDef)}`;
172
- }
173
-
174
- /** @internal */
175
- function tsSet (_: Registry, definitions: Record<string, ModuleTypes>, { lookupIndex, name: setName, sub }: TypeDef, imports: TypeImports): string {
176
- setImports(definitions, imports, ['Set']);
177
-
178
- const types = (sub as TypeDef[]).map(({ name }): string => {
179
- assert(name, 'Invalid TypeDef found, no name specified');
180
-
181
- return createGetter(definitions, `is${name}`, 'boolean', imports);
182
- });
183
-
184
- return exportInterface(lookupIndex, setName, 'Set', types.join(''));
185
- }
186
-
187
- /** @internal */
188
- function tsStruct (registry: Registry, definitions: Record<string, ModuleTypes>, { lookupIndex, name: structName, sub }: TypeDef, imports: TypeImports): string {
189
- setImports(definitions, imports, ['Struct']);
190
-
191
- const keys = (sub as TypeDef[]).map((def): string => {
192
- const fmtType = def.lookupName && def.name !== def.lookupName
193
- ? def.lookupName
194
- : def.info === TypeDefInfo.Enum
195
- ? `${tsEnum(registry, definitions, def, imports, true)} & Enum`
196
- : formatType(registry, definitions, def, imports, false);
197
-
198
- return createGetter(definitions, def.name, fmtType, imports);
199
- });
200
-
201
- return exportInterface(lookupIndex, structName, 'Struct', keys.join(''));
202
- }
203
-
204
- /** @internal */
205
- function tsUInt (registry: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports): string {
206
- return tsInt(registry, definitions, def, imports, 'UInt');
207
- }
208
-
209
- /** @internal */
210
- function tsVec (registry: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports): string {
211
- const type = (def.sub as TypeDef).type;
212
-
213
- if (type === 'u8') {
214
- if (def.info === TypeDefInfo.VecFixed) {
215
- setImports(definitions, imports, ['U8aFixed']);
216
-
217
- return exportInterface(def.lookupIndex, def.name, 'U8aFixed');
218
- } else {
219
- setImports(definitions, imports, ['Bytes']);
220
-
221
- return exportInterface(def.lookupIndex, def.name, 'Bytes');
222
- }
223
- }
224
-
225
- const fmtType = def.lookupName && def.name !== def.lookupName
226
- ? def.lookupName
227
- : formatType(registry, definitions, def, imports, false);
228
-
229
- return exportInterface(def.lookupIndex, def.name, fmtType);
230
- }
231
-
232
- // handlers are defined externally to use - this means that when we do a
233
- // `generators[typedef.info](...)` TS will show any unhandled types. Rather
234
- // we are being explicit in having no handlers where we do not support (yet)
235
- export const typeEncoders: Record<TypeDefInfo, (registry: Registry, definitions: Record<string, ModuleTypes>, def: TypeDef, imports: TypeImports) => string> = {
236
- [TypeDefInfo.BTreeMap]: tsExport,
237
- [TypeDefInfo.BTreeSet]: tsExport,
238
- [TypeDefInfo.Compact]: tsExport,
239
- [TypeDefInfo.DoNotConstruct]: tsExport,
240
- [TypeDefInfo.Enum]: tsEnum,
241
- [TypeDefInfo.HashMap]: tsExport,
242
- [TypeDefInfo.Int]: tsInt,
243
- [TypeDefInfo.Linkage]: errorUnhandled,
244
- [TypeDefInfo.Null]: tsNull,
245
- [TypeDefInfo.Option]: tsExport,
246
- [TypeDefInfo.Plain]: tsExport,
247
- [TypeDefInfo.Range]: tsExport,
248
- [TypeDefInfo.RangeInclusive]: tsExport,
249
- [TypeDefInfo.Result]: tsResult,
250
- [TypeDefInfo.Set]: tsSet,
251
- [TypeDefInfo.Si]: tsSi,
252
- [TypeDefInfo.Struct]: tsStruct,
253
- [TypeDefInfo.Tuple]: tsExport,
254
- [TypeDefInfo.UInt]: tsUInt,
255
- [TypeDefInfo.Vec]: tsVec,
256
- [TypeDefInfo.VecFixed]: tsVec,
257
- [TypeDefInfo.WrapperKeepOpaque]: tsExport,
258
- [TypeDefInfo.WrapperOpaque]: tsExport
259
- };
260
-
261
- /** @internal */
262
- function generateInterfaces (registry: Registry, definitions: Record<string, ModuleTypes>, { types }: { types: Record<string, any> }, imports: Imports): [string, string][] {
263
- return Object.entries(types).map(([name, type]): [string, string] => {
264
- const def = getTypeDef(isString(type) ? type : stringify(type), { name });
265
-
266
- return [name, typeEncoders[def.info](registry, definitions, def, imports)];
267
- });
268
- }
269
-
270
- /** @internal */
271
- export function generateTsDefFor (registry: Registry, importDefinitions: Record<string, Record<string, ModuleTypes>>, defName: string, { types }: { types: Record<string, any> }, outputDir: string): void {
272
- const imports = { ...createImports(importDefinitions, { types }), interfaces: [] } as Imports;
273
- const definitions = imports.definitions;
274
- const interfaces = generateInterfaces(registry, definitions, { types }, imports);
275
- const items = interfaces.sort((a, b) => a[0].localeCompare(b[0])).map(([, definition]) => definition);
276
-
277
- writeFile(path.join(outputDir, defName, 'types.ts'), () => generateTsDefModuleTypesTemplate({
278
- headerType: 'defs',
279
- imports,
280
- items,
281
- name: defName,
282
- types: [
283
- ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({
284
- file: packagePath.replace('@pezkuwi/types/augment', '@pezkuwi/types'),
285
- types: Object.keys(imports.localTypes[packagePath])
286
- }))
287
- ]
288
- }), true);
289
- writeFile(path.join(outputDir, defName, 'index.ts'), () => generateTsDefIndexTemplate({ headerType: 'defs' }), true);
290
- }
291
-
292
- /** @internal */
293
- export function generateTsDef (importDefinitions: Record<string, Record<string, ModuleTypes>>, outputDir: string, generatingPackage: string): void {
294
- const registry = new TypeRegistry();
295
-
296
- writeFile(path.join(outputDir, 'types.ts'), (): string => {
297
- const definitions = importDefinitions[generatingPackage];
298
-
299
- Object.entries(definitions).forEach(([defName, obj]): void => {
300
- console.log(`\tExtracting interfaces for ${defName}`);
301
-
302
- generateTsDefFor(registry, importDefinitions, defName, obj, outputDir);
303
- });
304
-
305
- return generateTsDefTypesTemplate({
306
- headerType: 'defs',
307
- items: Object.keys(definitions)
308
- });
309
- });
310
-
311
- writeFile(path.join(outputDir, 'index.ts'), () => generateTsDefIndexTemplate({ headerType: 'defs' }), true);
312
- }
313
-
314
- /** @internal */
315
- export function generateDefaultTsDef (): void {
316
- generateTsDef(
317
- { '@pezkuwi/types/interfaces': defaultDefinitions },
318
- 'packages/types/src/interfaces',
319
- '@pezkuwi/types/interfaces'
320
- );
321
- }
@@ -1,152 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/typegen authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { VariantDeprecationInfoV16 } from '@pezkuwi/types/interfaces';
5
- import type { Metadata } from '@pezkuwi/types/metadata/Metadata';
6
- import type { Text } from '@pezkuwi/types/primitive';
7
- import type { Definitions, Registry } from '@pezkuwi/types/types';
8
- import type { HexString } from '@pezkuwi/util/types';
9
-
10
- import Handlebars from 'handlebars';
11
-
12
- import * as defaultDefs from '@pezkuwi/types/interfaces/definitions';
13
- import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions';
14
- import { stringCamelCase } from '@pezkuwi/util';
15
-
16
- import { compareName, createImports, formatType, getSimilarTypes, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js';
17
- import { ignoreUnusedLookups } from './lookup.js';
18
- import { type ExtraTypes, getDeprecationNotice } from './types.js';
19
-
20
- const MAPPED_NAMES: Record<string, string> = {
21
- class: 'clazz',
22
- new: 'updated'
23
- };
24
-
25
- const generateForMetaTemplate = Handlebars.compile(readTemplate('tx'));
26
-
27
- function mapName (_name: Text): string {
28
- const name = stringCamelCase(_name);
29
-
30
- return MAPPED_NAMES[name] || name;
31
- }
32
-
33
- /** @internal */
34
- function generateForMeta (registry: Registry, meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void {
35
- writeFile(dest, (): string => {
36
- const allTypes: ExtraTypes = {
37
- '@pezkuwi/types-augment': {
38
- lookup: {
39
- ...lookupDefinitions,
40
- ...customLookupDefinitions
41
- }
42
- },
43
- '@pezkuwi/types/interfaces': defaultDefs,
44
- ...extraTypes
45
- };
46
- const imports = createImports(allTypes);
47
- const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => {
48
- return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs);
49
- }, {});
50
- const { lookup, pallets } = meta.asLatest;
51
- const usedTypes = new Set<string>([]);
52
- const modules = pallets
53
- .sort(compareName)
54
- .filter(({ calls }) => calls.isSome)
55
- .map((data) => {
56
- const name = data.name;
57
- const calls = data.calls.unwrap();
58
- const deprecationInfo = calls.deprecationInfo.toJSON();
59
-
60
- setImports(allDefs, imports, ['SubmittableExtrinsic']);
61
-
62
- const sectionName = stringCamelCase(name);
63
- const items = lookup.getSiType(calls.type).def.asVariant.variants
64
- .map(({ docs, fields, index, name }) => {
65
- const rawStatus = deprecationInfo?.[index.toNumber()];
66
-
67
- if (rawStatus) {
68
- const deprecationVariantInfo: VariantDeprecationInfoV16 = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]);
69
- const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString(), 'Call');
70
- const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice];
71
-
72
- docs.push(...notice.map((text) => meta.registry.createType('Text', text)));
73
- }
74
-
75
- const typesInfo = fields.map(({ name, type, typeName }, index): [string, string, string] => {
76
- const typeDef = registry.lookup.getTypeDef(type);
77
-
78
- return [
79
- name.isSome
80
- ? mapName(name.unwrap())
81
- : `param${index}`,
82
- rebrandTypeName(typeName.isSome
83
- ? typeName.toString()
84
- : typeDef.type),
85
- rebrandTypeName(typeDef.isFromSi
86
- ? typeDef.type
87
- : typeDef.lookupName || typeDef.type)
88
- ];
89
- });
90
-
91
- const params = typesInfo
92
- .map(([name,, typeStr]) => {
93
- const similarTypes = getSimilarTypes(registry, allDefs, typeStr, imports);
94
-
95
- setImports(allDefs, imports, [typeStr, ...similarTypes]);
96
-
97
- // Add the type to the list of used types
98
- if (!(imports.primitiveTypes[typeStr])) {
99
- usedTypes.add(typeStr);
100
- }
101
-
102
- return `${name}: ${similarTypes.join(' | ')}`;
103
- })
104
- .join(', ');
105
-
106
- return {
107
- args: typesInfo.map(([,, typeStr]) =>
108
- formatType(registry, allDefs, typeStr, imports)
109
- ).join(', '),
110
- docs,
111
- name: stringCamelCase(name),
112
- params
113
- };
114
- })
115
- .sort(compareName);
116
-
117
- return {
118
- items,
119
- name: sectionName
120
- };
121
- })
122
- .sort(compareName);
123
-
124
- // filter out the unused lookup types from imports
125
- ignoreUnusedLookups([...usedTypes], imports);
126
-
127
- return generateForMetaTemplate({
128
- headerType: 'chain',
129
- imports,
130
- isStrict,
131
- modules,
132
- types: [
133
- ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({
134
- file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'),
135
- types: Object.keys(imports.localTypes[packagePath])
136
- })),
137
- {
138
- file: '@pezkuwi/api-base/types',
139
- types: ['ApiTypes', 'AugmentedSubmittable', 'SubmittableExtrinsic', 'SubmittableExtrinsicFunction']
140
- }
141
- ]
142
- });
143
- });
144
- }
145
-
146
- // Call `generateForMeta()` with current static metadata
147
- /** @internal */
148
- export function generateDefaultTx (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void {
149
- const { metadata, registry } = initMeta(data, extraTypes);
150
-
151
- return generateForMeta(registry, metadata, dest, extraTypes, isStrict, customLookupDefinitions);
152
- }
@@ -1,26 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/typegen authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { Option, Text } from '@pezkuwi/types-codec';
5
-
6
- export type ExtraTypes = Record<string, Record<string, {
7
- runtime?: Record<string, any>;
8
- types: Record<string, any>;
9
- }>>;
10
-
11
- export function getDeprecationNotice<T extends { isDeprecated: boolean; asDeprecated: { note: Text; since: Option<Text> }}> (deprecationInfo: T, name: string, label?: string): string {
12
- let deprecationNotice = '@deprecated';
13
-
14
- if (deprecationInfo.isDeprecated) {
15
- const { note, since } = deprecationInfo.asDeprecated;
16
- const sinceText = since.isSome ? ` Since ${since.unwrap().toString()}.` : '';
17
-
18
- deprecationNotice += ` ${note.toString()}${sinceText}`;
19
- } else {
20
- const labelText = label ? `${label} ` : '';
21
-
22
- deprecationNotice += ` ${labelText}${name} has been deprecated`;
23
- }
24
-
25
- return deprecationNotice;
26
- }
package/src/index.ts DELETED
@@ -1,6 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/typegen authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import './packageDetect.js';
5
-
6
- export * from './bundle.js';
@@ -1,35 +0,0 @@
1
- // Copyright 2017-2025 @pezkuwi/typegen authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import type { HexString } from '@pezkuwi/util/types';
5
-
6
- // TODO: replace v15 to v16 once metadata is updated
7
- import assetHubDicle from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex';
8
- import assetHubPezkuwi from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex';
9
- import bizinikiwi from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex';
10
- import dicle from '@pezkuwi/types-support/metadata/v15/dicle-hex';
11
- import pezkuwi from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex';
12
-
13
- import { generateDefaultConsts, generateDefaultErrors, generateDefaultEvents, generateDefaultInterface, generateDefaultLookup, generateDefaultQuery, generateDefaultRpc, generateDefaultRuntime, generateDefaultTsDef, generateDefaultTx } from './generate/index.js';
14
-
15
- const BASE = 'packages/api-augment/src';
16
- const METAS = Object.entries<HexString>({ assetHubDicle, assetHubPezkuwi, dicle, pezkuwi, bizinikiwi });
17
-
18
- export function main (): void {
19
- generateDefaultInterface();
20
- generateDefaultLookup();
21
- generateDefaultRpc();
22
- generateDefaultTsDef();
23
-
24
- for (const [name, staticMeta] of METAS) {
25
- console.log();
26
- console.log(`*** Generating for ${name}`);
27
-
28
- generateDefaultConsts(`${BASE}/${name}/consts.ts`, staticMeta);
29
- generateDefaultErrors(`${BASE}/${name}/errors.ts`, staticMeta);
30
- generateDefaultEvents(`${BASE}/${name}/events.ts`, staticMeta);
31
- generateDefaultQuery(`${BASE}/${name}/query.ts`, staticMeta);
32
- generateDefaultRuntime(`${BASE}/${name}/runtime.ts`, staticMeta);
33
- generateDefaultTx(`${BASE}/${name}/tx.ts`, staticMeta);
34
- }
35
- }