From 1d3dfc77a39354e8c84d1432aebcfb9700884260 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 15 Dec 2020 14:52:27 +0100 Subject: [PATCH] Use package-info (name/version only) for detectPackage (#2955) * Use package-info (name/version only) for detectPackage * Fixed @polkadot/dev? --- package.json | 2 +- packages/api/src/base/Getters.ts | 13 +-- packages/api/src/detectPackage.ts | 6 +- packages/metadata/src/detectPackage.ts | 8 ++ packages/metadata/src/index.ts | 2 + .../scripts/polkadot-types-chain-info.js | 2 - .../scripts/polkadot-types-from-chain.js | 1 - .../scripts/polkadot-types-from-defs.js | 1 - .../polkadot-types-internal-interfaces.js | 1 - .../polkadot-types-internal-metadata.js | 1 - packages/typegen/src/extractChain.ts | 2 +- packages/typegen/src/generate/consts.ts | 2 +- packages/typegen/src/generate/query.ts | 2 +- packages/typegen/src/generate/tx.ts | 2 +- packages/types/src/detectPackage.ts | 6 +- tsconfig.json | 3 + yarn.lock | 96 +++++++++---------- 17 files changed, 74 insertions(+), 76 deletions(-) create mode 100644 packages/metadata/src/detectPackage.ts diff --git a/package.json b/package.json index 1c472a7d9c..f5a2b0084b 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "@babel/core": "^7.12.10", "@babel/register": "^7.12.10", "@babel/runtime": "^7.12.5", - "@polkadot/dev": "^0.61.2", + "@polkadot/dev": "^0.61.5", "@polkadot/ts": "^0.3.58", "@polkadot/typegen": "workspace:packages/typegen", "@types/jest": "^26.0.19", diff --git a/packages/api/src/base/Getters.ts b/packages/api/src/base/Getters.ts index 9168520959..54dec1cca8 100644 --- a/packages/api/src/base/Getters.ts +++ b/packages/api/src/base/Getters.ts @@ -9,6 +9,7 @@ import type { ApiInterfaceRx, ApiTypes, DecoratedRpc, QueryableConsts, Queryable import { assertReturn } from '@polkadot/util'; +import { packageInfo } from '../detectPackage'; import { Init } from './Init'; interface PkgJson { @@ -16,16 +17,6 @@ interface PkgJson { version: string; } -let pkgJson: PkgJson = { name: '@polkadot/api', version: '-' }; - -import('../package.json') - .then((_pkgJson: unknown): void => { - pkgJson = _pkgJson as PkgJson; - }) - .catch((): void => { - // ignore - }); - function assertResult (value: T | undefined): T { return assertReturn(value, 'Api needs to be initialized before using, listen on \'ready\''); } @@ -95,7 +86,7 @@ export abstract class Getters extends Init { * @description The library information name & version (from package.json) */ public get libraryInfo (): string { - return `${pkgJson.name} v${pkgJson.version}`; + return `${(packageInfo as PkgJson).name} v${(packageInfo as PkgJson).version}`; } /** diff --git a/packages/api/src/detectPackage.ts b/packages/api/src/detectPackage.ts index 11da5bbd0d..f76dbd9842 100644 --- a/packages/api/src/detectPackage.ts +++ b/packages/api/src/detectPackage.ts @@ -3,6 +3,8 @@ import { detectPackage } from '@polkadot/util'; -import packageJson from './package.json'; +import packageInfo from './package-info.json'; -detectPackage(packageJson, typeof __dirname !== 'undefined' && __dirname); +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname); + +export { packageInfo }; diff --git a/packages/metadata/src/detectPackage.ts b/packages/metadata/src/detectPackage.ts new file mode 100644 index 0000000000..4b9773da2d --- /dev/null +++ b/packages/metadata/src/detectPackage.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2020 @polkadot/metadata authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { detectPackage } from '@polkadot/util'; + +import packageInfo from './package-info.json'; + +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname); diff --git a/packages/metadata/src/index.ts b/packages/metadata/src/index.ts index a25bd6480c..74b4018744 100644 --- a/packages/metadata/src/index.ts +++ b/packages/metadata/src/index.ts @@ -1,5 +1,7 @@ // Copyright 2017-2020 @polkadot/metadata authors & contributors // SPDX-License-Identifier: Apache-2.0 +import './detectPackage'; + export { Metadata } from './Metadata'; export { constantsFromMeta, expandMetadata, extrinsicsFromMeta, storageFromMeta } from './decorate'; diff --git a/packages/typegen/scripts/polkadot-types-chain-info.js b/packages/typegen/scripts/polkadot-types-chain-info.js index f54f58e65a..ee7ce2f413 100755 --- a/packages/typegen/scripts/polkadot-types-chain-info.js +++ b/packages/typegen/scripts/polkadot-types-chain-info.js @@ -15,13 +15,11 @@ try { ['module-resolver', { alias: { '^@polkadot/api-derive(.*)': './packages/api-derive/src\\1', - '^@polkadot/api/package.json': './packages/api/package.json', '^@polkadot/api(.*)': './packages/api/src/\\1', '^@polkadot/metadata(.*)': './packages/metadata/src\\1', '^@polkadot/rpc-core(.*)': './packages/rpc-core/src\\1', '^@polkadot/rpc-provider(.*)': './packages/rpc-provider/src\\1', '^@polkadot/types-known(.*)': './packages/types-known/src\\1', - '^@polkadot/types/package.json': './packages/types/package.json', '^@polkadot/types(.*)': './packages/types/src\\1' } }] diff --git a/packages/typegen/scripts/polkadot-types-from-chain.js b/packages/typegen/scripts/polkadot-types-from-chain.js index 5646f6b956..8ebe1a8e90 100755 --- a/packages/typegen/scripts/polkadot-types-from-chain.js +++ b/packages/typegen/scripts/polkadot-types-from-chain.js @@ -16,7 +16,6 @@ try { alias: { '^@polkadot/metadata(.*)': './packages/metadata/src\\1', '^@polkadot/types-known(.*)': './packages/types-known/src\\1', - '^@polkadot/types/package.json': './packages/types/package.json', '^@polkadot/types(.*)': './packages/types/src\\1' } }] diff --git a/packages/typegen/scripts/polkadot-types-from-defs.js b/packages/typegen/scripts/polkadot-types-from-defs.js index 1a4d96c391..38f458ead3 100755 --- a/packages/typegen/scripts/polkadot-types-from-defs.js +++ b/packages/typegen/scripts/polkadot-types-from-defs.js @@ -17,7 +17,6 @@ try { '^@polkadot/metadata(.*)': './packages/metadata/src\\1', '^@polkadot/typegen(.*)': './packages/typegen/src\\1', '^@polkadot/types-known(.*)': './packages/types-known/src\\1', - '^@polkadot/types/package.json': './packages/types/package.json', '^@polkadot/types(.*)': './packages/types/src\\1' } }] diff --git a/packages/typegen/scripts/polkadot-types-internal-interfaces.js b/packages/typegen/scripts/polkadot-types-internal-interfaces.js index a52043b845..6211da89dd 100755 --- a/packages/typegen/scripts/polkadot-types-internal-interfaces.js +++ b/packages/typegen/scripts/polkadot-types-internal-interfaces.js @@ -16,7 +16,6 @@ try { alias: { '^@polkadot/metadata(.*)': './packages/metadata/src\\1', '^@polkadot/types-known(.*)': './packages/types-known/src\\1', - '^@polkadot/types/package.json': './packages/types/package.json', '^@polkadot/types(.*)': './packages/types/src\\1' } }] diff --git a/packages/typegen/scripts/polkadot-types-internal-metadata.js b/packages/typegen/scripts/polkadot-types-internal-metadata.js index cc8094d9f2..b186a5b569 100755 --- a/packages/typegen/scripts/polkadot-types-internal-metadata.js +++ b/packages/typegen/scripts/polkadot-types-internal-metadata.js @@ -16,7 +16,6 @@ try { alias: { '^@polkadot/metadata(.*)': './packages/metadata/src\\1', '^@polkadot/types-known(.*)': './packages/types-known/src\\1', - '^@polkadot/types/package.json': './packages/types/package.json', '^@polkadot/types(.*)': './packages/types/src\\1' } }] diff --git a/packages/typegen/src/extractChain.ts b/packages/typegen/src/extractChain.ts index 736c9fe79d..ee1351ceb0 100644 --- a/packages/typegen/src/extractChain.ts +++ b/packages/typegen/src/extractChain.ts @@ -7,7 +7,7 @@ import process from 'process'; import yargs from 'yargs'; -import { ApiPromise, WsProvider } from '@polkadot/api/index'; +import { ApiPromise, WsProvider } from '@polkadot/api'; /** @internal */ async function run (ws: string): Promise { diff --git a/packages/typegen/src/generate/consts.ts b/packages/typegen/src/generate/consts.ts index afb50a416d..e64b50f01a 100644 --- a/packages/typegen/src/generate/consts.ts +++ b/packages/typegen/src/generate/consts.ts @@ -3,7 +3,7 @@ import Handlebars from 'handlebars'; -import { Metadata } from '@polkadot/metadata'; +import { Metadata } from '@polkadot/metadata/Metadata'; import staticData from '@polkadot/metadata/static'; import { TypeRegistry } from '@polkadot/types/create'; import * as defaultDefs from '@polkadot/types/interfaces/definitions'; diff --git a/packages/typegen/src/generate/query.ts b/packages/typegen/src/generate/query.ts index f56b85e58f..3528dbebb9 100644 --- a/packages/typegen/src/generate/query.ts +++ b/packages/typegen/src/generate/query.ts @@ -6,7 +6,7 @@ import type { Registry } from '@polkadot/types/types'; import Handlebars from 'handlebars'; -import { Metadata } from '@polkadot/metadata'; +import { Metadata } from '@polkadot/metadata/Metadata'; import staticData from '@polkadot/metadata/static'; import { TypeRegistry } from '@polkadot/types/create'; import * as defaultDefs from '@polkadot/types/interfaces/definitions'; diff --git a/packages/typegen/src/generate/tx.ts b/packages/typegen/src/generate/tx.ts index 005e13d83d..08e2d79f6e 100644 --- a/packages/typegen/src/generate/tx.ts +++ b/packages/typegen/src/generate/tx.ts @@ -5,7 +5,7 @@ import type { Registry } from '@polkadot/types/types'; import Handlebars from 'handlebars'; -import { Metadata } from '@polkadot/metadata'; +import { Metadata } from '@polkadot/metadata/Metadata'; import staticData from '@polkadot/metadata/static'; import { TypeRegistry } from '@polkadot/types/create'; import * as defaultDefs from '@polkadot/types/interfaces/definitions'; diff --git a/packages/types/src/detectPackage.ts b/packages/types/src/detectPackage.ts index 2036cbf98c..33623fa984 100644 --- a/packages/types/src/detectPackage.ts +++ b/packages/types/src/detectPackage.ts @@ -3,8 +3,6 @@ import { detectPackage } from '@polkadot/util'; -import packageJson from './package.json'; +import packageInfo from './package-info.json'; -// FIXME This really should be `import(...).then(...)`, but need to check rejections -// eslint-disable-next-line @typescript-eslint/no-var-requires -detectPackage(packageJson, typeof __dirname !== 'undefined' && __dirname); +detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname); diff --git a/tsconfig.json b/tsconfig.json index 42ab4ab1b1..7ee70f73b8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,18 +10,21 @@ "paths": { "@polkadot/api": ["packages/api/src"], + "@polkadot/api/package-info.json": ["packages/api/package.json"], "@polkadot/api/*": ["packages/api/src/*"], "@polkadot/api-contract": ["packages/api-contract/src"], "@polkadot/api-contract/*": ["packages/api-contract/src/*"], "@polkadot/api-derive": ["packages/api-derive/src"], "@polkadot/api-derive/*": ["packages/api-derive/src/*"], "@polkadot/metadata": ["packages/metadata/src"], + "@polkadot/metadata/package-info.json": ["packages/metadata/package.json"], "@polkadot/metadata/*": ["packages/metadata/src/*"], "@polkadot/rpc-core": ["packages/rpc-core/src"], "@polkadot/rpc-core/*": ["packages/rpc-core/src/*"], "@polkadot/rpc-provider": ["packages/rpc-provider/src"], "@polkadot/rpc-provider/*": ["packages/rpc-provider/src/*"], "@polkadot/types": ["packages/types/src"], + "@polkadot/types/package-info.json": ["packages/types/package.json"], "@polkadot/types/*": ["packages/types/src/*"], "@polkadot/types-known": ["packages/types-known/src"], "@polkadot/types-known/*": ["packages/types-known/src/*"], diff --git a/yarn.lock b/yarn.lock index e3ebc3b2f5..f0be6525ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1736,9 +1736,9 @@ __metadata: languageName: unknown linkType: soft -"@polkadot/dev@npm:^0.61.2": - version: 0.61.2 - resolution: "@polkadot/dev@npm:0.61.2" +"@polkadot/dev@npm:^0.61.5": + version: 0.61.5 + resolution: "@polkadot/dev@npm:0.61.5" dependencies: "@babel/cli": ^7.12.10 "@babel/core": ^7.12.10 @@ -1762,8 +1762,8 @@ __metadata: "@babel/register": ^7.12.10 "@babel/runtime": ^7.12.5 "@rushstack/eslint-patch": ^1.0.6 - "@typescript-eslint/eslint-plugin": 4.9.1 - "@typescript-eslint/parser": 4.9.1 + "@typescript-eslint/eslint-plugin": 4.10.0 + "@typescript-eslint/parser": 4.10.0 "@vue/component-compiler-utils": ^3.2.0 babel-jest: ^26.6.3 babel-plugin-module-extension-resolver: ^1.0.0-rc.1 @@ -1825,7 +1825,7 @@ __metadata: polkadot-exec-typedoc: scripts/polkadot-exec-typedoc.cjs polkadot-exec-vuepress: scripts/polkadot-exec-vuepress.cjs polkadot-exec-webpack: scripts/polkadot-exec-webpack.cjs - checksum: aada176bd714442e309941c42f0cf48466599aa1e0cbca894e00c91b6efd2eb6b11a677f1e607d46f3245a780934d5f0b4b4029ee2124e8d41cb5f6c96423b21 + checksum: f58b0190986d600ddbd46ce854eca164ee7bc71ec4c09614b01ce96ca8256a63871b6344f3d0819d778a15de6b787c730ded12a863c3172f74decc65adaa1f4d languageName: node linkType: hard @@ -2355,12 +2355,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/eslint-plugin@npm:4.9.1" +"@typescript-eslint/eslint-plugin@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/eslint-plugin@npm:4.10.0" dependencies: - "@typescript-eslint/experimental-utils": 4.9.1 - "@typescript-eslint/scope-manager": 4.9.1 + "@typescript-eslint/experimental-utils": 4.10.0 + "@typescript-eslint/scope-manager": 4.10.0 debug: ^4.1.1 functional-red-black-tree: ^1.0.1 regexpp: ^3.0.0 @@ -2372,66 +2372,66 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 8de2705aaf40252c16e0408e3eee5e04c2048608ab2a3e3a40d65057e7abd185c7fad33b3d586836dd670452ec008edcbb00055a565ce86e6621f3ea71f6ef24 + checksum: 7c9ef88c112ad81b75697023f3e8df0bb69c33d130868003b55e02416a620ad0e95341576b10050d16d4e04a4c87b1721d762ad5367bc9c2d305a23ab4f94505 languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/experimental-utils@npm:4.9.1" +"@typescript-eslint/experimental-utils@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/experimental-utils@npm:4.10.0" dependencies: "@types/json-schema": ^7.0.3 - "@typescript-eslint/scope-manager": 4.9.1 - "@typescript-eslint/types": 4.9.1 - "@typescript-eslint/typescript-estree": 4.9.1 + "@typescript-eslint/scope-manager": 4.10.0 + "@typescript-eslint/types": 4.10.0 + "@typescript-eslint/typescript-estree": 4.10.0 eslint-scope: ^5.0.0 eslint-utils: ^2.0.0 peerDependencies: eslint: "*" - checksum: fee1f272addbcd453a8f477cd31bb62c6f445b0e7b642e99cb134aa3cfc72a691e51e5aacc5b70cc6f8f18d234f4c8bf1772d3abc683befa0d82f1efd6474cd0 + checksum: 20dad7bdb6e0694cf6b89edd35d9568ac91e76f7ad84bb052a7e79c764a84ebfc32ecd14d924c34e5c0d9e07961d27cdc209858a7861199c771f10eb77bc801e languageName: node linkType: hard -"@typescript-eslint/parser@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/parser@npm:4.9.1" +"@typescript-eslint/parser@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/parser@npm:4.10.0" dependencies: - "@typescript-eslint/scope-manager": 4.9.1 - "@typescript-eslint/types": 4.9.1 - "@typescript-eslint/typescript-estree": 4.9.1 + "@typescript-eslint/scope-manager": 4.10.0 + "@typescript-eslint/types": 4.10.0 + "@typescript-eslint/typescript-estree": 4.10.0 debug: ^4.1.1 peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 61fc1b3e9bfd5056b46337bbea333eb0b86391232ff63669a4e5c08766e041f2cf05ab769374a1b8fde25728646e5b4441d992476cc66abab2a72289cdabfc5a + checksum: 8968583d8c789a2b3f33d9acc258297ddafc083eb339322f87402e21690a3e0b9c32926d3729a38b5c143af2702bda9d7d0531469ac11da068cf4004689c8e48 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/scope-manager@npm:4.9.1" +"@typescript-eslint/scope-manager@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/scope-manager@npm:4.10.0" dependencies: - "@typescript-eslint/types": 4.9.1 - "@typescript-eslint/visitor-keys": 4.9.1 - checksum: 352c9c2dd8057210376a65aa753e330d3b6ed670a8686905acbd81d118062d4f0a5043b28bedf6340d6e29a386b58c8e9bee7732fca1d21fdab69dea1554b9db + "@typescript-eslint/types": 4.10.0 + "@typescript-eslint/visitor-keys": 4.10.0 + checksum: c320c086637a532400ce6e34aedb66e443b0e5ab725e814093a585419053f8e404aab8f7ea890f0866c2137fe7108b34f9c9216d8a74f4908f17b263d5086dd9 languageName: node linkType: hard -"@typescript-eslint/types@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/types@npm:4.9.1" - checksum: e7c5094ce054e2443c4304b6fa35cae8937ffa04f32b0f32db71738671e0ec94a54f29e820745079067fdafa0061a58846b5cde4390f0a9804d5ca7075e89f76 +"@typescript-eslint/types@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/types@npm:4.10.0" + checksum: e82f04695b11792e49c8b9fc60e289f337f7c31b68d04a6f2405163b8a85462eff683ad62e2694368432024f18cdc4d592fe048372774b6cb65057715e9c3105 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/typescript-estree@npm:4.9.1" +"@typescript-eslint/typescript-estree@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/typescript-estree@npm:4.10.0" dependencies: - "@typescript-eslint/types": 4.9.1 - "@typescript-eslint/visitor-keys": 4.9.1 + "@typescript-eslint/types": 4.10.0 + "@typescript-eslint/visitor-keys": 4.10.0 debug: ^4.1.1 globby: ^11.0.1 is-glob: ^4.0.1 @@ -2441,7 +2441,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: cb5ce82696ac4d7d8ce63a54dd522511d3231193d07be44b2456d9f22890c6cdbb03e531ec889629081d9e4a2c322566424246da02e2d82c80625eb346b91006 + checksum: fbc87779af4fa59a5caae47a9429a2229303066c760db46e824d8bdb6d437e1c887d82e9bc85f89570189aacb899875f9b677cadd6b28fa47364ddd2b8f92268 languageName: node linkType: hard @@ -2463,13 +2463,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:4.9.1": - version: 4.9.1 - resolution: "@typescript-eslint/visitor-keys@npm:4.9.1" +"@typescript-eslint/visitor-keys@npm:4.10.0": + version: 4.10.0 + resolution: "@typescript-eslint/visitor-keys@npm:4.10.0" dependencies: - "@typescript-eslint/types": 4.9.1 + "@typescript-eslint/types": 4.10.0 eslint-visitor-keys: ^2.0.0 - checksum: 1b059e2ffd0432f588d13160a8f7d64dff30a8727e0c3c5c0235db1be8b13f08544b2eab8374157b8fbc77ad8f58e768ae3c5266d61275f275dc2cda8aad6717 + checksum: e8d8057632a4aa5595769da14d41a19cbc4a6c02539e5c882b218b2f347445a397f9ef28ffc8b9eefa4d271bed39aa9e3adb182416840f1c73ecf59a0abac876 languageName: node linkType: hard @@ -9196,7 +9196,7 @@ fsevents@~2.1.2: "@babel/core": ^7.12.10 "@babel/register": ^7.12.10 "@babel/runtime": ^7.12.5 - "@polkadot/dev": ^0.61.2 + "@polkadot/dev": ^0.61.5 "@polkadot/ts": ^0.3.58 "@polkadot/typegen": "workspace:packages/typegen" "@types/jest": ^26.0.19