From aeacede96779bb4556a8df423acbd846f8dfde57 Mon Sep 17 00:00:00 2001 From: Antonio Date: Thu, 5 Jan 2023 12:12:26 +0100 Subject: [PATCH] feat: re-introduce support for chain names (#8594) * Update type-definitions dependency and remove outdated type definitions * Add support for chain names * Change license date to 2023 Co-authored-by: Jaco Co-authored-by: Jaco --- packages/apps-config/src/api/chain/index.ts | 9 +++++++++ packages/apps-config/src/api/typesBundle.spec.ts | 12 +++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 packages/apps-config/src/api/chain/index.ts diff --git a/packages/apps-config/src/api/chain/index.ts b/packages/apps-config/src/api/chain/index.ts new file mode 100644 index 0000000000..1e838c12a3 --- /dev/null +++ b/packages/apps-config/src/api/chain/index.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2023 @polkadot/apps-config authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideBundleDefinition } from '@polkadot/types/types'; + +// NOTE: The mapping is done from chain name in system.chain +const chain: Record = {}; + +export default chain; diff --git a/packages/apps-config/src/api/typesBundle.spec.ts b/packages/apps-config/src/api/typesBundle.spec.ts index 91ab59b0a9..526549ca0a 100644 --- a/packages/apps-config/src/api/typesBundle.spec.ts +++ b/packages/apps-config/src/api/typesBundle.spec.ts @@ -5,11 +5,13 @@ import fs from 'fs'; import { objectSpread } from '@polkadot/util'; +import chain from './chain'; import spec from './spec'; it('generates the typesBundle', (): void => { const specEntries = Object.entries(spec); - const typesBundle: { spec: Record } = { spec: {} }; + const chainEntries = Object.entries(chain); + const typesBundle: { chain: Record, spec: Record } = { chain: {}, spec: {} }; specEntries.forEach(([k, v]): void => { const value = objectSpread<{ derives: unknown }>({}, v); @@ -18,6 +20,14 @@ it('generates the typesBundle', (): void => { typesBundle.spec[k] = value; }); + // Chain names override anything that spec name might define, if they conflict. + chainEntries.forEach(([k, v]): void => { + const value = objectSpread<{ derives: unknown }>({}, v); + + delete value.derives; + + typesBundle.chain[k] = value; + }); fs.writeFileSync('packages/apps-config/src/api/typesBundle.ts', `// Copyright 2017-2023 @polkadot/apps-config authors & contributors // SPDX-License-Identifier: Apache-2.0